Aplicatii Web bazate pe semantica, agenti si servicii

Slides:



Advertisements
Similar presentations
Web Service Composition Prepared by Robert Ma February 5, 2007.
Advertisements

WS Orchestration Eyal Oren DERI 2004/04/07
Introduction to Control Flow Patterns and BizAgi
MODUL 1 Analisis & Informasi Proses Bisnis (CSA221)
1 Introduction to modeling Process modelling. 2 Where are we? #TitleDate 1Introduction ORM modeling Relational modeling
Introduction to BizAgi. Slide 2 User Interface (Summary) The user interface for BizAgi resembles Office It uses a similar ribbon The Palette contains.
IBM WebSphere survey Kristian Bisgaard Lassen. University of AarhusIBM WebSphere survey2 Tools  WebSphere Application Server Portal Studio Business Integration.
Business Process Orchestration
Chapter 13: Process Specifications Service-Oriented Computing: Semantics, Processes, Agents – Munindar P. Singh and Michael N. Huhns, Wiley, 2005.
1 WS Technologies III BPEL4WS Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination and Orchestration IMT-
BPMN An Introduction ISIS. © ILOG, All Rights Reserved 2 Definition of BPMN Business Process Modeling Notation provides:  The capability of defining.
Chapter 13: Process Specifications Service-Oriented Computing: Semantics, Processes, Agents – Munindar P. Singh and Michael N. Huhns, Wiley, 2005.
Department of Computer Science 1 CSS 496 Business Process Re-engineering for BS(CS)
ICT 1 INF5120 ”Modellbasert Systemutvikling” ”Modelbased System development” Lecture 7: BPMN 2.0 Arne-Jørgen Berre.
Department of Computer Science 1 CSS 496 Business Process Re-engineering for BS(CS)
Business Process Management System Using Intalio BPMS.
Enterprise Workflow CPSC 476 Lightening Talk Brenda Griffith/Katie Soto.
BPMN By Hosein Bitaraf Software Engineering. Business Process Model and Notation (BPMN) is a graphical representation for specifying business processes.
Chapter 13: Process Specifications Service-Oriented Computing: Semantics, Processes, Agents – Munindar P. Singh and Michael N. Huhns, Wiley, 2005.
COMPARISSON OF TECHNOLOGIES FOR CONNECTING BUSINESS PROCESSES AMONG ENTERPRISES Maja Pušnik, dr. Marjan Heričko.
95-843: Service Oriented Architecture 1 Master of Information System Management Service Oriented Architecture Lecture 7: BPEL Some notes selected from.
“This presentation is for informational purposes only and may not be incorporated into a contract or agreement.”
Course: COMS-E6125 Professor: Gail E. Kaiser Student: Shanghao Li (sl2967)
Qusay H. Mahmoud CIS* CIS* Service-Oriented Computing Qusay H. Mahmoud, Ph.D.
Dr. Rebhi S. Baraka Advanced Topics in Information Technology (SICT 4310) Department of Computer Science Faculty of Information Technology.
BPMN.  BPMN will provide businesses with the capability of understanding their internal business procedures in a graphical notation.
SE 548 Process Modelling WEB SERVICE ORCHESTRATION AND COMPOSITION ÖZLEM BİLGİÇ.
2 The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any.
Business Process Execution Language (BPEL) Pınar Tekin.
Stephen A. White, IBM Notation Working Group Chair Rob Bartel, iGrafx
System Architect support for Business Process Modeling Notation (BPMN)
Service-Oriented Computing: Semantics, Processes, Agents
Management of IT Environment (3)
Introduction to Control Flow Patterns and BizAgi
Februarie 2018 ASE Bucuresti
Oracle Academy Lead Adjunct
IntraShip inovatie, flexibilitate, rapiditate.
Funcţii Excel definite de utilizator (FDU) în VBA
Instrumente CASE Curs nr. 7.
Posibilităţi de analiză în timp real a parametrilor de calitate a apei cu ajutorul sistemului informatic de management SIVECO Business Analyzer September.
Căutarea şi regăsirea informaţiei.
Arhitectura serviciilor web
Căutarea şi regăsirea informaţiei.
Paxos Made Simple Autor: Puşcaş Radu George
Gestionarea datelor stiintifice
Software product management
CONVERSII INTRE SISTEME DE NUMERATIE
WebSite Social Tema 2 WebSite Social.
Crearea si gazduirea serviciilor
Dracea Alexandra Grupa:342C5
Curs 6: Introducere în programarea SAS
Funcții C/C++ continuare
Integrare prin procese de business
Crearea si gazduirea serviciilor
INTERNET SERVICII INTERNET.
Aplicatii Web bazate pe semantica, agenti si servicii
A great way to create a channel of communication
Functia de documentare
SOAP -Simple Object Access Protocol-
Realizarea prezentarilor cu Microsoft PowerPoint
Software open source in industria software
Student:Dvornic Mihaela Grupa:342 C5
CMMI- Arii de proces: Inginerie si managementului proiectelor
Sistemul de control intern managerial
Aplicatii Web bazate pe semantica, agenti si servicii
Harti de imagini, Cadre, Stiluri
BPMN - Business Process Modeling Notations
The Business Process Management and Notation
Service-Oriented Computing: Semantics, Processes, Agents
Chapter 9 Processes and Workflows
Presentation transcript:

