680 likes | 847 Views
SOA Part1 Lecture 2. Dr. Withalm 29-Oct-14. Lectures at the University of Bratislava/Autumn 2009. 28.09.2009 Lecture 1 Evolution Of Architectures- The long Way from OO to SOA 05.10.2009 Lecture 2 WEB-Services& Semantic WEB 12.10.2009 Lecture 3 SOA-Technological Basis
E N D
SOA Part1 Lecture 2 Dr. Withalm 29-Oct-14
Lectures at the University of Bratislava/Autumn 2009 28.09.2009 Lecture 1 Evolution Of Architectures- The long Way from OO to SOA 05.10.2009 Lecture 2 WEB-Services& Semantic WEB 12.10.2009 Lecture 3 SOA-Technological Basis 19.10.2009 Lecture 4 SOA-Basing on J2EE 23.11.2009 Lecture 5 SOA-Focus on Business Processes 30.11.2009 Lecture 6 B2B Frameworks and related Standards 07.12.2009 Lecture 7 WEB 2.0 & GRID Dr.Withalm
Today’s Agenda • WEB Services • Example • Standards • Semantic WEB • Example • Ontology • Connection to WS Dr.Withalm
Summary of last lecture • Progress in Architecture are primarily enabled by technology • i.e. distributed computing by PC & Ethernet • Distributed computing encouraged Middle ware • i.e. RPC, CORBA, DCOM-which work efficient in EAI-projects • Middle ware is kept enclosed within companies mainly because of “closed” ports • i.e. most serious obstacle when deploying CORBA applications in IAI projects • EJB tried to combine strenghts of ORB and TP • Overcoming the performance issue which requested huge programming efforts in CORBA applications • EJB made a first “implicit” step towards services • i.e. Session Beans-whenever their focus was mainly IT-focused and not business oriented. Dr.Withalm
Web-ServicesExample/1 • A car rental company has a database that indicates • What kind of cars are available at each location along with the published rental rate • Compact, full-size, luxury, etc. • There is an application function that • When provided with the location and class of car • Returns availability and price. Dr.Withalm
Web-ServicesExample/2 • Originally, this function would have been contained wholly • Within a booking application • Used by the company‘s agents to respond • To telephone requests from customers and travel agents. Dr.Withalm
Web-ServicesExample/3 Dr.Withalm
Web-ServicesExample/4 • The company soon learned, however, that other parts of the organization needed access to this same function. • Since auto rentals are highly competitive in same location • For example: marketing requests direct access to the availability and price function. • So they can quickly respond to competitors moves. • IT is asked to integrate the marketing application with the booking application. Dr.Withalm
Web-ServicesExample/5 • For IT, integrating functions across internal applications is commonplace. • Several client/server technologies evolve to help achieve the architecture. Dr.Withalm
Web-ServicesExample/6 • Then came the Web • Now IT was asked to make the availability and price function available to users over the Internet. • Fortunately, Internet standards emerged to make this possible • The browser is a standard client. • HTTP is a standard communication protocol for the Internet. • HTML provides data functionality that can be interpreted and displayed by browsers. • CGI- and later application servers-provide a way for developers to interface to the application function. Dr.Withalm
Web-ServicesExample/7 • Most of the Web development effort of the late nineties was directed toward making an enterprise‘s application functions • Available directly to customers over the Internet. • But this is not a Web service since it is accessed by a browser user, not a client application. Dr.Withalm
Web-ServicesExample/8 • The next step for the rental car company is to make the availability and price function-and even the booking function • Available not only to browser users • But to the booking applications of other companies • Travel agents cannot browse the Web sites of all potential car rental companies • Looking for the best price. • They need an automated way to access the information and to place a booking. • Web-based travel services need to do this programmatically in response to requests from browser users. Dr.Withalm
Web-ServicesExample/9 • Once the Web services have been developed • The rental car company can announce the availability of the service • Publish their interface specifications • In a directory accessible to everyone in the Web. • This allows potential partners to discover the availability of the rental car Web services. • And provide partners with the information required. • To access the Web services from a client application. Dr.Withalm
Web-ServicesExample/10 • Adding the Web services to an enterprise Web application environment can result in the following architecture • These application functions provide data and services • To both browser users and client applications. Dr.Withalm
Web-ServicesExample/11 Dr.Withalm
Web-ServicesExample/12 • These are the needs driving the development of Web services • Application functions that can be accessed by other applications using Internet technology. • The key elements of this definitions are: • Access to the service is available to applications, not browsers • The standard technologies that enable this access are developed specifically for operations over the Internet. Dr.Withalm
Web-ServicesExample/13 • In some respects Web services are just an updated, Internet enabled way of doing something application developers have always been able to do. • In other ways Web services promise to change the way business is done • And even to enable new kinds of business • Application integration has been around a long time • And there exist mature technologies that can do this. Dr.Withalm
Web-ServicesExample/14 • CORBA, COM, DCOM and later J2EE provide facilities • To create application functions with defined and accessible interfaces • And to enable the development of clients • That can access them-even over the Internet. Dr.Withalm
Web-ServicesExample/15 • There are two fundamental advantages by Web services over earlier application integration approaches. • The underlying technology is designed from the ground up to operate over the Web and , in fact, leverages the existing standards that have made the Web successful. • Web services, and the technologies that are used to build them, take openness to a new level. Dr.Withalm
Web-ServicesExample/16 • While earlier approaches made it possible to provide an internal or external partner with the interface definition of an application function • So they could build a compatible client • Web services include the concept of an universal directory • To publish the availability of the service to the entire Internet • And to make it possible for a subscriber to create a client application • That can easily, even dynamically, access the service. • Further, since the standards are widely implemented on most platforms • There is a degree of platform independence (HW, OS, and middleware) not previously available. Dr.Withalm
Web-ServicesExample/17 • In theory, a client can even be made smart enough • To read and interpret the interface specification • And dynamically access the Web service • Web service promise a world in which applications can search the Web for services they need • And access these services in much the same way that browser users use search engines to locate and access Web sites. Dr.Withalm
Web-ServicesExample/18 • That is the vision • The reality is that technology is new • The standards are still evolving • And the Web services being developed tend to be • Simple solutions for simple problems • Most of them are internal integration efforts. • What also is required is • Semantic Web Dr.Withalm
Core Web-Services Standards Dr.Withalm
Other Web Service Standards/1 Business Domain Business Domain Specific Extensions Various Management Distributed Management WSDM, WS-Manageability Provisioning WS-Provisioning Security Security WS-Security Security Policy WS-SecurityPolicy Secure Conversation WS-SecureConversation Trusted Message WS-Trust Federated Identity WS-Federation Portal and Presentation Portal and Presentation WSRP Dr.Withalm
Other Web Service Standards /2 Transactions and Business Process Asynchroneous Services ASAP Transaction WS-Transaction, WS-Coordination Orchestration BPEL4WS, WS-CDL Messaging Events and Notification WS-Eventing, WS-Notification Multiple Message Sessions WS-Enumeration, WS-Transfer Routing / Addressing WS-Addressing, WS-MessageDelivery Reliable Messaging WS-ReliableMessaging, WS-Reliability Message Packaging SOAP, MTOM Metadata Publication and Discovery UDDI, WSIL Policy WS-Policy, WS-PolicyAssertions Service Message Description WSDL Metada Retrieval WS-MetadataExchange Dr.Withalm
Web Services • A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It 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 messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards. Dr.Withalm
Portlets/1 • In contrast with Web-Services • which are computer-to-computer services • Presentation Oriented Services provide a user interface • that allows an end-user to interact directly with the service. • Two main standards exist • the JSR (Java Specification Request) 168 Specification • and the WSRP (Web Service for Remote Portlets) Specification. Dr.Withalm
Portlets/23WSRP Specification/1 • is a production of OASIS. • Since all of the major players in the portal market are represented on OASIS' WSRP Technical Committee, • the technology should continue to enjoy broad acceptance in the industry. • The OASIS WSRP specification defines a common, well-defined interface • for communicating with pluggable, presentation-oriented Web services. • These services process user interactions and provide mark-up fragments for aggregation by portals. Dr.Withalm
Web Service Standards • OASIS and the W3C are the steering committees responsible for the architecture and standardization of web services. To improve interoperability between web service implementations, the WS-I organization has been developing a series of profiles to further define the standards involved. Dr.Withalm
Web Service Base Standards/1 • Simple Object Access Protocol (SOAP) - defines the runtime message that contains the service request and response. SOAP is independent of any particular transport and implementation technology. • Web Services Description Language (WSDL) - describes a Web Service and the SOAP Message. It provides a programmatic way to describe what a service does, paving the way for automation. • Universal Discovery, Description, Integration (UDDI) - UDDI is a cross industry initiative to create a standard for service discovery together with a registry facility that facilitates the publishing and discovery processes. Dr.Withalm
Web Service Base Standards/2 Dr.Withalm
Web Service Base Standards/3 Service Registrar Find (UDDI) Publish (UDDI) Define (WSDL) Service Consumer Use (SOAP) Service Provider Dr.Withalm
Universal Discovery, Description, Integration(UDDI) • UDDI is a platform-independent, XML-based registry for businesses worldwide to list themselves on the Internet. UDDI is an open industry initiative (sponsored by OASIS) enabling businesses to discover each other and define how they interact over the Internet. • A UDDI business registration consists of three components: • White Pages - address, contact, and known identifiers; • Yellow Pages - industrial categorizations based on standard taxonomies; and • Green Pages - technical information about services exposed by the business Dr.Withalm
Simple Object Access Protocol (SOAP) • SOAP originally was an acronym for Simple Object Access Protocol, but the acronym was dropped in Version 1.2 of the SOAP specification. Originally designed by Dave Winer, Don Box, Bob Atkinson, and Mohsen Al-Ghosein in 1998 with backing from Microsoft (where Atkinson and Al-Ghosein worked at the time), the SOAP specification is currently maintained by the XML Protocol Working Group of the World Wide Web Consortium. Dr.Withalm
SOAP (W3C) • SOAP is fundamentally a stateless, one-way message exchange paradigm, but applications can create more complex interaction patterns (e.g., request/response, request/multiple responses, etc.) by combining such one-way exchanges with features provided by an underlying protocol and/or application-specific information. • SOAP provides the framework by which application-specific information may be conveyed in an extensible manner. Also, SOAP provides a full description of the required actions taken by a SOAP node on receiving a SOAP message. Dr.Withalm
Web Services Description Language(WSDL) • WSDL is an XML format published for describing Web services. • WSDL describes the public interface to the web service. This is an XML-based service description on how to communicate using the web service; namely the protocol bindings and message formats required to interact with the web services listed in its directory. The supported operations and messages are described abstractly, and then bound to a concrete network protocol and message format. • WSDL is often used in combination with SOAP and XML Schema to provide web services over the internet. A client (program) connecting to a web service can read the WSDL to determine what functions are available on the server. Any special datatypes used are embedded in the WSDL file in the form of XML Schema. • Basic Idea is coming from IDL/CORBA Dr.Withalm
WSDL Elements/1 Element Name Description types a container for abstract type definitions defined using XML Schema message A definition of an abstract message that may consist of multiple parts, each part may be of a different type portType An abstract set of operations supported by one or more endpoints (commonly known as an interface); operations are defined by an exchange of messages binding A concrete protocol and data format specification for a particular portType service A collection of related endpoints, where an endpoint is defined as a combination of a binding and an address (URI) Dr.Withalm
WSDL - Binding • A service can support multiple bindings for a given interface, but each binding should be accessible at a unique address identified by a URI, also referred to as a Web service endpoint . • Usually this information from the WSDL is used to implement late binding. Messages Tcp Smtp Http URI URI URI Service Interface Interface operationoperationoperation operationoperationoperation Dr.Withalm
Semantic Web • Semantics: Meaning of a word, a sentence or a text • The existing web consists of data, • which is readable for machines • which should – in the future – be made understandable and interpretable for machines Dr.Withalm
Motivation for Semantic WEB/1 • Task: Find and buy specific audio CD on the web • At present: • "clicking" from one web-shop to the next • performing the same search on each site • comparing the prices • A SW-agent is currently unable to find CD-retailers on the web • If it has a list of retailers, there is another problem: • How shall it search the site for relevant offers? Dr.Withalm
Motivation for Semantic WEB/2 • Problems of the search request: • Over HTTP and URL, but how exactly? • Is there a search-function implemented in the site? • If yes, with which URI should the request be placed? • What are the parameter names? • HTTP-transmission over GET- or POST-method? Dr.Withalm
Motivation for Semantic WEB/3 • Problems with the received answer: • Humans see the web-page as more or less beautifully designed • It contains the price of the CD, but where? • The SW-agent is unable to find it out • If it would be programmed to find it in line 3, column 5? • What happens if the layout is changed? Dr.Withalm
Solutions/1 • Parts of the HTML-code could be made interpretable for the agent with the help of XML • If tags like <price> ... </price> were added to the HTML elements, the agent could recognize the requested data • W3C recommends the XML-schemata for establishing the required vocabulary Dr.Withalm
Solutions/2 • Another problem arises if the simple example is translated into another language, resulting in tags like <preis>....</preis> (German) or <prix>....</prix> (French) • in this case, another element-type name is used to express the same term Dr.Withalm
Solutions/3 • But do they really have the same meaning? • Do <price>20</price> and <preis>20</preis> have exactly the same significance? • Obviously the currency is not defined! • Does the price include taxes? (USA!) • Fluctuations of exchange rates: • Are 20 US$ at the time when the product is ordered the same as when the invoice is issued? Dr.Withalm
Solutions/4 • price and preis are closely related • In the W3C scenario, the nature of this relationship is explained by: • RDF (Resource Description Framework) is the basis for expressing information about all things that can be addressed by a URI Basis • OWL (Ontology Web Language) provides a notation for ontology • An ontology is the description of terms and their interrelations within a domain (a context-sensitive vocabulary) Dr.Withalm
Semantic Web Example/1 Listing 1: Wine Ontolgy <owl: Class rdf: ID=“Wine”/> <owl: Class rdf: ID=“RedWine”> <rdf:subClassOf rdf:resource=“#Wine”/> </owl> <owl: Class rdf: ID=“Chianti”> <rdf:subClassOf rdf:resource=“#RedWine”/> </owl> Dr.Withalm
Semantic Web Example/2 • This is a section of an ontology that classifies wines • If it is predefined, the SW-agent’s job becomes easier... • ...e.g. if it is given the task of finding offers from wine merchants for: • red wine • vintage 1995 Dr.Withalm
Semantic Web Example/3 Listing 2: Merchant Data <Wine Merchant> <Merchant> <Phone href=“tel:+49401234”>040 / 1234</Phone> <Office Hours>Mo – Fr 10am -4pm/Office Hours> </Merchant> <Store> <Italy> <Chianti> <Wine Growing Estate>......< Wine Growing Estate /> <Year>2007</Year> <Price per Bottle>20< Price per Bottle/> <Availability> 25 Boxes <Availability/> <Chianti/> <Italy/> <France> ................... <France/> ................... <Store/> <Wine Merchant/> Dr.Withalm
Semantic Web Example/4 • This document contains neither the term "red wine" or "vintage" • but with its ontology knowledge, the agent conceives that Chianti is a red wine • if the ontology defines that in the wine-domain "year" and "vintage" have the same meaning, the problem is solved • Furthermore, the data type is defined: • Type integer according to the XML-scheme Dr.Withalm