Service Oriented Architecture – Exposing a service to HCL Domino Volt

The following information is an overview of Service Oriented Architecture built into Domino Volt, and describes how to expose a service to Domino Volt.

The Domino Volt has an extensible services architecture which allows Domino Volt applications to send and receive data from any external system. The Services Architecture consists of the following components:
  • Service Transports – The Service Transport is the Java code responsible for communicating with an external service, such as a public REST service. It can send data out to the external service or receive data from the external service. The transport also uses JDBC to store and retrieve data from any database. Alternatively, the transport can simply implement a service itself, such as a unit conversion library. You can add any custom transport installation to the Domino Volt installation by placing an appropriate JAR file in a specific directory on the Domino Volt server; however, Domino Volt already includes a generic HTTP transport which can send and receive data over the internet or intranet, and will suffice for many use cases. For more information, see Service Description.
  • Service Descriptions – The Service Description provides the interface for a Service Transport. A Service Description is usually described by an XML file, although it is also possible to programmatically create a Service Description. The Service Description specifies a service's name, description, input parameters, and output parameters. These attributes are what appear to the application designer when they are hooking up services to a Domino Volt application.
  • Data Mapping – Each service description can contain an optional mapping component which describes how the data coming from the Service Transport can be mapped to the outputs defined in the Service Description, or vice versa. The advantage of the mapping component is that it allows multiple Service Descriptions, each with its own name, description, input, and outputs to use to use the same generic transport. By using XPath-like references, the mapping component supports the mapping of complex data structures such as an XML document. The mapping of constant values is also supported.
  • Service Configuration – The Service Configuration is another layer of mapping meant for application designers. It maps items in the form to the inputs and outputs of the Service Description. The application designer is responsible for creating service configurations and connecting form items to the service inputs and outputs. Service configurations are stored inside the application.

Supporting documents

Use the following documents to gain a better understanding of the steps required to expose a service to Domino Volt.

Understanding the HTTP transport – The HTTP Service Transport provides a mechanism to communicate with HTTP servers. The transport allows configuration of the URL to request, HTTP method to use, query parameters, and request headers. When combined with the service mapping engine of Domino Volt, the HTTP Service Transport can extract data from an HTTP response and make it available to your application. The HTTP Service Transport can be used to communicate with any standard HTTP server. While there are some limits on the capabilities of the HTTP Service Transport, it is all that is needed to communicate with a basic HTTP server, or RESTful service, in most cases. For more information, see HTTP Service Transport

Creating and deploying service descriptions – The Service Description provides an interface to Domino Volt mapping interface, and an interface to a Service Transport. For more information on creating Service Descriptions, see Service Description