500 likes | 904 Views
Grenoble Ecole de Management MEDFORIST Workshop ebXML Asuman Dogac Middle East Technical University Ankara Turkey Electronic Business XML (ebXML) Electronic Business XML is an initiative from OASIS and United Nations Centre for Trade Facilitation and Electronic Business
E N D
Grenoble Ecole de ManagementMEDFORIST WorkshopebXML Asuman Dogac Middle East Technical University Ankara Turkey Grenoble Ecole de Management MEDFORIST Workshop
Electronic Business XML (ebXML) • Electronic Business XML is an initiative from OASIS and United Nations Centre for Trade Facilitation and Electronic Business • ebXML aims to provide the exchange of electronic business data in Business-to-Business and Business-to-Customer environments • The ebXML specifications provide a framework in which EDI's substantial investments in Business Processes can be preserved in an architecture that exploits XML's technical capabilities Grenoble Ecole de Management MEDFORIST Workshop
ebXML • A joint global initiative by • UN/ CEFACT – United Nations Center For Trade Facilitation And Electronic Business • OASIS – Organization for the Advancement of Structured Information Standards • United Nations Center for Trade Facilitation and Electronic Business • Sets worldwide policy and technical development in trade facilitation and electronic business • Developed international EDI standard, UN/ EDIFACT • The initiative leverages from the success of EDI in large businesses, and intends reaching small and medium enterprises Grenoble Ecole de Management MEDFORIST Workshop
ebXML Architecture’s functional components • Business Process Specification Schema (BPSS) • Trading Partner Information • Collaboration Protocol Profile CPP • Trading Partner Agreement • Collaboration Protocol Agreement CPA • Registry/Repository • Messaging Service • Core Components Grenoble Ecole de Management MEDFORIST Workshop
An Overview of Functional Components in ebXML ContextFor ebXML Business Process Specifications Business Document Specification ebXML Core Components BuiltWith ReferenceTo Repository Implement other Partner Role Implement one Partner Role Business Service Interface Business Service Interface CPP CPA CPP Grenoble Ecole de Management MEDFORIST Workshop
Registry/Repository • A registry is a mechanism where business documents and relevant metadata can be registered such that a pointer to their location, and their metadata can be retrieved as a result of a query • A registry can be established by an industry group or standards organization • A repository is a location (or a set of distributed locations) where a document pointed at by the registry reside and can be retrieved by conventional means (e.g., http or ftp) Grenoble Ecole de Management MEDFORIST Workshop
ebXML Registry/Repository • An ebXML Registry provides a set of services that manage the repository and enable the sharing of information between trading partners • Note that business Processes, CPPs, business document descriptions and core components are published and retrieved via ebXML Registry Services • A trading partner may discover other trading partners by searching for the CPPs in the registry • The ebXML Messaging Service is used as the transport mechanism for all communication into and out of the Registry Grenoble Ecole de Management MEDFORIST Workshop
Industry specialist BPS Business Modeling CPP Registry/ Repository Business Manager Business Docs Software Construction Enterprise Deployement ebXML system ebXML Design Software developer Grenoble Ecole de Management MEDFORIST Workshop
ebXML Registry/Repository • A Registry Item identifies and describes its associated information, • gives its administrative and access status, • identifies the submitting and responsible organizations, and • classifies them according to pre-defined classification schemes • In ebXML, for each item in the registry, there is a universally unique identifier • Note that queries are sent as messages to the registry which provides implementation independent execution of a query Grenoble Ecole de Management MEDFORIST Workshop
The Collaboration Protocol Profile (CPP) • The Collaboration Protocol Profile (CPP) provides the definition (DTD and W3C XML Schema) of an XML document that specifies the details of how an organization is able to conduct business electronically • The Collaboration Protocol Profile (CPP) is an XML document that specifies: • Contact information (business address, industry classification, etc.) • Supported business processes • Transport protocol • Security mechanisms Grenoble Ecole de Management MEDFORIST Workshop
A part of an Example CPP <?xml version="1.0" encoding="UTF-8" ?>-<CollaborationProtocolProfile cpaid="54113">-<PartyInfo> <PartyId type="uriReference">urn:www.srdc.com </PartyId> <PartyRefhref="" type="simple" />- <CollaborationRole id="CRBuyer1"> <ProcessSpecificationhref="buysell_BPS" name="REQUEST_PriceandAvailability" type="simple" version="1.0" /> <Rolehref="buysell_BPS#Customer" name="Customer" type="simple" /> Grenoble Ecole de Management MEDFORIST Workshop
An example Transport Entry in CPP for a buyer <Transport transportId = "buyerid001"> <SendingProtocol>HTTP</SendingProtocol> <ReceivingProtocol> FTP </ReceivingProtocol> <Endpoint uri = "https://www.buyername.com/ po-response" type = "allPurpose"/> <TransportSecurity> <Protocol version = "1.0">TLS</Protocol> <CertificateRef certId = certid001">BuyerName</CertificateRef> </TransportSecurity> </Transport> Grenoble Ecole de Management MEDFORIST Workshop
An example Transport Entry in CPP for a seller <Transport transportId = "sellid001"> <SendingProtocol>FTP</SendingProtocol> <ReceivingProtocol> HTTP </ReceivingProtocol> <Endpoint uri = "https://www.sellername.com/ os_here" type = "allPurpose"/> <TransportSecurity> <Protocol version = "3.0">SSL</Protocol> <CertificateRef certId ="certid002">Sellername</CertificateRef> </TransportSecurity> </Transport> Grenoble Ecole de Management MEDFORIST Workshop
Collaboration Protocol Agreement (CPA) • The Collaboration Protocol Agreement (CPA) specifies the details of how two organizations have agreed to conduct business electronically • It is formed by combining the CPPs of the two organizations • The information in the CPA is used to implement Business Service Interfaces (BSI) to enable exchange of Messages with trading parties • The ebXML Message Service Handler is used to implement the exchange of messages Grenoble Ecole de Management MEDFORIST Workshop
Role Role Packaging Packaging match Transport Transport match match Collaboration Protocol Agreement • Basic Tasks: CPP of Company A CPP of Company B Grenoble Ecole de Management MEDFORIST Workshop
Configuring CPA: Matching Business Processes and the Roles • ebXML mandates CPPs to reference the same BP document in order to create a CPA • If BP references are NOT same • Structural matching of BP documents performed prior to Role matching • Matching transitions between Binary Collaborations as specified in Multiparty Collaboration • Roles should be complementary • ex : Buyer & Seller in Request Purchase Order PIP Grenoble Ecole de Management MEDFORIST Workshop
Configuring CPA: Matching Transport <Transport transportId = "buyerid001"> <SendingProtocol>HTTP</SendingProtocol> <ReceivingProtocol> FTP </ReceivingProtocol> <Endpoint uri = "https://www.buyername.com/ po-response" type = "allPurpose"/> …</Transport> --------------------------------------------------------------------------------- <Transport transportId = "sellid001"> <SendingProtocol>FTP</SendingProtocol> <ReceivingProtocol> HTTP </ReceivingProtocol> <Endpoint uri = "https://www.sellername.com/ os_here" type = "allPurpose"/> …</Transport> Grenoble Ecole de Management MEDFORIST Workshop
Configuring CPA: Matching Transport Security <Transport transportId = "buyerid001"> …. <TransportSecurity> <Protocol version = "1.0">TLS</Protocol> <CertificateRef certId = certid001">BuyerName </CertificateRef> </TransportSecurity> </Transport> ------------------------------------------------------------ <Transport transportId = "sellid001"> … <TransportSecurity> <Protocol version = "3.0">SSL</Protocol> <CertificateRef certId ="certid002">Sellername </CertificateRef> </TransportSecurity> </Transport> Grenoble Ecole de Management MEDFORIST Workshop
Configuring CPA: Matching Document Packaging • ebXML message payloads are packaged using the MIME multipart/related content type • Matching by structural comparison is performed • MIME types of the SimplePartelements of corresponding subtrees should match • CompositeListmatched in MIME types and in sequence of composition • Matching Document Level Security is difficult to do automatically due to several radically different approaches to document-level security Grenoble Ecole de Management MEDFORIST Workshop
Configuring CPA: Matching Business Processes and the Roles • ebXML mandates CPPs to reference same BP document in order to create a CPA • If BP references are NOT same • Structural matching of BP documents performed prior to Role matching • Matching transitions between Binary Collaborations as specified in Multiparty Collaboration • Roles should be complementary • ex : Buyer & Seller in Request Purchase Order PIP Grenoble Ecole de Management MEDFORIST Workshop
Configuring CPA: Matching Document Packaging • ebXML message payloads are packaged using the MIME multipart/related content type • Matching by structural comparison is performed • MIME types of the SimplePartelements of corresponding subtrees should match • CompositeListmatched in MIME types and in sequence of composition • Matching Document Level Security is difficult to do automatically due to several radically different approaches to document-level security Grenoble Ecole de Management MEDFORIST Workshop
Business Process Specification Schema (BPSS) • Business Process Specification Schema (BPSS) The Specification Schema provides the definition of an XML document (in the form of an XML DTD) that describes how an organization conducts its business • While the CPA/CPP deals with the technical aspects of how to conduct business electronically, the Specification Schema deals with the actual business process Grenoble Ecole de Management MEDFORIST Workshop
Business Process Specification Schema (BPSS) • A Business Process specifies the sequence of exchanging business data with other Trading Partners • Business Processes are capable of expressing the following types of information: • Choreography for the exchange of document instances (for example, the choreography of necessary Message exchanges between two Trading Partners executing a "Purchasing" ebXML transaction) • References to Business Process and Business Documents (possibly DTD's or Schemas) that add structure to business data • Definition of the roles for each participant in a Business Process Grenoble Ecole de Management MEDFORIST Workshop
Business Process Specification Schema (BPSS) • The sequence of exchanging business data • Contains: • Choreography for the exchange • References Business Documents (possibly DTD's or Schemas) • Definition of the roles for each participant in a Business Process Grenoble Ecole de Management MEDFORIST Workshop
Core Components • A core component is a common or "general" building block that basically can be used across business sectors • The ebXML Core Components specification defines an initial set of Core Components like date, address or order details • ebXML users may adopt and/or extend components from the ebXML Core Library • Components can be built together into aggregates Grenoble Ecole de Management MEDFORIST Workshop
ebXML Messaging Service • A standard way to exchange messages reliably and securely • Could be SMTP, HTTP, or FTP • ebXML Message Packing Structure: • SOAP with MIME Attachments Grenoble Ecole de Management MEDFORIST Workshop
Communication Protocol Envelope (HTTP, SMTP, …) SOAP with attachments MIME Envelope MIME Part SOAP Envelope SOAP Header ebXML message header Etc. MIME Part(s) Payloads (Business Documents) ebXML Message Structure Grenoble Ecole de Management MEDFORIST Workshop
ebXML Messaging Service • An ebXML Message consists of an optional transport protocol specific outer envelope which contains a protocol independent ebXML Message Envelope as its payload • The ebXML Message Envelope is packaged using the MIME multipart/related content type • MIME is used as a packaging solution because of the diverse nature of information exchanged between Partners in eBusiness environments • For example, a complex Business Transaction between two or more Trading Partners might require a payload that contains an array of business documents (XML or other document formats), binary images, or other related Business Information Grenoble Ecole de Management MEDFORIST Workshop
ebXML Message Processing • Security Services - digital signature creation and verification, authentication and authorization • These services may be used by other components of the MSH including the Header Processing and Header Parsing components • Reliable Messaging Services - handles the delivery and acknowledgment of ebXML Messages sent with delivery Semantics of "Once And Only Once“ • The service includes handling for persistence, retry, error notification and acknowledgment of messages requiring reliable delivery Grenoble Ecole de Management MEDFORIST Workshop
What it takes a company to become ebXML compliant? • Registering to an ebXML registry: • Business Processes • Collaboration Protocol Profiles • Business Documents Grenoble Ecole de Management MEDFORIST Workshop
Company A 1 Request Business Details ebXML Registry 2 Build Local System 3 Register Company Information 5 Download Scenarios and Profiles 6 Agree on Business Arrangements 4 Query about Company A 7Do Business Transactions! Company B ebXML compliant system Grenoble Ecole de Management MEDFORIST Workshop
Comments on ebXML • The ebXML components may be used somewhat independent: they are only loosely related • The elements of the infrastructure may interact with each other, but in most cases are not required to • The messaging services may be used completely independently, although a message header may contain a reference to a CPA • The CPA and CPP provide means to identify a Business Process Specification governing how the parties do business and parameters for using the ebXML messaging service, but these are both optional and are not required Grenoble Ecole de Management MEDFORIST Workshop
ebXML • The Business Process Specification may specify how services offered by the messaging service (such as signaling acknowledgments or requesting digital signatures) are used in the conduct of a business process, but these also are not required • The CPP, CPA, and Business Process Specifications may be stored in an ebXML compliant registry, but this is not required • An ebXML compliant Registry may store any type of object, including non-XML objects • However, all communications with the registry must use the ebXML messaging service Grenoble Ecole de Management MEDFORIST Workshop
ebXML Registry Information Model (RIM) RegistryObject ClassificationNode Classification RegistryEntry Association ClassificationScheme RegistryPackage ExtrinsicObject Service Grenoble Ecole de Management MEDFORIST Workshop
ebXML Summary and Implementation Status • Through ebXML it is possible to automate public business processes although how to form the CPAs automatically have been partially attacked yet! • Currently ebXML compliant registries are available, for example, OASIS ebXML Registry Reference Implementation Project (ebxmlrr), http://ebxmlrr.sourceforge.net/ • ebXML messaging has been implemented by several companies Grenoble Ecole de Management MEDFORIST Workshop
How to Exploit Web Services Semantics through ebXML? Grenoble Ecole de Management MEDFORIST Workshop
ReserveAFlight originatingFrom destinationTo paymentMethod Exploiting semantics TravelService Accommodation Service Transportation Service Entertainment Service ? AirTransportation • In relating the semantics with the services advertised in service registries, there are two key issues: • Where to store the generic semantics of the services • How to relate the services advertised in the registry with the semantic defined through an ontology ReserveAFlight BuyATicket originatingFrom destinationTo paymentMethod ? MyService Grenoble Ecole de Management MEDFORIST Workshop
Where to store the generic semantics of the services? • An ebXML registry allows to define semantics basically through two mechanisms: • It allows properties of registry objects to be defined through “slots” and, • Metadata can be stored in the registry through a “classification” mechanism Grenoble Ecole de Management MEDFORIST Workshop
ReserveAFlight originatingFrom destinationTo paymentMethod How to relate MyService to a generic service class? MyService Relating a Web service Advertised with Service Ontology Grenoble Ecole de Management MEDFORIST Workshop
ServiceToIndustryClassification: Classification classificationNode classsifiedObject MyService: Registry Entry ReserveAFlight: ClassificationNode Relating a Web service Advertised with Service Ontology in ebXML Grenoble Ecole de Management MEDFORIST Workshop
How to relate services advertised with the generic ontology classes? • By relating a service advertised with a node in classification hierarchy, we make the service an explicit member of this node • The service also inherits the well-defined meaning associated with this node as well as the generic properties defined for this node • When we associate “MyService” with “ReserveAFlightService”, its meaning becomes clear; that this service is a flight reservation service • Assuming that the “ReserveAFlightService” service has the generic properties such as “originatingFrom”, “destinationTo” and “paymentMethod”, “MyService” also inherits these properties Grenoble Ecole de Management MEDFORIST Workshop
“SubmitObjectRequest” which declares the semantic of “MyReserveAFlightService” and relates it with the “ReserveAFlightService” <?xml version = '1.0' encoding = 'UTF-8'?> <SubmitObjectsRequest > <rim:LeafRegistryObjectList> <rim:ClassificationNode id = 'ReserveAFlightService' parent= 'CS' > <Slot name = 'originatingFrom' slotType= 'StringList'>…</Slot> <Slot name = 'destinationTo' slotType= 'StringList' > …</Slot> <Slot name = 'paymentMethod' slotType= 'StringList' >…</Slot> </rim:ClassificationNode> Grenoble Ecole de Management MEDFORIST Workshop
An Example “SubmitObjectRequest” (Cont’d) <Service id="MyReserveAFlightService"> <Name> <LocalizedString lang="en_US" value = "ReserveAFlightService"/> </Name> <Slot name = 'originatingFrom'> <ValueList> <Value>Istanbul </Value> </ValueList> </Slot> <Slot name = 'destinationTo'> <ValueList> <Value> New York</Value> </ValueList> </Slot> <Slot name = 'paymentMethod'> <ValueList> <Value> Credit Card </Value> </ValueList> </Slot> Grenoble Ecole de Management MEDFORIST Workshop
An Example “SubmitObjectRequest” (Cont’d) <ServiceBinding accessURI="http://www.sun.com/ebxmlrr/registry/nameSpaceIndexer"> <SpecificationLink specificationObject="wsdl"> </SpecificationLink> </ServiceBinding> </Service> <ExtrinsicObject id="wsdl" mimeType="text/xml"> </ExtrinsicObject> <Classification classificationNode="ReserveAFlightService“ ClassifiedObject= "MyReserveAFlightService" /> </rim:LeafRegistryObjectList> </SubmitObjectsRequest> Grenoble Ecole de Management MEDFORIST Workshop
Service Composition: Travel Service Example Grenoble Ecole de Management MEDFORIST Workshop
An AdhocQueryRequest to return “ReserveAFlightService” as a composite object including the slots <?xml version = "1.0" encoding = "UTF-8"?> <AdhocQueryRequest xmlns = "urn:oasis:names:tc:ebxml-regrep:query:xsd:2.0" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation = "urn:oasis:names:tc:ebxml-regrep:query:xsd:2.0 query.xsd"> <ResponseOption returnType = "LeafClass" returnComposedObjects = "true"/> <FilterQuery> <RegistryObjectQuery> <NameBranch> <LocalizedStringFilter> <Clause> <SimpleClause leftArgument = "value"> <StringClause stringPredicate = "Equal"> ReserveAFlightService</StringClause> </SimpleClause> </Clause> </LocalizedStringFilter> </NameBranch> </RegistryObjectQuery> </FilterQuery> </AdhocQueryRequest> Grenoble Ecole de Management MEDFORIST Workshop
User Interface Grenoble Ecole de Management MEDFORIST Workshop
A Filter Query Retrieving all the services classified by ReserveAFlightService Node and Originating from Istanbul <AdhocQueryRequest > <ResponseOption returnType = "LeafClass" returnComposedObjects = "true" /> <FilterQuery> <ServiceQuery> <ClassifiedByBranch> <ClassificationNodeQuery> <NameBranch> <LocalizedStringFilter> <Clause> <SimpleClause leftArgument = "value"> <StringClause stringPredicate = "Equal">ReserveAFlightService </StringClause> </SimpleClause> </Clause> </LocalizedStringFilter> </NameBranch> </ClassificationNodeQuery> </ClassifiedByBranch> <SlotBranch> <SlotFilter> <Clause> <SimpleClause leftArgument = "name_"> <StringClause stringPredicate = "Equal"> originatingFrom</StringClause> </SimpleClause> </Clause> </SlotFilter> <SlotValueFilter> <Clause> <SimpleClause leftArgument = "value"> <StringClause stringPredicate = "Contains"> Istanbul</StringClause> </SimpleClause> </Clause> </SlotValueFilter> </SlotBranch> … </ServiceQuery> </FilterQuery> </AdhocQueryRequest> Grenoble Ecole de Management MEDFORIST Workshop
Thank you for your attention! Grenoble Ecole de Management MEDFORIST Workshop