SERVICE ORIENTED ARCHITECTURE APPROACH FOR WEB SERVICESPresentation Transcript
A SURVEY PAPER ON SERVICE ORIENTED ARCHITECTURE APPROACH FOR WEB SERVICES Diana Geangalau (email@example.com) Computer Science Department The University of Texas at Dallas Software Architectural Design Acknowledgement: The specific implementations of SOA principles into Web Services are taken from Java Web Services Architecture by James McGovern, Sameer Tyagi, Michael Stevens, and Sunil Mathew, published by Morgan Kaufmann Publishers. All rights reserved.
WEB SERVICES - DEFINITIONS
The term Web Services describes a standardized way of integrating Web-based applications.
“ Web Services is the technology that allows for 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.” - Webopedia
Web Services are primarily used as a means for businesses to communicate with each other and with clients.
Web Services are inherently distributed as opposed to the Client/server applications that are primarily data-centric in nature.
WEB SERVICES ARCHITECTURE
UDDI - Universal Description Discovery and Integration
Finds the Internet location of the requested web service.
The "yellow pages" of Web Services on Internet.
WSDL - Web Services Description Language
Web services provider advertises the provided services so that the client applications obtain information about a web service prior to accessing and using the web service.
SOAP - Simple Object Access Protocol
The channel used for communication between a web services provider application and a client application.
XML - Extended Markup Language
Is a meta language that has a well-defined syntax and semantics to provide the means to format the messages into XML documents.
HTTP – Hyper Text Transfer Protocol
Ensures that web services provider applications and client applications can communicate using the Internet as the backbone.
Web Service layers Transport (HTTP) Encoding (XML) Standard structure (SOAP) Description (WSDL) Discovery (UDDI)
USING WEB SERVICES
The client application queries the Web Services WDSL file in order to find out what the service can provide and how.
Then the client sends a request to the service at its given URL using the SOAP protocol over HTTP.
The service receives the request, processes it, and returns a response.
XML Client WDSL proxy WDSL WDSL WDSL WDSL Web Service WDSL stub 4 UDDI Server response request 1 HTTP +SOAP 2 3 1. Communication protocol 2. Message format 3. Description language 4. Discovery mechanism
STEPS TO CREATE A WEB SERVICE Define the services that will be provided Implement the functionality behind the services Deploy the service provider application Publish the Web services with a directory service Wait for processing client requests Service Provider Identify the services that will be required Locate the Web service by querying a directory service Send the request to the service Receive the response from the service Service Client
SERVICE ORIENTED ARCHITECTURE - DEFINITION
A Service-Oriented Architecture is essentially a collection of services that communicate with each other. The communication can involve either simple data passing or it could involve two or more services coordinating some activity.
The Service-Oriented Architecture for Web Services has:
a standard way for communication
a uniform data representation and exchange mechanism
a standard meta language to describe the services offered
a mechanism to register and locate web services-based applications
Service Provider Service Consumer service request service response
SERVICE ORIENTED ARCHITECTURE - ENTITIES
The service consumer is an application, service, or some other type of software module that requires a service.
The service provider is the service, the network-addressable entity that accepts and executes requests from consumers.
A service registry is a network-based directory that contains available services.
The contract specifies the way in which the service consumer and the service provider will interact. It specifies the format of the request and response from the service .
The service proxy is provided by the service provider to the service consumer. It enhances the service performance by caching at the service consumer site the remote references and data. Thus the subsequent service calls do not require additional registry calls.
The consumer of a service asks the registry for the service that matches its criteria. If the registry has such a service, it gives the consumer a contract and the endpoint address for the service. The consumer than accesses the service. Registry Service Provider Service Consumer Contract register find bind and execute
PRINCIPLES - MODULARITY
The modularity allows the services to be aggregated into an application with a few well-known dependencies.
The service application can be decomposed into many smaller modules in which each module is responsible for a single, distinct function within the application.
The software services are reusable so that they can be combined with other services to produce new systems.
The functions of a service can be understood by any client without having any knowledge of other services, thus any consumer is able to find and decide to use a service at any time.
A service hides the information about its internal design therefore any changes made internally will not create a domino effect to affect other services.
Faults in the operation of a service do not impact the operation of a client or other service or the state of their internal data, thus the faults do not cascade from the service to other services or consumers.
PRINCIPLES – LOOSE COUPLING
Coupling refers to the number of dependencies between modules. The loosely coupled modules have a few well-known dependencies.
The consumer of the service does not need detailed knowledge of the service before invoking it, thus the consumer and provider are loosely coupled.
SOA accomplishes loose coupling through the use of contracts and bindings.
A consumer asks a third-party registry for information about the type of service it wishes to use.
The registry returns all the services it has available that match the consumer's criteria.
The consumer chooses which service to use, binds to it, and executes the method on it, based on the description of the service provided by the registry.
The consumer does not depend directly on the service's implementation but only on the contract the service supports therefore a a service may be both a consumer and a provider of some services.
PRINCIPLES – ENCAPSULATION
All components in Web Services are services.
The type of behavior a service provides is important not how it is implemented.
A WDS (Well-Defined Service) document is the mechanism to describe the behavior encapsulated by a service: service category, service description, and expiration date, as well as business information about the service provider, such as company name, address, and contact information.
System complexity is reduced because the application designers do not have to worry about implementation details of the services they are invoking.
Substitution of different implementation of the same type of service, or multiple equivalent services, is possible at runtime.
The behavior of a service is encapsulated and extended by providing new services with similar service descriptions.
Web Services are the preferred standards-based way to realize Service Oriented Architecture.
The use of Service Oriented Architecture for Web Services offers potential for lower integration costs and greater flexibility.
Service Oriented Architecture separates the service interface (the what) from its implementation (the how).
Such services are consumed by clients that are not concerned with how these services will execute their requests.
Web services are the next step in the Web's evolution, since they promise the infrastructure and tools for automation of business-to-business relationships over the Internet.
Service-oriented architecture Perrey, R.; Lycett, M.; Applications and the Internet Workshops, 2003. Proceedings. 2003 Symposium on 27-31 Jan. 2003 Page(s):116 - 119
Modeling and design of service-oriented architecture Stojanovic, Z.; Dahanayake, A.; Sol, H.; Systems, Man and Cybernetics, 2004 IEEE International Conference on Volume 5, 10-13 Oct. 2004 Page(s):4147 - 4152 vol.5
Deployment of service oriented architecture for a business community Baglietto, P.; Maresca, M.; Parodi, A.; Zingirian, N.; Enterprise Distributed Object Computing Conference, 2002. EDOC '02. Proceedings. Sixth International 17-20 Sept. 2002 Page(s):293 - 304
A service management framework for service-oriented enterprises Ying Huang; Kumaran, S.; Chung, J.-Y.; e-Commerce Technology, 2004. CEC 2004. Proceedings. IEEE International Conference on 6-9 July 2004 Page(s):181 - 186
Extending the Web services model to it services Stern, A.; Davis, J.; Web Services, 2004. Proceedings. IEEE International Conference on 6-9 July 2004 Page(s):824 – 825
Web services oriented architecture for electronic commerce Huinan Xu; Engineering Management Conference, 2003. IEMC '03. Managing Technologically Driven Organizations: The Human Side of Innovation and Change 2-4 Nov. 2003 Page(s):479 - 483