Cordys is used in small, medium as well as enterprise organisations. Within the Cordys Wiki you can find guidelines and best practices for the Folder structures and CWS environment (see ). When you want to use Cordys within the Enterprise I think these best practices are not recommended. In this Blog i will try to explain why.
BPM/SOA 5-layering Architecture
Every enterprise architect knows the 5-layering SOA enterprise architecture pattern:
- GUI - In this layer in which thin and thick clients are using the Business Services.
- Business Services - In this layer the Composite Services, like the enterprise business processes are implemented.
- Services - In this layer the Services are implemented.
- Applications - This layer is the integration layer towards the encapsulated applications.
- Data - This layer contains the data
Most Cordys projects (at least that i have seen) uses Cordys (solutions and projects) like this:
The solutions and projects are divided vertically, so in fact this way you get Application Silo's again, which you want to avoid with SOA and BPM principles. I understand that WS-AppServer integration is nicely integrated with XForms but i doubt if this is the way to go for the enterprise.
For the enterprise I would recommend:
In this case projects and solutions are defined horizontally.
In this layer projects are defined that contain the Portals, Web Clients, Mobile applications etc that can only use the Business Services layer to execute business functionality.
In this layer projects are defined that only implement the business processes. This layer will use the Services layer to compose the processes and composite Services.
This layer contains the Domain Services solutions and projects. Note that these Services only use Common Data Model data and not applications specific data.
This layer contains the projects that actually encapsulate the applications with webservices.
This layer contains the encapsulation of data, i.e. databases or shared files on directories. Here you will see WS-AppServer projects.
For small and medium sized organisations and projects you can use the solution/project constructions mostly described. However within big enterprises this does not suffice.
The question is of course what the consequences are when you are using the projects horizontally.
Are there any Cordys perfomance penalties? Of course because layering always causes overhead.
What are your experiences with large Cordys projects?