E.A.I. Service Offering _Enterpr by liwenting

VIEWS: 102 PAGES: 50

									                 E.A.I.
Enterprise Application
           Integration
      Bernard HAUZEUR, Ir. ULg83

                         bh@artofe.biz


                                COOPERATOR OF




              www. rt of . iz
Agenda
                                             2


 Understand Data flows inside and outside
  companies
 A simple classification
 What history tells us: EDI, B2Bi, …
 Message Brokers and EAI Technologies
 …plus XML
 Web sites / web technologies and EAI
The marketplace case
- B2B Integration -                                   3




                                    Goods
                            local
                            stock

            Consolidated                         Bank
            Orders

                           Online
                           Store
                                               Bank

Manufacturers
                                     managed
                                      stock

                           Transporters
    The marketplace case (con’t)
    - Application Integration -                                            4


                                                                            EAI =
                local                                                  Enterprise
                stock                                                Application
                                                                      Integration
                                     CRM &




                                                   Web server
                        Inventory                                   Technologies:
                                    marketing                       •Data Sharing
                                                                      Middleware
                Accoun                                          •Message brokers
                                            Help
                 ting                                                   •Message
                                            Desk                  queuing systems
                                                                   •ORB’s: Object
                                                                  Request Brokers
Consolidated      DSS                   Catalog
                                                                     •Transaction
Orders
                                                                         Monitors
                                                                     •Application
                                    Shipp                            buses, MOM
                                     ing                               (publish &
                                                                 subscribe model)
                                                                         •ORM’s:
                                                                      Operational
                 Online                                                  Resource
                                                                        Managers
                 Store
                                                                MOM = Message
                                                                      Oriented
                                                                   Middleware
Real World Sample: Press Distribution
                                                                                                                                                                                            5

                                                                                                                                    Interface from
#         Module   Type Interface content   Source area         Target area         Phase à Terme   SCOPE        Description        SAP (*)           Fre-quency Type   Remarks

                                                                                                                                                                        File from SAP, Manual
                                                                                                                                                                        procedure in ISABEL,
                                                                                                                 Echange avec       Upload file                         Communication
1    FI            TR   payments            Isabel (PC)         AFSEE               Target = SAP    SCOPE    0   Banque             (standard)        Daily     Batch   program inclued ?




                                                                                                                                    IDOC_ACC_DOC
2    FI            TR   accounting data     E-BITEL             AFSEE               Target = SAP    SCOPE    1                      UMENT02      Monthly        Batch   original source = SQL
                                            Source Analytic =   Target Analytic =                                Extraction vers                                        Download to Excell is
3    CO            TR   Controlling         SAP                 Externe             Delete          DELETE   0   Excel de SAP       Manual download                     standard

                                                                                                                                                                        original source = SQL,
                                                                                                                 Détails des                                            check with other
                                                                                                                 imputations des    IDOC_ACC_DOC                        companies of AMP
4    FI            TR   accounting data     LA PAIE             AFSEE               Target = SAP    SCOPE    1   traitements        UMENT02      Weekly         Batch   group
                                                                                                                 Scanning des                                           consolidation of
                                                                                                                 factures           IDOC_ACC_INV                        supplier invoices
5    FI            TR   invoice data        ITESOFT.INVOICE     AFSEE               Target = SAP    SCOPE    0   fournisseurs       OICE02       Daily          Batch   original source = SQL
                                                                                                                 Comme l'AS 400
6    FI            TR   payments            Isabel (AS/400)     AFSEE               Delete          DELETE   0   Reporting
                                                                                                                 disparait, ceci                      Daily     Batch
                                                                                                    OUT OF       Groupe.            File for
7    FI            TR   reporting           Skover              Magnitude           Source = SAP    SCOPE    0                      Magnitude         Daily     Batch   destination = SQL
                                                                                                                 Not used
                                                                                                                 anymore.
                                                                                                                 Actually it is a
8    FI            TR   reporting           AFSEE               Consulte (PC)       Delete          DELETE   0   manual interface                     Daily     Batch   ????

                                                                                    Source = SAP                 Reporting
9    FI            TR   reporting           AFSEE               Skover              BW              SCOPE    0   Groupe          File for Skover      Daily     Batch   destination = SQL
                                                                                                                 Reporting

10   FI            TR   reporting           AFSEE
                                            Tresorerie (E-
                                                                Binocs
                                                                E-CASH (stand
                                                                                    SAP + BIW       
                                                                                                    DELETE
                                                                                                    OUT OF
                                                                                                            Logistics
                                                                                                             0
                                                                                                                 groupe (données
                                                                                                                 ventes)
                                                                                                                 Pas d'interface
                                                                                                                                                      Monthly   Batch   Web application
                                                                                                                                                                        SQLBase source,
11   FI            TR   payments            CASH)               alone)              unchanged
                                                                                                    
                                                                                                    SCOPE
                                                                                                            Application migration project
                                                                                                             0   aujourd'hui

                                                                                                                 Note d'envoi de
                                                                                                                                                      Daily     Batch   Interface in first time




