Wednesday, 21 March 2007

Overview of Example of practical approach to SOA

Imagine a typical medium sized company. It has an ERP system it implemented two years ago, a CAD system and a PDM system plus an separate CRM package. The company has identified a requirement to upgrade its quotation and order entry system which currently is largely manual supported by multiple spreadsheets. This process is labour intensive, prone to error and seen by their customers as unresponsive.

In Service Oriented technology terms, the new process will be made up of the following identifiable compound services:

1. Handling customer data both existing and new
2. Creating a quotation/order header
3. Capturing order line details including
Configuring the complex products
4. Creating bills of material as required
5. Printing Quotations/order confirmations

All of these services will be made up of several elemental services that can be re-used over and over again.

Each of the compound services needs to interact with the ERP system. If we start with the customer data, the ERP system needs to deliver customer name and addresses and delivery address information on request and also accept and process new customer data. Unfortunately, although the ERP system was purchased only two years ago, it is of traditional construction and does not offer any services. The first task, therefore, is to add service functionality to the ERP system. In fact, several services have to be created and exposed to get this job done.

1. Customer details existing and new
2. Quotation/Order header and line details input and recall
3. Parts data including costs and new bills of material input.

To accomplish this, I use a technique I call creating Application Service Managers. (ASM's) which I create with a code less modeling tool called EdenAgileIT. Essentially, ASM's are an extension to the Host ERP system that is integrated into it and exposes functionality as, in most cases, a web service. To build an ASM takes me between a day and three days, depending on the complexity of the service being created and the architecture of the host ERP system.

Once I have these ASM's in place, I can go on and create the new compound services required before orchestrating them into the new quotation process. These compound services can be very complex, especially those concerned with configuring products or services. It is not unusual for a configuration service to be made up of more than fifty elemental services. I use the same tool set to build all the services. We have accomplished this particular task for a number of customers now, and the whole process from start to roll out requires between 30 and 50 man days.



No comments: