UML for EAI

download UML for EAI

of 259

Transcript of UML for EAI

  • 7/26/2019 UML for EAI

    1/259

    UML for EAI

    UML Profile and Interchange Models forEnterprise Application Integration (EAI)

    ad/2001-09-17

    Updated Revised Submission to ADTF RFP ad/2000-03-07UML Profile for Event-based Architectures in

    Enterprise Application Integration (EAI)

    O! "A# S#!$oint Submission

    DSTC

    Hitachi, Ltd.

    International Business Machines Corporation

    Oracle Corporation

    Rational Software Corporation

    Uniss Corporation

    Suppo%ted b&

    CBO!

    Charles Schwa" # Co.

    Data $ccess Technolo%ies

    IO&$

    OM !ocu"ent #u"ber ad$%&&'-&-'

  • 7/26/2019 UML for EAI

    2/259

    *op+right %&&' !,*

    *op+right %&&' .itachi/ Ltd0

    *op+right %&&' I1M *orporation

    *op+right %&&' Oracle *orporation

    *op+right %&&' 2ational *orporation

    *op+right %&&' Unis+s *orporation

    he co"panies listed above hereb+ grant a ro+alt+-free license to the Ob3ect Manage"ent roup/ Inc0(OM) for 4orld4ide distribution of this docu"ent or an+ derivative 4or5s thereof/ so long as theOM reproduces the cop+right notices and the belo4 paragraphs on all distributed copies0

    he "aterial in this docu"ent is sub"itted to the OM for evaluation0 ,ub"ission of this docu"entdoes not represent a co""it"ent to i"ple"ent an+ portion of this specification in the products of thesub"itters0

    6.ILE .E I#7O2MAIO# I# .I, PU1LI*AIO# I, 1ELIE8E! O 1E A**U2AE/ .E*OMPA#IE, LI,E! A1O8E MA9E #O 6A22A#: O7 A#: 9I#! 6I. 2EA2! O .I,MAE2IAL I#*LU!I# 1U #O LIMIE! O .E IMPLIE! 6A22A#IE, O7ME2*.A#A1ILI: A#! 7I#E,, 7O2 A PA2I*ULA2 PU2PO,E0 he co"panies listed aboveshall not be liable for errors contained herein or for incidental or conse;uential da"ages in connection4ith the furnishing/ perfor"ance or use of this "aterial0 he infor"ation contained in this docu"ent issub3ect to change 4ithout notice0his docu"ent contains infor"ation 4hich is protected b+ cop+right0 All 2ights 2eserved0 E%0%%0&'?0

    *O21A/ OM/ and Ob3ect 2e;uest 1ro5er are trade"ar5s of Ob3ect Manage"ent roup0

  • 7/26/2019 UML for EAI

    3/259

    Table of Contents

    Part 1 Introduction....................................................................................................................................1

    1 Introduction and Guide.....................................................................................................................2

    '0' Introduction00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00%

    '0% uide to the !ocu"ent00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000%

    '0? ,ub"ission *ontact Points000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000?

    '0@ *ontributors0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000@

    2 Scope....................................................................................................................................................5

    %0' ,cenario ' *onnectivit+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000>

    %0% ,cenario % Infor"ation ,haring000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 >

    %0? ,cenario ? Process *ollaboration000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

    3 Modeling Approach...........................................................................................................................9

    ?0' Meta"odel000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

    ?0% UML Profile00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0

    ?0? 7our-la+ered Architecture00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'&

    ?0@ ,e"antics000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'&

    4 Compliance.......................................................................................................................................11

    @0' Overvie4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000''

    @0% *o"pliance 4ith the UML *ollaboration Profile00000000000000000000000000000000000000000000000000000000000000000000000000000000000000''

    @0%0' eneral *o"pliance00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000''@0%0% 8isualiBation00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000''

    @0? *o"pliance 4ith the UML Activit+ Profile00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'%@0?0' eneral *o"pliance00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'%@0?0% 8isualiBation00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'%

    @0@ *o"pliance 4ith the MO7-based EAI Meta"odel000000000000000000000000000000000000000000000000000000000000000000000000000000000000'%

    @0> *o"pliance ,tate"ent E0' Mandator+ 2e;uire"ents000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'@>0'0' Event-1ased Architecture000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'@

    >0'0% .eterogeneous Environ"ent0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'>>0'0? CML00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'>>0'0@ CMI000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'>>0'0> UML Profile for E!O*000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'>>0'0D MO7 align"ent000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'D>0'0 Proof of *oncept of Profile000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'D>0'0 !e"onstration that Models are I"ple"entable00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'

    >0% !iscussion issues000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 '>0%0' !evelop"ent and Manage"ent Aid00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'

    ad$%&&'-&-' UML for EAI i

  • 7/26/2019 UML for EAI

    4/259

    >0%0% ool ,upport00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'

    >0? 2elationship to Envisioned OM echnolog+0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'>0?0' 2eal-ti"e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'

    >0@ 2elationship to E0@0? *o""on 6arehouse Meta"odel (*6M)00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'

    >0> Other 2elated Activities00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'

    Part 2 Metamodel.....................................................................................................................................2$

    % &AI Integration Metamodel............................................................................................................21

    D0' EAI Integration specialiBes 7*M000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000%'

    D0% 7*M !erived Associations000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000%'D0%0' Motivation00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000%'D0%0% 7*M diagra"s00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000%%D0%0? *o"posite nodes0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000%@

    D0%0@ *o"posite nodes and their contents00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000%@D0%0> 2elationship bet4een the interface of a co"posite node and its contents0000000000000000000000000000000000000000000000000000000000%>

    D0? EAI ,pecialiBations of the 7*M0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 %>D0?0' Motivation00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000%>D0?0% EAILin5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000%DD0?0? EAIer"inal00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000%D0?0@ EAIMessage*ontent00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000%D0?0> EAIMessageOperation0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000?&D0?0D EAI,ource and EAI,in50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000?'D0?0 EAIFueue000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000?%D0?0 EAIFueuedInputer"inal and EAIFueuedOutputer"inal0000000000000000000000000000000000000000000000000000000000000000000000000000000?%D0?0 EAIFueued,ource and EAIFueued,in5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000??D0?0'& Operators0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000?@

    D0?0'' Adapters00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000?

    D0@ 9inds of Operator00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 @'D0@0' Operators0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000@'D0@0% opic-based publish$subscribe0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000>@

    D0> **A *o"ponent Librar+ for EAI00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000>DD0>0' Operators0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000>DD0>0% Adapters00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000D'D0>0? **A and EAI Meta"odel Mapping ables00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000D@

    ' &AI Common Application Metamodel...........................................................................................%'

    0' 1usiness 2e;uire"ents and 8alue00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000D

    0% *o""on Application Meta"odel for Applications Interfaces0000000000000000000000000000000000000000000000000000000000000000000D0%0' End-to-End *onnector Usage Using EAI *o""on Application Meta"odel00000000000000000000000000000000000000000000000000000D

    0? *o""on Application Meta"odel00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000D0?0' Enterprise Application Interface Meta"odels00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000&0?0% Language Meta"odels0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000&0?0? Ph+sical 2epresentation Model +pe !escriptor Meta"odel0000000000000000000000000000000000000000000000000000000000000000000000000000'0?0@ +pe !escriptor Meta"odel !escriptions00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000@0?0> +pe !escriptor 7or"ulas00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000D0?0D +pe !escriptor 7or"ula E

  • 7/26/2019 UML for EAI

    5/259

    0?0 Ph+sical 2epresentation Model !Lang Meta"odel0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000@0?0 !Lang Meta"odel !escriptions00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000>0?0 Ph+sical 2epresentation Model *onvergent Meta"odel00000000000000000000000000000000000000000000000000000000000000000000000000000000000D0?0'& *onvergent Meta"odel !escriptions0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000?0'' ,a"ple ,erialiBation of *onvergent Meta"odel0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

    Part 3 Pro"ile #e"inition..........................................................................................................................9$

    ( Colla)oration Modeling...................................................................................................................91

    0' Overvie4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 '

    0% er"inals000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 %

    0? Operators000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 @0?0' Pri"itive operator000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000@0?0% ransfor"ers and !atabase ransfor"ers00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000@0?0? 7ilters0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000>0?0@ ,trea"s0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000D0?0> Post !aters00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000D0?0D ,ource Adapters0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000?0 arget Adapters00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000?0 *all Adapters00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000?0 2e;uest$2epl+ Adapters000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'&&0?0'& ,ources and Fueued ,ources0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'&'0?0'' ,in5s and Fueued ,in5s000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'&%0?0'% Aggregators0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'&%0?0'? i"ers0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'&?0?0'@ 2outers00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'&@0?0'> ,ubscription Operators00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'&>0?0'D Publication Operators0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'&>0?0' opic Publishers000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'&D0?0' *o"pound Operators0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'&

    0@ 2esources0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000''@

    0> Message 7or"ats0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000''@0>0' Message*ontent core00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000''@0>0% 1asic MOM Message ,tructure0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000''D

    0D Mapping 4ith Meta"odel000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000''0D0' er"inals00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000''0D0% Operators00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000''0D0? 2esources0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'%@0D0@ Message 7or"ats00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'%@

    9 Acti*it+ Modeling...........................................................................................................................12%

    0' Modeling Integration Processes000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 '%D

    0% An Integration Process ,cenario00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 '%D0%0' he E 7urther frag"entar+ e

  • 7/26/2019 UML for EAI

    6/259

  • 7/26/2019 UML for EAI

    7/259

    '>0' IM, ransaction Message Meta"odel00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'?'>0'0' IM, ransaction Message Meta"odel !escriptions00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'D

    '>0% IM, M7, Meta"odel000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 %&'>0%0' IM, M7, Meta"odel !escriptions000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000%'%

    '>0? *I*, 1M, Meta"odel0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000%?%

    '>0?0' *I*, 1M, Meta"odel !escriptions0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000%?@

    Attachment!

    CMI and !! files for the EAI Meta"odels 00000000000000000000000000000OM !ocu"ent #u"ber ad$%&&'-&-%>

    ad$%&&'-&-' UML for EAI v

  • 7/26/2019 UML for EAI

    8/259

    7a)le o" 8igure!7igure ' 7*M*o"ponent "eta"odel diagra" (fro" ad$%&&'-&D-&)00000000000000000000000000000000000000000000000000000%'7igure % 7lo4 *o"position Model "ain diagra" (fro" ad$%&&'-&D-&)000000000000000000000000000000000000000000000000%%7igure ? 7lo4 *o"position Model datat+pes0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000%%7igure @ !erived association bet4een 7*M*o""and and 7*M*o"position0000000000000000000000000000000000000000%?

    7igure > !erived association bet4een a co"posite node/ its content nodes and its co"posed connections00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 %@

    7igure D !erived association bet4een 7*Mer"inal and 7*MPara"eter00000000000000000000000000000000000000000000000%@7igure !efinition of EAILin500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000%>7igure EAIer"inal00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000%D7igure EAI Message*ontent0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000%7igure '& EAI.eader000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000%7igure '' EAIE EAIFueue0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000?'7igure 'D EAIFueuedOutputer"inal and EAIFueuedInputer"inal00000000000000000000000000000000000000000000000000000?%7igure ' Fueued,ource and Fueuedarget000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000??7igure ' !efinitions of Pri"itiveOperator and *o"poundOperator0000000000000000000000000000000000000000000000000000000?@7igure ' EAIMessage7lo40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000?>7igure %& !erived association bet4een a ter"inal inside a co"posite node and the corresponding

    ter"inal outside000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000?D7igure %' ,ourceAdapter000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000?7igure %% EAIargetAdapter000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000?7igure %? EAI*allAdapter0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000?7igure %@ EAI2e;uest7or"at00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000?

    7igure %> EAI2e;uest2epl+Adapter000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000@&7igure %D 7ilter000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000@&7igure % ,trea"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000@'7igure % EAIPost!ater0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000@%7igure % ransfor"er0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000@?7igure ?& EAI!1ransfor"er0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000@?7igure ?' EAIAggregator00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000@@7igure ?% EAI2outer000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000@>7igure ?? EAI2outer and EAI2outerUpdate00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000@D7igure ?@ EAI2outerUpdate7or"at0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000@7igure ?> ,ubscriptionOperator0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000@

    7igure ?D EAI,ubscription7or"at000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000@7igure ? EAI,ubscription000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000@7igure ? ,ubscription7ilter0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000@7igure ? EAI,ubscription2ule/ EAIopic2ule and EAI*ontent2ule00000000000000000000000000000000000000000000000000000@7igure @& EAIPublicationOperator and EAI,ubscriptionOperator00000000000000000000000000000000000000000000000000000000000>&7igure @' E&7igure @% i"e,etOperator00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000>'7igure @? EAIMessagei"er*ondition00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000>'

    ad$%&&'-&-' UML for EAI vi

  • 7/26/2019 UML for EAI

    9/259

    7igure @@ EAIE%7igure @D opics allo4ed b+ an EAIopic2ule00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000>?7igure @ 2elationship bet4een a ter"inal and the topics for 4hich it has a subscription00000000000000000000000>@7igure @ 2elationship bet4een publishers/ subscribers and topics0000000000000000000000000000000000000000000000000000000000>>

    7igure @ **A notation for a sa"ple generic EAIPri"itiveOperator000000000000000000000000000000000000000000000000000000 >D7igure >& **A notation for sa"ple EAIransfor"er0000000000000000000000000000000000000000000000000000000000000000000000000000000>7igure >' **A notation for a sa"ple EAI7ilter0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000>7igure >% **A notation for a sa"ple EAI,trea"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000>7igure >? **A notation for sa"ple EAI*o"poundOperator0000000000000000000000000000000000000000000000000000000000000000000D&7igure >@ **A notation for a sa"ple EAI,ourceAdapter000000000000000000000000000000000000000000000000000000000000000000000000D&7igure >> **A notation for a sa"ple Pull "ode EAI,ourceAdapter0000000000000000000000000000000000000000000000000000000D'7igure >D **A notation for a sa"ple EAIargetAdapter0000000000000000000000000000000000000000000000000000000000000000000000000D'7igure > **A notation for sa"ple EAI*allAdapter00000000000000000000000000000000000000000000000000000000000000000000000000000000D%7igure > Multiple Application and !evelop"ent Environ"ents0000000000000000000000000000000000000000000000000000000000000DD7igure > Application Interface Meta"odel0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000D

    7igure D& +pe !escriptor "eta"odel000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'7igure D' !Lang to +pe !escriptor0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000%7igure D% +pe !escriptor ,tereot+pes00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000%7igure D? !Lang Meta"odel000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000@7igure D@ *onvergent Meta"odel0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000D7igure D> *lass diagra" for protot+pical pri"itive operator 4ith ter"inals00000000000000000000000000000000000000000000%7igure DD *lass diagra" for protot+pical transfor"er000000000000000000000000000000000000000000000000000000000000000000000000000000?7igure D *lass diagra" for protot+pical database transfor"or"er000000000000000000000000000000000000000000000000000000000@7igure D *lass diagra" for protot+pical filter00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000@7igure D *lass diagra" for protot+pical strea"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000>7igure & *lass diagra" for protot+pical post dater000000000000000000000000000000000000000000000000000000000000000000000000000000000D7igure ' *lass diagra" for protot+pical source adapter000000000000000000000000000000000000000000000000000000000000000000000000007igure % *lass diagra" for protot+pical target adapter0000000000000000000000000000000000000000000000000000000000000000000000000007igure ? *lass diagra" for protot+pical call adapter00000000000000000000000000000000000000000000000000000000000000000000000000000007igure @ *lass diagra" fro" protot+pical re;uest$repl+ adapter0000000000000000000000000000000000000000000000000000000000007igure > *lass diagra" for protot+pical source0000000000000000000000000000000000000000000000000000000000000000000000000000000000000'&&7igure D *lass diagra" for protot+pical ;ueued source000000000000000000000000000000000000000000000000000000000000000000000000'&&7igure *lass diagra" for protot+pical sin50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'&'7igure *lass diagra" for protot+pical aggregator000000000000000000000000000000000000000000000000000000000000000000000000000000'&'7igure *lass diagra" for protot+pical ti"er000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'&%7igure & *lass diagra" for protot+pical router00000000000000000000000000000000000000000000000000000000000000000000000000000000000000'&?7igure ' *lass diagra" for protot+pical subscription operator0000000000000000000000000000000000000000000000000000000000000'&@7igure % *lass diagra" for protot+pical publication operator000000000000000000000000000000000000000000000000000000000000000'&>7igure ? *lass diagra" for protot+pical topic publisher00000000000000000000000000000000000000000000000000000000000000000000000'&>7igure @ *lass diagra" for e

  • 7/26/2019 UML for EAI

    10/259

    7igure & *ollaboration diagra" for e&7igure '%> 1ac5-end processing s+ste" = ter"inals0000000000000000000000000000000000000000000000000000000000000000000000000000'>&7igure '%D Pub$sub server = co"ponents0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'>'7igure '% Pub$sub server = co"ponent connections000000000000000000000000000000000000000000000000000000000000000000000000000'>'7igure '% 1ro5erage*o"pan+ co"ponent connections000000000000000000000000000000000000000000000000000000000000000000000000'>%7igure '% Ordering *o"ponents00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'>?7igure '?& Online1ro5erage *o"ponent000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'>?7igure '?' %&&&IM,+ste"Ordering Protocol00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'>?7igure '?% 'IM,+ste"Ordering Protocol00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'>@7igure '?? apanOrdering Protocol000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'>@7igure '?@ ,tandardInternationalOrdering Protocol0000000000000000000000000000000000000000000000000000000000000000000000000000000'>@

    ad$%&&'-&-' UML for EAI viii

  • 7/26/2019 UML for EAI

    11/259

    7igure '?> !etail of Online1ro5erage *o"ponent000000000000000000000000000000000000000000000000000000000000000000000000000000000'>>7igure '?D !etail of Invest"entManager,erver *o"ponent000000000000000000000000000000000000000000000000000000000000000000'>>7igure '? !etail of %&&&IMI1,.andler *o"ponent0000000000000000000000000000000000000000000000000000000000000000000000000000'>D7igure '? !etail of '&IMI1,.andler *o"ponent0000000000000000000000000000000000000000000000000000000000000000000000000000'>7igure '? !etail of Internationa1ro5erage,erver *o"ponent00000000000000000000000000000000000000000000000000000000000000'>

    7igure '@& !etail of apanIMI1,.andler *o"ponent000000000000000000000000000000000000000000000000000000000000000000000000000'>7igure '@' !etail of ,tandardInternationalIMI1,.andler *o"ponent0000000000000000000000000000000000000000000000000'>7igure '@% 6MF2e"oteFueue and 6MFAliasFueue0000000000000000000000000000000000000000000000000000000000000000000000000'D?7igure '@? ,u""ar+ of the "ain usage of operator stereot+pes000000000000000000000000000000000000000000000000000000000000'D@7igure '@@ 6MFIMessage7lo40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'D@7igure '@> *o"pound and pri"itive nodes in 6MFI0000000000000000000000000000000000000000000000000000000000000000000000000000'D>7igure '@D 6MFIntegrator class diagra"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'D7igure '@ M, Fueue,ender00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'D7igure '@ M, Fueue2eceiver00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'&7igure '@ M, Fueue1ro4ser000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'&7igure '>& A M,,ubscriberListener e? M,,ubscriptionInfrastructure0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'%7igure '>@ A M, opicPublisher00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'%7igure '>> M,PublicationInfrastructure000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'?7igure '>D *O1OL Meta"odel00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'@7igure '> !Lang to *O1OL000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'>7igure '> *O1OL ,tereot+pes00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'>7igure '> PL$I Meta"odel000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'7igure 'D& !Lang to PL$I000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'&7igure 'D' PL$I ,tereot+pes00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'&7igure 'D% * Meta"odel0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'>7igure 'D? !Lang to *00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'D7igure 'D@ * !erivation00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'D7igure 'D> * #a"es00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'7igure 'DD * !atat+pe Model +pes0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'7igure 'D * User +pes0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'7igure 'D *PP Meta"odel000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'&7igure 'D *PP Model +pes000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'&7igure '& IM, ransaction Message Meta"odel0000000000000000000000000000000000000000000000000000000000000000000000000000000000'?7igure '' IM, ransaction Message Prefi IM, Messages Pri"itive +pes000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'>7igure 'D M7, Inheritance 8ie400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000%&7igure ' M7, 2elationship 8ie400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000%'&7igure ' M7, Attribute 8ie400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000%''7igure ' *I*, 1M, 2elationship 8ie40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000%?%7igure '& *I*, 1M, Inheritance 8ie4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000%?%

    ad$%&&'-&-' UML for EAI i

  • 7/26/2019 UML for EAI

    12/259

    7igure '' *I*, 1M, Attributes000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000%??

    ad$%&&'-&-' UML for EAI

  • 7/26/2019 UML for EAI

    13/259

    ad$%&&'-&-' UML for EAI

  • 7/26/2019 UML for EAI

    14/259

    !art ' Introduction

    ad$%&&'-&-' UML for EAI '

  • 7/26/2019 UML for EAI

    15/259

    1 Introduction and uide

    1!1 Introduction

    As enterprises adapt to business change and ne4 opportunities/ the+ see5 to build on their e/ "andator+ re;uire"ents are listed and addressed0

    he sections in Part %describe the EAI Integration Meta"odel and *o""on Application Meta"odel(*AM)0 he Integration "eta"odel defines the "odeling ele"ents used in the profile0 *AM supportsthe definition of application interfaces0

    ad$%&&'-&-' UML for EAI %

  • 7/26/2019 UML for EAI

    16/259

    he sections in Part ?define a profile that uses collaboration diagra"s and activit+ diagra"s/ based onthe Integration Meta"odel0

    he sections in Part @give a proof of concept for the profile b+ sho4ing through sa"ples ho4 theele"ents of the profile can be used to "odel application architectures0

    he sections in Part >provide non-nor"ative "appings to i"ple"entation technologies and nor"ative"appings (,ection '?) to progra""ing-language data structures0

    CMI and !! files for the "eta"odels are attached to the docu"ent as EAIIMCMI!!0Bip andEAI*AMCMI!!0Bip0

    1!% &ub$ission Contact Points

    *or+ 10 *asanave!ata Access echnologies'@&&& ,6 '' Av0/ Mia"i/ 7L ??'D/ U,AE"ail cor+-centerprise-co"ponent0co"

    9eith !udd+*2* for Enterprise !istributed ,+ste"s echnolog+ (!,*)Universit+ of Fueensland/ 1risbane @&%/ AustraliaE"ail duddstc0edu0au

    !ai *leggOracle *orporation>%& Oracle Par54a+/ ha"es 8alle+ Par5/ 2eading/ 1er5shire 2D '2A/ EnglandE-"ail dai0cleggoracle0co"

    !avid 7ran5elIO#A@' ,antiago *ourt/ *hico/ *A >?E-"ail david0fran5eliona0co"

    .a3i"e .oriuchio5+o International Universit+'-'?-' Matoba-5ita/ 9a4agoe-shi/ ,aita"a ?>&-''&%/ apanE"ail horitiu0ac03p

    ,ridhar I+engar

    Unis+s *orporation%>%> eroni"o 2d0/ Mission 8ie3o/ *A %D'E-"ail ,ridhar0I+engar%unis+s0co"

    ohn 9nap"anI1M.ursle+ Par5/ 6inchester/ ,O%' %#/ EnglandE-"ail 5nap"anu50ib"0co"

    ad$%&&'-&-' UML for EAI ?

    mailto:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]
  • 7/26/2019 UML for EAI

    17/259

    6o3te5 9oBacB+ns5i2ational *orporation@&& East Pearl *ir0/ 1oulder/ *O &?&'-D'&E-"ail 4o3te5rational0co"

    *halon Mullins*harles ,ch4ab *o0%'' Main ,t0/ ,an 7rancisco/ *A @'&>E-"ail *halon0Mullinssch4ab0co"

    A5ira ana5a.itachi/ Ltd0/ ,oft4are !ivision/ Enterprise 1usiness Planning/ Product Planning !ept0/>&?& otsu5a-cho/ otsu5a-5u/ :o5oha"a %@@->>>/ apanE-"ail tana5aa5soft0hitachi0co03p

    1!' Contributors

    In addition to the contacts/ the follo4ing people contributed to this sub"ission

    ,teve 1rods5+ (I1M)/ Antonio *arrasco (!ata Access)/ !ieter a4lic5 (Oracle)/ ,h+h-Mei .o (I1M)/,tuart 9ent (McLellan 9ent Associates for I1M)/ 2ob Phippen (I1M)/ 1arbara Price (I1M)/ uus2a"ac5ers (Oracle) and Ed ,eide4itB (for"erl+ of *oncept 7ive)0

    ad$%&&'-&-' UML for EAI @

    mailto:[email protected]:[email protected]:[email protected]:[email protected]
  • 7/26/2019 UML for EAI

    18/259

    " &cope

    he scope is described 4ith three generic scenarios representing the evolution of the integrationre;uire"ents

    ,cenario '0 Application integration through connectivity.

    ,cenario %0 Application integration through information sharing.

    ,cenario ?0 Application integration throughprocess collaboration0

    7or each scenario "a3or characteristics and re;uire"ents are described0 Obviousl+/ scenario % re;uiresthe functionalit+ described in scenario ' and scenario ? re;uires the functionalit+ described in scenario%0 .o4ever/ as 4e "ove for4ard fro" scenario ' to scenario % and scenario ?/ the underl+ingfunctionalit+ beco"es less visible and "ore and "ore hidden in the infrastructure0

    As the industr+ "oves for4ard/ scenario ?=or an updated version of scenario ?=4ill "ost li5el+beco"e the do"inant scenario0

    "!1 &cenario 1 Connectiit*

    A s"all set of applications has to co""unicate s+nchronousl+ or as+nchronousl+ 4ith each other toprovide business functions0

    It "ust be possible to "odel the follo4ing abstractions

    ,ervice re;uester and provider

    ,+nchronous and as+nchronous service re;uest

    2e;uest/ repl+ and notification

    In this scenario/ the participating applications share a co""on architecture0 he+ share the data "odelof the co""unication and the+ are able to activate the appropriate applications to obtain a service0

    here is a need for additional abstractions such as;ueues (local or re"ote) and topics0 At one level/;ueues and topics should be invisible/ but at a lo4er level of detail the+ "a+ 4ell be re;uired0

    "!" &cenario " Infor$ation &haring

    his scenario co"es fro" handling securities0

    An investor orders a stoc5 trade/ t+picall+ b+ sending a "essage describing the stoc5 trade to becarried out0 (6e discuss the creation of the "essage in the ne

  • 7/26/2019 UML for EAI

    19/259

    the institution/ notif+ing a bro5er if the trade is large/ and notif+ing a bro5er as 4ell as theinvestor if there are an+ issues0

    If the order is accepted the "ar5et place is selected and an institution such as a "ar5et "a5ere

  • 7/26/2019 UML for EAI

    20/259

    Auditing/ trac5ing/ and "ining=the abilit+ to find and relate "essages/ both consu"ed and in flight0

    In this scenario/ the applications share a co""on business event and process "odel at the conceptuallevel0 .o4ever/ details of the la+out of the data "a+ var+/ e0g0/ one progra" "a+ use ,6I7structures/ 4hile another uses CML0

    he ter" information sharingis used to characteriBe the interaction bet4een participants providinginfor"ation for the right recipients0 6here ti"e is of the essence and infor"ation is co""unicated 4ith"essaging$event technolog+ 4e refer tozero latency information sharing.

    "!% &cenario % Process Collaboration

    *o"pan+ A offers its "erchandise through the Internet0 6hile so"e custo"ers order goods using abro4ser interface/ the "a3orit+ of the orders are co""unicated business-to-business (1%1) using one ofthe 1%1 protocols0 In si"plified for"/ a 1%1 protocol consists of the follo4ing business events

    27F (2e;uest 7or Fuotation)

    Offer

    Acceptance

    ,hip"ent notice

    1ill

    Pa+"ent

    Other events involved in negotiations/ in;uiries/ changes/ cancellation/ and other additional steps (e0g0/steps involving co""unications proble"s) are not considered in this si"plification0

    *o"pan+ A co""unicates 4ith business partners over secure Internet channels0 #on repudiation/ highreliabilit+ (including disaster tolerance)/ e

  • 7/26/2019 UML for EAI

    21/259

    Applications that can accept re;uests and can notif+ the outside 4orld using events0 At least so"e of

    these applications have to be configured to activate the desired events0

    Applications that additionall+ provide a process interface0 hese applications have to be configured

    to use the desired process structure0

    In an+ of these cases it can not be assu"ed that the process as seen b+ the application is the process asseen b+ the selected 1%1 protocol0 Actuall+ it is desirable to hide the internal processes fro" businesspartners/ so the+ can be changed 4ithout i"pact to the outside 4orld and potential co"petitiveadvantages can be hidden0 o achieve this/ a "ediation service has to be available to transfor" theprocess and data se"antics e"bedded in the 1%1 protocols to the process and data se"antics of anenterpriseNs internal processes0 his transfor"ation 4ill be calledsemantic mediation0 ,e"antic"ediation is part of the core functionalit+ re;uired for the integration of autono"ous applications0

    7le

  • 7/26/2019 UML for EAI

    22/259

    % Modeling Approach

    he EAI specification is delivered as a co"plete MO7-based "eta"odel and a UML profile0 hisapproach facilitates e

  • 7/26/2019 UML for EAI

    23/259

    %!% +our,la*ered Architecture

    he relationship of the EAI specification to the four-la+ered architecture defined b+ the OM is asfollo4s0 MO7 is at level ?/ so the EAI "eta"odel is at level %0 he EAI UML profile is also at thislevel it is 3ust a set of additional cosntraints (4hat stereot+pes/ tagged values/ etc0) on ho4 UML is tobe used 4hen notating EAI "odels0 he EAI "eta"odel should be thought of as the definition of the

    abstract syntaxof EAI "odels0 An EAI "odel/ 4hich is at level '/ is an expressionof this abstracts+nta

  • 7/26/2019 UML for EAI

    24/259

    ' Co$pliance

    '!1 -erie.

    *o"pliance 4ith this standard b+ a vendor can be partial0 o facilitate this the co"pliance points havebeen defined separatel+ (sections @0%/ @0?/ and @0@) and e

  • 7/26/2019 UML for EAI

    25/259

    '!% Co$pliance .ith the UML Actiit* Profile

    he UML Activit+ Profile is defined in ,ection 0

    '!%!1 eneral Co$pliance

    A co"pliant i"ple"entation supports the UML CMI e

  • 7/26/2019 UML for EAI

    26/259

    A co"pliant i"ple"entation of the Integration "eta"odel can be described as one that Tco"plies 4iththe EAI Integration "eta"odelT a co"pliant i"ple"entation of the *O1OL "eta"odel can bedescribed as one that Tco"plies 4ith the EAI *O1OL "eta"odelT etc0

    '! Co$pliance &tate$ent E2a$ples

    An+ co"bination of the co"pliance points can be used0 E

  • 7/26/2019 UML for EAI

    27/259

    3e4uire$ents and Areas for #iscussion

    !1 Mandator* 3e4uire$ents

    he 27P re;uire"ents are ;uoted in italics,follo4ed b+ a su""ar+ of the sub"issionQs response0

    Responses shall propose a UML profile suitable for modeling at the architectural level, as distinct from

    business modeling or application system design. The purpose is to represent IT systems existing

    systems, vendor!supplied pac"ages and ne#ly developed application systems$ at the level appropriatefor integration bet#een them.

    his UML profile is suitable for "odeling at the architectural level because it is based on a "eta"odelthat supports co"position and deco"position/ and it defines interfaces to s+ste"s/ applications andpac5ages/ both ne4 and e

  • 7/26/2019 UML for EAI

    28/259

    coupling s+ste"s0 he use of "essage bro5ers is de"onstrated in the non-nor"ative "apping to aco""ercial product (,ection '')0

    !1!" 6eterogeneous Eniron$ent

    %roposals shall be generally applicable to heterogeneous net#or"s of programming systems, operatingsystems, application sytems, servers and pac"ages. They shall sho# ho# they apply to mixtures that

    include -Rs, Internet servers and other subsystems.

    he "essage-based approach adopted in this sub"ission is 4ell 5no4n to be applicable across a 4idevariet+ of s+ste"s and servers0 .eterogeneit+ of progra""ing s+ste"s is sho4n in the non-nor"ativelanguage "odels (,ection '?)0 Interfaces to several subs+ste"s are given in ,ection '@0 he sa"ple in,ection illustrates the use of several servers and protocols (both net4or5ing and data interchangeprotocols) across "ore than one enterprise0

    !1!% 7ML

    %roposals shall sho# ho# they are compatible #ith the use of /ML in message formats for business

    data.

    he "odel allo4s "essages to be in different for"ats/ including CML0 he "essage "eta"odelincludes a for"at specification that ac5no4ledges the distinction bet4een self-defining and separatel+defined "essage for"ats (see ,ectionD0?0@)0 In the case of CML/ generic !!s or sche"as can bedefined as a do"ain/ or a "essage for"at "a+ co"pl+ 4ith a specific !! in another do"ain0

    !1!' 7MI

    %roposals shall sho# ho# they are compatible #ith the rendering of metadata in /MI. Models shall be

    interchangeable bet#een different tools through the use of /MI. This shall include the use of /MI todefine message formats and the 01M metamodel for transformations.

    1ecause 4e have not e

  • 7/26/2019 UML for EAI

    29/259

    *o"position Model (7*M) unifies co"ponent co"position and coordination both for events and forother st+les of co""unication0 his "odel is at a higher level of abstraction than the "essage flo4s/sources/ targets/ adapters/ and operators in EAI0 he "odel is applicable to EAI/ and the EAIIntegration "eta"odel (see ,ection D) is a specialiBation of it0 In particular/ 4e use it to represent

    ,i"ple and co"pound flo4 co"ponents

    Input and output data sets

    !ata flo4s/ control flo4s and guard conditions

    he EAI Integration "eta"odel includes publish$subscribe ele"ents/ and these are related to the EventsProfile in E!O* as follo4s

    &AI Integration metamodel C &*ent! Pro"ile metamodel

    EAI,ubscription ,ubscription

    EAI,ubscription7ilter #otification2uleEAIMessage (in conte

  • 7/26/2019 UML for EAI

    30/259

    Part @sho4s sa"ple "odels that use class diagra"s and collaboration diagra"s of the profile0 heseco"e fro" fro" the financial services industr+0 ,ection sho4s an e

  • 7/26/2019 UML for EAI

    31/259

    !% 3elationship to Enisioned -M Technolog*

    his section describes the relationship/ in ter"s of align"ent/ reuse or overlap 4ith OM standards for4hich 27Ps have been issued but 4hich have not +et been adopted0

    !%!1 3eal,ti$e

    he UML Profile for ,cheduling/ Perfor"ance and i"e (fro" the 2eal-ti"e P,I/ OM docu"entnu"ber ad$&'-&D-'@) e"phasiBes the definition of ;ualit+ of service (Fo,)0 he UML Profile for EAI"a5es provision for Fo, specifications in the provision of strea"s (,ection D0@0'0%) and resources(,ection D0?0)0 hese are left non-specific in this sub"ission and can be aug"ented 4ith specificationsfro" the UML Profile for ,cheduling/ Perfor"ance and i"e0

    !' 3elationship to E2isting &tandards

    !'!1 UML

    As a UML profile/ this sub"ission defines uses of UML '0@ for the purposes of application integration0his includes classes and stereot+pes0

    !'!" Meta -b;ect +acilit* (M-+)

    UML is MO7 co"pliant0 his sub"ission defines UML ele"ents and adds additional se"anticsappropriate to the conte

  • 7/26/2019 UML for EAI

    32/259

    he EAI *o""on Application Meta"odel (*AM)/ 4hich is described in / defines and publishes a"etadata interchange standard for infor"ation about accessing enterprise applications such as *I*, andIM,0 *AM is reusable and is independent of an+ particular tool or "iddle4are0 It is li5el+ to provide anincentive to connector suppliers b+ reducing the 4or5 re;uired to create and develop connectors and$orconnector builder tools0

    *AM is needed for data transfor"ation in an enterprise application integration environ"ent0 It providesdata t+pe "apping bet4een "i

  • 7/26/2019 UML for EAI

    33/259

    !art ( Meta)odel

    his part describes the EAI "eta"odel/ 4hich/ as e

  • 7/26/2019 UML for EAI

    34/259

    8 EAI Integration Meta$odel

    8!1 EAI Integration speciali0es +CM

    he EAI Integration "eta"odel is a specialiBation of the 7lo4 *o"position Model fro" the UMLProfile for E!O* (OM !ocu"ent #u"ber ad$%&&'-&D-&/ Part I/ *hapter > ,ection %)0 hefollo4ing sections "a5e e

  • 7/26/2019 UML for EAI

    35/259

    #ote that these derived associations/ although specificall+ part of the EAI "eta"odel pac5age/ do notre;uire additional specialiBations or constraints be+ond those alread+ present in the 7*M0 ,ince derivedassociations can be co"puted fro" infor"ation alread+ in the "eta"odel/ a tool that "anipulates the a"odel need not save derived associations 4hen saving a "odel0

    8!"!" +CM diagra$s

    he "eta"odel diagra"s fro" the 7*M are included for the readerQs reference 4ithout furtherco""ent0 he reader is referred to ad$%&&'-&D-& for e

  • 7/26/2019 UML for EAI

    36/259

    F'SinF'Sou%,e

    0**n1

    +sin

    0**n

    +sou%,e

    1

    F'Ope%ation

    name St%in)1

    +impements

    1

    F'Fun,tion

    1 +invoes1

    FCMTerminalToTerminalLink

    FCMTerminalToNodeLink

    F'Te%mina

    te%minaind Te%minaind

    1

    +ta%)etTe%mina

    1

    1+sou%,eTe%mina

    1

    F''ommand

    FCMConnection

    F'ode

    1

    0**n

    +sou%,eode 1

    +outbound

    0**n

    1

    0**n

    +ta%)etode 1

    +inbound0**n

    0**n

    1

    +inte%.a,e 0**n

    1

    de%ived44

    FCMComponent

    1+pe%.o%med(& 1

    F''omposition

    0**n

    +,omponents

    0**n

    0**n

    +,onne,tions

    0**n

    0**n+nodes0**n

    F'Annotation

    name#n'omposition St%in)

    1 +annotates1

    0**n

    +annotations

    0**n

    3igure 9 3lo# 0omposition Model main diagram from ad49::8!:;!:

  • 7/26/2019 UML for EAI

    37/259

    8!"!% Co$posite nodes

    F''ommand

    5.%om F''o%e6

    F''omposition

    5.%om F''o%e60**1

    +impementin)'omposition

    0**1

    de%ived44

    F'ode

    5.%om F''o%e6

    0**n+nodes 0**n

    F'Fun,tion

    5.%om F''o%e6

    +,omposite

    3igure > 'erived association bet#een 30M0ommand and 30M0omposition

    #e"inition

    he co"position "ethod in the 7*M is to construct an 7*M*o""and (4hich is an 7*M#ode) fro" an7*M*o"position (7igure @)0 In the derived association/ the 7*M*o""and is a compositenode/ andthe 7*M*o"position is its implementing0omposition0 An 7*M*o"position can be regarded as full+specif+ing the e

  • 7/26/2019 UML for EAI

    38/259

    F'Fun,tion5.%om F''o%e6

    F'ode5.%om F''o%e6

    FCMConnection

    F''ommand5.%om F''o%e6

    0**n +,ontents0**n +,ompositeode

    de%ived44

    0**n+,omposed'onne,tions 0**n

    +,ompositeode

    de%ived44

    3igure ? 'erived association bet#een a composite node, its content nodes and its composed connections

    Con!traint

    7*M*o""and0contents W 7*M*o""and0i"ple"enting*o"position0nodes

    7*M*o""and0co"posed*onnections W 7*M*o""and0i"ple"enting*o"position0connections

    8!"! 3elationship bet.een the interface of a co$posite node and its contents

    An 7*M#ode has 7*Mer"inals as interfaces/ but the 7*M ties t+pe infor"ation to the7*MPara"eters of an 7*MOperation0 6e sa+ that an 7*Mer"inal is the representationof an

    7*MPara"eter0

    F'Pa%amete%F'Te%mina

    te%minaind Te%minaind

    1

    +pa%amete%

    1

    +%ep%esentation

    de%ived44

    3igure ; 'erived association bet#een 30MTerminal and 30M%arameter

    In a co"posite node (i0e0/ a node created fro" an 7*M*o"position) the interface offered is defined b+the 7*M,ource and 7*M,in5 nodes contained 4ithin the 7*M*o"position0 An 7*M,ourceimplements(see 7igure %) an 7*MOperation0 7*M,in5 nodes represent the population of a singleoutput para"eter of this 7*MOperation0

    8!% EAI &peciali0ations of the +CM

    8!%!1 Motiation

    ,ection D0?defines a set of specialiBations of the 7*M0 Each of these introduces a ne4 concept re;uiredfor EAI architectural "odeling0

    ad$%&&'-&-' UML for EAI %>

  • 7/26/2019 UML for EAI

    39/259

    8!%!" EAILin=

    #e"inition

    Lin5s bet4een entities in an EAI architecture are often treated as event channels/ and the occurrence of

    an event on such a channel initiates processing of the infor"ation associated 4ith the event0 As such/these lin5s represent the flo4 of both data and control0 In the 7*M/ data and control lin5s are separate/so 4e introduce(ILin"/ 4hich consists of one of each0

    Lin5s "a+ have theirsynchronizationspecified assynchronous/ in 4hich case a lin5 bet4een a pair ofter"inals i"plies a s+nchronous (call) invocation of the relevant 7*MOperation/ or asynchronousin4hich case a lin5 bet4een a pair of ter"inals i"plies an as+nchronous invocation of the relevant7*MOperation (the 7*MOperation 4hich o4ns the para"eter that the ter"inal represents)0

    F'Datain

    5.%om F'6

    F''ont%oin

    5.%om F'6"A#in

    s&n,8%oniation "A#S&n,ode1

    +data

    1 1

    +,ont%o

    1

    FCMTerminalToTerminalLink

    (from FCMCore)

    "A#S&n,ode

    unspe,i.ied :

    s&n,8%onous :

    as&n,8%onous

    3igure @ 'efinition of (ILin"

    Con!traint!

    An instance of an EAILin5 bet4een an output ter"inal and an input ter"inal i"plies that there is an7*M!ataLin5 bet4een the t4o ter"inals/ and an 7*M*ontrolLin5 fro" the output ter"inal to the node

    that o4ns the input ter"inal0

    ad$%&&'-&-' UML for EAI %D

  • 7/26/2019 UML for EAI

    40/259

    8!%!% EAITer$inal

    "A#Te%mina

    F'Te%mina

    te%minaind Te%minaind

    3igure A (ITerminal

    #e"inition

    An EAIer"inal is a specialiBation of 7*Mer"inal0

    Con!traint!

    EAIer"inal can be connected to other instances of ter"inals onl+ via instances of EAILin50

    An EAIer"inal is the representation(see 7igure D) of an 7*MPara"eter that is of t+peEAIMessage*ontent0

    An EAIer"inal on the e

  • 7/26/2019 UML for EAI

    41/259

    need to be inferred b+ the MOM infrastructure0 !istinctions of this 5ind "a+ be "ade b+ designation ofthe "essage!o"ain (e0g0/ generic !!/ e

  • 7/26/2019 UML for EAI

    42/259

    "A#essa)e"ement

    "A#;eade%

    0**1

    +e

  • 7/26/2019 UML for EAI

    43/259

    ;M Me!!age &lement!

    Message ele"ents can be data structures defined b+ traditional language specifications li5e *O1OL andPL$I0 he+ can also be CML docu"ents/ for 4hich the natural specification language is CML ,che"a0he OM/MI %roduction of /ML )chemasub"ission provides an CML ,che"a Meta"odel0 7igure

    '%sho4s a lin5age bet4een the CML ,che"a Meta"odel and the !Lang Meta"odel that supportsCML ,che"a as a specification language for "essage ele"ents0

    TDLangClassifier5.%om T Dan)6

    TDLangComposedType5.%om T Dan)6

    TDLangElement5.%om T Dan)6

    =SD'ompe

  • 7/26/2019 UML for EAI

    44/259

    "A#essa)eOpe%ation

    F'Ope%ation

    name St%in)

    3igure 8= Message-peration

    8!%!8 EAI&ource and EAI&in=

    #e!cription

    EAI,ource and EAI,in5 represent points in an EAI architecture 4here "essages appear (EAI,ource)and disappear (EAI,in5)0

    ,ources and sin5s "a+ "a5e use of EAI2esources0 An EAI2esource represents a usable and sharableentit+ such as a ;ueue (,ection D0?0) or a database (,ection D0@0'0>)0

    Con!traint!

    EAI,ource is a subclass of 7*M,ource0 Itssin"s"ust be EAI,in5/ and its implementsoperation "ustbe an 7*MOperation0

    EAI,in5 is a subclass of 7*M,in50 Itssource "ust be an EAI,ource0

    F'Sou%,eF'Sin

    "A#Sou%,e "A#Sin"A#Resou%,e

    0**n 0**n

    +%esou%,es

    0**n

    +%esou%,es

    0**n

    3igure 8> )ources and sin"s

    ad$%&&'-&-' UML for EAI ?'

  • 7/26/2019 UML for EAI

    45/259

    8!%!9 EAI>ueue

    #e!cription

    EAIFueue is a ;ueue of finite length/ and is "odeled as a subclass of EAI2esource0

    EAIFueue has an ordered collection messages of EAIMessage*ontent0 A ;ueue has a na"e/ and the"a

  • 7/26/2019 UML for EAI

    46/259

    6e represent the fact that an Operator uses ;ueueing via the use of EAIFueuedInputer"inal andEAIFueuedOutputer"inal/ 4hich are subclasses of EAIer"inal0

    "A#Te%mina-

    name / St%in)

    "A#>ueuedOutputTe%mina- "A#>ueued#nputTe%mina-"A#>ueue

    1**n 1

    +ta%)et>ueues

    1**n

    +input>ueue

    1

    3igure 8; (ICueued-utputTerminal and (ICueuedInputTerminal

    An EAIFueuedInputer"inal has an association 4ith the single ;ueue that it reads fro"/ 4hile anEAIFueuedOutputer"inal has an association 4ith each of the ;ueues used b+ its target

    EAIFueuedInputer"inals0

    An+ operator that has an EAIFueuedOutputer"inal is understood to place a single cop+ of its output"essage on each of its targetCueues0

    Fueued input and output ter"inals "a+ be used on an+ of the EAI constructs that have ter"inals(EAIPri"itiveOperator/ EAI*o"poundOperator/ EAI,ource/ EAI,in5)0

    Con!traint!

    All EAILin5s fro" an EAIFueuedOutputer"inal "ust be instances of EAIFueuedInputer"inal0

    he EAILin5 fro" an EAIFueuedOutputer"inal to an EAIFueuedInputer"inal "ust havesynchronizationDasynchronous.

    An EAILin5 bet4een an EAIFueuedOutputer"inal and an EAIFueuedInputer"inal i"plies that theinputFueue of the inputer"inal is in the targetCueuesof the output ter"inal0

    All EAIFueuedInputer"inals have EAILin5s 4ith all EAIFueuedOutputer"inals that use the sa"e;ueue instance0

    8!%!? EAI>ueued&ource and EAI>ueued&in=

    #e!cription

    EAIFueued,ource and EAIFueued,in5 are used to "odel the internal ele"ents of an EAIMessage7lo4(see ,ection D0?0'&0%0') that is associated 4ith EAIFueuedInputer"inals andEAIFueuedOutputer"inals0

    6hen vie4ing the internals (i0e0/ the EAIMessage7lo4) of a *o"poundOperator/ the ele"ent of theflo4 that receives "essages (and passes the" on to the rest of the flo4) is a !ourceof "essages to the

    ad$%&&'-&-' UML for EAI ??

  • 7/26/2019 UML for EAI

    47/259

    rest of the EAIMessage7lo4/ and vice versa0 .ence/ the part that reads fro" a ;ueue is "odeled as aEAIFueued,ource and the part that 4rites to a ;ueue as EAIFueued,in50

    "A#Sou%,e"A#Sin

    "A#>ueuedSou%,e"A#>ueuedSin

    "A#>ueue

    maueue

    11**n

    +output>ueues

    1**n

    3igure 8@ Cueued)ource and CueuedTarget

    #ote that EAIFueued,in5 and EAIFueued,ource could the"selves be specialiBed to use ;ueuedter"inals0 his 4ould i"pl+ that ;ueueing is used both outside andinside the EAIMessage7lo40

    Con!traint!

    he outputCueuesof an EAIFueued,in5 "ust be the sa"e as the targetCueuesof theEAIFueuedOutputer"inal that it is associated 4ith

    he inputCueueof an EAIFueued,ource "ust be the sa"e as the inputCueueof theEAIFueuedInputer"inal that it is associated 4ith0

    Re"inement relation!hip!

    An EAILin5 4ith s+nchroniBation of unspecifiedis refined b+ an EAILin5 4ith s+nchroniBation ofeithersynchronous or asynchronous0

    6here there is an instance of an EAILin5 4ith a s+nchroniBation of asynchronouslin5ing a pair of7*Mer"inals/ this is refined b+ the substitution of EAIFueuedInputer"inal andEAIFueuedOutputer"inal for the 7*Mer"inals0

    8!%!1@ -perators

    Operators act upon "essages as the+ flo4 bet4een s+ste"s0 6e define(I%rimitive-perator to be a

    subclass of 7*M7unction/ 4hich invo"esan EAIMessageOperation0 ,ubclasses ofEAIPri"itiveOperator are used to represent particular t+pes of "essage processing behavior0

    6e define 0ompound-peratorto represent the behavior of co"positions of operators0 his docu"entdefines subclasses of either 5ind of operator that perfor" specific 5inds of operation on a "essage0Message operations "a+ act on the "essage header and bod+ and "a+ change their content/ their for"ator both0 he+ "a+ also provide routing behavior0

    ad$%&&'-&-' UML for EAI ?@

  • 7/26/2019 UML for EAI

    48/259

    F''ommandF'Fun,tion

    "A#'ompoundOpe%ato%

    "A#Resou%,e0**n

    +%esou%,es

    0**n

    "A#P%imitiveOpe%ato%

    0**n

    +%esou%,es

    0**n

    F'T&pe

    1

    0**1

    1

    0**1

    +t&pe

    +de.inesde%ived44

    de%ived44

    3igure 8A 'efinitions of %rimitive-perator and 0ompound-perator

    8!%!1@!1 EAIPri$itie-perator

    #e!cription

    Instances of EAIPri"itiveOperator enact a si"ple "essage processing operation0 It is Vopa;ueQ in that itsoperation is specified but its internal 4or5ings are not "odeled0 It "a+ optionall+ "a5e use of

    EAI2esources to enact the operation0

    Con!traint!

    he EAIPri"itiveOperator invo"es an EAIMessageOperation0

    EAIPri"itiveOperator has a derived association type 4ith 7*M+pe0 It subclasses 7*M7unction/ 4hichinvo"es an 7*MOperation0 7*MOperation is co"posed b+ 7*M+pe0

    6hen used in an EAIMessage7lo4/ an EAIPri"itiveOperator also definesa t+pe0

    8!%!1@!" EAICo$pound-perator

    #e!cription

    An instance of an EAI*o"poundOperator co"poses "ore co"ple< "essage processing behavior fro"EAIPri"itiveOperators/ fro" other EAI*o"poundOperators or both0 It "a+ optionall+ "a5e use ofEAI2esources to enact its operations0

    ad$%&&'-&-' UML for EAI ?>

  • 7/26/2019 UML for EAI

    49/259

    Con!traint!

    EAI*o"poundOperator can onl+ co"pose EAIPri"itiveOperator or other EAI*o"poundOperators0he implementing0omposition(a derived association inherited fro" 7*M*o""and/ see7igure @) "ustbe an EAIMessage7lo4.

    %.3.1$.2.1 &AIMe!!age8lo:

    An EAIMessage7lo4 is a subclass of 7*M*o"position0 Each of its nodes(see7igure %) "ust be one ofthe operator classes (EAIPri"itiveOperator or EAI*o"poundOperator)/ and its connections "ust beEAILin5s0 In addition it allo4s nodes to have e

  • 7/26/2019 UML for EAI

    50/259

    his conse;uentl+ deter"ines the t+pe of that the e

  • 7/26/2019 UML for EAI

    51/259

    F'Fun,tion

    "A#Sou%,eAdapte% F'appin)

    11

    +inte%naToessa)e

    3igure 98 )ource(dapter

    Con!traint!

    he output ter"inals of a ,ourceAdapter are instances of EAIer"inal

    Output para"eters of the invo"es7*MOperation of ,ourceAdapter "ust be EAIPara"eters/ 4hich areassociated 4ith EAIMessage*ontent0

    here is no constraint on the t+pe of input ter"inals0

    here is no constraint on the t+pe of inputandfault7*MPara"eters0 It is noted that thefaults7*MPara"eters "a+ be EAIPara"eters (4ith(IMessage0ontent$but that this is unli5el+ to be thecase for inputbecause adapters are used to lin5 "essaging to other (internal) interfaces0

    8!%!11!"EAITargetAdapter

    An EAIargetAdapter has a single input EAIer"inal (JinK)0 It receives a "essage 4ith content of agiven input t+pe/ "aps the "essage content to the for"at re;uired for a s+ste" and then delivers the

    infor"ation to the s+ste"0 he transfor"ation is specified b+ a messageToInternal7*MMapping0

    F'appin)

    F'Fun,tion

    "A#Ta%)etAdapte%

    1

    +messa)eTo#nte%na

    1

    3igure 99 (ITarget(dapter

    Con!traint!

    he input para"eters of the 7*M7unction that EAIargetAdapter invo"es"ust be EAIPara"eters (4ithassociated EAIMessage*ontent)0

    ad$%&&'-&-' UML for EAI ?

  • 7/26/2019 UML for EAI

    52/259

    here is no constraint on 4hether the outputs and faults of the invo"es7*M7unction are7*MPara"eters or EAIPara"eters0 .o4ever/ the+ are unli5el+ to have associated EAIMessage*ontentbecause adapters are used to lin5 "essaging to other (internal) interfaces0

    8!%!11!%EAICallAdapter

    An EAI*allAdapter is invo5ed s+nchronousl+ b+ an application that 4ishes to "a5e use of a service"ade available via a server the server accepts a re;uest "essage and sends a response "essage bac5 tothe service re;uester0 It has t4o input ter"inals

    JcallK an 7*Mer"inal that a re;uesting application can use to invo5e the call adapter

    Jhandle2epl+K an EAIer"inal that handles a repl+

    It has t4o output ter"inals

    Jre;uestK the EAIer"inal fro" 4hich the re;uest "essage is sent

    JoutK an 7*Mer"inal to 4hich the repl+ "essage is "apped

    EAI*allAdapter is a subclass of 7*M7unction0

    F'Fun,tion

    "A#'aAdapte% F'appin)

    11

    +,aToReBuestappin)

    1

    +%ep&ToOutputappin)

    1

    3igure 9= (I0all(dapter

    he call adapter has t4o "appings/ one of 4hich specifies ho4 the call input para"eters are "apped tothe re;uest "essage the other specifies ho4 the return "essage is "apped to output para"etersrepresented b+ the JoutK ter"inal0

    6hen invo5ed via its JcallK ter"inal/ the EAI*allAdapter "aps the call para"eters into a re;uest"essage and sends it to the input ter"inal of an EAI2e;uest2epl+Adapter0 It 4aits for a repl+0 Onreceipt of a repl+ it "aps the "essage as specified in the repl+oOutputMapping/ and puts out the resulton the JoutK ter"inal0

    Con!traint!

    ad$%&&'-&-' UML for EAI ?

  • 7/26/2019 UML for EAI

    53/259

    he JoutK ter"inal of EAI*allAdapter "ust be connected via an EAILin5 to the Jre;uestInK ter"inal ofan EAI2e;uest2epl+Adapter0

    he Jhandle2epl+K ter"inal of EAI*allAdapter is the target of connections via an EAILin5 fro" theJrepl+OutK ter"inal of an EAI2e;uest2epl+Adapter0

    %.3.11.3.1 &AIReue!t8ormat

    EAI2e;uest7or"at is a subclass of EAIMessage*ontent0 A "essage that confor"s toEAI2e;uest7or"at specifies a ter"inal to 4hich replies should be sent specifiedReplyTerminal$.heassociation 4ith the ter"inal is not e

  • 7/26/2019 UML for EAI

    54/259

    "A#P%imitiveOpe%ato%

    "A#ReBuestRep&Adapte%

    F'appin)

    11

    +%eBuestTo'aappin)

    1

    +%etu%nToRep&appin)

    1

    3igure 9? (IReEuestReply(dapter

    Con!traint!

    he Jre;uestInK ter"inal e

  • 7/26/2019 UML for EAI

    55/259

    A filterQs output is a cop+ of its input0 #o output occurs if the input "essage does not satisf+ the filtercondition0

    8!'!1!" EAI&trea$

    EAI,trea" is an operator that allo4s V;ualit+ of serviceQ on a co""unication channel to be e

  • 7/26/2019 UML for EAI

    56/259

    8!'!1!% EAIPost#ater

    EAIPost!ater is a subclass of EAI,trea" 4ith a single input ter"inal (JinK) and a single output ter"inal(JoutK)0

    On receipt of a "essage at its input ter"inal/ it adds the "essage to the buffer/ and creates an individualtiming0onditionfor it0 he ti"ing*ondition "a+ entail a derivation fro" the content of the input"essage b+ a timerMapping. EAIPost!ater holds the "essage until its individual ti"ing condition is"et/ then e"its it fro" its JoutK ter"inal0

    "A#St%eam

    F'appin)"A#PostDate%

    1

    +time%appin)

    1

    "A#essa)e'ontent

    0**n+bu..e% 0**n

    F''ondition

    0**n

    +timin)'ondition

    0**n

    1 11 1

    3igure 9A (I%ost'ater

    8!'!1!' EAITransfor$er

    A ransfor"er is a subclass of Pri"itiveOperator 4ith a single input ter"inal and a single outputter"inal0

    ad$%&&'-&-' UML for EAI @?

  • 7/26/2019 UML for EAI

    57/259

    F'appin)

    "A#T%ans.o%me%

    0**n+t%ans.o%mation 0**n

    "A#P%imitiveOpe%ato%

    3igure 9< Transformer

    he output "essage is a transfor"ation of the input "essage/ as dictated b+ the transformation7*MMapping0

    8!'!1! EAI#5Transfor$er

    An EAI!1ransfor"er is a subclass of EAIransfor"er that has access to an EAI!atabase0

    EAI!atabase is "odeled as a subclass of EAI2esource and has the propert+ database5ame0 ,ubclassesof EAI!atabase "a+ specif+ further properties such as infor"ation re;uired to connect to the database0

    Access to a databaseas a resource allo4s the transfor"ation to "a5e use of infor"ation contained inthe database0 In particular/ it allo4s the "essage to be aug"ented (or enriched) 4ith data fro" thedatabase0

    "A#T%ans.o%me% "A#Resou%,e

    "A#D(T%ans.o%me% "A#Database

    databaseame St%in)

    1

    +database

    1

    3igure =: (I'Transformer

    ad$%&&'-&-' UML for EAI @@

  • 7/26/2019 UML for EAI

    58/259

    8!'!1!8 EAIAggregator

    An EAIAggregator is a subclass of Pri"itiveOperator0 It has a single input ter"inal (JinK) and a singleoutput ter"inal (JoutK)0 Its purpose is to co"bine several "essages (co"prising an aggregate) into asingle output "essage (EAIMessageAggregation)0 It is co""onl+ used in con3unction 4ith EAIi"er/

    4hich can chec5 for deadlines0

    On receipt of a "essage/ if there are no e

  • 7/26/2019 UML for EAI

    59/259

    8!'!1!9 EAI3outer

    #e!cription

    6hen a router receives a "essage/ it resends a cop+ via its single output ter"inal so that all connected

    input ter"inals receive the "essage0 In addition/ a router can accept d+na"ic addition or re"oval oftarget ter"inals/ and so it can be used to "odel a si"ple publication channel for "essages0

    Modeling

    EAI2outer is "odeled as an EAI*o"poundOperator0 he co"position that defines an EAI2outercontains an EAI2outerUpdate and an EAI1roadcaster operator0 It has the constraint that the+ share thesa"e instance of EAI2outingable0

    "A#Route%Update"A#(%oad,aste%

    "A#'ompoundOpe%ato% F''omposition

    "A#Route% "A#Route%'omposition

    1111

    11

    3igure =9 (IRouter

    %.4.1.'.1 &AIRouter?pdate and &AI@roadca!ter

    ad$%&&'-&-' UML for EAI @D

  • 7/26/2019 UML for EAI

    60/259

    "A#(%oadaste%

    "A#P%imitiveOpe%ato%

    "A#Route%Update

    "A#Routin)Tab-e

    1+%outin)Tab-e

    11

    +,u%%entRoutin)Tab-e1

    "A#Te%mina-

    name / St%in)

    +%outin)Ta%)ets

    3igure == (IRouter and (IRouterUpdate

    EAI1roadcaster routes a "essage to destinations listed in the EAI2outingable/ 4hich is "aintained b+EAI2outerUpdate0

    EAI2outerUpdate is a pri"itive operator 4ith a single input ter"inal (JcontrolK) and no outputter"inals0 It e

  • 7/26/2019 UML for EAI

    61/259

    "A#essa)e'ontent

    "A#Route%UpdateFo%mat

    "A#RemoveTa%)etFo%mat

    "A#Te%mina

    name St%in)

    1+%emoves 1

    de%ived44

    "A#AddTa%)etFo%mat

    1 +adds1

    de%ived44

    3igure => (IRouterUpdate3ormat

    An EAI1roadcaster has a single input ter"inal (JinK) and a single output ter"inal (JoutK)0 he JinKter"inal represents an+ input "essage0 his is copied to the output ter"inal for routing to all connected

    EAIer"inals0 he output ter"inal is connected via an EAILin5 to each EAIer"inal in theEAI2outingable0

    8!'!1!: EAI&ubscription-perator

    An EAI,ubscriptionOperator is a subclass of EAIPri"itiveOperator 4ith a single input ter"inal(JsubscribeK) and no output ter"inals0 It e

  • 7/26/2019 UML for EAI

    62/259

    "A#P%imitiveOpe%ato%

    "A#Subs,%iption"A#Sub,%iptionOpe%ato%

    0**n

    +subs,%iptionTabe

    0**n

    3igure =? )ubscription-perator

    A "essage that confor"s to the EAI,ubscription7or"at specifies a target EAIer"inal and a set ofEAI,ubscription2ules0 In 7igure ?D/ this is sho4n as a pair of derived associations0 his indicates thatthe target and associated subscription rules can be co"puted fro" the "essage content0 (here could beso"e indirection in the specification of the rules and ter"inal/ indicated b+ subscriptionModes0)

    "A#essa)e'ontent

    "A#Te%mina

    name St%in)

    "A#Subs,%iptionFo%mat

    subs,%iptionode Subs,%iptionodes

    1

    "A#Subs,%iptionRue

    1**n+spe,i.iedTa%)et+spe,i.iedRues

    de%ived44de%ived44

    11**n

    3igure =; (I)ubscription3ormat

    An EAI,ubscription relates an EAIer"inal to a collection of EAI,ubscription2ules0 ,ubse;uentl+ theEAIPublicationOperator (,ection D0@0'0) 4ill for4ard "essages that satisf+ thesubscriptionRulesto thesubscribingTerminal0

    ad$%&&'-&-' UML for EAI @

  • 7/26/2019 UML for EAI

    63/259

    "A#Te%mina

    name St%in)

    "A#Subs,%iption

    11

    "A#Subs,%iptionRue

    1**n +subs,%iptionRues1**n+subs,%ibin)Te%mina

    3igure =@ (I)ubscription

    An EAI,ubscription7ilter is a subclass of EAI7ilter0 Itsfilter0onditionis a set of EAI,ubscription2ules0

    "A#Fite%

    "A#Subs,%iptionFite% "A#Subs,%iptionRue

    1**n1**n

    +.ite%'ondition

    3igure =A )ubscription3ilter

    An EAI,ubscription2ule has subclasses EAIopic2ule and EAI*ontent2ule0

    F''ondition

    "A#Topi,Rue

    "A#Subs,%iptionRue

    "A#'ontentRue

    3igure =< (I)ubscriptionRule, (ITopicRule and (I0ontentRule

    8!'!1!? EAIPublication-perator

    #e!cription

    ad$%&&'-&-' UML for EAI >&

  • 7/26/2019 UML for EAI

    64/259

    he(I%ublication-perator"odels the se"antics of the publish$subscribe "ode of infor"ationsharing0 It for4ards each "essage to the targets specified in its current)ubscriptions/ if the+ pass therelevant filter0

    It is "odeled as a subclass of EAIPri"itiveOperator/ 4ith a single input ter"inal (JinK)/ and a single

    output ter"inal0 Messages sent to the input ter"inal are sent fro" the output ter"inal (JoutK) to eachsubscriber (EAIer"inal) if the "essage confor"s to the EAI,ubscription2ule for that subscriber0

    his output behavior is not the sa"e as that of EAIer"inal/ 4hich sends a cop+ of the "essage to ever+target ter"inal0 herefore a subclass of EAIer"inal is introduced called EAIPublicationer"inal0

    "A#Sub,%iptionOpe%ato%

    "A#Subs,%iption

    0**n

    +subs,%iptionTabe

    0**n

    "A#P%imitiveOpe%ato%

    "A#Pubi,ationOpe%ato%0**n

    +,u%%entSubs,%iptions

    0**n"A#Pubi,ationTe%mina

    1

    +out

    1

    3igure >: (I%ublication-perator and (I)ubscription-perator

    he diagra" belo4 sho4s the instance diagra" for the EAI,ubscriptionable after t4o subscriptionshave been added0

    / 5"A#Subs,%iptionTab-e6

    s1 /

    "A#Subs,%iption

    t1#n /

    "A#Te%mina-

    s2 /

    "A#Subs,%iption

    t2#n /

    "A#Te%mina-

    1Ru-e /

    "A#Subs,%iptionRu-e

    2%u-e /

    "A#Subs,%iptionRu-e

    3igure >8 xample )ubscriptionTable instance diagram

    8!'!1!1@ EAITi$er

    %.4.1.1$.1 &AI7imeSetperator

    ad$%&&'-&-' UML for EAI >'

  • 7/26/2019 UML for EAI

    65/259

    he i"e,etOperator is a subclass of Pri"itiveOperator/ 4ith a single input ter"inal (JsetK) and Berooutput ter"inals0 It processes a "essage (EAIMessagei"er*ondition) that specifies a timer0onditionand a "eans of identif+ing the "essages to 4hich the condition 4ill appl+0 It uses this infor"ation toadd to a list of time)et0onditions.

    +timeSet'onditions

    "A#P%imitiveOpe%ato%

    "A#TimeSetOpe%ato%

    "A#essa)eTi

    me%'ondition

    0**n0**n

    3igure >9 Time)et-perator

    An EAIMessagei"er*ondition is co"posed of t4o 7*M*onditions

    timer0onditionspecifies a deadline (a ti"e constraint)0 his "a+ be relative or absolute0

    correlation0onditionspecifies the "essages to 4hich the ti"er*ondition applies0 his is often a

    condition on an ele"ent of a "essage header/ such as the co""onl+ used Vcorrelation identifier0Q

    F''ondition

    "A#essa)eTime%'ondition

    +time%'ondition

    1

    +,o%%eation'ondition

    11 1

    3igure >= (IMessageTimer0ondition

    Con!traint!

    #o "ore than one EAIMessagei"er*ondition can appl+ to an+ single "essage in thetime)et0onditions0

    %.4.1.1$.2 &AI7imeChecperator

    ad$%&&'-&-' UML for EAI >%

  • 7/26/2019 UML for EAI

    66/259

    EAIi"e*hec5Operator is a subclass of Pri"itiveOperator 4ith a single input ter"inal (Jchec5K) andthree output ter"inals (Jonti"eK/ Je? (ITime0hec"-perator

    %.4.1.1$.3 &AI7imer

    EAIi"er is for"ed fro" a co"position of EAIi"e,etOperator and EAIi"e*hec5Operator0

    It has t4o input ter"inals/ JsetK and Jchec5/K and t4o output ter"inals JoutK/ Je?

  • 7/26/2019 UML for EAI

    67/259

    "A#'ompoundOpe%ato%

    "A#Time'8e,Ope%ato%"A#TimeSetOpe%ato%

    "A#Time%

    11

    de%ived44

    11

    de%ived44

    Con!traint!

    he instance of EAIi"e*hec5Operator and EAIi"e,etOperator fro" 4hich an EAIi"er is for"edshare the sa"e collection of EAIMessagei"er*ondition0

    8!'!" Topic,based publishBsubscribe

    8!'!"!1 EAITopicPublisher

    An EAIopicPublisher is a subclass of EAI,ource0 It sends "essages for publication to anEAIPublicationOperator0 he set of topics that it publishes "essages on is denoted b+publishes-n0 his

    is a derived association/ since a topic publisher need not declare the set of topic it publishes on0

    "A#Topi,Pubis8e% "A#Topi,

    0**n

    +pubis8esOn

    de%ived44 0**n

    "A#Sou%,e

    8!'!"!" Topics allo.edD b* an EAITopic3ule

    An abstract representation of an EAIopic2ule is the set of opics that it allo4s0

    "A#Topi,Ru-e "A#Topi,

    0**n

    +a--o?s

    0**n

    de%ived44

    3igure >; Topics allo#ed by an (ITopicRule

    ad$%&&'-&-' UML for EAI >@

  • 7/26/2019 UML for EAI

    68/259

    8!'!"!% 3elationship bet.een topic,based publishers and subscribers

    opic-based publishers and subscribers are related to each other via the topics that the+ produce and

    consu"e0

    7or a input ter"inal representing a subscriber connected to a particular PublicationOperator/ the set oftopics it is interested in subscribesTo$is deter"ined b+ the topic 4hich itsfilter0onditionallo#s.

    "A#Subs,%iptionRue

    "A#Topi,Rue

    "A#Te%mina

    name St%in)

    "A#Topi,

    0**n+ao?s 0**n

    de%ived44de%ived44

    +subs,%ibesTo

    "A#Subs,%iption

    11

    1**n +.ite%'ondition1**n

    3igure >@ Relationship bet#een a terminal and the topics for #hich it has a subscription

    ad$%&&'-&-' UML for EAI >>

  • 7/26/2019 UML for EAI

    69/259

    "A#Topi,Pubis8e%

    "A#Topi,

    0**n

    0**n

    +pubis8e%

    +pubis8esOn 0**n

    de%ived44

    "A#Te%mina

    name St%in)

    +subs,%ibesTo

    +subs,%ibe% 0**n

    0**n

    de%ived44

    0**n

    0**n

    0**n

    3igure >A Relationship bet#een publishers, subscribers and topics

    8! CCA Co$ponent Librar* for EAI

    his section specifies the **A co"ponent librar+ for EAI0 It is an infor"ational supple"ent to the EAIIntegration "eta"odel0

    7or each of the listed EAI "odel ele"ents a corresponding librar+ co"ponent is defined0 In each casethe librar+ co"ponent has the sa"e na"e as the corresponding EAI "odel ele"ent0

    8!!1 -perators

    8!!1!1 EAIPri$itie-perator

    EAIPri"itiveOperator corresponds to an unconstrained **A Process*o"ponent0

    he er"inal of the EAIPri"itiveOperator corresponds to Port of the **A Process*o"ponent0Input er"inal corresponds to a **A 7lo4Port 4ith "etaattribute direction W responds0Output er"inal corresponds to a **A 7lo4Port 4ith "etaattribute direction W initiates0he handled *ontent7or"at of a er"inal in the EAIPri"itiveOperator corresponds to the t+pe!ataEle"ent of the **A 7lo4Port0

    he *horeograph+ of the **A Process*o"ponent corresponding to an EAIPri"iveOperator 4ill have**A PortActivit+0 his represents each **A 7lo4Port corresponding to EAI input er"inal/ follo4edb+ **A ransition 4ith target on **A PortActivit+ that represents each **A 7lo4Port corresponding

    to EAI output er"inal0

    A **A Process*o"ponent/ corresponding to an EAIPri"itiveOperator/ can be utiliBed in a **A*o"position as a **A *o"ponentUsage that uses the **A Process*o"ponent0 7or each **A Port inthe **A Process*o"ponent/ there 4ill be a **A Port*onnector corresponding to the **A 7lo4Port ofthe used Process*o"ponent0

    ad$%&&'-&-' UML for EAI >D

  • 7/26/2019 UML for EAI

    70/259

    In **A/ there is no funda"ental distinction bet4een pri"itive and non-pri"itive Process*o"ponents02ather/ the Jpri"itivenessK of a Process*o"ponent is not e

  • 7/26/2019 UML for EAI

    71/259

    SampeC"A#T%ans.o%me%

    1 2

    1 input

    2 output

    SampeC"A#T%ans.o%me%

    1 2

    t%ans.o%m =ST ****

  • 7/26/2019 UML for EAI

    72/259

    SampeC"A#Fite%

    1 t%ue 1

    .ase 1 1 input

    t%ue 1 ouput .ase 1 ouput

    SampeC"A#Fite%

    1 t%ue 1

    .ase 1

    ,%ite%ia O' ***