Aplicatii Web bazate pe semantica, agenti si servicii http://turing.cs.pub.ro/webs_07 Universitatea Politehnica Bucuresti Anul universitar 2007-2008, Master Adina Magda Florea

Orchestrarea serviciilor Web Standarde pentru servicii – pozitionare Modelarea procesului de business UML BPML Orchestrarea procesului de business WSBPEL ebXML Orientare pe procese

Standarde pentru servicii Web

Modelarea proceselor Modelarea proceselor Reprezentarea unei secvente ordonate de activitati de business si a continutului informational asociat Un model de proces = diagrame de flux de activitati care contin suficiente detalii a.i procesul sa poata fi analizat, simulat si executat BPMN = Business Process Modeling Notation UML pt BM (Business Modeling)

UML Utilizarea UML pentru BM Constructii grafice care pot fi utilizate in modelarea BP pentru descrierea: activitatilor precedentei temporale fluxului de control Structuri de control utilizate Sequence: tranzitia de la o activitate la alta Branch: un punct de decizie intre fluxuri alternative de control Merge: doua sau mai multe fluxuri de control alternativ se contopesc Fork: impartirea unui flux de control in doua sau mai multe fluxuri de control concurente independente Join: sincronizarea a doua sau mai multe fluxuri de control cu executie concurenta intr-un unic flux de control

UML Reprezentarea unui proces de vanzare

BPMN BPMN permite modelarea proceselor utilizarea unor metodologii diverse cat si scopuri diverse in modelare (de ex orchestrare si coreografie) BPMN este o reprezentarea grafica pe baza de organigrame pentru definirea BP (Business Processes) BPMN ofera un mecanism pentru generarea BP executabile (BPEL) din aceasta reprezentare grafica BP modelat in BPMN poate fi dat unui motor BPEL pentru executie

Originile BPMN BPMI (Business Process Management Institute) – acum parte a OMG (Object Management Group) a dezvoltat BPML (un limbaj bazat pe XML pentru executarea BP) BPML a fost mai tarziu inlocuit de BPEL BPMN Mai 2004 - BPMN 1.0 Februarie 2006 BPMN 1.0 adoptat ca standard OMG la ora actuala exsita 39 de mari companii care au implementari ale BPMN

BPMN – elemente de baza BPMN este format dintr-o multime de elemente grafice Defineste Business Process Diagram (BPD) – flowchart pentru crearea modelelor grafice a operatiilor BP 4 categorii de baza de elemente Flow Objects (1) Connecting Objects (2) Swimlanes (3) Artifacts (4)