12
     COPY
     MGT           TR   movements           GESTAB
                                                                TRAVAUX
                                                                COMMUNS             Target = SAP
                                                                                                    
                                                                                                    SCOPE
                                                                                                            132 flows
                                                                                                             1
                                                                                                                 Gestab pour
                                                                                                                 facturation via
                                                                                                                 TC
                                                                                                                                    IDOC_SALESOR
                                                                                                                                    DER          Daily          Batch
                                                                                                                                                                        Interface de GESTAB
                                                                                                                                                                        avec SAP via creation
                                                                                                                                                                        Sales order

                                                                                                           18 internal applications
                                                                                                           38 trading partners
                                                                                                           ...
       Enterprise
                          6
       Application
       Integration




A Simple Classification
EAI, B2C, B2E, B2B, EDI, A2A…
                                                                                            7


                                                            companies
      individuals
                                        B2B



                 B2C                  security




                              l
                                                            B2B integration




                          rta




                                                 ED
                       Po




                                                   I
                                    business                            many functions
                                      logic                              are common
                            content         data message             to several quadrants
                            presen-      transfor-
                             tation                flow
                                          mation
                                    work                   application
                       In



                                    flow                   integration




                                                   I
                        tra



                 B2E



                                                 EA
                           ne
                              t




                                                                    applications
     employees
                                                           8

Starting from the beginning….
In 1987 men created :

                                                 EDI
          Electronic Data Interchange

                                        today named:
                                               B2Bi
                        Business to Business Integration
Protocols and networking
….the first ingredients                                                    9




                   FE
                               FE

                                                        Server
                   Mainframe


                                        ?
                                                     Clients


                         ?          ?
            Host

     Host                      ?            Server


               Host


                                                                 Clients
Networks, Protocols and Formats
                                                             10




   Networks    Dial-up sync/async, X25, T1,   Frame Relay,
               LANs, ISDN, ATM, …             ADSL, …



  Protocols    ZMODEM, SNA RJE, LU6.2, TCP/IP + SMTP,
               FTAM, OFTP, C:D, TIP, X.400, HTTP, RMI/JMS,
               X.435, … TCP/IP + FTP,       SOAP, …
               IIOP/CORBA, MQ…


    Formats    IATA, SWIFT, TRADACOMS,
                                          XML (ebXML,
               X12, GENCOD, ICOM,
                                          OAGIS, xCBL,
               ODETTE, VDA, IEF, EDIFACT,
                                          cXML, OFX, OBI,
               EANCOM, …
                                          …)

                                              The Internet
           Enterprise
                                 11
           Application
           Integration




Tune your mind with an example
   in electronic messaging:
      SMTP versus X.400
X400 Message Sample (HexDump)
                                                                                                                  12

0000   |   A0   82   01   B8   31   80   64   2C   63   15   61   04   13   02   62   65   |   ....1.d,c.a...be
0016   |   62   05   13   03   72   74   74   13   06   73   74   65   73   75   64   16   |   b...rtt..TRADEW.
0032   |   13   39   38   30   31   33   30   31   31   30   33   30   32   31   30   37   |   .980130110302107
0048   |   32   34   30   32   60   2A   30   28   61   04   13   02   62   65   62   05   |   2402`*0(a...beb.
0064   |   13   03   72   74   74   A2   08   13   06   73   74   65   73   75   64   83   |   ..rtt....TRADEW.
0080   |   03   65   64   69   A5   0A   80   08   6D   34   30   30   75   73   65   72   |   .edi....bernardH
0096   |   65   05   80   03   04   20   00   46   01   02   4A   08   39   38   30   31   |   e......F..J.9801
0112   |   33   30   35   31   48   02   04   00   69   31   30   2F   63   15   61   04   |   3051H...i10/c.a.
0128   |   13   02   62   65   62   05   13   03   72   74   74   13   06   73   74   65   |   ..beb...rtt..TRA
0144   |   73   75   64   31   16   80   11   39   38   30   31   33   30   31   31   30   |   DEW1...980130110
0160   |   33   30   32   2B   30   30   30   30   82   01   00   A2   2A   31   28   60   |   302+0000....*1(`
0176   |   1F   30   1D   61   04   13   02   62   65   62   07   13   05   63   6F   6D   |   .0.a...beb...com
0192   |   61   78   A2   04   13   02   67   77   A5   06   80   04   74   65   73   74   |   ax....EC....john
0208   |   80   01   01   81   02   00   D0   00   00   04   81   E0   A0   80   31   80   |   ..............1.
0224   |   6B   36   60   2A   30   28   61   04   13   02   62   65   62   05   13   03   |   k6`*0(a...beb...
0240   |   72   74   74   A2   08   13   06   73   74   65   73   75   64   83   03   65   |   rtt....TRADEW..e
0256   |   64   69   A5   0A   80   08   6D   34   30   30   75   73   65   72   13   08   |   di....bernardH..
0272   |   39   38   30   31   33   30   35   31   A0   36   60   2A   30   28   61   04   |   98013051.6`*0(a.
0288   |   13   02   62   65   62   05   13   03   72   74   74   A2   08   13   06   73   |   ..beb...rtt....T
0304   |   74   65   73   75   64   83   03   65   64   69   A5   0A   80   08   6D   34   |   RADEW..edi....be
0320   |   30   30   75   73   65   72   80   08   6D   34   30   30   75   73   65   72   |   rnardH..bernardH
0336   |   A2   29   31   27   A0   21   60   1F   30   1D   61   04   13   02   62   65   |   .)1'.!`.0.a...be
0352   |   62   07   13   05   63   6F   6D   61   78   A2   04   13   02   67   77   A5   |   b...comax....EC.
0368   |   06   80   04   74   65   73   74   81   02   05   C0   A8   10   14   0E   73   |   ...test........s
0384   |   61   6D   70   6C   65   20   6D   65   73   73   61   67   65   00   00   30   |   ample.message..0
0400   |   29   A0   27   31   00   16   23   6A   75   73   74   20   61   20   73   69   |   ).'1..#just.a.si
0416   |   6D   70   6C   65   20   6D   65   73   73   61   67   65   0D   0A   6F   66   |   mple.message..of
01B0   |   20   32   20   6C   69   6E   65   73   0D   0A   00   00                       |   .2.lines....
X400 Message Sample (ASN.1) (1 of 2)
                                                                                                     13

