Using Ensemble as an ESB
Configuring ESB Services and Operations
[Back] [Next]
   
Server:docs1
Instance:LATEST
User:UnknownUser
 
-
Go to:
Search:    

This chapter describes how to configure the services and operations in the ESB production and how to use the services provided by them. This chapter contains the following sections:

Configuring Pass-through Business Services
To add a pass-through business service, Select the + sign for adding a new service in the Production Configuration page, then:
  1. Select the class based on the protocol used and whether SAML security is being used. Choose a class from the following:
  2. Decide if the pass-through service is to be called through the CSP port or a special port. For live productions, you should use the CSP port in conjunction with a robust web server software so that you have a secure, fully configurable system that can handle heavy loads. The web server installed with Ensemble is a limited system intended for use on development systems, but not on fully-loaded live systems. The special port is a light-weight listener that provides minimal configuration and security. Although it is possible to configure a service to accept calls on both ports, we do not recommend this configuration.
    If your pass-through service is to be called on the CSP port:
    If your pass-through service is to be called from a special port:
  3. Set the Target to point to the pass-through operation.
To optimize performance for pass-through services that use the CSP port, you can configure the pass-through business service to keep the connection open between calls. You can do this by checking the Keep Standard Request Partition checkbox.
See Using SAML Validation in Pass-through Services for information on using SAML validation on SOAP and REST pass-through services.
To use the CSP port to access the pass-through business service, you also need to define a web application. See Configuring a Web Application for details.
Configuring Pass-through Business Operations
To add a pass-through business operation, Select the + sign for adding a new operation in the Production Configuration page, then:
  1. Select the class based on the protocol used and whether you want to suppress storing the messages in the database. See Suppressing Persistent Messages in Pass-through Services and Operations for more information. Choose a class from the following:
  2. Configure the pass-through operation HTTP Server, HTTP Port, and URL settings. You can either configure these settings directly or use the external service registry to configure them. To set them via the external service registry, set the value of the External Registry ID property. See Using the External Service Registry to Configure ESB Hosts for details on setting External Registry ID. After you apply the External Registry ID setting, Ensemble reads the current values from the registry and uses them to set the other properties and marks them as read-only.
    You can either explicitly set the URL or set it to be derived from the incoming URL sent to the generic service. You can do this either through the service registry or directly through the URL property. To derive it from the incoming URL, set either the URL segment of the external service registry Endpoint field or the URL property as follows:
    If the URL property specifies a string that is not empty and does not contain either a vertical bar or circumflex, then the incoming URL is not used to generate the outgoing URL.
  3. Although the pass-through operations typically do not change the contents of the pass-through message, you can specify that the EnsLib.HTTP.GenericOperation and EnsLib.REST.GenericOperation operations perform character set translation. For example, you could have the operation perform character translation so that accented characters are displayed correctly in a web browser. To set the HTTP or REST generic operation to perform character set translation, clear the Read Raw Mode check box in Additional Settings.
Using SAML Validation in Pass-through Services
Pass-through services validates the SAML token but does not check it to see if it provides access to the resources on the external server. The external server must check if the SAML token permits the requested access. The Validation field controls the level of SAML token validation done by the pass-through business service. The following flags specify the kind of validation that is done:
By default, validation has a value of 1, which is equivalent to specifying tarvo. If you specify a value of 0, the pass-through service performs no validation.
When checking the NotBefore and NotOnOrAfter time conditions, the default clock skew allowance is 90 seconds. To change the skew allowance, set the global ^Ens.Config("SAML","ClockSkew"). To set the default clock skew for all components to 180 seconds, enter the following command:
Set ^Ens.Config("SAML","ClockSkew")=180
To change the skew allowance for a specific component to 180 seconds, enter the following command:
Set ^Ens.Config("SAML","ClockSkew",component-name)=180
Suppressing Persistent Messages in Pass-through Services and Operations
To obtain maximum efficiency using pass-through services and operations, you can suppress the use of persistent messages. The pass-through service sends the call directly to the pass-through operation without creating a persistent message. The operation sends the reply message to the service in the same way. This allows you to achieve high throughput levels and eliminates the need to purge messages, but has the following limitations:
To suppress the use of persistent messages for a pass-through service and pass-through operation pair, choose one of the specialized classes for the pass-through operation:
In addition, to suppress persistent messages, you must clear the Persist Messages Sent InProc checkbox in the pass-through business service configuration.
If the pass-through service is using the standard CSP port, you can further improve efficiency by configuring the service to keep the TCP connection open between calls. To do this, in the pass-through service configuration, check the Keep Standard Request Partition checkbox.
Using Other Business Services, Processes, and Operations
Although the simplest ESB systems can consist of a production with only pass-through services and operations, some requirements can only be met with more complex production components. For example, if your ESB must do any of the following, you need other kinds of business services and operations:
For more information on using other business services, processes, and operations to handle REST and SOAP service requests, see Creating Web Services and Web Clients with Ensemble.
Tracking Performance Statistics of Pass-through Services and Operations
To ensure that your ESB system continues to meet the needs of your users, it is important to monitor and track its performance. By performing this monitoring regularly, you can manage any increase in workload by adding resources to handle the increased load. If your pass-through services and operations are using persistent messages, you can use Ensemble’s monitoring facilities to track and report on performance, but the Activity Volume monitoring provides a mechanism to produce summary performance statistics that are useful for the following:
If you have suppressed storing persistent messages (see Suppressing Persistent Messages in Pass-through Services and Operations), these summary statistics are your main tool for tracking performance.
The summary statistics consists of the following information for each pass-through service and operation:
As generally true for monitoring performance, it is important to monitor and record performance statistics on a regular basis. This allows you to detect trends and compare current performance to a baseline. This can be useful in determining whether the cause of performance problems is increased load, network issues, problems with the servers providing the services, or ESB performance issues.
The summary statistics mechanism for pass-through services and operations consists of the following components:
For details, see Monitoring Activity Volume in Monitoring Ensemble.