b2b ja soa - jyväskylän yliopisto workflow, transaction management business semantics horizontal...

37
B2B ja SOA Kehittämismenetelmät ja arkkitehtuurit liiketoiminnassa, TJTSE54 kevät 2007 Ville Seppänen <[email protected]>

Upload: truongdang

Post on 16-May-2018

225 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: B2B ja SOA - Jyväskylän yliopisto Workflow, Transaction Management Business Semantics Horizontal Standard Horizontal Non-Standard Vertical Non-Standard Kaye 2003 Business semantics

B2B ja SOA

Kehittämismenetelmät ja arkkitehtuurit liiketoiminnassa, TJTSE54 kevät 2007

Ville Seppänen<[email protected]>

Page 2: B2B ja SOA - Jyväskylän yliopisto Workflow, Transaction Management Business Semantics Horizontal Standard Horizontal Non-Standard Vertical Non-Standard Kaye 2003 Business semantics

SOAP-verkkopalvelu

WSDL

Clientapp

Serverapp

A. PublishB. Search/subscribe

A

B

”Definition: A Web service is a software system identified by a URI, whose public interfaces and bindings are defined and described using XML. Its definition can be discovered by other software systems. These systems may then interact with the Web service in a manner prescribed by its definition, using XML based messages conveyed by Internet protocols.”

Page 3: B2B ja SOA - Jyväskylän yliopisto Workflow, Transaction Management Business Semantics Horizontal Standard Horizontal Non-Standard Vertical Non-Standard Kaye 2003 Business semantics

WSDL-rajapinta

Page 4: B2B ja SOA - Jyväskylän yliopisto Workflow, Transaction Management Business Semantics Horizontal Standard Horizontal Non-Standard Vertical Non-Standard Kaye 2003 Business semantics

WSDL-rajapinta

jatkuu

Page 5: B2B ja SOA - Jyväskylän yliopisto Workflow, Transaction Management Business Semantics Horizontal Standard Horizontal Non-Standard Vertical Non-Standard Kaye 2003 Business semantics

Palvelu

SOAP pyyntö ja vastaus

Page 6: B2B ja SOA - Jyväskylän yliopisto Workflow, Transaction Management Business Semantics Horizontal Standard Horizontal Non-Standard Vertical Non-Standard Kaye 2003 Business semantics

Overheadista● 'Human-readable'

● SOAP/XML-RPC -viestit n. 14 kertaa suurempia kuin CORBAn binääriviestit

● 5 000 kokonaisluvun siirron kesto SOAP:lla 882 kertainen verrattuna CORBA:an

*

* python socket(IBM: The Python Web services developer: Messaging technologies compared)

Page 7: B2B ja SOA - Jyväskylän yliopisto Workflow, Transaction Management Business Semantics Horizontal Standard Horizontal Non-Standard Vertical Non-Standard Kaye 2003 Business semantics

SOA ja WS-tekniikatUDDI

WSDL

SOAP

SOAP

SOAP

Page 8: B2B ja SOA - Jyväskylän yliopisto Workflow, Transaction Management Business Semantics Horizontal Standard Horizontal Non-Standard Vertical Non-Standard Kaye 2003 Business semantics

Ei mitään uutta, mutta...● Avoin, alusta- ja kieliriippumaton

– Toimii käytännössä kaikilla laitealustoilla– WS/SOAP-toteutus löytyy lähes jokaiselle

ohjelmointikielelle– Siirrettävissä (tosin valmistajakohtaisia laajennuksia

standardeihin on alkanut näkyä...)– Pienentää vendor lock-inin vaaraa

● Tekniikka ei määrää palvelun granulariteettia– Yksinkertaisesta sovellustoiminnallisuudesta, SQL-

kyselystä tmv. pitkäkestoisiin ja hajautettuihin liiketoimintaprosesseihin

– Vrt. XML-RPC (procedure), RMI (method), CORBA/ORB (object), MS DCOM (component)

Page 9: B2B ja SOA - Jyväskylän yliopisto Workflow, Transaction Management Business Semantics Horizontal Standard Horizontal Non-Standard Vertical Non-Standard Kaye 2003 Business semantics

B2B-integrointi● Datan, sovellusten, prosessien saattaminen