a0001b8 P1 MPDU (440) {
 3181D1 Set (209) {
    642C MTSIdentifier (44) {
        6315 GlobalDomainIdentifier (21) { ......... }
        1613 IA5_String (19) = "9801301103021072402" }
    602A ORName (42) {
        3028 Sequence (40) { 6104 CountryName (4) { 1302 Printable_String (2) = "be" }
                               6205 AdministrationDomainName (5) { 1303 Printable_String (3) = "rtt" }
                               A208 C-02 (8) { 1306 Printable_String (6) = "TRADEW" }
                               8303 C-03 (3) = "edi"
                               A50A C-05 (10) { 8008 C-00 (8) = "bernardH" } } }
    6505 EncodedInformationTypes (5) { 8003 C-00 (3) = "\x04 \x00" }
    4601 ContentType (1) = 2
    4A08 ContentIdentifier (8) = "98013051"
    4802 PerMessageIndicators (2) = [0000]
    6931 TraceInformation (49) { .......... }
    A22A C-02 (42) {
        3128 Set (40) {       601F ORName (31) {             301D Sequence (29) {
                                6104 CountryName (4) { 1302 Printable_String (2) = "be" }
                                6207 AdministrationDomainName (7) { 1305 Printable_String (5) = "comax" }
                                A204 C-02 (4) { 1302 Printable_String (2) = "EC" }
                                A506 C-05 (6) { 8004 C-00 (4) = "john" } } }
          8001 C-00 (1) = "\x01"
          8102 C-01 (2) = "\x00\xD0" } } } }
P1 UMPDUContent (224)
{ ..... P2 UAPDU next page! ....}
X400 Message Sample (ASN.1) (2 of 2)
                                                                                               14
 { # Start of P2 UAPDU A081DB C-00 (219) {
    3181AD Set (173) {        6B36 IPMIdentifier (54) {
         602A ORName (42) { ........... }
         1308 Printable_String (8) = "98013051" }
      A036 C-00 (54) {
         602A ORName (42) {              3028 Sequence (40) {
               6104 CountryName (4) { 1302 Printable_String (2) = "be" }
               6205 AdministrationDomainName (5) { 1303 Printable_String (3) = "rtt" }
               A208 C-02 (8) { 1306 Printable_String (6) = "TRADEW" }
               8303 C-03 (3) = "edi"
               A50A C-05 (10) { 8008 C-00 (8) = "bernardH" } } }
         8008 C-00 (8) = "bernardH" }
      A229 C-02 (41) {          3127 Set (39) {
            A021 C-00 (33) {      601F ORName (31) {                  301D Sequence (29) {
                   6104 CountryName (4) { 1302 Printable_String (2) = "be" }
                   6207 AdministrationDomainName (7) { 1305 Printable_String (5) = "comax" }
                   A204 C-02 (4) { 1302 Printable_String (2) = "EC" }
                   A506 C-05 (6) { 8004 C-00 (4) = "john" } } } }
            8102 C-01 (2) = "\x05\xC0" } }

       A810 C-08 (16) { 140E TeletexString (14) = "sample message" }   }

     3029 Sequence (41) {
       A027 C-00 (39) {
         3100 Set (0) { }
         1623 IA5_String (35) =
            "just a simple message\r\n\of 2 lines\r\n" } } }
 }
SMTP Message Sample
                                                      15




 Message-Id: msg00f9.out@telhost
 From: bernard.hauzeur@eyc.be
 To: odemin@edison.ey.be
 Date: Wed, 15 May 1996 15:56:53 +0000
 MIME-Version: 1.0
 Content-type: text/plain; charset=US-ASCII
 Content-transfer-encoding: 7BIT
 Subject: simple sample message
 CC: baduser@edison.ey.be
 Priority: normal

 In this simple message MIME encoding do not appear
 as there is a single 7-bit text body part
 .