(1) Flow Objects Events = ceva ce se intampla in timpul unui BP Activity = atomice sau non-atomice (compuse) Task – activitate atomica Sub-Process – dezvoltare ierarhica Se pot executa o data sau pot avea bucle interne Gateway = divergenta sau convergenta unor fluxuri de activitati element de decizie start intermediate end Task Sub-Process + Looped task

Event Events = ceva ce se intampla in timpul unui BP Start untriggered message (procesul incepe la receptionarea unui mesaj; se poate implementa ca un WS) timer – procesul incepe la o data/ora specificata sau la un interval de timp (ciclic) rule – procesul incepe odata cu executia unei reguli link – un sub-proces al procesului curent incepe la terminarea unui alt sub-proces al procesului curent Intermediate – la fel + Error – arunca o eroare Compensation – indica necesitatea unei compensari pentru o tranzactie (apel compensare) End – la fel cu Intermediate + Terminate – termina toate activitatile din proces fara alte compensari sau evenimente start intermediate end

Activity Tasks User tasks – necesita interventie umana in aplic software (eg introduce date client) Manual tasks – facute de o persoana fara software (eg cheama seful) Service tasks – fara interventie umana (eg apel fct software, WS) Send task – trimite mesaj catre sistem sau persoana Receive task –asteapta un mesaj de la sistem sau persoana Reference task – refera un task deja existent (impiedica duplicare taskuri) Sub-processes Embedded – continut integral in procesul parinte si executat in acesta; are acces la aceleasi Data Object ca procesul parinte Independent – apel al unui proces separat care poate fi apelat si din alt proces; nu are acces la Data Objects a procesului parinte Transactions – comportarea sub-procesului este aceea a unui protocol de tranzactie Activity markers – pt bucle

Exemplu Sub-process activity Intermediate events Message event Business process modelling (BPM) and Workflow Management (WfM) are two popular subjects in the area of information systems research. At first sight, they seem very similar: BPM and WfM foster a mainly  process-oriented perspective on organisations. The process-oriented view comprises activities and their relationships within and to an organisation's context. Relationships among business processes might be specified using control flow (consecutive, parallel, or alternative execution), hierarchical decomposition and/or generic relationships. Relationships to the organisational context comprise the assignment of organisational units (company, department, role) and resources (tools, machinery). However, the different view points taken by BPM and WfM, respectively, have lead to conceptual differences, which require thorough analysis before a mapping of both approaches can take place. They represent  different levels of abstraction on process-oriented organisations. The following table displays typical differences found in the literature: Business Process Includes manual activities/processes [FrLa03] "Conceptual level" of the enterprise (e.g. [Böhm00]) Business processes can be related to every kind of resource (i.e. not only IT) [Jung01] ModellingWorkflow Management Focusses on processing of digital business/office documents [FrLa03] Manual processes or decision making processes are not considered [FrLa03] Emphasises use of information technology [Böhm00, p. 3] Workflows are business processes combined with IT [Sta97] Intermediate events Timer event

Gateways Utilizate pentru: branching, merging, forking, joining, conditional decisions Exclusive gateways (XOR) = decizii – numai o cale posibila Mecanisme de decizie: date (eg expresii conditionale) evenimente (eg receptia unui mesaj) Inclusive gateways (OR) = utilizate ca fork = mai multe iesiri posibile; utilizate ca merge, sincronizeaza fluxuri de intrare dar nu asteapta Complex gateways = utilizate ca merge = expresia determina care flux de intrare este necesar pentru a continua Parallel gateways (AND) = fork sau merge pt. mai multe cai paralele; folosita ca sincronizare (wait for) a cailor paralele de intrare

(2) Connecting Objects Sequence flow = ordinea activitatilor intr-un proces Message flow = fluxul de mesaje intre 2 participanti diferiti la proces Association = asociaza date, text sau alte artefacte cu flow objects Asocierile sunt utilizate pentru a arata intrarile si iesirile activitatilor

