Enterprise software architectures have been using many ways of communication technologies in order to share data or business rules between applications. One of them is to define an integration layer to coordinate the communication between the systems. Service oriented architecture (SOA) is another way of integration. Choosing between the different integration techniques depends on the requirements.
SOA (Service Oriented Architecture)
As per the open group’s definition, "Service-Oriented Architecture (SOA) is an architectural style that supports service-orientation." Here integration of several different applications is achieved through collection of independent services. A service is a self-contained, well-defined and loosely coupled units of functionalities. An example of a service could be "create order service" for an Order Management System which creates the order in the system taking inputs such as line items, price, payment methods and customer details, then gives the output as order number.
Web service is a piece of software function that uses XML messages for communication and made available over the internet. Since it uses XML as a standard way of communication it is independent of language or platform. For example an application deployed on windows operating system can talk to another one on Unix. Application developed using Java can communicate to that one with Python.
Web Service Components
- SOAP (Simple Object Access Protocol). Protocol specification that uses HTTP for an XML message transmission.
- WSDL (Web Services Description Language). Used to describe the functionality offered by a web service.
- XML (Extensible Markup Language). Markup language used for encoding documents. Used for input and output of web services.
- UDDI (Universal Description, Discovery and Integration). Using UDDI business can publish and discover what services are available.
Web services provide interfaces for communication. Software developers can use these and integrate them with their application. They do not provide any graphical user interface but they share business logic.
Let us consider the example of an Order Management System. This system integrates with e-commerce web site where customers place orders. The programming logic is written in Java and deployed on a Unix machine. Customers place the orders from a browser running on a windows machine.
Steps are as below:
- Customer opens the e-commerce web site
- Searches for a product and places an order
- Application bundles the order information into a SOAP message
- The message (Request) is sent to the order management system’s “createOrder” service
- Order gets created in the system
- Order number is sent back by the service as an output (Response)