Sample SMTP Session
                                                                    16

     TCP connect....

         220 edisun.ey.be Sendmail SMI-8.6/SMI-SVR4 ready
     EHLO ppcbh.ey.be
         250-edisun.ey.be Hello [100.1.2.34], pleased to meet you
         250-EXPN
         250-SIZE
         250-DSN
         250 HELP
     MAIL FROM:<hauzeur@eyc.be> ENVID:<123450001>
         250 <hauzeur@eyc.be>... Sender ok
     RCPT TO:<odemin@edisun.ey.be> NOTIFY=SUCCESS,FAILURE
         250 <odemin@edisun.ey.be>... Recipient ok
     RCPT TO:<baduser@edisun.ey.be> NOTIFY=SUCCESS,FAILURE
         550 <baduser@edisun.ey.be>... User unknown
     DATA
         354 Enter mail, end with "." on a line by itself
     From: bernard.hauzeur@eyc.be
     To: od@edisun.ey.be, baduser@edisun.ey.be

     this is one line of message content!
     .
          250 OAA05657 Message accepted for delivery
     QUIT
          221 edisun.ey.be closing connection
Sample X400 Session X400 Protocol Stack
                                                 17




               X422 (P22)
               X435 (P35)
Application




               X411 (P1)          X411 (P1)

                  RTS                RTS

              Presentation       Presentation
                (ASN.1)            (ASN.1)

              Session (BAS)      Session (BAS)
SMTP versus X.400
                                                                  18



 SMTP                                     X400 P1
 POP3, IMAP4                              P7 RUA's
 DSN's (ESMTP) = RFC1894                  P1 delivery Notif's
 RFC-822                                  P2/P22/P35 header
 MIME = RFC 2045…                         body parts
 MDN's = Message                          P2/P22/P35 Receipt
    Disposition Notific.   = RFC 2298       Notif's

   marginal cost economics                funding infrastructure:
   "hot potato" routing, no                PTTs, VANs
    liability, BEST EFFORT                 Quality of Service model

              Alternatives to SMTP: FTP ? HTTP ? …
        Enterprise
                            19
        Application
        Integration




…and the formats
EDIFACT, X12, IATA, …XML…
  An EDIFACT sample
                                                           20


    Sender ID      Recipient ID   Interch.Control Number

UNB+UNOA:1+541234500001:14+123456789:12+961205:1441+I0001234++
+++EANCOM'UNH+009900023214+ORDERS:2:901:UN:ST01'BGM+105+467+94
0801'NAD+SU++SELLERCO+UNITED SUPPLIES+355, ORCHARD AVENUE+SING
APORE+++SG'RFF+VA+123.456.789'CTA+IC++7778899:TE+7778800:FX'NA
D+BY++BUYERCO+WHOLESALER CORP+532, VICTORIA STREET+SINGAPORE++
+SG'RFF+VA+987.654.321'CTA+IC++6661100:TE+6663321:FX'NAD+DP++M
R WANG+GENERAL STORES+23, VICTORIA STREET+SINGAPORE++65000+SG'
CTA+IC++6661100:TE+6663321:FX'DTM+064+940802+0800'DTM+063+9408
07+1800'FTX+GEN+++SAMPLE ORDER NBR 1'UNS+D'LIN+1++6500010001:A
CU++21:300++++5:TU:NTP:5:PCE'IMD++++KUEH HIPPOPOTAMUS CREAM'PA
C+++BX'TRI+VAT++3'LIN+2++1234ABCDEF:ACU++21:27++++32:TU:NTP:5:
PCE'IMD++++SUCHIS WITH STRONG MUSTARD'PAC+++BX'TRI+VAT++3'LIN+
3++ITEMREF:ACU++21:5437++++53:TU:NTP:45:PCE'IMD++++MANGO CAKE'
PAC+++BX'TRI+VAT++3'UNS+S'TMA+55000+++45000'CNT+02:3'UNT+30+00
9900023214'UNZ+1+I0001234'
An X12 sample
                                                              21

                                     Sender ID
          Recipient ID                       Interch.Control Number

ISA*00*          *00*           *ZZ*1234567890    *
       ZZ*9876543210     *950912*1810*U*00304*912181023*0*P*:
GS*RQ*1234567890*9876543210*950912*1810*912181023*X*003040
ST*840*000974
BQT*00*RFQ NB*950908
REF*CT*AF-000234
CSH*K
DTM*150*950809*0919*ET
N9*FA*279034*ATCDE*950809
MSG*PUBLIC REQUEST FOR QUOTE
N9*CJ*REF NUM 1*AGENCY 1*950809
N1*BY*ATC offices*16*1234567890
N3*80586 bug street*seattle
PO1*12345*90*BG***FS
DTM*150*950809
CTT*21*0123456789
SE*13*000974
GE*1*912181023
IEA*0*912181023
IATA CARGO-IMP Sample
                                                     22

