Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 29

Fakultet organizacionih nauka Katedra za informacione sisteme

Modelovanje poslovnih procesa

Servisno orijentisana arhitektura

Razvoj softverskih arhitektura


Vrednost softvera se sve vie definie preko povezanosti, a ne funkcionalnosti

Mainframe

Client Server

Web

SOA

Potrebe za povezanou komponenti su uticale na zbliavanje tehnologija


Internet 1980 LAN Web 1990 XML

WS 2000

SOA

2010

Office Workflow

EAI
BPM B2B EDI WS Mainframe
Client / Server Web/Portal
J2EE .NET Business Integration

SOA i BPM (Business Process Management)


SOA se opisuje kao mogunost konstruisanja softverski komponenti koje mogu biti koriene u kontekstu koji nije poznat u vreme dizajna
BPM se opisuje kao mogunost preciznog modelovanja i promene konteksta u kojem e komponente preduzea biti koriene

Elementi BPM-a
Inicira Aktivnost menja Dogadjaj

Stanje
Entitet pokree Akter Servis Predstavljen kao

Sadraj
generie

Kako se posmatra BPM u SOA zajednici


Dva pristupa u BPM

Zasnovan na dogaajima
BPML, BPEL Pi-Calculus (takoe Event Calculus)

Orijentisan ka aktivnostima
WfMC Petrijeve mree (Petri nets)

Komponente postaju servisi koji se izvravaju izvan granica potroaa


Potroa (Consumer)
3 XML XML pokree XML Pronai i-ili Povei 2 Pravila
Policies

Registar

SOAP
CCI

SOAP
CCI

SOAP
CCI

1 registruj

DB

ERP

CRM

Servis

Servis

Servis

CCI: Client Communication Interface

Information Entities u SOA


Karakteristike entiteta u SOA
Identifikacija
Identity

Sadraj
Content

Information Entity

Stanje
State

Lokacija
Location(s)

Replikacija
Replication

Specifino

za SOA

Privatnost
Privacy

Poslovni proces moe se posmatrati kao vie akterska koreografija servisa


Start

Kupac
Zahtev

Prodavac
Mapping Routing

SFA
Zahtev
Order
Zahtev

Dobavlja
RFQ Dogadjaj
Raun Aktivnost Korisnika

ERP
Rauni

Narudzba

Order Entitet
(Information Entity)

Orders

Sales Order

Raun

Invoice

Billing Aktivnost

SalesTax.com

CreditCheck.com

Servisi u SOA su orkestrirani (BPEL)


Servis Quote Service Definicija orkestracije RFQ
<<receive>> RFQ
<<invoke>> GetQuote

- ( ovaj model koji omoguava najbolje ponovno korienje poslovne logike )

Entitet

RFQ Quote

Nack

sendNack

Stanje No Entiteta Ok?


<<invoke>> calculateSalesTax

Prodaja Porez

Ponuda
Narudz

updateDB

<<send>> quote
Transition

No

Ok?
Message flow

Koreografija omoguava definisanje model toka dogaaja izmeu aktivnosti


Start

Buyer
PO AckPO

Supplier
(Self)
PO PO

Order Entry

Manager

Billing

BTA1

Wit1

PO AckPO

Sales order

OpA1

OpA2

[BusinessFailure]

[Success]

Failure

Success

SOA zahteva potpunu odvojenost poslovne logike i korisnikog interfejsa (UI user interface)
View

UI Controller

Controller Poslovnog procesa

Obrada Upita

Obrada Posla

Zahtev za servisom
WS

WS

WS WS WS

ERP
WS

PLM
WS

CRM

Standardi Web servisa


Osnovni standardi za web servise su: XML (Extensible Markup Language) SOAP (simple object access protocol) WSDL (web services description language) UDDI (universal description, discovery and integration)

Standardi za Web servise


UDDI ebXML Registries ebXML CPA OWL-S Service Model BPEL4WS WS-AtomicTransaction and WSXLANG BusinessActivity WS-Reliable WS-Coordination Messaging WS-Security WS-Policy SOAP XML, DTD, and XML Schema HTTP, FTP, SMTP, SIP, etc. WSCL WSDL BPML BTP ebXML BPSS Discovery Contracts and agreements Process and workflow orchestrations QoS: Transactions QoS: Choreography QoS: Conversations

OWL-S Service WSCL Profile OWL-S Service Grounding OWL RDF PSL

WSCI

ebXML QoS: Service CPP descriptions and bindings ebXML messaging Messaging Encoding Transport

Arhitektura Web servisa


Ukljuuje tri glavna uloge

Providera servisa Registra servisa Potroaa servisa