liiketoimintakumppanien saataville (halutussa määrin)● Tavoitteena kustannustehokkaampi, tehokkaampi ja

joustavampi toiminta

Stadco.co.uk approach to supply chain management

Page 10: B2B ja SOA - Jyväskylän yliopisto Workflow, Transaction Management Business Semantics Horizontal Standard Horizontal Non-Standard Vertical Non-Standard Kaye 2003 Business semantics

Edellyttää yhteentoimivuutta● Levels of heterogeneity

– Syntactic: machine-readable aspects of data representation

– Structural: representational differences involving data modeling constructs and schemas

– System/Platform: differences in system-level aspects (e.g., OS, communications)

– Semantic: different meanings, propositions, signification etc. of the terms used in exchange

Page 11: B2B ja SOA - Jyväskylän yliopisto Workflow, Transaction Management Business Semantics Horizontal Standard Horizontal Non-Standard Vertical Non-Standard Kaye 2003 Business semantics

Internet, Intranet, ExtranetHTTP, FTP, SMTPXML, XML SchemaSOAP, XML-RPC

WSDL, UDDI

Security,Routing

Workflow,Transaction Management

BusinessSemantics

HorizontalStandard

HorizontalNon-Standard

VerticalNon-Standard

Kaye 2003

Page 12: B2B ja SOA - Jyväskylän yliopisto Workflow, Transaction Management Business Semantics Horizontal Standard Horizontal Non-Standard Vertical Non-Standard Kaye 2003 Business semantics

Businesssemantics

ebXML, Rosettanet, BPEL, Semantic Web (services), ...?

Tekniikat – Ne on horisontaaleja; Toteutukset – Ne on vertikaaleja

SOA:n keskeisen ajatuksen – löyhäkytkentäisyyden (loose coupling) – ja liiketoiminnan semanttisten vaatimusten yhdistäminen – Se on hankalaa

Pyramidin alemmat tasot – Ne eivät juurikaan tuota ongelmia

Joskaan esim. verkkopalvelujen tietoturva ja transaktiotuen taso – Se ei välttämättä vielä

tyydytä kaikkien vaativimpia ja kriittisimpiä tarpeita

Työllä tai sopivilla välineillä (ja työllä) WS-tekniikat piilottavat heterogeenisuuden tasoistasyntaksi-, rakenne- ja järjestelmätasot ovat melko hyvin

Page 13: B2B ja SOA - Jyväskylän yliopisto Workflow, Transaction Management Business Semantics Horizontal Standard Horizontal Non-Standard Vertical Non-Standard Kaye 2003 Business semantics

Coupling &Dependency

● Level of common knowledge necessary between provider and consumer

● W3C glossary: Coupling is the dependency between interacting systems. This dependency can be decomposed into real dependency and artificial dependency– Real dependency is the set of features or services that a system

consumes from other systems. The real dependency always exists and cannot be reduced.

– Artificial dependency is the set of factors that a system has to comply with in order to consume the features or services provided by other systems. Typical artificial dependency factors are language dependency, platform dependency, API dependency, etc. Artificial dependency always exists, but it or its cost can be reduced.

Page 14: B2B ja SOA - Jyväskylän yliopisto Workflow, Transaction Management Business Semantics Horizontal Standard Horizontal Non-Standard Vertical Non-Standard Kaye 2003 Business semantics

Tight coupling● ”The programmer of one participant (say, the

consumer, or client) must have detailed knowledge about the behavior, such as the method calls, messaging protocol, synchronous behavior, or message semantics, of the other participant (in this case, the provider, or server) in order to successfully complete the required interaction between the two pieces of software”J. Bloomberg

● Ei ainoastaan huono asia: semanttiseen heterogeenisuuteen liittyvät asiat tulevat suuremmalla todennäköisyydellä noteeratuiksi

Page 15: B2B ja SOA - Jyväskylän yliopisto Workflow, Transaction Management Business Semantics Horizontal Standard Horizontal Non-Standard Vertical Non-Standard Kaye 2003 Business semantics

Loose coupling● Loosely coupled

– the two participants may have specific, but more limited knowledge about each other. Such information appears in a Service contract, which is a document external to each participant that provides the information each participant needs to interact with the other

