Monday, May 23, 2016

Oracle Service Bus. What , Why ?

What ?

Oracle Service Bus is a lightweight , scalable , stateless integration platform  implemented to achieve 
  • Service Virtualization
  • Loose Coupling
  • Message Transformation
  • Protocol transformation
  • Rapid Service Enablement
  • Dynamic Routing
  • Parallel processing
  • Security
  • High Availability and scalability
  • Service Pooling
  • Traffic Shaping
  • Service Result Caching
  • Service Enablement
Why ?

   Let me take an example of e-commerce payment integration process to explain how best we can use capabilities of OSB. 


                                 
  techkart.com want's to integrate its payment functionality with bunch of banks creditcard service, one way we can do this is write separate java service client's to consume each of the bank's service as mentioned in the above diagram, that would work but there are problem's with this design, lets review
  • payment service is tightly coupled with creditcard service of the banks
    • any protocol/scheme change in the creditcard service impacts the whole core payment service logic
    • addition of new creditcard service impacts the whole core payment service logic
  • any change in the service takes effort and time
  • note the protocol and message format is different for each creditcard service and has different security requirements.
  • application developers should concentrate on the core business/application logic rather than the subtleties of the transport protocol/schema design changes/security frameworks, not in this case obviously
  • maintaining different versions of CCServiceClients becomes difficult and ugly over time
now we know the drawbacks of this design , lets go back and redesign our implementation, lets introduce service bus to the rescue

                            

Application developer just has to write a simple pojo(CCServiceClient) with cc-no, name, cvv, expiry-date, bank-name attributes ,expose this as web-service and share the WSDL with the Service Bus/middleware guys, service bus guys takes a look at this CCServiceClient wsdl , message formats and transport protocols of creditcard services.

He quickly writes routing and transformation rules based on the bank name and implements in Service Bus, now the CCServiceClient is effectively decoupled from CreditCard services
  • We can add new credit card services without any changes to the core application logic--  Service Virtualization,Service Enablement
  • Uniform , clean service exposure to service bus
  • Any protocol/schema changes in the creditcard services can be accommodated without any impact to the CCServiceClient--  Location transparency, Message transformation, protocol switching, routing
  • We can attach and enforce OWSM client/server policies
  • Service pooling(in-case multiple endpoints provided by any of the CC services)
  • Content based routing(routing based on the bank name in this case)
  • Throttling
Note : This is a just a simple example/use case i tried to explain.

How ?

     Will try my level best to explain OSB how to do's in upcoming posts....Stay tuned  :-)   !!!

No comments:

Post a Comment