ZCZC 171719 17 JAN 00
QD LUXXUCV MANCCXH MANFFXH MANTRXH PIKAPCV PIKFHCV
SEAFFCV SEAOOCV
.LUXWALG CV/171714 JAN 2000
FFM/4
1/CV7721/17JAN/LUX/LXNCV
BRU/NIL
LUX/NIL
PIK
172-40246894LAXDUB/S5K1425.7T10/CONSOLIDATION
SCI//T1
172-20966234SINABZ/S1K360T3/CONSOLIDATION/HEA
DIM/K1234/MTR4-2.5-1.4/12
/K1234/KGM4-2.5-1.4/12
ULD/PYB00160CV-Q6
172-39940530HELSLC/S1K541.3MC1.15T19/CONSOLIDATION
SCI//T1
172-40084306AMSSLC/T10K230MC1/CHEMICALS GOODS/RCM
SCI//C
LAST
So…we build a Message Broker
                                                                            23

                                                                              EAI =
                   subsidiaries...                                       Enterprise
                                           Home-grown                  Application
                                                                        Integration
                                            Application               Technologies:
                                                A                     •Data Sharing
                   Message
                                                                        Middleware
                    Broker                            Logistics   •Message brokers
               WAN Interfacing                       Management           •Message

 EDI           ?
               Protocol Conversion

                         ?
               Message Handling
               Formats Translation
                                                      package
                                                                    queuing systems
                                                                     •ORB’s: Object
                                                                    Request Brokers
                                                                       •Transaction
                                                                           Monitors
               Application Integration                                 •Application
               Workflow sub-system                     S.A.P.          buses, MOM
                                                                         (publish &
                                                                   subscribe model)
                                          Internal                         •ORM’s:
                                                                        Operational
Publication     Web /                       Mail                           Resource
 Interaction                             System(s)                        Managers
                Store
Transaction
                -Front
                                                                  MOM = Message
                                                                        Oriented
                                                                     Middleware
EAI Technologies
                                                  24

                                                     EAI =
 Data Sharing Middleware                       Enterprise
                                              Application
 Message queuing systems                      Integration
                                             Technologies:
 ORB’s: Object Request Brokers              •Data Sharing
                                               Middleware

 Transaction Monitors                   •Message brokers
                                                 •Message

 Application buses, MOM                   queuing systems
                                            •ORB’s: Object
   (publish & subscribe model)             Request Brokers
                                              •Transaction
 Message brokers                                 Monitors
                                              •Application
 ORM’s: Operational Resource Managers        buses, MOM
                                                (publish &
                                          subscribe model)
                                                  •ORM’s:
                                               Operational
                                                  Resource
                                                 Managers


                                         MOM = Message
                                               Oriented

                        illustrated …      Middleware
EAI Technologies (1)
                                                                               25



   A                                                                       A
                       A
 write              read
            file
                                                    A            routing

         transfer

 File Transfer:                                          Messaging:
  IBM RJE, FTP,                                         X.400, SMTP
                            File Sharing:
 Connect:Direct, ...
                           NetBIOS, NFS
                                                                           A


   A                A                        A           A         A

                                              publish      subscribe
                                              (topic)

 Remote Data Access:                           Application buses:
 Remote SQL, ODBC,                          TIBCO Rendez-vous, JMS,
     JDBC, ...                                MQ-series, MSMQ,...
EAI Technologies (2)
                                                                           26




                 Protocol
   A                            A                                  A
                                                A             ?        A
     Peer-to-peer protocols:
  BSC, HDLC, X.25, ZMODEM,
    TCP, IBM LU6.2, HTTP,                                          A
                                      Transaction Monitors:
            SOAP, ...
                                        Tuxedo, J2EE ...
       !    OSI layers...



                            A                  A                       A
           API
                                API
       A                    A
            RPC tools:                                                 A
                                              Message Queuing:
  CORBA, Java RMI, DCOM,
 EJB's, ... web services (SOAP)              IBM LU6.2, MSMQ,
                                             MQ Series, JMS, ...
Message Broker and ….
Modern EAI System : Business Process Management29
                                                           (=Operational Resource Manager
                                                     A        But this term is no longer used)

               A                            messaging




                                     Business
                                      Message
                                     Process
                                       Broker




                                                            Protocol
   A                                Management
                                                                           A
       write
                      file
                   transfer
                              Process Control

                                    Business Logic
                                                                                       A

           API
                                                         publish (topic)       subscribe


    A
