Doorgaan naar hoofdcontent

Cordys projects in the enterprise

Introduction

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 [1]). 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:
  1. GUI - In this layer in which thin and thick clients are using the Business Services.
  2. Business Services - In this layer the Composite Services, like the enterprise business processes are implemented.
  3. Services - In this layer the Services are implemented.
  4. Applications - This layer is the integration layer towards the encapsulated applications.
  5. 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. 

GUI
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.

Business Services
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.

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.

Applications
This layer contains the projects that actually encapsulate the applications with webservices.

Data
This layer contains the encapsulation of data, i.e. databases or shared files on directories. Here you will see WS-AppServer projects.

Conclusion

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?

References

Reacties

  1. Appreciate your thoughts about organizing the Cordys CWS projects in a different way for Enterprise applications.

    I do understand that in enterprises adopting SOA and ESB would like to have a decoupling between the 5 layers is a way that these layers can be implemented independently in which case your approach to project in CWS might make sense.

    However, I do not think it is a good idea to club the UI functionality for all business solutions in one big Cordys project and Business Services for all business solution in another large project. For large enterprises the number of artifacts in each project which are horizontally defined will be difficult to manage mainly for 2 reasons: 1) the solutions normally undergo different project life cycles and change frequencies, 2) the size of the horizontal project will keep growing to reach a very large size.

    I would still recommend to develop these layers vertically for each specific business solution. Nonetheless, common generic components required for multiple business solutions could still be defined using the horizontal approach.

    Moreover, the layering of solutions in 5 layers is more relevant from runtime point of view which can still be maintained even if you organise your projects vertically. Just my thoughts...

    BeantwoordenVerwijderen
  2. First of all thank you for your response !

    In fact it is not meant to define just one project for (for example) the UI functionality. There can be several workspaces and projects for each layer. That is why i draw several projects in each layer.

    The layering concept is relevant not only from a runtime point of view but also (mainly) from a design time (and governance) point of view.
    (See also http://www.soapatterns.org/service_layers.php

    So the layering is about:
    * Abstracting
    * Governance
    * Loose Coupling and Strong Cohesion
    * Reusability of Services

    Hope this clarifies a bit why i think about structuring the Cordys projects.

    B.t.w. What is your experience of structuring Cordys projects within large enterprises?

    BeantwoordenVerwijderen

Een reactie posten

Populaire posts van deze blog

Microservices mindmap

"The tree" - See also   my photo page When you are fairly new within the Microservices land, there are a lot of terms fired at you. So also for my own understanding i have made a mindmap. I think it has a good status now, so that i can share it with you. As always feedback is very welcome ! You can download the mindmap here .

OSB 10gR3 and SWA and MTOM

This blog is about using soap with attachments and the use of MTOM within the OSB (10gR3). A service is created that accepts a soap with attachment (DocumentService) and translates it to a service that accepts a binary element. MTOM is used for performance reasons for the second. Some notes: * For the use of attachments you need RPC-style document instead of the usual document-style. This due to the fact that the document-style limits a message to a single . * A service can not have both SWA and MTOM within OSB. First a WSDL is setup for the DocumentService: The $attachments variable holds the attachments and the body holds the attachment data. Also other data is stored within the attachment element (see h

Installing Oracle SOA Suite/JDeveloper 11g

This post guides you through the installation of the Oracle SOA Suite 11g with JDeveloper 11 with the use of Oracle XE database (for Windows). Note: It is assumed that Oracle XE database is already installed. Required downloads Oracle Weblogic Server 10.3.1   SOA Suite   Repository Creation Utility JDeveloper Studio The detailed steps are nicely described here . The next picture gives a nice overview of the directory structure created. Step1 -  Create Schemas for Oracle SOA Suite and Oracle BAM (RCU) Unzip the files Run bin/rcu.bat At the Database Connection Details fill in the XE details. If you encounter the next fault you have probably not started the XE database.   Ignore all warnings Click OK Select all components I ran into the following problem: When you click Ok you see the following error: And this is about the Processes DB Init parameter that is wrong. To fix this goto the Database Home page, Sql Editor and execute the following statements: a