Upload
mihirhota
View
259
Download
0
Embed Size (px)
Citation preview
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' ***