Example Process: Order-to-cash (simplified)
                                                                                                                               30

   ORDER
  CAPTURE
                                                                            Guarantees        EDI
     EDI                              Contract
                                     (blanket order)
                                                                              Invoice
                                       Approval        Logistics                           Invoice          Invoice
                                                                               Calcul
                                                                                           capture           entry
    Order        Order                                      Pick-up
                                                                               -ation
   capture       entry         Delivery
                                Order
                                                       Transport
                                                                                           Validation




                                                                                                                  SETTLEMENT
                Approval   [   ]
                                      valid order                     Proof of               Invoice
                                                                      Delivery               present
                                        QUALIFI                                               -ment
   Transport                            -CATION                       Recon-
       &                   Finance                                    ciliation



                                                       EXECUTION
   Logistics
                                                                                        Financing


           Approval   [    ]                                                           Collection       [     ]
                                   Approved order
                                                                                  Payment Reconciliation




       Data                          Human                         Exceptions
       exchanges,                    interaction,                  not
       DB queries                    workflow                      represented
        Enterprise
                          31
        Application
        Integration




Something new happened:
       …XML
XML roots
                                                                             32

 Originally designed as a Web publishing technology
     Separation of web page content from presentation
                               XSL

                            Transformation
             XML                engine            HTML
 …has since been used for many other purposes
       EDI (RosettaNet, cXML, OAGIS, SWIFT, …)
       XUL – eXtensible User Interface Language (Mozilla)
       as a convenient format for config files
       as protocol control information
            XML RPC – remote procedure call – IETF draft
            SOAP – Simple Object Access protocol (Microsoft and friends…)
            RosettaNet, cXML, ebXML…. data exchange frameworks/specs
            OTP – Open Trading Protocol… AT&T, IBM, Oracle, HP,…
     As a query language: XQL…
     As meta information: WSDL, WSIL, XML schema, …
XML: Part of a global evolution?
                                                               33


   Model           Concept         language      data
                                                 structure
   Centralized     structured      proprietary   files
                   programming

   Client/server   entity /        SQL           relational
                   relationships                 Databases

   Networked       objects,        Java
                   methods,                      XML
                   classes and
                   inheritance

      Break the      Break the                     Break the
       system        program                         data
XML Sample
                                                                              34
        <?xml version="1.0" encoding="UTF-8" ?>
        <!DOCTYPE NoticeOfExecution SYSTEM "NoticeOfExecution.dtd" >
        <NoticeOfExecution>
            <MsgFunction>NewMessage</MsgFunction>
            <SendersMsgRef>
                 <RefNbr>gstpa12345</RefNbr>
            </SendersMsgRef>-
            <Buyer>
                 <PartyId>ABNANL2A</PartyId>

             <TradingCapacityIndicator>PRINCIPAL</TradingCapacityIndicator>
             </Buyer>-
             <Seller>
                  <PartyId>DEUTDEFF</PartyId>
             </Seller>
             <ExecutedTradeDetails>
                  <FinInstrQty elementID="ABCD2008" type="DCBA0013">
                       <FaceAmt>102</FaceAmt>
                  </FinInstrQty>
                  <TradeDate>20000427</TradeDate>

            <RequestedSettlementDate>20000428</RequestedSettlementDate>
                 <DealPrice elementID="ABCD2000" type="57A817C1">
                     <ActualPrice>
                          <CcyCode>EUR</CcyCode>
                          <Value>20000</Value>
                     </ActualPrice>
                 </DealPrice>
            </ExecutedTradeDetails>
        </NoticeOfExecution>
Issue 1: Multiplicity of definition styles
                                                                                  35

     A.   SML
     <Book-Order> <Order-No>967634</Order-No>
     <Order-Line> <ISBN>0201403943</ISBN>
     <Author-Title>Bryan, Martin/SGML and HTML Explained</Author-Title>
     <Quantity>1</Quantity>
     </Order-Line></Book-Order>
     B.   mixed with attributes
     <Book-Order Order-No="967634"/>
     <Order-Line>
     <item ISBN="0201403943" Quantity="1" >
     Bryan, Martin/SGML and HTML Explained
     </item></Order-Line></Book-Order>
     C.   just attributes…
     <item ISBN="0201403943" Quantity="1" title= " SGML and HTML Explained " />
     D.   API-oriented
     <record name="item">
     <attribute>ISBN</attribute> <type>string</type> <value>0201403943</value>
     <attribute>Quantity</attribute> <type>integer</type> <value>1</value>
     </record>
     E.   … infinite number of variants
Issue 2: envelope and references
                                                                   36

 fact: no envelope is defined in XML (document oriented std!)
     sender, recipient?
     references, date, priority?
     … but document type and version is mostly OK…
 used between a browser and server, else on application to
  application links, identifications are checked at connection
  establishement, only data is exchanged
 when carried over HTTP or MIME, the SMTP envelope or
  HTTP parameter extensions can provide an envelope
 BUT
     an envelope is definitely needed for EDI
     BizTalk, RosettaNet, cXML, ebXML… define their versions, which
      one to use???

               Other issues:
                   • Transport protocol, QOS and Security
                   • Mixing up syntax with the data model