Exemplu Exclusive gateway (date) Sequence flow

(3) Swimlanes Pool = reprezinta un participant la un process Nume Pool = reprezinta un participant la un process Grupeaza activitati in B2B; 2 entitati/participanti Lane = sub-partitie intr-un Pool Folosesc la organizarea si clasificarea activitatilor Nume Nume Nume

Exemplu Pool Pool

(4) Artifacts Data objects = arata datele necesare producerii unei activitati Sunt conectate la activitati prin asociatii Group = utilizat pentru documentare sau analiza Nu afecteaza fluxul de activitati Annotation = text suplimentar Nume[Stare] Adnotare cu text

Exemplu Data object Lanes Group Annotation

BPD - rezumat Elemente din BPDiagram

BPMN - orchestrare Orchestrarea – procese interne intr-o aceeasi organizatie Procesele sunt continute intr-un singur Pool Exclusive gateway (data) Parallel gateway

BPMN - coreografie Coreografia – procese care se petrec in mai multe organizatii si interactiunea intre ele Procesele fiecarei organizatii sunt continute in Pools diferite

BP la nivel general Modelarea - ierarhic, la diferite niveluri de detaliere

BP detaliat

Exemplu de modelare a unui proces Expense reimbursment process = decontarea cheltuielilor unor angajati intr-o organizatie Informatii despre proces Dupa depunerea decontului de cheltuieli (Expense Report) se creaza un nou cont (bancar) daca angajatul nu are deja unul Decontul este apoi trimis automat pentru aprobare daca suma este sub $200 atunci aprobarea este automata daca suma este egala sau mai mare cu $200 atunci necesita aprobarea supervizorului In caz de respingere, angajatul primeste o notificare prin email Daca a fost aprobat cu succes, suma este depusa in contul angajatului Daca nu se intampla nici o actiune in 7 zile, angajatul primeste un email "approval in progress" Daca cererea nu este rezolvata in 30 de zile, atunci procesul se opreste si angajatul primeste un email prin care este notificat de acest lucru (cancellation) si trebuie sa depuna din nou decontul

BPMN - Expense reimbursment process

Meta-modelul UML al BPMN

Produse BPMN TIBCO Business Suite – permite modelarea proceselor si "deployment" pe TIBCO iProcess Engine BPMN iServer pt Microsoft Visio SPARX Systems Enterprise Architect – UML 2.01 si BPMN Intalio BPMS WebSphere Business Modeler – vezi Demo

TIBCO Business Suite

TIBCO Business Suite

BPEL Poate servi ca un limbaj de executie (procese executabile) si ca un limbaj de descriere (procese abstracte) Un document BPEL utilizeaza XML pentru a descrie urmatoarele aspecte ale BP: partners: o lista de WS invocate ca parte a unui proces containers: utilizate de procese, oferind definitii in termeni de tipuri de mesaje WSDL; sunt necesare pentru a stoca date cu stari si istoria procesului pe baza mesajelor schimbate intre componentele procesului variables: variabilele utilizate care fac parte din proces faultHandlers: routinele de tratare a exceptiilor partners: o lista de WS invocate ca parte a unui proces containers: data containers sunt utilizate de procese, oferind definitii in termeni de tipuri de mesaje WSDL; sunt necesare pentru a stoca date cu stari si istoria procesului pe baza mesajelor schimbate intre componentele procesului variables: variabilele utilizate care fac parte din proces faultHandlers: routinele de tratare a exceptiilor eventHandlers: routinele detratare a evenimentelor externe (asincrone) compensationHandler: compensarea ce trebuie executata daca o tranzactie esueaza correlationSet: precedenta si corelarea intre invocarea WS care nu poate fi exprimata ca parte a procesului logic principal main logic process: o serie de structuri de control imbricate care combina activitati primitive cu algoritmi mai complicati. Structurile de control includ: secventa – executie seriala while – bucla switch – multiway branching - pick – selectia unei alternative pe baza unui eveniment extern flow – executie paralela; daca exista restrictii de executie intre activitatile ce se executa in paralel acestae se indica prin service links

