320 likes | 427 Views
ebXML CPPA (együttműködési protokoll profil és szerződés) specifikáció. Forrás : Collaboration-Protocol Profile and Agreement Specification, version 2.0 OASIS ebXML Collaboration Protocol Profile and Agreement Technical Committee September 23, 2002
E N D
ebXML CPPA (együttműködési protokoll profil és szerződés) specifikáció • Forrás: • Collaboration-Protocol Profile and Agreement Specification, version 2.0 • OASIS ebXML Collaboration Protocol Profile and Agreement Technical Committee • September 23, 2002 • http://www.oasis-open.org/committees/ebxml-cppa/documents/ebCPP-2_0.pdf 1
ebXML CPPA Bevezetés Amint azt az ebXML Business Process Specification Schema-ban (ebBPSS) meghatározza, az üzleti partner egy olyan egyed, aki üzleti tranzakciókra kötelezi magát más üzleti partnerrel(ekkel). Az üzletfél üzenetváltó képességei egy Collaboration-Protocol Profil-lal (Együttműködési Protokoll Profil, CPP) írhatók le. Két fél között az üzenetváltási szerződés egy Collaboration-Protocol Agreement-tel (Együttműködési protokoll szerződés, CPA) írható le. A CPA létrehozható a két partner CCP-je metszetének kiszámításával. A CPP és a CPA tartalmazza a szállítás, az üzenetváltás, a biztonsági korlátok részleteit, és a kötést egy Business-Process-Specification (Üzleti folyamat specifikáció, vagy röviden Process-Specification) dokumentumhoz, amely a két partner egymásrahatásának definícióját tartalmazza egy bizonyos elektronikus üzleti együttműködésben való elkötelezettség idejére. 2
ebXML CPPA • Az egyes fejezetek tartalma: • a specifikáció célja, • a rendszer átetkintése, • a CPP definíciója, szerkezete, mezői, • a CPA definíciója, • hivatkozott dokumentumok, • megfelelőségi nyilatkozat, • a közreműködő szerzők és a koordinátor szerkesztő kontakt információi. • A függelékek CPP és CPA dokumentum példákat (nem-normatív), egy példa XML BPS-t (nem-normatív), egy XML séma dokumentumot (normatív), két CPP-ből egy CPA összerakási módjának leírását (nem-normatív), a megfelelő ebXML üzenetváltó szolgáltatás és CPA paraméterek összefoglalását és a kifejezések gyűjteményét tartalmazzák. 3
ebXML CPPA Tervezési célok Ezen specifikáció célja az együttműködő-képesség biztosítása két fél között még akkor is, ha különböző alkalmazás szoftvert és futásidejű támogató szoftvert szereznének be különböző eladóktól. A CPP meghatározza a fél üzenetváltó képességeit és az üzleti együttműködést, amit támogat. A CPA meghatározza azt a módot, ahogy a két fél együttműködik a kiválasztott üzleti együttműködés végrehajtásában. Mindkét félnek a CPA azonos másolatát kell használnia a futásidejű rendszereik konfigurálásához. Ennek a specifikációnak egyik célja, hogy a CPA összerakható legyen a két érintett fél megfelelő CPP-je metszeteként. Az eredő CPA csak azokat az elemeket fogja tartalmazni, amelyek közösek, vagy kompatibilisek a két fél között. A változó mennyiségeket, mint pl. a hiba ismétlési számot ezután a két fél megtárgyalja. 4
ebXML CPPA Mit tesz ez a specifikáció A két fél közötti információ cseréhez szükséges, hogy mindegyik fél ismerje a másik fél által támogatott üzleti együttműködéseket, a másik fél szerepét az üzleti együttműködésben, és a technológiai részleteket a másik fél üzenet küldési és fogadási módjáról. Bizonyos esetekben szükséges, hogy a két fél megegyezésre jusson bizonyos részletekben. Az üzleti együttműködés kontexusában a felek információ cseréjének módja a CPP-vel írható le. A felek közötti megállapodást pedig a CPA fejezi ki. A két fél közötti együttműködést meghatározó dokumentum a folyamat-specifikációs (Process-Specification) dokumentum, amely eleget tehet az ebXML Business Process Specification Schema-nak [ebBPSS]. Az 1. ábra a CPP és két folyamat specikációs dokumentum, az A1 és A2 közötti kapcsolatot szemlélteti egy ebXML regiszterben. 5
ebXML CPPA 1. ábra: A CPP és a BPS szerkezete az ebXML regiszterben 6
ebXML CPPA A CPP egy önálló fél képességeit írja le. A CPA azokat a képességeket írja le, amelyekben a két fél megállapodott, hogy azokat egy bizonyos üzleti együttműködés végrehajtása során használja. Ezek a CPA-k meghatározzák az információ technológiai kifejezéseket és feltételeket, melyek lehetővé teszik a két fél közötti üzleti dokumentumok elektronikus cseréjét. Az üzleti szerződések jogi kifejezései és feltételei ezen dokumentum hatáskörén kivül esnek, ezért nincsenek benne a CPP-ben és a CPA-ban. 7
ebXML CPPA • A CPPA specifikáció foglalkozik azzal a szoftverrel, ami a felek részéről levezényli az üzletet az üzenetek váltásával [ebMS]. Nevezetesen az üzleti tranzakciókkal kapcsolatos [ebBPSS] kliens és szerver programokkal, amelyek küldik és fogadják az üzeneteket. Ezek az üzenetek a tartalom részükben hordozzák az üzleti dokumentumokat és/vagy üzleti jelzéseket [ebBPSS]. A CPA kifejezéseivel: • A kliens kapcsolatot kezdeményez a szerverrel. • A kérő (requester) üzleti tranzakciót kezdeményez a válaszolóval (responder). • A küldő (sender) üzenetet küld a fogadónak (receiver). 8
ebXML CPPA Általában egy CPA felei kliens és szerver jellemzőkkel is rendelkezhetnek. A kliens szolgáltatást kér és a szerver szolgáltatást nyújt a szolgáltatást kérő félnek. Bizonyos alkalmazásokban az egyik fél csak szolgáltatást kér, és a másik fél csak szolgáltatást nyújt. Ezek az alkalmazások kissé a hagyományos kliens-szerver alkalmazásokra emlékeztetnek. Más alkalmazásokban mindegyik fél kérhet szolgáltatást a másiktól. Ebben az esetben a két fél közötti kapcsolat inkább peer-peer kapcsolatként, mintsem kliens-szerver kapcsolatként írható le. 9
ebXML CPPA A CPA kialakítása két CPP-ből A 2. ábra egy CPP kialakítását szemlélteti. Az A fél táblázatba foglalja a regiszterben elhelyezendő információt a felderítési folyamathoz, összeállít egy CPP-t, ami tartalmazza ezt az információt és beteszi egy ebXML regiszterbe vagy egy hasonló regiszterbe a félre vonatkozó további információkkal. A kiegészítő információk leírást adhatnak azon üzletekről, melyekben a fél elkötelezett. 10
ebXML CPPA 2. ábra: A CPP áttekintése 11
ebXML CPPA A 3. ábrán az A és B fél a CPP-ik használatával együttesen kialakítják a CPA egyetlen példányát a CPP-ikben lévő információk metszetének kiszámításával. Az eredő CPA meghatározza, hogy a két fél hogyan fog viselkedni az üzleti együttműködésük végrehajtásakor. 12
ebXML CPPA 3. ábra: A CPA áttekintése 13
ebXML CPPA A 4. ábra a teljes eljárást szemlélteti. A folyamat végén a két fél a megállapodott CPA azonos másolatai alapján konfigurálják rendszereiket és készek az üzletelésre. 14
ebXML CPPA 4. ábra: A CPP/CPA működő architektúra áttekintése az ebXML regiszterrel 15
ebXML CPPA • Bármely fél bejegyezheti CPP-jét az ebXML regiszterbe. • A B fél felfedezi az A kereskedő partnert (eladó) a regiszterben való kereséssel és letölti a CPP(A)-t a B fél szerverére. • A B fél létrehozza a CPA(A,B)-t és elküldi azt az A félnek. • Az A és B fél tárgyal és a végleges CPA azonos másolatait dokumentumként mindkét szerveren tárolják. Ez a folyamat kézzel és automatikusan is végezhető. • Az A és B fél konfigurálják futásidejű rendszereiket a CPA-ban lévő információknak megfelelően. • Az A és B fél az új CPA alapján üzletelnek. 16
ebXML CPPA A CPA kialakítása egy CPA sablonból A CPA létrehozásához akár egy CPA sablont is használhatunk. A CPA sablon egy fél „töltsd ki az üres helyeket” javaslatát képviseli egy jövőbeli kereskedő partnernek egy vagy több üzleti folyamat implementálására. A CPA működése A CPA leírja az összes érvényes látható és ennélfogva megerősíthető műveletet a felek között és azt a módot is, ahogy ezek a műveletek végrehajtódnak. Ez független a felek által végrehajtott belső folyamatoktól. Mindegyik fél a saját belső folyamatait hajtja végre és közvetíti („interfészeli”) azokat az üzleti együttműködésnek (Business Colllaboration), melyet a CPA és a folyamat specifikációs (Process-Specification) dokumentum ír le. A CPA nem tár fel a fél belső folyamatairól részleteket a másik fél számára. 17
ebXML CPPA A folyamat specifikációs dokumentum többek között meghatározza mindenegyes üzleti tranzakció kérés és válasz üzenetét és azt a sorrendet, ahogy az üzleti tranzakciónak meg kell történnie. A részletes magyarázatot lásd az [ebBPSS]-ben. Mindig új párbeszéd indul, amikor egy új üzleti egységet kezdünk. Az üzleti együttműködés meghatározza a párbeszéd végét is. Az A fél és a B fél közötti CPA szemszögéből a párbeszéd az A félnél akkor kezdődik, amikor az A fél elküldi az első kérés üzenetet a B félnek. A B félnél a párbeszéd akkor kezdődik, amikor megkapja az üzleti egység első kérését az A féltől. A párbeszéd akkor fejeződik be, amikor az üzleti egységet a felek teljesítették. 18
ebXML CPPA Hol implementálható a CPA? Elvileg a mindkét félnél lévő B2B (Business-to-Business) szerver implementálja a CPA-t és a folyamat specifikációs dokumentumot. A B2B szerver tartalmazza a futásidejű szoftvert, azaz azt a middleware-t, amely támogatja a kommunikációt a másik féllel, a CPA-ban specifikált funkciók végrehajtását, az interfészelést mindkét fél háttér folyamataival és a két fél közötti interakciók naplózását pl. az ellenőrzés és a helyreállítás céljaira. Definíciók és hatáskörük Ez a specifikáció meghatározza és megmagyarázza a CPP és a CPA XML dokumentumok tartalmát. Nem határozza meg sem a CPA összerakását két CPP-ből, sem a CPP és a CPA futásidejű támogatásával kapcsolatos dolgokat. De tartalmaz bizonyos nem-normatív javaslatokat és ajánlásokat a CPA-nak két CPP-ből való összerakására és a futásidejű támogatás vonatkozásában, amennyiben ezek a megjegyzések a CPP és a CPA meghatározások tisztázását szolgálják. 19
ebXML CPPA CPP definició A CPP meghatározza egy fél képességeit, hogy más felekkel elektronikus üzletelést folytasson. Ezek a képességek a technológiai képességeket, mint a támogatott kommunikációs és üzenetváltó protokollok és az üzleti képességeket a támogatott üzleti együttmüködésekkel kifejezve magukban foglalják. Ez a fejezet meghatározza és megtárgyalja a CPP részleteit önálló XML elemekkel kifejezve. A tárgyalást néhány XML részlettel szemléltetjük. A D. függelék XML sémát, az A. függelék pedig példa CPP dokumentumot tartalmaz. Process-Specification layer – a Process-Specification réteg a felek közötti üzleti szerződés szívét határozza meg: azokat a szolgáltatásokat (üzleti tranzakciókat), melyeket a felek a CPA-hoz egymástól megkövetelhetnek, és azokat az átviteli szabályokat, amelyek a kérések sorrendjét határozzák meg. Ezt a réteget egy különálló Process-Specification dokumentáció határozza meg, melyre a CPP és a CPA hivatkozik. 20
ebXML CPPA Delivery Channels (kézbesítő csatornák) – a kézbesítő csatorna leírja a fél üzenetfogadó és üzenetküldő jelegzetességeit. Ez egy dokumentum-váltó és egy szállítási definicióból áll. Egy CPP-ben számos kézbesítő csatorna definiálható. Document-Exchange Layer – a dokumentum-csere réteg az üzleti dokumentumok feldolgozását határozza meg az üzenetváltó funkcióval. A specifikált tulajdonságok között vannak a titkosítás, a digitális aláírás és a megbízható üzenetváltás jellemzői. A dokumentum-csere rétegben kiválasztott opciók a szállítási rétegben kiválasztott opciók kiegészítői. Transport layer – a szállítási réteg meghatározza az üzenetek hálózaton való küldésére használt szállítási protokollt, és meghatározza a végpont címeket, a szállítási protokoll egyéb más tulajdonságaival együtt. A szállítási rétegben a tulajdonságok választása kiegészíti a dokumentum csere rétegben lévőket (lásd az előző bekezdést). 21
ebXML CPPA A CPP példa dokumentum globálisan egyedi azonosítója Amikor egy CPP-t elhelyezünk egy ebXML vagy más regiszterben, akkor a regiszter hozzárendel egy globálisan egyedi azonosítót (Globally Unique Identifier, GUID), amely metaadatának része. Ez a GUID használható az ugyanazon félhez tartozó CPP-k megkülönböztetésére. A CPP struktúrája A CPP átfogó struktúrája a következő. Hacsak másként nem jelezzük, a CPP elemeinek az alábbi sorrendben kell lenniük. cpp-example.xml 22
ebXML CPPA • A CollaborationProtocolProfile elem • A CollaborationProtocolProfile elem a CPP XML dokumentum gyökér eleme. Az alap dokumentumhoz szükséges XML [XML] Namespace (névtér) [XMLNS] deklarációk a következők: • A CPP/CPA névtér: • xmlns:tp=”http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-2_0.xsd”, • Az XML digitális aláírás névtér: xmlns:ds=”http://www.w3.org/2000/09/xmldsig#”, • és az XLink névtér: xmlns:xlink=”http://www.w3.org/1999/xlink”. 23
ebXML CPPA • A CollaborationProtocolProfile elem a következő gyerek elemekből áll: • Egy vagy több PartInfo elem szükséges a szervezet (vagy a szervezet részeinek) azonosítására, melynek képességeit leírja a CPP, • Egy vagy több SimplePart elem szükséges, ami leírja az összetett üzenetek összeállításához használt alkotóelemeket, • Egy vagy több Packaging elem szükséges, ami leírja, hogy az átvitelhez hogyan csomagoljuk be az üzenet fej és a tartalom alkotóelemeket, • Nulla vagy egy Signature elem, ami a digitális aláírást tartalmazza, ami a CPP dokumentumot aláírja, • Nulla vagy több Comment elem. 24
ebXML CPPA • A PartyInfo elem • A PartyInfo elem azonosítja a szervezetet, akinek képességeit ebben CPP-ben írjuk le és tartalmaz erről a félről minden részletet. Egynél több PartyInfo elem is megadható a CPP-ben, ha a szervezet magát különböző karakterisztikájú alosztályokként kívánja magát bemutatni. A PartyInfo alelemeit később tárgyaljuk. A PartyInfo elem átfogó szerkezete a következő: • cpp-example.xml • A PartyInfo elemnek tartalmaznia kell a defaultMshChannelId és a defaultMshPackageId tulajdonságokat is. • A PartyInfo elem a következő gyerek elemekből áll: • Előírásszerűen egy vagy több PartyId elemet, ami logikai azonosítókat biztosít a szervezet számára. • Előírásszerűen egy vagy több PartyRef elemet, ami pointereket biztosít a fél további információihoz. 25
ebXML CPPA • Előírásszerűen egy vagy több CollaborationRole elemet, ami azonosítja azokat a szerepeket, melyeket ez a fél a folyamat specifikáció szerint játszhat. • Előírásszerűen egy vagy több Certificate elemet, ami azonosítja azokat a bizonyítványokat, melyeket ez a fél a biztonsági műveletek során használ. • Előírásszerűen egy vagy több SecurityDetails elemet, ami azonosítja a bizalmi biztosítékokat és kijelöli a biztonsági politikát, amit ez a fél a biztonsági műveletek során használ. • Előírásszerűen egy vagy több DeliveryChannel elemet, ami meghatározza azokat a jellegzetességeket, amit a fél az üzenetek küldésénél és/vagy fogadásánál használni tud. Ez magába foglalja mind a szállítási protokollt (pl. HTTP), mind az üzenetváltási protokollt (pl. ebXML Message Service). • Előírásszerűen egy vagy több Transport elemet, ami meghatározza azon szállítási protokollok jellegzetességeit, amit a fél az üzenetek küldésénél és/vagy fogadásánál használni tud. 26
ebXML CPPA Előírásszerűen egy vagy több DocExchange elemet, ami meghatározza az üzenetváltás jellegzetességeit, mint pl. az aláírási és titkosítási protokollok, amiket a fél támogatni tud. Nulla vagy több OverrideMshActionBinding elemet, ami kijelöli a DeliveryChannel-t, amit az aszinkron módon kézbesített Message Service Handler szintű üzenetekhez használ. PartyId elem Az előírt PartyId elem egy azonosítót biztosít, amelyet a fél logikai azonosítására használunk. Ugyanazon PartInfo elem alatt jelen lehetnek további PartyId elemek, amelyek így a fél alternatív logikai azonosítását szolgálják. Ha a fél a logikai azonosítók használatára prefernciát kíván adni, akkor a PartyId elemeket a pereferencia sorrendjében, a legpreferáltabbal kezdve kell felsorolni. A következő dokumentum az elnevező ügynökségeket ismerteti és hogy hogyan vannak azonosítva a type attribútum URI értékeivel: http://www.oasis-open.org/committees/ebxml-cppa/documents/PartyID_Types.shtml 27
ebXML CPPA • A PartyRef elem • A PartyRef elem URI formában kapcsolatot biztosít a fél további információihoz. Szokásosan ez egy URL, ahonnan az információ beszerezhető. Az információ lehet a fél webhelyén, vagy nyilvánosan hozzáférhető tárház, mint egy ebXML regiszter, egy UDDI tárház (www.uddi.org), vagy egy Lightweight Directory Access Protocol [RFC2251] (LDAP, könnyűsúlyú katalógus elérési protokoll) katalógus. Az azon az URI-n elérhető információ tartalmazhat kontakt információkat, mint a nevek, címek és telefonszámok, vagy kontext információkat, mint a földrajzi helyszínek és ipari szegmensek, vagy talán további információkat a fél által támogatott üzleti együttműködésekről. • A PartyRef elem egy egyszerű link [XLINK]. A következő tulajdonságai vannak: • rögzített xlink:type attribútum, • előírt xlink:href attribútum, • implikált type attribútum, • implikált schemaLocation attribútum. 28
ebXML CPPA xlink:type attribútum A rögzített xlink:type attribútum értéke „simple”. Ez az elemet egyszerű kapcsolatként [XLINK] határozza meg. xlink:href attribútum A szükséges xlink:href attribútum értéke egy olyan URI, amely megfelel az [RFC2396]-nak és a félre vonatkozó külső információ helyét azonosítja. type attribútum Az implikált type attribútum értéke a félre vonatkozó külső információ dokumentum típusát azonosítja. Ennek URI-nak kell lennie, amely meghatározza a félre vonatkozó információval kapcsolatos névteret. schemaLocation attribútum Az implikált schemaLocation attribútum egy URI-t biztosít a külső információ szerkezetét leíró sémához. 29
ebXML CPPA CollaborationRole elem A CollaborationRole elem a félhez egy bizonyos szerepet rendel az üzleti együttműködésben. A folyamat specifikáció általában a szerepek, mint a „vevő” és az „eladó” kifejezésekkel van meghatározva. Annak jelzésére, hogy a fél egynél több üzleti együttműködésben képes szerepet játszani vagy egynél több szerepet egy adott üzleti együttműködésben, a PartyInfo elemnek egynél több CollaborationRole elemet kell tartalmaznia. ProcessSpecification elem A ProcessSpecification elem kapcsolatot biztosít a folyamat specifikációs dokumentumhoz, amely a két fél közötti együttműködést határozza meg. Ajánlatos, hogy a üzleti együttműködési dokumentum leírása az ebXML Business Process Specification Schema-nak [ebBPSS] megfelelően készüljön. A CPA-ban az érintett elemek a következők: Role, CanSend, CanReceive, ActionContext elemek és a BusinessTransactionCharacteristics elem bizonyos tulajdonságai. 30
ebXML CPPA • A ProcessSpecification elemnek nulla vagy több ds:Reference gyereke és a következő tulajdonságai vannak: • előírt name tulajdonság, • előírt version tulajdonság, • rögzített xlink:type tulajdonság, • előírt xlink:href tulajdonság, • implikált uuid tulajdonság. 31
ebXML CPPA E 32