soa bratislava soa part1 lecture 2 dr. withalm 16-oct-15
TRANSCRIPT
04/20/23 Dr.Withalm2 SOA Bratislava
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
04/20/23 Dr.Withalm3 SOA Bratislava
Today’s Agenda
WEB Services
Example
Standards
Semantic WEB
Example
Ontology
Connection to WS
04/20/23 Dr.Withalm4 SOA Bratislava
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.
04/20/23 Dr.Withalm5 SOA Bratislava
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.
04/20/23 Dr.Withalm6 SOA Bratislava
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.
04/20/23 Dr.Withalm8 SOA Bratislava
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.
04/20/23 Dr.Withalm9 SOA Bratislava
Web-ServicesExample/5
For IT, integrating functions across internal applications is commonplace.
Several client/server technologies evolve to help achieve the architecture.
04/20/23 Dr.Withalm10 SOA Bratislava
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.
04/20/23 Dr.Withalm11 SOA Bratislava
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.
04/20/23 Dr.Withalm12 SOA Bratislava
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.
04/20/23 Dr.Withalm13 SOA Bratislava
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.
04/20/23 Dr.Withalm14 SOA Bratislava
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.
04/20/23 Dr.Withalm16 SOA Bratislava
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.
04/20/23 Dr.Withalm17 SOA Bratislava
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.
04/20/23 Dr.Withalm18 SOA Bratislava
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.
04/20/23 Dr.Withalm19 SOA Bratislava
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.
04/20/23 Dr.Withalm20 SOA Bratislava
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.
04/20/23 Dr.Withalm21 SOA Bratislava
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.
04/20/23 Dr.Withalm22 SOA Bratislava
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
04/20/23 Dr.Withalm24 SOA Bratislava
Management
Other Web Service Standards/1
Business DomainBusiness Domain Specific Extensions Various
Distributed Management WSDM, WS-ManageabilityProvisioning WS-Provisioning
SecuritySecurity WS-Security
Security Policy WS-SecurityPolicySecure Conversation WS-SecureConversation
Trusted Message WS-Trust
Federated Identity WS-Federation
Portal andPresentation
Portal and Presentation WSRP
04/20/23 Dr.Withalm25 SOA Bratislava
Other Web Service Standards /2
Transactionsand Business
Process
Asynchroneous Services ASAP
Transaction WS-Transaction, WS-Coordination
Orchestration BPEL4WS, WS-CDL
MessagingEvents and Notification WS-Eventing, WS-Notification
Multiple Message Sessions WS-Enumeration, WS-Transfer
Routing / Addressing WS-Addressing, WS-MessageDeliveryReliable Messaging WS-ReliableMessaging, WS-ReliabilityMessage Packaging SOAP, MTOM
MetadataPublication and Discovery UDDI, WSIL
Policy WS-Policy, WS-PolicyAssertions
Service Message Description WSDL
Metada Retrieval WS-MetadataExchange
04/20/23 Dr.Withalm26 SOA Bratislava
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.
04/20/23 Dr.Withalm27 SOA Bratislava
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.
04/20/23 Dr.Withalm28 SOA Bratislava
Portlets/23 WSRP 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.
04/20/23 Dr.Withalm29 SOA Bratislava
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.
04/20/23 Dr.Withalm30 SOA Bratislava
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.
04/20/23 Dr.Withalm32 SOA Bratislava
Web Service Base Standards/3
ServiceConsumer
ServiceProvider
ServiceRegistrar
Find
(UDDI)
Publish (UD
DI)
Use (SOAP)
Define (WSDL)
04/20/23 Dr.Withalm33 SOA Bratislava
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
04/20/23 Dr.Withalm34 SOA Bratislava
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.
04/20/23 Dr.Withalm35 SOA Bratislava
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.
04/20/23 Dr.Withalm36 SOA Bratislava
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
04/20/23 Dr.Withalm37 SOA Bratislava
WSDL Elements/1
Description
a container for abstract type definitions defined using XML Schema
Element Name
types
A definition of an abstract message that may consist of multiple parts, each part may be of a different type
message
An abstract set of operations supported by one or more endpoints (commonly known as an interface); operations are defined by an exchange of messages
portType
A concrete protocol and data format specification for a particular portType binding
A collection of related endpoints, where an endpoint is defined as a combination of a binding and an address (URI)
service
04/20/23 Dr.Withalm38 SOA Bratislava
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.
Service
Interface
URI URI URI
operationoperationoperation
Interfaceoperationoperationoperation
Messages
Tcp Smtp Http
04/20/23 Dr.Withalm39 SOA Bratislava
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
04/20/23 Dr.Withalm40 SOA Bratislava
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?
04/20/23 Dr.Withalm41 SOA Bratislava
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?
04/20/23 Dr.Withalm42 SOA Bratislava
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?
04/20/23 Dr.Withalm43 SOA Bratislava
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
04/20/23 Dr.Withalm44 SOA Bratislava
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
04/20/23 Dr.Withalm45 SOA Bratislava
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?
04/20/23 Dr.Withalm46 SOA Bratislava
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)
04/20/23 Dr.Withalm47 SOA Bratislava
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>
04/20/23 Dr.Withalm48 SOA Bratislava
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
04/20/23 Dr.Withalm49 SOA Bratislava
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/>
04/20/23 Dr.Withalm50 SOA Bratislava
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
04/20/23 Dr.Withalm51 SOA Bratislava
Semantic Web Example/5
Listing 3: Same Meaning
<owl:DatatypeProperty rdf:ID=“Vintage”> <owl:equivalentProperty rdf:resource=“#Year”/> <rdf:domain rdf:resource=“#Wine”/> <rdf:range rdf:resource=&xsd,#integer”/></owl:DatatypeProperty>
04/20/23 Dr.Withalm52 SOA Bratislava
Semantic WEB
The Semantic Web is a vision for the future of the Web in which information is given explicit meaning
making it easier for machines to automatically process and integrate information available on the Web.
The Semantic Web will build on XML's ability to define customised tagging schemes and RDF's flexible approach to representing data.
The next element required for the Semantic Web is a web ontology language which can formally describe the semantics of classes and properties used in
web documents. In order to machines perform useful reasoning tasks on these documents
the language must go beyond the basic semantics of RDF Schema. OWL has been designed to meet this need for a Web Ontology Language.
04/20/23 Dr.Withalm53 SOA Bratislava
Semantic WEB: Summary/2
A further step is to: develop useful tools such as the wine agent
so that content providers will provide the required meta-data as a supplement to HTML
04/20/23 Dr.Withalm55 SOA Bratislava
Ontology/1
hierarchical structure of terms which are brought into relationship through pre-defined
associations the definition of sub-classes is the most common way of
establishing a hierarchy specialisation of the terms
every term can be structured further by attributes
04/20/23 Dr.Withalm56 SOA Bratislava
Ontology/2
ontology focus on connecting terms in order to allow statements for example:
the residential address of Person Smith is identical with the working address of person Smith
the household at the residential address consists of only one address
therefore we conclude that Person Smith runs a small company
04/20/23 Dr.Withalm57 SOA Bratislava
Ontology/3
further partial ontology can be derived: residential address is a sub-class of address working address is a sub-class of address household is the entirety of persons with identical residential
address small company is a sub-class of company
04/20/23 Dr.Withalm58 SOA Bratislava
Ontology/4
Ontology is the attempt to formulate an exhaustive and rigorous conceptual schema within a given domain, typically a hierarchical data structure
containing all the relevant entities and their relationships and rules (theorems, regulations) within that domain.
For example: in the automotive industry Bill of Material To be useful, ontology must be expressed in a concrete notation. An ontology language is a formal language by which an ontology is built. There have been a number of data languages for ontology
both proprietary and standards-based: CycL (ontology language based on first-order logic) KIF (syntax for first order logic) OWL, a language compatible with the architecture of the World
Wide Web in general, and the Semantic Web in particular.
04/20/23 Dr.Withalm59 SOA Bratislava
Ontology Interoperability
Ontology, as the means for conceptualising and structuring domain knowledge has become the backbone to enable the fulfilment of the
Semantic Web vision. It aims to make data more sharable. However, ontology themselves can be heterogeneous. Mapping between different ontology thus becomes essential to
ontology interoperability. Ontology mapping is the task of finding semantic relationships
between entities of two ontology. i.e. concept, attribute, and relation.
04/20/23 Dr.Withalm60 SOA Bratislava
Heterogeneity of Ontology/1
In order to reach interoperability over heterogeneous ontology, two problems must be dealt with, i.e.: metadata heterogeneity and instance heterogeneity .
Metadata heterogeneity concerns the intended meaning of described information. There are two kinds of conflicts in metadata heterogeneity: structure conflict, which means that ontology for same domain
knowledge may have different semantic structures; and name conflict, which means that the same concept may use
different names or different concepts may use the same name.
04/20/23 Dr.Withalm61 SOA Bratislava
Heterogeneity of Ontology/2
Instance heterogeneity concerns the different representations of instances. Information described by the same ontology can be represented
in different ways, also called representation conflict. For example,
date can be represented as “2004/2/27” or “Feb, 27, 2004”;
person name can be represented as “Jackson Michael” and “Michael, Jackson”, etc.
Representation conflict requires normalisation before ontology interoperation.
04/20/23 Dr.Withalm62 SOA Bratislava
Different solutions for Ontology Interoperability/4
Following a summary of the main approaches to ontology Interoperability Ontology mapping/matching. Ontology alignment. Ontology translation. Ontology transformation. Ontology merging/integrating. Ontology checking. Ontology evolution/ versioning.
04/20/23 Dr.Withalm63 SOA Bratislava
WS Language Descriptions/1
The Semantic Web should enable greater access not only to content but also to services on the Web.
Users and software agents should be able to discover, invoke, compose, and monitor Web
resources offering particular services and having particular
properties, and should be able to do so with a high degree of
automation when desired. To make use of a Web service,
a software agent needs a computer-interpretable description of the service
and the means by which it is accessed.
04/20/23 Dr.Withalm64 SOA Bratislava
WS Language Descriptions/2
An important goal for Semantic Web markup languages is to establish a framework within which these descriptions are
made and shared. Web sites should be able to employ a standard ontology
consisting of a set of basic classes and properties for declaring and describing services and the ontology structuring mechanisms of OWL
provide an appropriate and Web-compatible representation language framework within which to do this.
04/20/23 Dr.Withalm66 SOA Bratislava
OWL-S/3
OWL-S has three main parts: What does the service provide for prospective clients?
The answer to this question is given in the “profile” (ServiceProfile class), which is used to advertise the service.
How is it used? The answer to this question is given in the “process model”. This perspective is captured by the ServiceModel class.
How does one interact with it? The answer to this question is given in the “grounding”. A grounding (ServiceGrounding class) provides the needed details about transport protocols.
04/20/23 Dr.Withalm68 SOA Bratislava
Farbpalette mit Farbcodes
Primäre Flächenfarbe:
R 215G 225B 225
R 130G 160B 165
R 170G 190B 195
R 220G 225B 230
R 145G 155B 165
R 185G 195B 205
R 255G 210B 078
R 229G 025B 055
R 245G 128B 039
R 000G 133B 062
R 000G 000B 000
R 000G 084B 159
R 255G 255B 255
Sekundäre Flächenfarben:
Akzentfarben:
R 255G 221B 122
R 236G 083B 105
R 248G 160B 093
R 064G 164B 110
R 064G 064B 064
R 064G 127B 183
R 255G 232B 166
R 242G 140B 155
R 250G 191B 147
R 127G 194B 158
R 127G 127B 127
R 127G 169B 207
R 255G 244B 211
R 248G 197B 205
R 252G 223B 201
R 191G 224B 207
R 191G 191B 191
R 191G 212B 231
R 255G 250B 237
R 252G 232B 235
R 254G 242B 233
R 229G 243B 235
R 229G 229B 229
R 229G 238B 245