Obuhvata tri glave operacije

Publikovanje registrovanje web servisa za korienje Pronalaenje lociranje web servisa Izvravanje korienje web servisa

Komponente Web servisa

Dostupnost servisa
Da bi neko mogao da koristi servis mora da zna da on postoji i da se omogui: Otkrivanje registrovanih (publikovanih) servisa (UDDI). Opis interfejsa servisa (metode i argumenti) kako bi korisnik mogao da ga korisiti (WSDL). Lokacija na kojoj se nalazi servis
specifine aplikacije za komunikaciju) (web server ili

Osovne karakteristike WS
Sva WS dokumenta su napisana u XML
XML Schema se koristi za definisanje elemenata koji se koriste u WS komunikaciji

SOAP
Koristi se za komunikaciju sa WS
Zasnovan na paradigmi poruka zahtevodgovor (SOAP poruke) Telo poruke (ija je gramatika data preko WSDL) se nalazi u SOAP envelope Povezuje korisnika i WS

SOAP poruke
SOAP definie standardi koverat u okviru kojeg poruka moe biti poslata. SOAP je mehanizam (protokol) za prenos informacija (poruka) izmeu distribuiranih aplikacija. SOAP ne govori nita o sadrini poruke ve poiljalac i primalac moraju meusobno da je razumeju. SOAP je deo komunikacionog sloja.

Struktura SOAP-a
Svaka SOAP poruka sadri:

Envelope obavija ceo dokument Header (opciono sadri dodatne informacije za npr. autentifikaciju) Body sadraj poruke koji je sama XML poruka ili RPC (sadri XML koji predstavlja poziv metode) Body moe sadrati Fault element kojim se definiu informacije o izuzecima

SOAP Envelope SOAP Header


: autentifikacija, informacije o transakciji, itd

SOAP Body SOAP Body Block


: parametri, povratne vrednosti, itd

SOAP Fault

Primer SOAP poruke


<?xml ?> <SOAP-ENV:Envelope xmlns:SOAP-ENV=URI > <SOAP-ENV:Header> <t:Transaction xmlns:t=URI SOAP-ENV:mustUnderstand=1 > 12345 </t:Transaction> <p:Priority xmlns:p=URI> Very High </p:Priority> </SOAP-ENV:Header> <SOAP-ENV:Body> XML Document </SOAP-ENV:Body>

</SOAP-ENV:Envelope>

WSDL
Opisuje WS i definie funkcije koje su dostupne na njemu Definie XML gramatiku koja se koristi u porukama

Struktura WSDL-a
portType apstraktna definicija servisa (skup operacija) Binding naini pristupa izvravanju servisa Port gde se pristupa servisu

Primer WSDL : 1
<?xml version="1.0"?> <!-- the root element, wsdl:definitions, defines a set of --> <!-- related services --> <wsdl:definitions name="Temperature" targetNamespace="http://www.socweather.com/schema" xmlns:ts="http://www.socweather.com/TempSvc.wsdl" xmlns:tsxsd="http://schemas.socweather.com/TempSvc.xsd" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">

Primer WSDL: 2
<!-- wsdl:types encapsulates schema definitions of --> <!-- communication types; here using xsd --> <wsdl:types> <!-- all type declarations are expressed in xsd --> <xsd:schema targetNamespace="http://namespaces.socweather.com" xmlns:xsd="http://www.w3.org/1999/XMLSchema">

<!-- xsd def: GetTemp [City string, When string] --> <xsd:element name="GetTemp"> <xsd:complexType> <xsd:sequence> <xsd:element name="City" type="string"/> <xsd:element name="When" type="string"/> </xsd:sequence> </xsd:complexType> </xsd:element>

UDDI
Koristi se za registrovanje i pronalaenje servisa u nekom centralnom registru Provajderi servisa mogu publikovati informacije o njihovim poslovima i servisima koje nude
Korisnici servisa mogu pretraivati servise organizovane po poslu kategoriji servisa ili kao specifine servise

Struktura UDDI-a
businessEntity: Information about the party who publishes information about a service tModel: Descriptions of specifications for services or value sets. Basis for technical fingerprints

businessEntities contain businessServices

businessService: Descriptive information about a particular family of technical services

bindingTemplates contain references to tModels. These references designate the interface specifications for a service

businessServices contain bindingTemplates

bindingTemplate: Technical information about a service entry point and implementation specs

WSDL UDDI
WSDL
Service Implementation <import> <service> <port> <port> BindingTemplate BusinessEntity

UDDI

BusinessService

BindingTemplate Service Interface <types> <message> <portType> <binding>

tModel

You might also like