Transforming existing application logic or data into callable web services is called as service enabling. This services can be invoked in other business processes or new composite applications. Web Services enable systems to integrate loosely and gain access to needed information and business logic. Assets that can be service enabled will exist in various forms like data, application logic, business logic, or services like notification, messaging engines, security, logging, auditing etc.
Existing legacy systems form the major bottlenecks on road to SOA transformation, typical problems include
- Rigid point to point integration
- Screen based transaction systems – older transaction systems are screen oriented and business logic is embedded in screens like Green Screens, VB or Java Fat Client
- Data Complexity - Data that requires complex extraction, cleansing and enrichment. E.g. Cobol Copybooks
- Data Integrity - Database operations may need re-engineering to maintain overall business process and data integrity
While its complex to re-engineer legacy systems new age middleware and relational databases are best candidates for service enabling. Components that are modular with well designed interfaces and data model can be exposed as web services quickly using bottom-up approach
- Well defined business components like EJB or COM
- Relational Databases - The service to execute typically requires only one
data set (or call pattern), and new transactions do not need to be created in the
environment to create a complete solution and ensure referential
- Business Functions – Well defined business classes or Pojo’s
Approach to Service Enabling existing assets
Data Integration Layer - Building a standard Data model and a strong Data Integration Layer will allow to decouple the service consumers from legacy systems. This means regardless of how and where data is stored within the organization one must abide by the standard data model to perform their business functions. Such a layer will bring in flexibility to change and leverage existing data assets. It will be easy to apply compensating transactions and maintain data integrity.
Utility Services – Non business centric logic can be packaged into separate services, this can include services to send Emails and SMS notifications, Security services to authenticate and manage user accounts, services to audit and log transactions etc.