There is an increasing demand for technologies that support the connecting or sharing of resources and data in a flexible and standardized manner. This demand has led to the development of Web services, a phenomenon that has become a household name. Almost every company is creating its own definition for the term. Nevertheless, all point out one thing; web services are not a reinvention of the wheel but an evolutionary technology. This paper is dedicated to the elaboration of this concept through exploration of key concepts related to Web services. These include the history of distributed programming, the definition of the term Web services, main technologies used in relation to Web services. Other concepts that will be discussed include the characteristics of Web services; types of Web services that exist; the explanation of software as service as well as the concepts of tight and loose coupling. Throughout the paper, the main technologies used in relation to Web services will be used. These include SOAP, WSDL, and UDDI.
A brief history of Web Services
The emergence of computer networks saw the birth of distributed computing. Initially, applications were divided into the client and server. This devolution minimized bottlenecks by distributing the workload across many systems. It also provided elasticity to application design initially unknown on centralized hosts. Nevertheless, this two-tier architecture had its demerits (Guruge, 2004 p. 12). One of the major limitations of the architecture was failover and scalability. Fortunately, this was remedied later by the introduction of a third tier. This distribution model has become popular for splitting applications. This is because it makes application systems scalable. This model was improved by introducing new software (Gustavo, 2004 p. 43).
The original middlewares were grounded on a technical programming model and were outdated by the introduction of the object-oriented programming model by middlewares like CORBA, DCOM, or RMI, which are modern-day’s popular middlewares. All these three middlewares have their advantages and limitations but the scope of this essay will be confined to their features and their relation to Web Services.
Definition of Web Services
From the outlook, Web services may be termed as applications that can be published, located, and invoked across the internet. Examples of Web Services include obtaining weather reports, making flight reservations, and getting stock price information among many others. Up to this point of the essay, there has not been any spelled out the distinction between a server and a Web service in a distributed application. The only distinction lies in the fundamental layers for performing the application logic and data manipulation. This is the reason why the traditional middlewares do not qualify to be Web Services. On the worldwide Web, there are various environments on both the server and the client-side hence there is no prior knowledge of the type of middleware each side of the connection requires. This, therefore, calls for a new approach to Web services (Newcomer et al., 2006 p. 17).
According to Webservices.org, “Web services are encapsulated, loosely coupled contracted functions offered through standard protocols”. This inclusive definition of Web services may seem jargoned and thus, it is necessary to simplify some of the keywords used. By encapsulated, this implies that implementation of the role is never visible from the outside while loosely coupled; this means that altering the implementation of one function does not need a change of the invoking function. Lastly, contracted implies that there are public descriptions of the functions.
The conventional client servers offered some functionality. This could be of use to the client. Between the server and the client, there was a certain service. Given that Web services are just another example for distributed applications, they entail the same three components. These components include a service broker, a service provider, and a service requester (Rayns et al., 2003 p. 4). As noted earlier, the traditional middlewares mentioned earlier used a kind of binary protocol for communication. However, Web services use XML in addition to HTTP. Normally, firewalls do not block the HTTP port; they do not make use of HTTP.
XML is a broadly accepted plan for sharing data and its relevant semantics. It is a basic ingredient for almost every layer used for Web Services. In total, all these layers make up the famous Web services stack comprising of XML (Extensible Markup Language), SOAP (Simple Object Access Protocol), WSDL (Web Services Definition Language), and UDDI (Universal Discovery Description Integration).
Technologies used in developing Web Services
Web services provide a layer of abstraction of above-established software systems like application servers discussed above. Web services function at a level of abstraction equivalent to the internet. They can link any operating system, hardware platform, or programming language just like the internet. Unlike the traditional distributed computing systems, Web services are adapted to the Web. The default network protocol is HTTP. Many traditional distributed computing technologies include the communications protocol. However, with Web services, the communications protocol is already there. The first technology to be discussed here linked with Web services is SOAP. Web Services operate in a diverse setup. This implies that the protocols used to do ant transfer of data should not rely on the runtime environment. This is where SOAP comes in handy as it offers the necessary characteristics (Gunzer, 2002 p. 7).
SOAP messages have the tag ENVELOPE. This is their basic part. The envelope has two elements namely an optional header and a body. The header may have a set of header entries. These provide information like verification of the data. Further, two header attributes exist to offer information about how a recipient of a SOAP message should process the message. To add on, namespaces for the envelope and the encoding style are identified within the SOAP specification.
The SOAP body has information for the last recipient. It also has four elements. These elements include parts, use, ecodingStyle, and namespace (NIST, 2007 p. 8). The ‘use’ element states if the message parts are encoded using the appropriate style. The third element of the SOAP body, encodingStyle, contains similar semantics lies in the SOAP specification. The last element, namespace, is used to avoid name clashing. Information is encapsulated in body entries. If the envelope has a header, the body ought not to be the first element within the envelope. The body entries may be namespace-qualified.
The specification identifies one body entry. The identified entry is used to do verify information status. It may appear once in a SOAP message. Encapsulating RPC is a crucial sphere where SOAP is utilized. The second technology concerning Web Services will be discussed here WSDL. This technology describes services used by an XML grammar. It offers information for distributed systems. It is aimed at enabling automated communications between applications. SOAP specifies the communication between a requester and a provider. On the other hand, the WSDL describes the services offered by the provider. As such, it may be used as a recipe to come up with the proper SOAP messages to get the services (Chaudhiri, 2003 p. 67).
A WSDL document is similar to an IDL file in CORBA in terms of function. It also has a Java RMI implementation equivalent. The basic element of any WSDL document has six elements grouped into two: abstract definitions and concrete definitions. Abstract definition elements include types, messages and portType while concrete definitions are bindings and services. The elements have references to each other. It is possible for every element in the document to have a documentation element. This offers an explanation that can be read by humans. It is worth noting that all elements have the name attribute, which specifies the name of the Web Service.
WSDL describes the operations a Web service can support, the parameter each operation accepts and returns values. It is via the service description that the service provider communicates all the specifications for invoking the Web service requester. A basic service description is usually divided into two parts. These include the service interface and the service implementation. The former is an abstract definition that can be instantiated and referenced by many service implementation definitions. After a WSDLL file is instantiated and published into a directory, say UDDI, the other SOAP clients can find the service and bind it.
The last technology related to Web Services and that will be discussed in this essay is the Universal Description, Discovery and Integration (UDDI). This technology permits information about businesses and services to be electronically published and queried. The published information is stored into a single or multiple UDDI entries. The entries are available through a Web browser or through SOAP messages. This is a standard made to offer a searchable directory of businesses and their Web Services. As such, it stands for the service broker that makes it possible for service requesters to find an appropriate service provider. The UDDI is similar to a phone book. Its major component is the business registration. This XML file describes a business entity and its Web Services. In order for developers to bind to Web Services, UDDI XML schema describes four major types of information. These are business entities, business services, binding templates and tModels (Francisco, 2003 p. 5).
The business entities data structure has information on the company that publishes the Web service. This information entails the name of the company, the services offered, and how to reach an individual from that company. Business services describe the specific service offered in business terms. On the other hand, binding templates describe how to access a service trough access points called URLs. The last type of information required to bind to Web Services is tModels. They are used to describe a technical requirement like sequencing rules.
Having discussed the three technologies linked to Web services, it is only fair now that focus in this essay shifts to how they are interrelating with the three basic components of Web Service. To begin with, the Web service provider describes the Web service in a WSDL document and publishes it to a UDDI registration using the Publisher’s API. The latter is based on SOAP technology. A SOAP request is sent to the service provider, and a response processed. The preceding discussions have majored on the standards or technologies that are related to Web Services (Gunzer, 2002 p. 7). The focus of this essay now shifts to the characteristics of a Web service.
Characteristics of Web Services
All Web services have a number of common characteristics. To begin with, they are self-contained. This implies that on the side of the client, there is no additional software needed. In this case, a programming language with XML and HTTP client support is adequate to get one started. On the side of the server, an HTTP server and a SOAP server are required. The second characteristic of Web services is that they are self describing. This means that using WSDL, all the information needed to implement a Web service as a provider, or rather to invoke a Web service as a requester is provided (Rayns et al., 2003 p. 6).
In addition, Web services are published, located, and invoked across the Web. This technology deploys existing inconsequential Internet standards like HTTP. They also make use of established infrastructure. Another characteristic of Web services is that they are modular. This implies that simple Web services can be made more sophisticated by use of workflow mechanisms or by calling lower-layer services from a Web service implementation. Web services can be joined to perform higher-level business roles, hence shortening development time and enhancing best-of-breed implementations. Another property of Web services is that they are language independent and interoperable. This means that the client and server can be implemented in different circumstances. Virtually, any language can be deployed to implement Web service clients and servers. In addition, Web services are inherently open and standard (Chaudhiri, 2003 p. 70). This is because XML and HTTP are the main technical pillars for Web services. A great portion of the Web Service technology has been developed using open-source projects. As such, vendor sovereignty and interoperability are goals that can be attained (Gustavo, 2004 p. 50).
Another characteristic of Web Services is that they are loosely coupled. Initially, application designs relied heavily on tight interconnections at the server and the client (Tight coupling). However, in modern times, Web services need a simpler level of coordination that permits a suppler reconfiguration for an integration of the concerned services. To add on, Web services have programmatic access. This approach does not require a graphical user interface because it works at the code level. Service consumers are required to know the interfaces to Web services, but do not have to know the implementation particulars of services. Lastly, Web Services wrap established applications. This implies that already existing independent applications can easily be incorporated into the Service-Oriented Approach (SOA) through the implementation of a Web service as an interface (Francisco, 2003 p. 7).
The discussion on the characteristics of Web Services point out to two important concepts. One of them is that Web Services are an evolving technology. This implies that they are not a reinvention of the wheel but rather build on already established technologies. Secondly, applications that rely on the Web Services paradigm can exchange data regardless of the language, platform or internal protocols. This is because as the characteristics of a Web service have spelt out, they are self-contained and language independent, as well as interoperable.
Types of Web services
Though the preceding paragraphs have indicated that Web Services share several common features, there exist different types of Web services. These depend on the company that has developed them, or the technology used to develop them. This essay will sample only a few from the many that exist. There are two types of Web Services developed by Microsoft Corporation. These include ASP.NET and.NET Framework. Both can permit cross-process communication. Nevertheless, each is designed to be beneficial to a different target audience. ASP.NET Web Services offer a simple programming model and a big audience. On the other hand,.NET Remoting offers a more sophisticated programming framework with a narrower audience (Gunzer, 2002 p. 12).
In conclusion, the Web services technology offers the gateway to a new business opportunity where a company can give value-added services to its customers through the composition of basic Web services. Nevertheless, the current Web services technology solves only a portion of the problem of developing Web services compositions. Building dependable Web Service compositions needs more than just addressing interoperability between client programs and Web services. Besides this, there is a need for compositions that describe the unlike transaction support of Web services, resolving the semantic and content heterogeneity of semantically equivalent Web services, specifying the transaction interaction patterns among Web Services and coordinating such services.
Chaudhiri, AB, 2OO3, Web, Web-services, and database systems, Springer-Verlag: Berlin.
Francisco, C, ‘Web Services overview’, Web.
Gunzer, H, ‘Introduction to Web Services’, Web.
Guruge, A, 2004, Web services: theory and practice, Elsevier: Oxford.
Gustavo, A, et al., 2004, Web Services: concepts, architectures and applications, Springer-Verlag: Berlin.
National Institute of Standards and Technology (NIST), U.S. Department of Commerce, “Guide to Secure Web Services”, Web.
Newcomer, E, 2006, Understanding Web Services: XML, WSDL, SOAP and UDDI, Addison-Wesley Professional: Boston.
Rayns, C, et al, ‘Application development for CICS Web Services’, Web.