Tuesday, April 29, 2014

Difference between SOA, EAI and ESB

The main aim of this blog is to provide a more clarity about what are the terms SOA, EAI and ESB and how they are distinct from each other.

Service Oriented Architecture (SOA): SOA is a framework that allows different computer platforms to work together as services and for creating efficiencies by allowing to reuse pre-existing software assets. However, as more and more systems are added to an SOA, they require an effective and flexible governing structure to prevent chaos from ensuing, thats where SOA Governance comes to picture which enforces some policies and procedures to help the users to take the complete advantage of services throughout the entire SOA lifecycle. It allows :
  • Build new applications faster.
  • Quickly automate the cross domain business processes.
  • Govern the life cycle of services.
Earlier SOA used COM or ORB related specifications but now a days it focuses more on web services, WSDL, UDDI, SOAP etc.

Enterprise Application Integration (EAI): Enterprise Application Integration is a business computing term for methods and tools focused or aimed at coordinating, unrestricted sharing of data throughout a network in an enterprise. EAI may involve developing a new total view of an enterprise's business and its applications, seeing how existing applications fit into the new view, and then devising ways to efficiently reuse what already exists while adding new applications and data. EAI comprises of message acceptance, transformation, translation, routing, message delivery, BPM and many more.

Enterprise Service Bus (ESB): ESB can be refferes as a 'Middleware' connecting various business logics together but thats too generic. ESB is a technology that facilitate SOA. Technically, ESB performs various function including protocol transformation, message modification, routing, logging, acting as a security gateway, deliver messages from various services and application which are linked to ESB. The main advvantage of ESB is that it costs much less then hub/spoke or bus based products and it is standard based.


Friday, April 25, 2014

webMethods Overview


Software AG webMethods is one of the most popular and growing Enterprise Application Integration tool in the market today. webMethods is based on Hub and Spoke Architechture, Hub and spoke is some thing where you have a centralized server, and all the data lines extending from it like spokes.

This blog mainly refer to the overview of webMethods and its main components:

Designer: webMethods Designer is an eclispse based IDE which is used for multiple(Almost all) purpose from version 8.x onwards. For every specific work you do on designer you need to select the appropriate prospective in designer itself. For example if you want to do BPM development then you need to select Process Development prospective.
The various purpose of Designer are listed below-
1) CAF Portlets Development.
2) BPM Development including designing, buiding KPIs and deploying.
3) Service Development including Flow, java, adaptor, webservice etc..
4) Deploying to my webMethods server.
5) DSP Page development.

Developer: webMethods Developer is an IDE used for purely service development, you can connect to varoius instances of Integration servers. However SAG have deprecated this IDE from webMethods Version 8.2 onwards, and all the features were made available only in Designer.

Integration Server: webMethods Integration server is the server where services resides, it supports mapping of data between different formats, communication between systems etc. It can also be reffered as backbone/core of webMethods Enterprise Service Bus (ESB).

Broker: webMethods Broker is the main messaging component of webMethods, it supports synchronous and asynchronous message based integrations using publish-subscribe model, generally called as Pub-Sub Model. Broker can be connected to multiple Integration servers whereas vice versa is not true.

MywebMethods Server: This component of webMethods is majorily used for Portal development and monitoring purpose. It is basically a portal based server hosted over jetty. It is used for monitoring business process models, integration server, broker, trading networks and for administration purpose as well.

Trading Network: This component of webMethods is used for B2B transactions. It helps to communicate with external entities know as Partener. It supports many of the standards like EDI, RosettaNet, SWIFT, ebXML etc.

Purpose

I've been working with webMethods for about four years now, sometimes its difficult to find even a small thing via documentations and also very limited forums for this community and that too many posts remains unanswered. Also with the frequent upcoming versions of webMethods its difficult to get a correct method or answer to your queies. So to make life a bit easy in webMethods I thought this would be a good start, also this will be my first blog officially !!! :)