In this short and fast track Services based overview , you will get a quick and effective service oriented architecture basis and its components. We are going to talk about the services in general and specific to the Service Oriented Architecture (SOA), Web services ,Web Services Stack and the SOAP based web services. 

Service Oriented Architecture (SOA)

There exists a lot of definitions for the Service oriented architecture (SOA). It can be referred as an architectural pattern in Software Design in which components in the application provide service to other components by using some communication protocol. The services can reside on the single machine or across the network. The cohesively provide the intended functions in the form of complete software application.

Service:

Service-oriented architectures are based on the careful aggregation of portable and reusable software programs called “services” that can be accessed by local/remote clients over the network in a platform and language independent manner.

 A service is a software program that is a self-contained entity. Its exposed functionalities

are accessible through a well-defined protocol and using a well-defined platform. It has  programming language independent interface that does not depend on the context or  the state of other services.

Web Services

In the year 2000, a group of companies including  Microsoft, IBMBEA Systems, and Intel defined a new set of XML (eXtensive Markup Language) standards for programming Business-to-Business (B2B) applications called Web services . Web Services are currently being standardized under the umbrella of the World Wide Web Consortium (W3C) .

Web services are distributed application components. Web services allow developers an openness and facility to have application programs to get integerated in a seamless manner while being developed in different programming languages and different operating system platforms.

The main motivation behind the Web services is to solve existing problems and barriers between traditional Enterprise Java Beans (EJB) businesses collaborating in electronic transactions like :-

  • Incompatible data formats,
  • Security Issues,
  • Web Access, and
  • Semantic Information.

Web services are a technology for deployment and access of business functions over the Web that compliments existing standards like J2EECORBA, DCOM, RMI, or Jini, which are technologies for implementing Web services.

“A Web service is an interface that describes a collection of
operations of a service that are network accessible through
standardizedXML messaging”

There are two Main categories of Web Services 

  • SOAP – based Services
  • REST – based Services

Web Services Stack

There are three (03) important layers in web service stack , HTTP ,SOAP and WSDL.

  • HTTP:

The Hyper Text Transfer Protocol (HTTP) is a protocol that is the current defacto standard for Web communication over the TCP/IP protocol. Additionally, HTTP can operate on top of the Transport Layer Security (TLS) (or its Secure Socket Layer (SSL) predecessor) to provide secure communication using authentication and encryption mechanisms provided by the Public Key Infrastructure (PKI).

  • SOAP

The Simple Object Access Protocol (SOAP) is the XML-based message passing standard for communication between remote Web services using both message passing and request/response communication models on top of HTTP. SOAP is open to additional underlying network protocol bindings beyond HTTP, such as File Transfer Protocol (FTP), Simple Mail Transfer Protocol (SMTP), Message Queuing (MQ) Protocol, Java Remote Method Protocol (JRMP), or CORBA Internet Inter-ORB Protocol (IIOP). However, in contrast to the popular belief, Web services do not mandate the use of SOAP for Web services communication.

Service Oriented Architecture

  • WSDL

The Web Service Description Language (WSDL) is the XML standard for the specification of Web services interfaces, analogous to the CORBA Interface Definition Language. A WSDL document is commonly divided into two distinct parts :

a) service interface

It is the abstract and reusable part of a service definition, analogous to an abstract interface in a programming language, that can be instantiated and referenced by multiple service implementations. A service interface consists of the following XML elements:

i. wsdl:types contains the definition of complex XML schema data types which are used by the service interface;

ii. wsdl:message defines the data transmitted as a collection of logical
parts (wsdl:parts – e.g. input arguments, return argument and exception messages), each of which being associated with a different type.

iii. wsdl:operation is a named endpoint that consumes an input message and returns an output message and a fault message (corresponds to a Java class method);

iv. wsdl:portType defines a set of abstract operations (corresponds
to a Java interface definition);

v. wsdl:binding describes the protocol and the data format for the
operations of a portType;

b) service instance

It is part of a WSDL document describes an instantiation of a Web service. A Web service instance is modeled as a wsdl:service, which contains a collection of wsdl:port elements (i.e. usually one). A port associates one network endpoint (e.g. URL) with a wsdl:binding element from a service interface definition. A common practice is to define the service interface in a separate abstract interface WSDL document which is further included into the instance WSDL document through an import element;

c) Universal Description, Discovery and Integration (UDDI)

It is a specification for distributed Web-based information registries of business Web services. The WSDL interface and the URL address of persistent Web services are typically published in a centralized UDDI Service Repository for remote discovery and access. The UDDI best practices document requires that the interface part of the WSDL document be published as a UDDI tModel and the instance part as a business Service element (i.e. as URLs). The business Service UDDI element is a descriptive container used to group related Web services. It contains one or more binding Template elements which contain information for connecting and invoking aWeb service. The binding Template contains a pointer to a tModel element which describes the Web service meta-data. An access Point element is instantiated with the SOAP address of the service port;

d)The Web Services Security (WS-Security) 

It is specification describes enhancements to the SOAP messaging that provide quality of protection through message integrity (through XML digital signature), message confidentiality (through XML encryption), and single message authentication.These mechanisms can be used to accommodate a wide variety of security models and encryption technologies, including PKI . We can observe  that security can be applied at two different layers in the Web services stack:

a) network layer over the TLS protocol;
b) message layer based on WS-Security for signing and encrypting
XML-based SOAP messages.
Security at the message layer is more powerful than the security at the
network layer, since the data encryption happens at a higher level of  abstraction (i.e. it is easier to read a credit card number from an ASCII SOAP message than from a network packet). A higher degree of security can be achieved through authentication and data encryption at both network and message layers, however, at accumulated security overhead costs.