VisualVault SDK

 

VisualVault SDK Overview

 

 

Introduction to VisualVault

 

VisualVault is a web-based document management and compliance application intended to provide organization, structure, and control to unstructured data and business processes and provide a platform for document storage and processing, forms processing, and compliance solutions.

 

Documents refer to any electronic files within an organization that are not managed by a structured system (spreadsheets, presentations, letters, memos, maps, images, etc).  Forms refer to web-based forms designed using the VisualVault form design utility.  Forms allow you to collect data, route the form data utilizing the integrated workflow engine, and create reports using either the VisualVault form dashboards, the VisualVault report server, or a third party reporting tool.  VisualVault form data is collected and stored in two locations, the first location is an XML document stored in the VisualVault database (the XML format is that of a .Net data set), and the second location is the VisualVault_FormData database.  The VisualVault_FormData database provides a report friendly view of the data (each form template has a matching database table, the schema is kept in sync by VisualVault).

 

VisualVault provides a solution for managing documents and forms in a manner that supports regulatory system guidelines.  Business process management is possible by combining document management capabilities with the integrated workflow engine.

 

Users can be granted permissions to interact with information and content.  Users are granted these rights by the designation of Owner, Editor or Viewer roles.  Additional administrative roles, which have special rights, can also be granted to higher level users.  The administrative roles are termed VaultAdmin and VaultAccess.  The VaultAccess role grants members access to administrative functions as well as all data stored in the repository.  The VaultAdmin role grants access to administrative functions only.

 

Architecture

 

VisualVault's architecture is comprised of an ASP.Net web application which includes Web Service end points, a .Net web services proxy (VVRuntime.dll) which leverages the VisualVault Web Services to provide a consistent programming environment for remote calls to the web server, and a .Net background service (VVService.dll) which runs on the web server and carries out routine maintenance tasks such as workflow escalation, and record retention enforcement.

 

The VisualVault architecture also incudes an Index Service for document indexing and searching.  The VisualVault Index Service is a separate ASP.Net web application which VisualVault communicates with via Web Services.  VisualVault Index Service can be deployed on the same web server as the VisualVault application or can be deployed on a dedicated server in higher volume environments.

 

Version 2.95 and greater also leverages the content manager layer.  The content manager is a provider-based storage manager used to control the physical storage location of document data.  The content manager is capable of storing document data within SQL databases, file system locations (UNC paths), or any location defined by a content manager provider.

 

VisualVault Assemblies

Description

VisualVault.dll

 

ASP.Net web application, use the VisualVault installer to install on a Windows 2000 or 2003 web server.

Auersoft.VVUpload.dll

 