BPEL eventHandlers: routinele de tratare a evenimentelor externe (asincrone) compensationHandler: compensarea ce trebuie executata daca o tranzactie esueaza correlationSet: precedenta si corelarea intre invocarea WS care nu poate fi exprimata ca parte a procesului logic principal main logic process: o serie de structuri de control imbricate care combina activitati primitive cu algoritmi mai complicati. Structurile de control includ: sequence – executie seriala while – bucla switch – multiway branching pick – selectia unei alternative pe baza unui eveniment extern flow – executie paralela partners: o lista de WS invocate ca parte a unui proces containers: data containers sunt utilizate de procese, oferind definitii in termeni de tipuri de mesaje WSDL; sunt necesare pentru a stoca date cu stari si istoria procesului pe baza mesajelor schimbate intre componentele procesului variables: variabilele utilizate care fac parte din proces faultHandlers: routinele de tratare a exceptiilor eventHandlers: routinele detratare a evenimentelor externe (asincrone) compensationHandler: compensarea ce trebuie executata daca o tranzactie esueaza correlationSet: precedenta si corelarea intre invocarea WS care nu poate fi exprimata ca parte a procesului logic principal main logic process: o serie de structuri de control imbricate care combina activitati primitive cu algoritmi mai complicati. Structurile de control include: secventa – executie seriala while – bucla switch – multiway branching - pick – selectia unei alternative pe baza unui eveniment extern flow – executie paralela; daca exista restrictii de executie intre activitatile ce se executa in paralel acestae se indica prin service links

Proces BPEL = WS compus cu o descriere WSDL partners: o lista de WS invocate ca parte a unui proces containers: data containers sunt utilizate de procese, oferind definitii in termeni de tipuri de mesaje WSDL; sunt necesare pentru a stoca date cu stari si istoria procesului pe baza mesajelor schimbate intre componentele procesului variables: variabilele utilizate care fac parte din proces faultHandlers: routinele de tratare a exceptiilor eventHandlers: routinele detratare a evenimentelor externe (asincrone) compensationHandler: compensarea ce trebuie executata daca o tranzactie esueaza correlationSet: precedenta si corelarea intre invocarea WS care nu poate fi exprimata ca parte a procesului logic principal main logic process: o serie de structuri de control imbricate care combina activitati primitive cu algoritmi mai complicati. Structurile de control include: secventa – executie seriala while – bucla switch – multiway branching - pick – selectia unei alternative pe baza unui eveniment extern flow – executie paralela; daca exista restrictii de executie intre activitatile ce se executa in paralel acestae se indica prin service links

Structura BPEL Partner / Role Definitions Process State <partners> … </partners> <variables> … </variables> <correlationSets> … </correlationSets> <faultHandler> … <faultHandler> <compensationHandler> … </compensationHandler> <eventHandler> … </eventHandler> (activities)* </process> activities = <receive>, <reply>, <invoke>, <assign>, <throw>, <terminate>, <wait>, <empty>, <sequence>, <switch>, <while>, <pick>, <flow>, <scope>, <compensation> Instance Matching Transaction management Exception Handling Now let’s look at the structure of a BPEL process and the language elements that allow to control the process flow. We will go into more details shortly. Events Process Flow

Triggere de procese BPEL Extrinsic / Incoming Messages <receive createInstance=“yes”> … </receive> Intrinsic / Time-based <pick> <!-- set an alarm in 3 days and 10 hours --> <onAlarm for="'P3DT10H'"> <!-- handle timeout for order completion --> </onAlarm> </pick>

Activitati BPEL <sequence> <flow> <pick> Serial: <send>, <receive>, <invoke>, <…> Paralel <send>, <receive>, <invoke>, <…> Asteapta pentru unul sau mai multe <receive> sau o alarma

Fluxul de control BPEL <switch> <case /> <otherwise /> </switch> While Wait