● Tavoitteena vähentää artificial dependency minimiin

Page 16: B2B ja SOA - Jyväskylän yliopisto Workflow, Transaction Management Business Semantics Horizontal Standard Horizontal Non-Standard Vertical Non-Standard Kaye 2003 Business semantics

Loose coupling● Loosely coupled services, even if they use

incompatible system technologies, can be joined together on demand to create composite services, or disassembled just as easily into their functional components. Participants must establish a shared semantic framework to ensure messages retain a consistent meaning across participating services.(looselycoupled.com)

– Helpommin sanottu kuin tehty?

Page 17: B2B ja SOA - Jyväskylän yliopisto Workflow, Transaction Management Business Semantics Horizontal Standard Horizontal Non-Standard Vertical Non-Standard Kaye 2003 Business semantics

Integroinnin tasoja: dataintegraatio● Useissa eri lähteissä sijaitsevan ja usein

heterogeenisen datan yhdistämistä– Heterogeenisuus: erilaiset skeemat, erilaiset

koodaukset, merkitykset jne.● ETL: extract, transform, load

– Usein eräajoluontoista; soveltuu heikosti käytettäväksi usein muuttuvan datan kanssa

● Yleinen skeema– Transform kohdistetaan kyselyihin

Page 18: B2B ja SOA - Jyväskylän yliopisto Workflow, Transaction Management Business Semantics Horizontal Standard Horizontal Non-Standard Vertical Non-Standard Kaye 2003 Business semantics

Dataintegrointi

Kuvat: wikipedia.org/wiki/Data_integration

Page 19: B2B ja SOA - Jyväskylän yliopisto Workflow, Transaction Management Business Semantics Horizontal Standard Horizontal Non-Standard Vertical Non-Standard Kaye 2003 Business semantics

Dataintegrointi ja SOA● Rajapinnat kuten ODBC ja JDBC tarjoavat pääsyn

dataan esim. asiakas-palvelin -ympäristöissä● SOA-tekniikoita voidaan käyttää samaan tapaan ja

tarjota datalähde ulospäin palveluna, SOAP-API joka vastaanottaa SQL-lauseita– Dataan pääsyä saatetaan haluta rajoittaa– Tiukkakytkentäinen ratkaisu: skeeman muuttuminen

vaikuttaa asiakassovelluksiin● Vaihtoehtoisesti palveluna julkaistaan tarvittavat

kyselyt eikä suoraa datayhteyttä– Skeemamuutokset haijastuvat ainoastaan kyselyn

suorittamisesta vastaaviin palveluihin

Page 20: B2B ja SOA - Jyväskylän yliopisto Workflow, Transaction Management Business Semantics Horizontal Standard Horizontal Non-Standard Vertical Non-Standard Kaye 2003 Business semantics

Sovellusintegraatio● Tavoitteena erillisten sovellusten välinen

kommunikointi tai yhteentoimiminen● Pääasiassa datan ja komentojen muuntamista

epäyhteensopivien sovellusten välillä

EAI esim.

Page 21: B2B ja SOA - Jyväskylän yliopisto Workflow, Transaction Management Business Semantics Horizontal Standard Horizontal Non-Standard Vertical Non-Standard Kaye 2003 Business semantics

Sovellusintegraatio● Implementing application integration has

traditionally been done by tedious programming, or occasionally one package might support the interfaces of one or two other packages. However, the trend today is to use message brokers, applications servers and other specialized integration products that provide a common connecting point.

Page 22: B2B ja SOA - Jyväskylän yliopisto Workflow, Transaction Management Business Semantics Horizontal Standard Horizontal Non-Standard Vertical Non-Standard Kaye 2003 Business semantics

Shrinking common technology subset

Two Windows DCOM apps J2EE & DCOM apps

J2EE, DCOM &Yet Another Application

Traditional 'subtractive' approach to integrating systems: finding the common subset oftechnologies between the systems, starting with a physical connection between thesystems. That subset is the basis for the integration, and additional layers of technologyare built on top of it. (Kaye 2003)

Page 23: B2B ja SOA - Jyväskylän yliopisto Workflow, Transaction Management Business Semantics Horizontal Standard Horizontal Non-Standard Vertical Non-Standard Kaye 2003 Business semantics