Required by the ASP.Net web application, installed with VisualVault.  VVUpload is an http module that intercepts files uploaded to the web server via http post.  The http module spools the files to disk (using the web server's temp folder) in small chunks to support large file uploads and keeps the uploaded files out of web server memory.

Auersoft.ContentManager.dll

Content Manager is responsible for document storage operations.

VVRuntime.dll

VVRuntime acts as a proxy for the VisualVault Web Services.  This assembly is what .Net developers will reference to use the VisualVault API.  VVRuntime.dll communicates with remote VisualVault web servers via web service calls.  

 

VVRuntime.dll is also used in multiple Auersoft products such as the Outlook(R) Add-In, VScan capture utility, VEmail Service, and others.

 

 

VisualVault API Licensing

 

Each VisualVault web server that you will access using API calls must have a license file which includes both the Web Services module and the Runtime Proxy module (see example below).  Use of the VisualVault API is governed by the license agreement agreed to upon installation of the Software Development Kit.  If you did not agree to the license terms you are not authorized to use the API.

 

The VisualVault web application license file must be located in the root of a VisualVault application (Example: c:\inetpub\wwwroot\VisualVault\vvlicense.xml).  The license file is used for the Web application User Interface, the API, the Outlook Client, and other applications which make web service calls to the VisualVault server.  For a list of licensed modules view the contents of the license file or use the Help-About menu option within the VisualVault user interface.

 

If you are an OEM partner building applications which will use the VisualVault API, Auersoft may provide you with a unique product ID which can be passed in as a parameter of the authentication methods.

 

To request a license file please send an email to sales@VisualVault.com or contact us at 1-877-My-Vault (698-2858).

 

Example of VVLicense.XML file contents:

 

 

 

<?xml version="1.0" encoding="utf-8"?>

<license version="1.0">

  <customer name="ABC Company">

  </customer>

  <vendor name="AuerSoft">

  </vendor>

  <product name="VisualVault" version="2.6">

  </product>

  <seats system="1000" available="1000">

  </seats>

  <modules>

    <module id="00000001-0000-0000-0000-100000000001" name="Basic Web Services" available="-1" access="fullaccess">

    </module>

    <module id="00000001-0000-0000-0000-100000000002" name="VisualVault Runtime Proxy" available="-1" access="fullaccess">

    </module>

    <module id="00000001-0000-0000-0000-100000000003" name="VisualVault Outlook Client" available="200" access="fullaccess">

    </module>

  </modules>

  <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">

    <SignedInfo>

      <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />

      <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />

      <Reference URI="">

        <Transforms>

          <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />

        </Transforms>

        <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />

        <DigestValue>bK0/8zBlqZP7ab0MXF9h8AIydb0=</DigestValue>

      </Reference>

    </SignedInfo>

    <SignatureValue>Iv3A19GxPRy5jso023ts0NOExDZLAEINqR1LjnENDDPGn65o/MHdXj6RPiaPsiV8uW9vCuQ8X+K7ZcW7ti0S74YYlD6I8fKLzGlaZO6RI1b8QE+ekTAHb6mZ6DQrFrJ8+YfbmHvqxQCVoVx1sMH7i6h25/5dya5FFL34+/htKLk=</SignatureValue>

  </Signature>

</license>

 

 

 

 

How to use the VisualVault API

 

 

To use the VisualVault Web Services API add a reference to VVRuntime.dll in your Visual Studio project.   Once the reference has been added you will need to authenticate with a VisualVault web server.  There are two methods for specifying the target VisualVault server to communicate with.  You can either pass the target server URL path as a parameter to the Authenticate method, or specify the target server URL in a configuration file.  

 

The recommended method of authenticating is to pass in the target server URL as a parameter when authenticating.

 

If using the configuration file approach, place the file called VVRuntime.Config.xml in your project's bin folder and edit the file providing the URL to the web services (any web server running VisualVault).  This XML file must also be distributed with your compiled application and can be modified at any time to provide a configurable reference to your web server's URL.  Each web server running VisualVault needs its own license file and distribution is not royalty free.  Refer to the API license agreement for distribution rights.

 

Example of VVRuntime.Config.XML:

 

 

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

<SecurityService>http://localhost/visualvault/Ws/Security.asmx</SecurityService>

<LibraryService>http://localhost/visualvault/Ws/Library.asmx</LibraryService>

<FolderService>http://localhost/visualvault/Ws/Folders.asmx</FolderService>

<ProjectService>http://localhost/visualvault/Ws/Projects.asmx</ProjectService>

<WebServiceTimeout>600000</WebServiceTimeout>

</configuration>

 

 

 

 

Make sure your web server's security is configured so the VisualVault web services are available for access from your application.  One way of testing your access rights to the web services is to simply browse to the web service URL's listed below from a remote client machine.

 

There are several security considerations when accessing the web service URL's:

 

 

 

VisualVault Web Services

Description

Security Service

 

Located at http:/yourserverURL/Ws/Security.asmx

 

Supports the VVRuntime.Security name space.

Library Service

 

Located at http:/yourserverURL/Ws/Library.asmx

 

Supports the VVRuntime.Library name space.

Folder Service

Located at http:/yourserverURL/Ws/Folders.asmx

 

Supports the VVRuntime.Folders name space.

Forms Service

Located at http:/yourserverURL/Ws/Forms.asmx

 

Supports the VVRuntime.Forms name space.

Project Service

 

Located at http:/yourserverURL/Ws/Projects.asmx

 

Supports the VVRuntime.Projects name space.

Workflow Service

Located at http:/yourserverURL/Ws/Workflows.asmx

 

Supports the VVRuntime.Workflows name space.