soa bratislava soa part1 lecture 2 dr. withalm 16-oct-15

68
SOA Bratislava SOA Part1 Lecture 2 Dr. Withalm Mar 25, 2022

Upload: kelley-walker

Post on 01-Jan-2016

217 views

Category:

Documents


2 download

TRANSCRIPT

SOA BratislavaSOA Bratislava

SOA Part1 Lecture 2SOA Part1 Lecture 2

Dr. Withalm Apr 20, 2023

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.Withalm7 SOA Bratislava

Web-ServicesExample/3

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.Withalm15 SOA Bratislava

Web-ServicesExample/11

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.Withalm23 SOA Bratislava

Core Web-Services Standards

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.Withalm31 SOA Bratislava

Web Service Base Standards/2

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.Withalm54 SOA Bratislava

Semantic Web Layers [Tim Berners-Lee]

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.Withalm65 SOA Bratislava

OWL-S/2Top Level of the Service Ontology

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.

SOA BratislavaSOA Bratislava

Thank youfor your attention!

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