Date BPEL Atribuirea variabilelor utilizand XPath 1.0 <assign> <copy> <from variable="AutoLoanRequest" part="creditRating" query="/creditRating/text()"/> <to variable="InterstateCarLoanRequest" part="credit" query="/credit/text()"/> </copy> </assign> Move data from one message to another, transform on during the move, even use for dynamic selection of partner services.

Corelarea mesajelor BPEL <propertyAlias propertyName="orderNumber" messageType="POMessage" part="PO" query="/PO/Order"/> <correlationSets> <correlationSet name="PurchaseOrder" properties="orderNumber"/> </correlationSets> … <receive partnerLink="Buyer" portType="PurchasingPT" operation="AsyncPurchase" variable="PO"> <correlations> <correlation set="PurchaseOrder" initiate="yes"> </correlations> </receive>

Tranzactii BPEL Suport pentru integritatea tranzactiilor <compensationHandler> <invoke partnerLink="Seller" operation="SyncPurchase" …> … operation="CancelPurchase“ …/> </compensationHandler> </invoke> Se apeleaza prin <compensate> <switch> <case …> <compensate/> </case>

Tratarea erorilor in BPEL <faultHandlers> <catchAll> … </catchAll> </faultHandlers> <switch> <case condition= "bpws:getVariableProperty(stockResult,level) > 100"> <throw faultName="OutOfStock"/> </case>

Specificarea unui serviciu compus de “Stock quotation” <process name="simple" targetNamespace="urn:stockQuoter" xmlns:tns="urn:stockQuoter" xmlns:sqp="http://tempuri.org/services/stockquote" xmlns=&BPEL;/> <containers> <container name="request" messageType="tns:request"/> <container name="response" messageType="tns:response"/> <container name="invocationRequest" messageType="sqp:GetQInput"/> <container name="invocationResponse" messageType="sqp:GetQOutput"/> </containers> <partners> <partner name="caller" serviceLinkType="tns:StockQuoteSLT"/> <partner name="provider" serviceLinkType="tns:StockQuoteSLT"/> </partners> <sequence name="sequence"> <receive name="receive" partner="caller" portType="tns:StockQuotePT" operation="wantQuote" container="request" createInstance="yes"/> <assign> <copy> <from container="request" part="symbol"/> <to container="invocationRequest" part="symbol"/> </copy> </assign> <invoke name="invoke" partner="provider" portType="sqp:StockQuotePT" operation="getQuote" inputContainer="invocationRequest" outputContainer="invocationResponse"/> <from container="invocationResponse" part="quote"/> <to container="response" part="quote"/> </copy> </assign> <reply name="reply" partner="caller" portType="tns:StockQuotePT" operation="wantQuote" container="response"/> </sequence> </process>

Meta-modelul (complet) UML al BPEL

Mapare BPMN la BPEL

Produse BPEL OpenStorm Service Orchestrator Microsoft: BizTalk Server 2004, Visio Collaxa IBM WebSphere Process Choreographer Oracle AS, JDeveloper webMethods Eclipse plug-in Oracle: AS and JDeveloper BEA WebLogic 8.1 …

Electronic Business Extensible Markup Language (ebXML) Propus de UN-CEFACT (United Nations Centre for Trade Facilitation and Electronic Business) si OASIS (Organization for the Advancement of Structured Information Standards) Ofera specificatii pentru a defini BP standard, schimbul de mesaje de business si stabilirea contractelor Motivatie: Standard global pentru orice tip de companie Gasirea automata a partenerilor de business

Vocabularul ebXML Unified Modeling Methodology (UMM) UML specializat pentru Business Processes Collaboration Protocol Profile (CPP) Descrie un profil de business, adica ce BP suporta, rolurile din proces, mesajele schimbate, mecanismul de transport pentru mesaje (e.g., HTTPS) Collaborative Partner Agreement (CPA) O intersectie a doua CPP Contract tehnic intre doi sau mai multi parteneri

Proiectarea unui sistem ebXML