Web Services

CIS007-3 – Comparative Integrated Systems

CIS007-3_Web Services Overview-Ver3 – March 2016

CIS007-3_More About Web Services – SOAP and Restful – March 2016


Web Service
(https://en.wikipedia.org/wiki/Web_service)

A Web service is a service offered by an electronic device to another electronic device, communicating with each other via the World wide web. In a web service, web technology such as the HTTP, originally designed for human-to-machine communication, is utilized for machine-to-machine communication, more specifically for transferring machine readable file formats such as XML and JSON. In practice, the web service typically provides an object-oriented web based interface to a database server, utilized for example by another web server, or by a mobile application, that provides a user interface to the end user. Another common application offered to the end user may be a mashup, where a web server consumes several web services at different machines, and compiles the content into one user interface.

The W3C defines a Web service generally as:
a software system designed to support interoperable machine-to-machine interaction over a network.

Web services use SOAP over HTTP protocol, so you can use your existing low-cost internet for implementing web services. This solution is much less costly compared to proprietary solutions like EDI/B2B. Besides SOAP over HTTP, web services can also be implemented on other reliable transport mechanisms like FTP. In a 2002 document, the W3C Web Services Architecture Working Group defined a Web Services Architecture, requiring a standardized implementation of a “Web service.” In this:
[a Web service] has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP (Simple Object Access Protocol) messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards.

In a 2004 document, the W3C extended the definition:
We can identify two major classes of Web services:

  • REST-compliant Web services, in which the primary purpose of the service is to manipulate representations of Web resources using a uniform set of stateless operations.
  • Arbitrary Web services, in which the service may expose an arbitrary set of operations.

tutorialspointWhat are Web Services?
(http://www.tutorialspoint.com/webservices/what_are_web_services.htm)

Different books and different organizations provide different definitions to Web Services. Some of them are listed here.

  • A web service is any piece of software that makes itself available over the internet and uses a standardized XML messaging system. XML is used to encode all communications to a web service. For example, a client invokes a web service by sending an XML message, then waits for a corresponding XML response. As all communication is in XML, web services are not tied to any one operating system or programming language–Java can talk with Perl; Windows applications can talk with Unix applications.
  • Web services are self-contained, modular, distributed, dynamic applications that can be described, published, located, or invoked over the network to create products, processes, and supply chains. These applications can be local, distributed, or web-based. Web services are built on top of open standards such as TCP/IP, HTTP, Java, HTML, and XML.
  • Web services are XML-based information exchange systems that use the Internet for direct application-to-application interaction. These systems can include programs, objects, messages, or documents.
  • A web service is a collection of open protocols and standards used for exchanging data between applications or systems. Software applications written in various programming languages and running on various platforms can use web services to exchange data over computer networks like the Internet in a manner similar to inter-process communication on a single computer. This interoperability (ie. between Java and Python, or Windows and Linux applications) is due to the use of open standards.

To summarize, a complete web service is, therefore, any service that:

  • Is available over the Internet or private (intranet) networks
  • Uses a standardized XML messaging system
  • Is not tied to any one operating system or programming language
  • Is self-describing via a common XML grammar
  • Is discoverable via a simple find mechanism

Web Services
(http://www.webopedia.com/TERM/W/Web_Services.html)

The term Web services describes a standardized way of integrating Web-based applications using the XML, SOAP, WSDL and UDDI open standards over an Internet protocol backbone. XML is used to tag the data, SOAP is used to transfer the data, WSDL is used for describing the services available and UDDI is used for listing what services are available. Used primarily as a means for businesses to communicate with each other and with clients, Web services allow organizations to communicate data without intimate knowledge of each other’s IT systems behind the firewall.

Unlike traditional client/server models, such as a Web server/Web page system, Web services do not provide the user with a GUI. Web services instead share business logic, data and processes through a programmatic interface across a network. The applications interface, not the users. Developers can then add the Web service to a GUI (such as a Web page or an executable program) to offer specific functionality to users.

Web services allow different applications from different sources to communicate with each other without time-consuming custom coding, and because all communication is in XML, Web services are not tied to any one operating system or programming language. For example, Java can talk with Perl, Windows applications can talk with UNIX applications.


Web Services ActivityTechnology & Society DomainW3CWeb Services Activity
(https://www.w3.org/2002/ws/)

The World Wide Web is more and more used for application to application communication. The programmatic interfaces made available are referred to as Web services.

The goal of the Web Services Activity is to develop a set of technologies in order to lead Web services to their full potential. The Web Services Activity Statement explains the W3C’s work on this topic in more detail.

Web Services Activity Statement
Web services provide a standard means of interoperating between different software applications, running on a variety of platforms and/or frameworks. Web services are characterized by their great interoperability and extensibility, as well as their machine-processable descriptions thanks to the use of XML. They can be combined in a loosely coupled way in order to achieve complex operations. Programs providing simple services can interact with each other in order to deliver sophisticated added-value services.
The W3C Web Services Activity is designing the infrastructure, defining the architecture and creating the core technologies for Web services. The SOAP 1.2 XML-based messaging framework became a W3C Recommendation in June 2003 and the SOAP Message Transmission Optimization Mechanism (MTOM) in January 2005.


Amazon Web Services offers reliable, scalable, and inexpensive cloud computing services. Free to join, pay only for what you use.

Cloud Solutions
Amazon Web Services (AWS) provides trusted, cloud-based solutions to help you meet your business needs. Running your solutions in the AWS Cloud can help you get your applications up and running faster while providing the same level of security that organizations like Pfizer, Intuit, and the US Navy rely on. AWS also provides resources around the world, so you can deploy your solutions where your customers are. The AWS Cloud makes a broad set of services, partners, and support options easily available to help make sure that you can focus on what will make your solution a success. Click on any option to learn more about the benefits of that solution, see customer case studies, and find technical documentation, to help you get started today.


ms950421.web_services(en-us,MSDN.10).gifWeb Services
(https://msdn.microsoft.com/en-us/library/ms950421.aspx)

Web services extend the World Wide Web infrastructure to provide the means for software to connect to other software applications. Applications access Web services via ubiquitous Web protocols and data formats such as HTTP, XML, and SOAP, with no need to worry about how each Web service is implemented. Web services combine the best aspects of component-based development and the Web, and are a cornerstone of the Microsoft .NET programming model.

Web Services Specifications Index Page
(https://msdn.microsoft.com/en-us/library/ms951274.aspx)

Web services specifications compose together to provide interoperable protocols for Security, Reliable Messaging, and Transactions in loosely coupled systems. The specifications build on top of the core XML and SOAP standards.


Web Services Tutorial: What You Need to Know | Lynda.com

(Available at: https://www.youtube.com/watch?v=v4qczjiO6_I)


Web Services Tutorial: What is a Web Service? | Lynda.com

(Available at: https://www.youtube.com/watch?v=u80uPzhFYvc)


Web Services Tutorial: Understanding SOAP Data Types | Lynda.com

(Available at: https://www.youtube.com/watch?v=PWE-AziQVz4)


Web Services Tutorial: Associating REST actions with HTTP Request Methods | Lynda.com

(Available at: https://www.youtube.com/watch?v=IhKteKvOr7k)


RESTful Web Services: A Tutorial
(http://www.drdobbs.com/web-development/restful-web-services-a-tutorial/240169069)

More than a decade after its introduction, REST has become one of the most important technologies for Web applications. Its importance is likely to continue growing quickly as all technologies move towards an API orientation. Every major development language now includes frameworks for building RESTful Web services. As such, it is important for Web developers and architects to have a clear understanding of REST and RESTful services. This tutorial explains REST architecturally, then dives into the details of using it for common API-based tasks.While REST stands for Representational State Transfer, which is an architectural style for networked hypermedia applications, it is primarily used to build Web services that are lightweight, maintainable, and scalable. A service based on REST is called a RESTful service. REST is not dependent on any protocol, but almost every RESTful service uses HTTP as its underlying protocol. In this article, I examine the creation of RESTful services with HTTP.