Application A Application B

Application C

Standardized Web-servicesinterface

”It would be a violation of loose-coupling principles to base the interface on any common-subset assumption.” (Kaye 2003)

”...key to loosely coupling heterogeneous technologies is to standardize the interfaces and not the source code. (ibid)”

Sovellusintegraatio ja SOA?

Page 24: B2B ja SOA - Jyväskylän yliopisto Workflow, Transaction Management Business Semantics Horizontal Standard Horizontal Non-Standard Vertical Non-Standard Kaye 2003 Business semantics

Sovellusintegraatio ja SOA?”No one should confuse the ease of using Web services interfaces with the difficulty

of making Web services a reality.”

www.iwaysoftware.com

Page 25: B2B ja SOA - Jyväskylän yliopisto Workflow, Transaction Management Business Semantics Horizontal Standard Horizontal Non-Standard Vertical Non-Standard Kaye 2003 Business semantics

Sovellusintegraatio ja SOA?● Standardi API ei siis ole ihmeratkaisu tai

hopealuoti● Middleware uudella tekniikalla?

Page 26: B2B ja SOA - Jyväskylän yliopisto Workflow, Transaction Management Business Semantics Horizontal Standard Horizontal Non-Standard Vertical Non-Standard Kaye 2003 Business semantics

Prosessi-integraatio

Datataso

Sovellustaso

2. Palvelutaso

Prosessitaso

1. Palvelutaso

3. Palvelutaso

Page 27: B2B ja SOA - Jyväskylän yliopisto Workflow, Transaction Management Business Semantics Horizontal Standard Horizontal Non-Standard Vertical Non-Standard Kaye 2003 Business semantics

IT- ja liiketoimintastrategiat● Palveluja – ei sovelluksia● Palveluja määriteltäessä tavoitteena muodostaa

kokonaisuuksia jotka vastaavat liiketoiminnalle luontevia käsitteitä esim.– 1. taso: Hae asiakkaan tiedot– 2. taso: Laskuta asiakasta– 3. taso: Käsittele tilaus

● Hyvä palvelu abstrahoi järjestelmätason toiminnan liiketoiminnan kannalta tarpeellisiksi kokonaisuuksiksi tai mustiksi laatikoiksi– Riittää, että tiedetään mitä laatikko tekee; ei ole tarpeen

tietää, miten se sen tekee

Page 28: B2B ja SOA - Jyväskylän yliopisto Workflow, Transaction Management Business Semantics Horizontal Standard Horizontal Non-Standard Vertical Non-Standard Kaye 2003 Business semantics

IT- ja liiketoimintastrategiat● SOA lupaa tuoda IT- ja liiketoimintastrategioita

lähemmäksi toisiaan tai jopa yhdistää ne● Perinteinen alignment-malli:● Kritisoitu siitä, että ei huo-

mioi nopeasti muuttuvanympäristön asettamiapaineita

● Ihannetilassa SOA mahdol-listaa liiketoimintaprosessi-en muodostamisen, purkami-sen ja muokkaamisen nope-alla ja kustannustehokkaalla tavalla

Page 29: B2B ja SOA - Jyväskylän yliopisto Workflow, Transaction Management Business Semantics Horizontal Standard Horizontal Non-Standard Vertical Non-Standard Kaye 2003 Business semantics

BPEL4WS● Orchestration: describes how web services

can interact with each other at the message level, including business logic and execution order of the transactions– These interactions may span applications and/or

organizations, and– Result in long-lived, transactional, multi-step

processes● Refers to an executable business process that

may interact with both internal and external web services

● The process is always controlled from the perspective of one of the business parties

Page 30: B2B ja SOA - Jyväskylän yliopisto Workflow, Transaction Management Business Semantics Horizontal Standard Horizontal Non-Standard Vertical Non-Standard Kaye 2003 Business semantics

BPEL4WS● Business Process Execution Language for Web

Services on mm. IBM:n, Microsoftin ja BEA:n tukema ehdotus, joka määrittelee verkkopalvelujen toiminnan liiketoimintaprosessien integroinnissa– BPEL-prosessi on verkkopalvelu, joka koostuu

