I’ve spent a few weeks getting used to Cordys BOP 4 and as I usually try and do with a new product, I wanted to know more about what’s going on under the bonnet with it. The central coordinating component of Cordys is its SOA grid, which takes care of messaging between all of the core Cordys services and other web services. Based on the information provided in the Cordys offline documentation and because I’m a visual learner, I’ve drawn up the following image that should hopefully shed some light on how Cordys organises its internal services and how they communicate via the SOA grid. Click on the image to zoom to actual size.
To illustrate an example of how the above image can be used to understand what Cordys does is the request of an XForm from the Cordys client. The client sends a request to display an XForm so sends a HTTP request to the web server for a resource of .caf file extension. The web server, based on the .caf file extension hands the request over to the Cordys web gateway. The web gateway contacts the LDAP service container and checks for the location of the XForms service container (the LDAP service must always be up and running for proper SOA grid functioning). The LDAP service container has an LDAP application connector which talks to CARS. Next the SOAP request is sent to the XForms service container and the XForms engine takes care of rendering the HTML response. Not only that, but the XForms engine also validates controls against schemas and automatically contacts other web services required whilst rendering. Once the HTML is generated, it is returned via the SOA grid to the Cordys web gateway, then back to the calling client.
I should mention at this point that web services on the SOA grid are called based on the service operation name and namespace in the SOAP request.
This is very high level and it’s always a good idea to read further into the Cordys documentation, but I hope this graphic helps to illustrate the architecture of services, service containers and service groups on the Cordys SOA Grid.