It is very nature for any technology to readjust after certain time. Enterprise applications are no exception. Tight integration between enterprise applications lead to the need of loosely coupled module. It is analogous to transition from static libs based applications to loosely coupled DLL and DCOM technologies. Web Service has brought relief to enterprise applications from its complex and tightly coupled framework.
Due to itrative adoptation of technology by oragnizations, Enterprise applications needs to co-exist in heterogeneous environments. For any new or old application, one new particulate functionality either had to be redeveloped or reintegrated which throws a situation of multiple version of similar application specification exist within one organization. This puts other operational issues maintenance, version control and patch updates. SOA solved this problem holistically by bring these different application for similar functionality as a service at one central location and provide interface to all.
What is SOA?
I used to think it is more about Web Service communicating with each other over ESB. But when I started to look close, found web service with lots of customized standard from J2EE world.
Here is my startup take on it. More will follow after some dipping into river.
There are four major pillors to SOA.
- Web Service Description Language (WSDL): It is self explanatory description of service in a platform independent XML file.
- SOAP Messages: It is communication transport layer where business documents are exchanged in heterogeneous environment where providers have very little info about each other.
- Universal Definition, Discovery and Integration (UDDI): An enterprise level service directory/registory to look-up and invoke services.
- Quality of Service (QoS): Service level agreement about secuity consideration, authentication and authorization standard and reliability of messages in the system
There are three Major layers in SOA infra.
- WS-I Profile: Interopearbility standard
- Protocols- SOAP, UDDI, WSDL
Existingplatform like J2EE, .Net etc are natural adopters to SOA to provide proven infrastructure parameters like scalability, reliability, availability, and performance.
Just web service implementation for SOA will not be sufficient to satisfy numerous other quality of service standards. Organization for the Advancement of Structured Information Standards (OASIS) plays very important role in these evolving standard. Here are majors ones:
- Security: Web Service Security
- Required for credential exchange, message integrity and message confidentiality. SOA advocates existing Security Assertion Markup Language (SAML) standard.
- Reliability: WS-Reliability and WS-ReliableMessaging
- Relieable message delivery is critical in SOA system to adopt messaging characteristic like once-and-only-once delivery, at-most-once delivery, duplicate message elimination, guaranteed message delivery, and acknowledgment.
- Policy: WS-Policy
- provides a standard way to defined provider Policy assertions.
- Orchestration: BPEL4WS or WSBPEL (Web Services Business Process Execution Language)
- Provides a standard to integrate enterprise data, applications and components. It involves process requirements, such as asynchronous communication, parallel processing, data transformation, and compensation.
- Management: Web Services for Distributed Management (WSDM)
- Provides a standard for System Administrators to manage enterprise infrastructure to run expending services in a heterogeneous environments.
Major SOA Platform Vendors:
- JBoss – personal favorite