verkkopalveluista (composite service/appl)● XML-sanasto, joka kuvaa prosessikulun

kontrollointilogiikan● Prosessikuvaukset tulkitsee ja suorittaa

prosessimoottori

Page 31: B2B ja SOA - Jyväskylän yliopisto Workflow, Transaction Management Business Semantics Horizontal Standard Horizontal Non-Standard Vertical Non-Standard Kaye 2003 Business semantics

BPEL4WS● Inside-Out

– Prosessi kuvataan yhden osapuolen (omistajan) näkökulmasta

● Prosessit kytkeytyvät verkkopalveluihin WSDL-rajapintojen kautta– WSDL määrittelee prosessin operaatiot (esim.

CheckCreditCard)– BPEL määrittelee kuin operaatioiden suorittaminen

jaksotetaan (esim. IF maksutapa = luottokortti THEN CheckCreditCard ELSE ...)

Page 32: B2B ja SOA - Jyväskylän yliopisto Workflow, Transaction Management Business Semantics Horizontal Standard Horizontal Non-Standard Vertical Non-Standard Kaye 2003 Business semantics

BPEL4WS● Prosessit julkaistaan verkkopalveluina niiden

omien WSDL-rajapintojen kautta– WSDL kuvaa prosessin julkiset aloitus- ja

päätepisteet (entry ja exit points)● Prosessit käyttävät WSDL:ssä määriteltyjä

tietotyyppejä prosessiin kuuluvien kutsujen sisällä

Page 33: B2B ja SOA - Jyväskylän yliopisto Workflow, Transaction Management Business Semantics Horizontal Standard Horizontal Non-Standard Vertical Non-Standard Kaye 2003 Business semantics

BPEL4WS● Määrittely erottaa perus- ja rakenteiset

toiminnallisuudet (basic ja structured activities)– Perustoiminnallisuudet mahdollistavat

vuorovaikutuksen prosessin osapuolten välillä (mm. receive, reply, invoke)

– Rakenteelliset toiminnallisuudet määrittelevät prosessin kokonaiskulun; ts. Mitä perustoiminnallisuuksia suoritetaan, miten ja missä järjestyksessä

● Poikkeustenhallinta ja transaktio-ominaisuudet rakennettu WS-Coordination and WS-Transaction -määritysten päälle

Page 34: B2B ja SOA - Jyväskylän yliopisto Workflow, Transaction Management Business Semantics Horizontal Standard Horizontal Non-Standard Vertical Non-Standard Kaye 2003 Business semantics
Page 35: B2B ja SOA - Jyväskylän yliopisto Workflow, Transaction Management Business Semantics Horizontal Standard Horizontal Non-Standard Vertical Non-Standard Kaye 2003 Business semantics
Page 36: B2B ja SOA - Jyväskylän yliopisto Workflow, Transaction Management Business Semantics Horizontal Standard Horizontal Non-Standard Vertical Non-Standard Kaye 2003 Business semantics

BPEL4WS● Saman voi tietysti toteuttaa millä tahansa

ohjelmointikielellä, joka tarjoaa tarvittavat kontrollirakenteet, poikkeusten käsittelyn, tuen asynkroniselle kommunikoinnille jne. ja jolla voidaan tehdä HTTP:n yli kutsuttavia sovelluksia

● Mutta BPEL, kuten muutkin nykyisistä SOA-tekniikoista, on alusta- ja kieliriippumaton

● BPEL-prosessi on XML-dokumentti, joka on suoritettavissa minkä tahansa valmistajan BPEL-moottorilla (=> BPEL v.2)

Page 37: B2B ja SOA - Jyväskylän yliopisto Workflow, Transaction Management Business Semantics Horizontal Standard Horizontal Non-Standard Vertical Non-Standard Kaye 2003 Business semantics

BPEL4WS● Eli jos epästandardien sovellusten

toiminnallisuus tarjotataan palveluina avoimen ja standardin rajapinnan kautta (WSDL/SOAP), täytyy myös orkesterointimekanismin olla sellainen

● Edellinen ei tarkoita sitä, että mekanismin pitäisi olla BPEL; riittää että on se avoin ja standardi