%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%% 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.