In Cordys projects, I have 2 ‘secret’ weapons. The first one is to optimally leverage all the Cordys direct and inherent constructs, features and infrastructure to resolve the business problem, and to exploit its model-driven architecture to the max. This way, you outperform conventional development, and inherit other (future) Cordys functionality and features on top. It sounds obvious, but it is not so easy.
The second weapon: WS-AppServer. Rather than just having a small data access layer and resolving a lot in the UI layer client side, WS-AppServer development brings you a strong object model hosted in a robust environment using a strongly-typed language, and is well integrated with XForms, rules-engine, etc. WS-AppServer enables to establish a data access layer, a business layer (domain objects) and a UI layer for server-side UI support. WS-AppServer is an ORM-tool as it supports Object-Relational mapping, but it is more than that: it gives full support to developing Business Objects/Web Services, running in a framework and exposing an event-model to bring in custom constraint validation, access control, etc. On top, it enables you to establish excellent server-side support for UI development. The WS-AppServer – XForms integration builds on the concept of Business Object synchronization (or ‘Mobile’ objects), in which either side can enrich the (UI) Business Object, and synchronize it back to the other side.
Together with its repository-driven and XML-based approach, WS-AppServer is a unique solution in the domain of ORM tooling and Business Logic frameworks, and this counter-balances the fact it’s a native Cordys solution. In the future to come though, I expect Cordys will come up with support for general known programming models. Also an area which is open is the availability of a graphical entity modeling tool – in the current BOP 4.1, this is not available.
In this blog, I’m planning a number of articles as to dive into some of the details of WS-AppServer, bringing you concepts and features which are not that explicit or extensive described in the official documentation, enabling you to make optimal use of this application server. I’ll start off on the subject of ‘BusObject Mapping’. Stay tuned!