But…
XML Benefits(1):                                                 37


 Easy, understandable format, lower documentation
    requirements, faster debugging
   Faster feeling of being standard compliant
   Extensible syntax, simplified release management,
    forward compatibility by nature (old applications
    can process the new messages!)
   Can write application for processing one part of an
    XML document and ignoring the rest                    SOAP = Simple


                                                           Object Access
    Message standardization: instead of trying to               Protocol
    exhaustively encompass all requirements like                 UDDI =
    legacy EDI standards, XML-based initiatives need           Universal
                                                             Description,
    only standardize the common elements and let           Discovery and
    extension mechanisms support any specific                 Integration

    requirments                                             WSDL = Web
                                                               Services
                                                              Definition
                                                              Language
                                                          RDF = Resource
                                                             Description
                                                              Framework
But…
XML Benefits (2):                                               38


 XML support is embedded in modern programming
    languages
   More tools, richer than for any other format
   « Web enabled » by design
   Meta data is itself XML (XML Schemas)
   Not just for data exchanges: prepares self-
    describing means to inter-operate: HTTP + SOAP +
    UDDI / WSIL + WSDL, RDF, Ontologies…
                                                             ebXML =
                                                             electronic
                                                         business XML
                                                       UBL = Universal
                                                              Business
                                                             Language
                                                          xCBL = xml
                                                             Common
                                                             Business
                                                            Language
Internet Protocol Stack + firewalls/HTTPport80 + XML =
SOAP !                                              39

 In this example, a GetLastTradePrice SOAP request is sent to a
   StockQuote service. The request takes a string parameter, ticker
   symbol, and returns a floating point number in the SOAP response
<SOAP-ENV:Envelope
  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
  SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
   <SOAP-ENV:Body>
       <m:GetLastTradePrice xmlns:m="Some-URI">
           <symbol>DIS</symbol>
       </m:GetLastTradePrice>
   </SOAP-ENV:Body>
                                                        SOAP Request
</SOAP-ENV:Envelope>

          <SOAP-ENV:Envelope
            xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
            SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
             <SOAP-ENV:Body>
                 <m:GetLastTradePriceResponse xmlns:m="Some-URI">
                     <Price>34.5</Price>
                 </m:GetLastTradePriceResponse>
             </SOAP-ENV:Body>
          </SOAP-ENV:Envelope>                       SOAP Response
        Enterprise
                          40
        Application
        Integration




Something new happened:
      …J2EE
Let’s look again to our model…
…on the web side                                                                      41

                                                               companies
         individuals
                                           B2B



                    B2C                  security




                                 l
                                                               B2B integration




                             rta




                                                    ED
                          Po




                                                      I
                                       business                            many functions
                                         logic                              are common
                               content         data message             to several quadrants
                               presen-      transfor-
                                tation                flow
                                             mation
                                       work                   application
                          In

                                       flow                   integration




                                                      I
                           tra

                    B2E




                                                    EA
                              ne
                                 t




                                                                       applications
        employees
A new dimension added by the Web ….
                                                    42




                                  consumer
         consumer            (or small business!)
                      E-Mail

                      Web



            Appli                   Appli
           -cation                 -cation
                       EDI
  A brief history...
                                                                                         43


                   one full screen
                   (map) at a time
                                         Front
                                                                   Disks
                                         End       Mainframe
(function keys)

                                                                                 Open-up to
    dumb          one character at a                                            remote users
   terminal             time


                                                 Host

                                                            (stored
                                                          procedures)
                       client / server
                          dialogue


                                                 Host          Server


                                                                           Presentation /
                                                                           interaction logic
                                                                           Application code
   The Web (the early days)
                                                                                                                  44

                                                                             (HTML
                                                                             pages)          ?how
                                                                                            can we
                                                                                            produce
                                 TCP/IP                 HTTP         Web                    pages?
                                networks                            Server                             Host
    (function keys)                                  one page at
                                                       a time
                     GET http://www.foo.com/books/roman1999.html HTTP/1.1

Author: Ed Roman
                                               HTTP/1.1 200 OK                         •CGI - Common Gateway
Mastering Enterprise Java Beans                content-type: text/html                 Interface, to call a program
Wiley 1999
                                               ...                                     or script
                                               <HTML>
                                               ...                                     •NSAPI (Netscape), ISAPI
                                               <B>Author: </B>Ed Roman                 (M$) – call a library fct (DLL)
                                               <H3>Mastering Enterprise Java Beans</H3>
                                               <font color="green">Wiley</font>  1999
                                                                                       on Windows
                                               ...                                     •...custom TAG libraries, e.g.
                                               </HTML>
HTTP requests:                                                                      ColdFusion
...<method>...[data]
• GET - retrieves the resource identified by the request URL.                         ...
• HEAD - returns the headers identified by the request URL.
• POST - sends data of unlimited length to the Web server.
• PUT - stores a resource under the request URL.
                                                                                    •JSP – Java Presentation /
                                                                                                Server Pages
• DELETE - removes the resource identified by the request URL.
• OPTIONS - returns the HTTP methods the server supports.                           •Servlets interaction logic
• TRACE - returns the header fields sent with the TRACE request.
HTTP Responses:                                                                                   Application code
...<status code>...[data]
  Java Server Pages (JSP) Example
                                                                                         45



                                                     Web
                                                    Server
                                                                  (J S Pages)


                      TCP/IP            HTTP              JSP
                     networks                            engine                  Host
