Extending an ABCS (AIA 2.x)
By jamie.phelps on May 14, 2010
All AIA Application Business Connector Services (ABCS) are extension enabled out of the box. The number and location of extension points in each ABCS is dependent upon whether the ABCS is a request-response or fire-and-forget service. Below is an example of a request-reply ABCS with 4 extension call-out points:
- Post-transformation, Pre-invoke
- Post-invoke, Pre-transformation
- Post-transformation, Pre-reply
You can also see in the diagram that each XSL Transformation has it's own extension call-out. However for now we are only discussing the ABCS extension call-outs.
To extend an ABCS, you'll first need to identify the specific extension points that are available in your ABCS and choose the one or more that you want to implement. You can an get an idea of the extension points available in your ABCS by looking into the AIAConfigurationProperties.xml file found under the AIA_HOME/config directory. Find the <ServiceConfiguration> section for your ABCS and look for properties similar to the following:
Each extension point in the ABCS will have a corresponding configuration property that controls whether or not the extension call-out is active at runtime. So the properties available for your particular ABCS will indicate what extension points are available in that ABCS. However, you'll probably also want to look into the ABCS BPEL code itself to confirm the exact location of each of the call-outs.
Next, you'll need to implement the extension service itself. The wsdl you must use to define this service is available in the ABCS's BPEL project directory. ABCS projects are available under AIA_HOME/PIPs/(Core or Industry/[industry name])/[application]/(ProviderABCS or RequesterABCS)/, and the wsdl file itself will be named "[ABCS name]ExtensionAbstract.wsdl". Copy and use this wsdl to implement your extension service using whatever technology you wish. It could be BPEL, ESB, Java, etc, as long as you deploy and expose it as a SOAP web service.
After deploying the extension service, take note of it's SOAP endpoint location. This endpoint location must be added to the ExtensionConcrete.wsdl file that resides on your web server hosting the AIAComponents. If you are using the SOA server's included apache web server, then the location of the wsdl file is SOA_HOME/Apache/Apache/htdocs/AIAComponents/ExtensionServiceLibrary/[application]/[ABCS name]/ExtensionConcrete.wsdl. Update the wsdl file to specify the SOAP endpoint location of your deployed extension service, replacing the default out-of-the-box endpoint location that points to the AIA Mirror Servlet. Once you've updated this wsdl file, you've successfully bound your ABCS call-out points to your custom extension service. The next step is to activate the call-out point(s).
To activate one or more extension call-out points in your ABCS, you must update the appropriate extension point configuration property for that ABCS, as described earlier, setting its value to 'true'. After updating the configuration xml file, you'll need to navigate to the AIA console with your browser, select the Setup link, and then the Configuration tab. Then click the "Reload" button at the bottom of the page. This will refresh the server's cached in memory copy of all the configuration properties from the xml file.
That's it! Your extension call-out(s) is now live!