%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% Perth Linux User Group (PLUG) %% %% PRESENTATION %% %% Date: September 9th, 2003 %% Time: 19.30 %% Venue: Lecture Theatre TAFE CMC - 25 Aberdeen St, Perth %% %% Author: Sacha Schlegel %% %% todo: - add sample of EDI message %% todo: - somewhere/something about consumer behaviour %% %include default.mgp %default 1 bgrad %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page Welcome %center %size 7 PLUG (Perth Linux User Group) seminar: ebXML introduction Perth, September 9th, 2003 %size 3 @ Lecture Theatre TAFE CMC - 25 Aberdeen St, Perth Presentation is available @ http://www.schlegel.li/ebXML/plug-presentation/index.html Sacha Schlegel @ http://www.schlegel.li %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page Presentation Overview Outline of presentation Short bio Electronic Business Enterprise Resource Planning System (ERP) Enterprise Application Integration (EAI) ebXML Introduction (incl. ebXML scenario) ebXML CPPA my ebXML project Discussion %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page Short bio My name is Sacha Schlegel born in 1971 in Switzerland, grown up in the Principality of Liechtenstein (in the heart of Europe). After obligatory school I finished a commercial apprenticeship in a Bank in Liechtenstein followed by a Bachelor in Computer Science (CS) and Business in Switzerland. Came to Australia in 2001 for a postgraduate diploma in CS and a masters by research in CS. Hobbies are Soccer, Windsurfing, Linux and lately (9 months) my little daughter Tawha. %size 3 homepage: http://www.schlegel.li email: sacha@schlegel.li %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page Business and Computing Business is hundreds of years old (so is architecture, mathematics, physics, philosophy etc). Computing is still very young (first computers in the 1940's). Business is similar among different companies. %% 60 % equal, 20 % industry specific and rest of 20 % is individual. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page Business Companies look similar such as: %center %%newimage -yscrzoom 70"images/company.png" %image "images/company.png" %size 3 %left Legend: P - Product/Service SCM - Supply Chain Management L - LifeCycle M - Maintenance B - Buy M - Make CRM - Customer Relationship Management (Marketing, Sales) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page electronic Business Doing common business with the support of computing systems. Different software systems support different activites. Resulted in problem of "island" applications, individual applications distributed within the company. A centralised databases/application was needed. e.g. Customer address should only and only be stored in one place. Otherwise address maintenance gets out of hand. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page ERP (Enterprise Resource Planning) ERP systems can be seen as backbone of electronic business. Typical activities among most companies are: accounting finance marketing production (operations) human resouces and more. %size 3 Big commercial players are SAP, PeopleSoft/JD Edvards, Baan, Oracle %size 3 SAP system licence for for 10 users is about US$ 125'000 %size 3 Smaller commercial players MyYOB, Quickbook, Quicken %size 3 Lots of applications for middle range %size 3 Free and Open Source Software ... on later slide %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page Enterprise Application Integration (EAI) A small sample company using Free Software / Open Source Software with the following applications: GnuCash (Accounting) Central Database (Customers, Suppliers, Product Descriptions) OpenOffice (Invoice templates) SalesStatistics (custom made) WebServer with online store (Sales) MailServer %size 3 %%nfortunately GnuEnterprise (http://www.gnuenterprise.org), a GNU ERP project is not ready yet. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page EAI (cont.) Without EAI: A customer does log in with its ID (in sync with the database) on the webpage, browses the products and places an order. A person gets the message from the webserver with the details of the order. He/she has then to a) do the accounting, b) write and send an invoice, d) update the sales statistics. c) send the product, %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page EAI (cont.) How to integrate different applications? How to automate these internal business process? One possibility: Message Brokers Based on the idea of publish and subscribe. An application must provide a message interface (eg incoming, outgoing messages) %size 3 Accessing an application through an API (Application Programming Interface) needs some expensive programming. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page EAI (cont.) The picture: %center %%newimage -yscrzoom 60 "images/eai2.png" %image "images/eai2.png" All applications are connected to the MessageBroker, networked. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%page %% %%EAI (cont.) %% %%Message Broker has a table: %% %%Message "Order" | Published | Subscribed ( Format ) %%------------------------------------------------------------------------- %%Webserver | X | %%GnuCash | | X XML-2 %%SaleStatistics | | X Binary %%OpenOffice | | X XML-1 %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page EAI (cont.) With EAI: Webserver (webstore) publishes "order" information. GnuCash subscribes to "order" message. SalesStatistics tool subscribes to "order" message. OpenOffice tool subscribes to "order" message. Each time an order is placed by the webserver, the order is published and the subscribed applications will receive the order message in their specific format (XML, binary, exotic). The Message Broker supports rules to compose an outgoing message from an incoming message (think XSLT). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page EAI (cont.) With EAI: GnuCash receives the "order" message and triggers a function which will credit the "sales product x" account and debit customer y. SalesStatistics updates statistics. OpenOffice (isnt there a SDK?) generates a new invoice (address is retrieved from the database) and prints it or even better emails (including security) it to the customer. Ooops, dont forget to bring product x to the post office. %%Similar can GnuCash publish "sales" information where the SalesStatitics application subscribes to. %%This needs some time to set up but there are not THAT many different messages. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page Next logical step forward. The next logical step is to exchange business documents electronically. example customer (can be company) receives the invoice by post or email and has to re-enter it into their gnucash system (data entry) See where this leads to ... ??? Software systems communicate beyond company boundaries. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page EDI In the 1960's EDI (Electronic Data Interchange) got momentum. ANSI (American National Standards Institute) X12 UN (United Nations) TDI (Trade Data Interchange) Both got merged into EDIFACT (Electronic Data Interchange For Administration, Commerce and Transport) as ISO Standard 9735 The "paper" based business documents got translated into electronic business documents which got exchanged over a private network. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page Pitfalls of EDI A couple of reasons hindered the widespread of EDI. Expensive private networks Expensive EDI systems Expensive message conversion (as EDI2ProprietaryFormat) Cryptic messages EDI message setup between two companies mostly bilateral On the other hand, companies (very big ones) who could afford the high entrance costs seemed to be happy with EDI. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page ebXML Introduction ebXML is a joint initiative by the Organisation for the Advancement of Structured Information Standards (OASIS) and the United Nations Centre for Trade Facilitation and Electronic Business (UN/CEFACT). Initially a 18 months project ending in May 2001. Some groups keep working on ebXML. Some call ebXML the next generation of EDI. ebXML is based on proven technologies such as XML and HTTP %size 3 ebxml @ http://www.ebxml.org ;; oasis @ http://www.oasis-open.org ;; un/cefact @ http://www.uncefact.org %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page ebXML Introduction (cont.) The ebXML mission "To provide an open XML-based infrastructure enabling the global use of electronic business information in an interoperable, secure and consistent manner by all parties." %cont %size 3 (from ebXML website) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page ebXML Introduction (cont.) Collaborative Business Processes are very important to ebXML. What is a business process (also a buzzword)? A precisely choreograped sequence of activites (actions) from a start state to an end state. Business rules control the sequence of activities. %cont %size 3 (from ebXML Professional) %size 5 What is a collaborative business process? Business process which happens between different partners (companies). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page ebXML and XML ebXML uses the Extensible Markup Language (XML) heavily because XML does structure documents very well and because XML parsers are widely available (free and commercial). ebXML is not just an XML vocabulary for electronic business, but more like a framework for electronic business. %size 3 xml - http://www.w3c.org/XML %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page The ebXML scenario The sample ebXML scenario: %center %%newimage -xscrzoom 80 "images/ebXML_Overview.png" %image "images/ebXML_Overview.png" %size 3 adapted from the ebXML Technical Architecture Specifiaction %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page The ebXML scenario (cont.) comments: 1) Company A browses the ebXML registry to see what is available online. At best, company A can reuse all the existing business processes, documents, and core components common to its industry that are already stored in the ebXML registry. Otherwise company A designs the missing parts, stores them in the ebXML registry and makes them available for its industry partners. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page The ebXML scenario (cont.) comments: 2) Company A decides to do electronic business the ebXML way and considers implementing a local ebXML compliant application. An ebXML Business Service Interface (BSI) provides the link between the company and the outside ebXML world. The company has to create a Collaboration Protocol Profile (CPP) which describes the supported business process capabilities, constraints and technical ebXML information such as choice of encryption algorithms, encryption certificates and choice of transport protocols. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page The ebXML scenario (cont.) comments: 3) Company A submits its CPP to the ebXML registry. From that point on, company A is publicly listed in the ebXML registry and is likely to be discovered by other companies looking/querying for new trading partners. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page The ebXML scenario (cont.) comments: 4) Company B is already registered at the ebXML registry and is looking for new trading partners. Company B queries the ebXML registry and receives the CPP of company A. Company B then has two CPP's: Company A's CPP and its own. The two companies have to come to an agreement on how to do business. This is called a Collaboration Protocol Agreement (CPA) in the ebXML terminology. Company B uses an ebXML CPA formation tool to derive a CPA from the requirements of the two CPP's. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page The ebXML scenario (cont.) comments: 5) In this scenario company B communicates with company A directly and sends the newly created CPA for acceptance to company A. Upon agreement of the CPA by company A both companies are ready for electronic business. 6) The companies then use the underlying ebXML framework and exchange business documents conforming to the CPA. This means that both companies follow the business processes defined in the CPA. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page The ebXML specifications The outcome of the ebXML effort were several specificiations such as: ebXML Technical Architecture Specification (v1.04) Registry Service Specification (v2.0) Business Process Specification Schema (v1.01) Collaoboration Protocol Profile and Agreement Specification (v2.0) Automated Negotiation of a Collaboration Protocol Agreement Specification (v0.04) Message Service Specification (v2.0) %% Core Component Overview more plus technical reports %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page ebXML in in action ebXML system to many ebXML systems. %center %image "images/bsi2bsi.png" %%newimage -xscrzoom 87 "images/bsi2bsi.png" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page ebXML CPPA What is inside a Collaboration Protocol Profile (CPP)? %size 3 %% xmlns="http://www.ebxml.org/namespaces/tradePartner" %% xmlns:ds="http://www.w3.org/2000/09/xmldsig#" %% xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"> ... ... ... text %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page ebXML CPPA What is inside a Collaboration Protocol Profile (CPP)? Content of a CPP is PartyInfo (one or more) CollaborationRole ProcessSpecification (reference to Collaborative Business Process) Role (eg buyer role, seller role) ServiceBindings (CanSend, CanReceive of each message) Certificates (for encryption, signature etc) DeliveryChannel (bundling of Doument Exchange and Transport) Document Exchange (properties of messaging such as reliability, non-repudiation) Transport (eg HTTP, FTP, SMTP plus characteristics such as security) Packaging (Message, eg header, body, attachement structures) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page ebXML CPPA What is inside a Collaboration Protocol Agreement (CPA)? %size 3 %% xmlns="http://www.ebxml.org/namespaces/tradePartner" %% xmlns:bpm="http://www.ebxml.org/namespaces/businessProcess" %% xmlns:ds = "http://www.w3.org/2000/09/xmldsig#" %% xmlns:xlink = "http://www.w3.org/1999/xlink" cpaid="YoursAndMyCPA" version="1.2"> 1988-04-07T18:39:09 1990-04-07T18:40:00 ... ... any combination of text and elements any text %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page ebXML CPPA What is inside a Collaboration Protocol Agreement (CPA)? Content of a CPA is PartyInfo (exactly two ; with some add-ons) Packaging %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page My ebXML project Title: "CPA formation process" The "CPA Formation Process" is the process to get a CPA from two CPP's. The "CPA formation Process" can be divided into CPA composition CPA negotiation %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page My ebXML project (cont) CPA Composition based on the CPP and CPA Specification Version 2.0 input: 2 CPP, 2 NDD's output: CPA template(s), new NDD(s) %% 2 CPP's can yield for more than 1 CPA! algorithm does pair building A.send_message_x_this_way B.receive_message_x_this_way matches/checks can result in conflicts of type equality (eg Transport Protocol) non-equality (eg Roles) cardinality (optional elements/attributes) references: have to be followed (eg URI) %% modified CPP proposition %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page My ebXML project (cont) CPA Composition Demo Demo Web-based demo at http://www.schlegel.li/ebXML/Msc_live.rhtml %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page My ebXML project (cont) CPA Negotiation based on Automated Negotiation of CPA Version 0.04 input: CPA template, NDD output: final CPA or updated CPA template A negotiation system must support follow the Negotiation CPA, follow the Negotiation Business Process (state machine) follow the Negotiation Messages (business documents) uses a Messaging System %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page My ebXML project (cont) CPA Negotiation (cont.) A negotiation can be computer to computer (using AI for learning, strategy) computer to human human to human (any form: web, telephone) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page My ebXML project (cont) CPA Negotiation Demo Demo of a human to human CPA negotiation following the Negotiation CPA no demo at http://www.schlegel.li/live.rhtml available yet. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page ebXML Implementations (or parts of it) Commercial ebXML implementations (see "tool" link on ebXML website): XMLGlobale, SterlingCommerce, SAP, SUN, ORACLE, CommerceOne, IONA, BEA, Sysbase, Tibco, more %cont %size 3 (see http://www.ebxml.org/tools/index.htm ) %size 5 Open Source ebXML implementations: http://www.freebxml.org http://ebxmlrr.sourceforge.net/ (ebXML Messaging System) http://www.openebxml.org more: sourceforge.net has some ebXML projects in planning and alpha status. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page Free Software / Open Source business applications Business applications useful today: gnucash @ http://www.gnucash.org (personal and business finance) sql-ledger accounting @ http://www.sql-ledger.org/ (finance) gnuenterprise @ http://www.gnue.org (erp and tools) arias @ http://www.aria-erp.org (ex nola) %% todo: - NOLA Pro @ http://www.nola-pro.org (still gpl?) gnuledger @ webaccountant.sourceforge.net/ %% ck-ledger (common knowledge) @ ck-ledger.sourceforge.net/ckledger/sitemgr-site/ pago @ http://papo.vialibre.org.ar/ %% LeftHand @ http://www.lefthand.com.pl %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page Free Software / Open Source business apps Other projects (java based): www.jboss.org - application server (transaction, persistence,load-balancing, messaging etc) www.jbpm.org - business process management to manage bp and workflows www.mec-eagle.org/ - b2b integration tool www.xmlblaster.org - Message Oriented Middleware %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page Free Software / Open Source business apps Free Software, Open Source for business applications and ebXML Affordable for Small to Medium Organisations Affordable Foundations (OS's, Databases, etc) Open Standards based No vendor lock in (current problem in e-markets) More transparency, security Collaborative nature of ebXML it just rocks %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page The end. %center %size 7 Thanks Questions Discussion %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page Finish %center GO BACK.