(function keys)                       one page at
                                        a time



      HTTP/1.1 200 OK                                  ...
      content-type: text/html                          <HTML>
      ...                                              ...
      <HTML>                                           <B>Author: </B> <sql:query ...
      ...                                              dataSource="...">
      <B>Author: </B>Ed Roman
      <H3>Mastering Enterprise Java Beans</H3>
                                                       select ... from ... where ... />
      <font color="green">Wiley</font>  1999           </sql:query> ...
      ...                                              <c:out value="${book.author}"/>
      </HTML>                                          <H3><c:out value="${book.title}"/></H3>
                                                       <font color="green">
                                                       ...
                                                       <%=item.getEditor(...)%>
                                                       </font> <%=item.getYearPublished(...)%>
                                                       ...
                                                       </HTML>
                                                                                                 .
 Bigger web site => ...issues...
                                                                                   46

                                               XSL            Serv   Serv
                                              parser           let    let



                                HTTP       Web       JSP
                     TCP/IP                        /servlet
                    networks              Server   engine
                                                                            Host
 (function keys)



                                       Scalability?
• Multi-tier architectures             Locating resources/objects?
• + standards : J2EE = Java 2          Load balancing?
Enterprise Edition                     Deployment?
                                       Efficiency, productivity?
     (http://java.sun.com)             Security?
                                       Sourcing independence?
                                       Integration with existing systems?
                                       Re-use of (third party) components?
J2EE Support of Multi-Tier Architectures
                                                       47




                                       EJBs are not
                                   compulsory in such a
                                   multi-tier architecture
J2EE / Application Server Key Concepts
                                                           48


 Container
    Resource management (load balancing, connection pooling,
     location transparency...)
    Thread management, bean lifecycle management
    Transactions
    Security
    Persistence
…What Web technologies have brought along
                                                             49


   Multi-tier Architectures: segregate functions
   Application servers: focus on logic and process
   Synchronicity: HTTP, SOAP,…transactional…
   API’s…




                                                             A
                                           HTTP
                                            +
                                           XML
       Source: Forrester                              SOAP
SOAP Sample
                                                                              50

 In this example, a GetLastTradePrice SOAP request is sent to a
   StockQuote service. The request takes a string parameter, ticker
   symbol, and returns a floating point number in the SOAP response
<SOAP-ENV:Envelope
  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
  SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
   <SOAP-ENV:Body>
       <m:GetLastTradePrice xmlns:m="Some-URI">
           <symbol>DIS</symbol>
       </m:GetLastTradePrice>
   </SOAP-ENV:Body>
                                                        SOAP Request
</SOAP-ENV:Envelope>

          <SOAP-ENV:Envelope
            xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
            SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
             <SOAP-ENV:Body>
                 <m:GetLastTradePriceResponse xmlns:m="Some-URI">
                     <Price>34.5</Price>
                 </m:GetLastTradePriceResponse>
             </SOAP-ENV:Body>
          </SOAP-ENV:Envelope>                       SOAP Response
A simple case…                                                                                                                                                   Supporting
                                                                                                                                                                 eBusiness
                                                                                                                                                                        51
                                                                                                                                                                   flows

                                                         Company A                                                                             Fax
                                                                                           Company                                                                   Airlines
                                                                                                                                                      Company
                                                                    Applic.                   B
                                                                                                                                                         C
                                                                                                                 GWs

                                                                                                                                                                            Trading
 CargoPool ASP environment




                                                                                                         SITA / AIRINC                                                      Partners
                                                                                                                                                                  Company
                                                           The                                                                                                       D
                                                         Internet




                                                                            SM
                                                                                             SMTP,




                                                                              TP
                                                                                             FTP,        MQ or




                                                                                 e-
                                                                     SOAP
                                                                                   m
                                                                                              HTTP       SMTP                                                               Company




                                                                                   ai
                                            Web server




                                                                                       l
                                                                                                                                                                               E
                                                                                 Message broker                                                               Private IP
                                             Presentation logic
                                                                                                                                                             networks,
                                                                                     Routing and                                                            leased lines
                                                                                 transformation logic                                                  SMTP, FTP,
                                                                                                                                                       MQ, HTTP,
                                                                                                                                                       C:D/SNA,
                                                                                           HTTP or JMS
                                                                                                                                                       X400, OFTP,




                                                                                                                  local batch data exchanges
                             Components




                                                              Business Logic
                             Application




                                                                                                                                                       ...



                                                                                                                                                     local SMTP e-mail
                                                                                                                                                     (reports, alarms,
                                                                                                                                                     sitatex messages,
                                           Legacy Application Interface                                                                              exceptions handled
                                                                                                                                                     manually, ...)


                                              Applications          Applications                                                                Messaging
                                                                                                                                                 System
        Enterprise
                          52
        Application
        Integration




Questions? …and may be…
        Answers

								
To top