Example – Amazon Ecommerce Transaction

 

In this example, we try to combine all mentioned concepts and apply them into a concrete and familiar example: Amazon ecommerce transaction.

 

 

<!- - Namespace declaration - - >

<?xml version = “1.0”  encoding = “UTF-8” ?>

<xArch  xmlns = “http://www.ics.uci.edu/pub/arch/xArch/instance.xsd”

xmlns:instance = “http://www.ics.uci.edu/pub/arch/xArch/instance.xsd”

xmlns:types = “http://www.ics.uci.edu/pub/arch/xArch/types.xsd”

xmlns:xlink = “http://www.w3.org/1999/xlink”

xmlns:xsi = “http://www.w3.org/2000/10/XMLSchema-instance”>

 

<types:archStructure xsi:type = “types:ArchStructure”>

 

<!- - Component: Mozilla Description- - >

<types:component instance:id = “MoZillaComp” xsi:type = “types:Component”>

<types:description xsi:type = “instance:Description”>Mozilla</types:description>

<types:interface instance:id = “MoZillaCompTop” xsi:type = “types:Interface”>

<types:description xsi:type = “instance:Description”>MoZilla.Top </types:description>

<types:direction xsi:type = “instance:Direction” >inout</types:direction>

<types:type xlink:type = “simple” xlink:href = “ #tTopType”/>

</types:interface>

<types:interface instance:id = “MoZillaCompBottom” xsi:type = “types:Interface”>

<types:description xsi:type = “instance:Description”>MoZilla.Bottom</types:description>

<types:direction xsi:type = “instance:Direction” >inout</types:direction>

<types:type xlink:type = “simple” xlink:href = “ #tBottomType”/>

</types:interface>

<types:type xlink:type = “simple” xlink:href = “#tMoZilla” />

 

<! - - subArchitecture description - ->

<types: subArchitecture>         

<types: archStructure>

 

      <! – component: GUIDisplayerManager description - ->

      <types:component instance:id = “GUIDisplayerManagerComp” xsi:type = “types:Component”>

      <types:description xsi:type = “instance:Description”>GUI Displayer Manager</types:description>

      <types:interface instance:id = “GUIDisplayerManagerCompTop” xsi:type = “types:Interface”>

      <types:description xsi:type = “instance:Description”>GUIDisplayerManager.Top</types:description>

      <types:direction xsi:type = “instance:Direction” >inout</types:direction>

      <types:type xlink:type = “simple” xlink:href = “ #tTopType”/>

      </types:interface>

<types:interface instance:id = “GUIDisplayerManagerCompBottom” xsi:type = “types:Interface”>

      <types:description xsi:type = “instance:Description”>GUIDisplayerManager.Bottom</types:description>

      <types:direction xsi:type = “instance:Direction” >inout</types:direction>

      <types:type xlink:type = “simple” xlink:href = “ #tBottomType”/>

      </types:interface>

      <types:type xlink:type = “simple” xlink:href = “#tGUIDisplayerManager” />

      </types:component>

 

<! – component: IntraApplicationScripting description - ->

<types:component instance:id = “IntraApplicationScriptingComp” xsi:type = “types:Component”>

<types:description xsi:type = “instance:Description”>IntraApplicationScripting</types:description>

      <types:interface instance:id = “IntraApplicationScriptingCompTop” xsi:type = “types:Interface”>

      <types:description xsi:type = “instance:Description”>IntraApplicationScripting.Top</types:description>

      <types:direction xsi:type = “instance:Direction” >inout</types:direction>

      <types:type xlink:type = “simple” xlink:href = “ #tRightType”/>

      </types:interface>

<types:interface instance:id = “IntraApplicationScriptingCompBottom” xsi:type = “types:Interface”>

      <types:description xsi:type = “instance:Description”>IntraApplicationScripting.Bottom</types:description>

      <types:direction xsi:type = “instance:Direction” >inout</types:direction>

      <types:type xlink:type = “simple” xlink:href = “ #tBottomType”/>

      </types:interface>

      <types:type xlink:type = “simple” xlink:href = “#tIntraApplicationScripting” />

      </types:component>

 

<! – component: mozilla description - ->

      <types:component instance:id = “mozillaComp” xsi:type = “types:Component”>

      <types:description xsi:type = “instance:Description”>mozilla</types:description>

      <types:interface instance:id = “mozillaCompTop” xsi:type = “types:Interface”>

      <types:description xsi:type = “instance:Description”>mozilla.Top</types:description>

      <types:direction xsi:type = “instance:Direction” >inout</types:direction>

      <types:type xlink:type = “simple” xlink:href = “ #tRightType”/>

      </types:interface>

<types:interface instance:id = “mozillaCompBottom” xsi:type = “types:Interface”>

      <types:description xsi:type = “instance:Description”>mozilla.Bottom</types:description>

      <types:direction xsi:type = “instance:Direction” >inout</types:direction>

      <types:type xlink:type = “simple” xlink:href = “ #tBottomType”/>

      </types:interface>

      <types:type xlink:type = “simple” xlink:href = “#tmozilla” />

      </types:component>

 

<!- - Connector: Con11(GUIDisplayerManager - IntraApplicationScripting) Description- - >

      <types:connector instance:id = “Con11” xsi:type = “types:Connector”>

      <types:description xsi:type = “instance:Description” >Connector</types:description>

      <types:interface instance:id = “Con11Top” xsi:type = “types:Interface”>

      <types:description xsi:type = “instance:Description”>Con11.Top</types:description>

      <types:direction xsi:type = “instance:Direction:>in</types:direction>

      <types:type xlink:type = “simple” xlink:href = “#tTopType”/>

      </types:interface>

      <types:interface instance:id = “Con11Bottom” xsi:type = “types:Interface”>

      <types:description xsi:type = “instance:Description”>Con11.Bottom</types:description>

      <types:direction xsi:type = “instance:Direction:>out</types:direction>

      <types:type xlink:type = “simple” xlink:href = “#tBottomType”/>

      </types:interface>

      <types:type xlink:type = “simple” xlink:href= “#tCon11” />

      </types:connector>

 

<!- - Connector: Con12(Mozilla - IntraApplicationScripting) Description- - >

      <types:connector instance:id = “Con12” xsi:type = “types:Connector”>

      <types:description xsi:type = “instance:Description” >Connector</types:description>

      <types:interface instance:id = “Con12Top” xsi:type = “types:Interface”>

      <types:description xsi:type = “instance:Description”>Con12.Top</types:description>

      <types:direction xsi:type = “instance:Direction:>in</types:direction>

      <types:type xlink:type = “simple” xlink:href = “#tTopType”/>

      </types:interface>

      <types:interface instance:id = “Con12Bottom” xsi:type = “types:Interface”>

      <types:description xsi:type = “instance:Description”>Con12.Bottom</types:description>

      <types:direction xsi:type = “instance:Direction:>out</types:direction>

      <types:type xlink:type = “simple” xlink:href = “#tBottomType”/>

      </types:interface>

      <types:type xlink:type = “simple” xlink:href= “#tCon12” />

      </types:connector>

 

<!- - Link: GUIDisplayerManager – con11 – IntraApplicationScripting – Con12 - mozilla Description- - >

<types:link instance:id = “link111” xsi:type = “types:Link”>

      <types:description xsi:type = “instance:Description”>GUIDisplayerManager – Con11</types:description>

      <types:point xsi:type = “types:Point”>

      <instance:anchorOnInterface xlink:href = “#GUIDisplayerManagerBottom” xsi:type = “instance:XMLLink” xlink:type = “simple”/>

      </types:point>

      <types:point xsi:type = “types:Point”>

      <instance:anchorOnInterface xlink:href = “#Con11Top” xsi:type = “instance:XMLLink” xlink:type = “simple”/>

      </types:point>

</types:link>

 

<types:link instance:id = “link112” xsi:type = “types:Link”>

      <types:description xsi:type = “instance:Description”>Con11– IntraApplicationScripting</types:description>

      <types:point xsi:type = “types:Point”>

      <instance:anchorOnInterface xlink:href = “#Con11Bottom” xsi:type = “instance:XMLLink” xlink:type = “simple”/>

      </types:point>

      <types:point xsi:type = “types:Point”>

      <instance:anchorOnInterface xlink:href = “#IntraApplicationScriptingTop” xsi:type = “instance:XMLLink” xlink:type = “simple”/>

      </types:point>

</types:link>

 

<types:link instance:id = “link113” xsi:type = “types:Link”>

      <types:description xsi:type = “instance:Description”>Con12– IntraApplicationScripting</types:description>

      <types:point xsi:type = “types:Point”>

      <instance:anchorOnInterface xlink:href = “#Con12Top” xsi:type = “instance:XMLLink” xlink:type = “simple”/>

      </types:point>

      <types:point xsi:type = “types:Point”>

      <instance:anchorOnInterface xlink:href = “#IntraApplicationScriptingBottom” xsi:type = “instance:XMLLink” xlink:type = “simple”/>

      </types:point>

</types:link>

 

<types:link instance:id = “link114” xsi:type = “types:Link”>

      <types:description xsi:type = “instance:Description”>Con12– mozilla</types:description>

      <types:point xsi:type = “types:Point”>

      <instance:anchorOnInterface xlink:href = “#Con12Bottom” xsi:type = “instance:XMLLink” xlink:type = “simple”/>

      </types:point>

      <types:point xsi:type = “types:Point”>

      <instance:anchorOnInterface xlink:href = “#mozillaTop” xsi:type = “instance:XMLLink” xlink:type = “simple”/>

      </types:point>

</types:link>

 

</types: archStructure>

 

      <types: signatureInterfaceMapping>

      <types: outerSignature xsi:type= “simple” xlink:href = “MozillaTop”/>

      <types: innerInterface xsi:type= “simple” xlink:href= “GUIDisplayerManagerTop” />

<types: outerSignature xsi:type= “simple” xlink:href = “MozillaBottom”/>

      <types: innerInterface xsi:type= “simple” xlink:href= “mozillaBottom” />

      </types: signatureInterfaceMapping>

</types:subArchitecture>

</types:component>

 

<!- - Component: Linux Description- - >

      <types:component instance:id = “LinuxComp” xsi:type = “types:Component”>

      <types:description xsi:type = “instance:Description”>Linux</types:description>

      <types:interface instance:id = “LinuxCompTop” xsi:type = “types:Interface”>

      <types:description xsi:type = “instance:Description”>Linux.Top</types:description>

      <types:direction xsi:type = “instance:Direction” >inout</types:direction>

      <types:type xlink:type = “simple” xlink:href = “ #tTopType”/>

      </types:interface>

      <types:type xlink:type = “simple” xlink:href = “#tLinux” />

      </types:component>

 

<!- - Component: RemoteServer Description- - >

      <types:component instance:id = “RemoteServerComp” xsi:type = “types:Component”>

      <types:description xsi:type = “instance:Description”>RemoteServer</types:description>

      <types:interface instance:id = “RemoteServerCompTop” xsi:type = “types:Interface”>

      <types:description xsi:type = “instance:Description”>RemoteServer.Top</types:description>

      <types:direction xsi:type = “instance:Direction” >inout</types:direction>

      <types:type xlink:type = “simple” xlink:href = “ #tTopType”/>

      </types:interface>

      <types:type xlink:type = “simple” xlink:href = “#tRemoteServer” />

      </types:component>

<! - - subArchitecture description - ->

<types: subArchitecture>         

<types: archStructure>

 

      <! – component: SystemProgramming description - ->

      <types:component instance:id = “SystemProgrammingComp” xsi:type = “types:Component”>

      <types:description xsi:type = “instance:Description”>System Programming</types:description>

      <types:interface instance:id = “SystemProgrammingCompTop” xsi:type = “types:Interface”>

      <types:description xsi:type = “instance:Description”>SystemProgramming.Top</types:description>

      <types:direction xsi:type = “instance:Direction” >inout</types:direction>

      <types:type xlink:type = “simple” xlink:href = “ #tTopType”/>

      </types:interface>

<types:interface instance:id = “SystemProgrammingCompBottom” xsi:type = “types:Interface”>

      <types:description xsi:type = “instance:Description”>SystemProgramming.Bottom</types:description>

      <types:direction xsi:type = “instance:Direction” >inout</types:direction>

      <types:type xlink:type = “simple” xlink:href = “ #tBottomType”/>

      </types:interface>

      <types:type xlink:type = “simple” xlink:href = “#tSystemProgramming” />

      </types:component>

 

<! – component: ComputerSystem description - ->

      <types:component instance:id = “ComputerSystemComp” xsi:type = “types:Component”>

      <types:description xsi:type = “instance:Description”>ComputerSystem</types:description>

      <types:interface instance:id = “ComputerSystemCompTop” xsi:type = “types:Interface”>

      <types:description xsi:type = “instance:Description”>ComputerSystem.Top</types:description>

      <types:direction xsi:type = “instance:Direction” >inout</types:direction>

      <types:type xlink:type = “simple” xlink:href = “ #tRightType”/>

      </types:interface>

<types:interface instance:id = “ComputerSystemCompBottom” xsi:type = “types:Interface”>

      <types:description xsi:type = “instance:Description”>ComputerSystem.Bottom</types:description>

      <types:direction xsi:type = “instance:Direction” >inout</types:direction>

      <types:type xlink:type = “simple” xlink:href = “ #tBottomType”/>

      </types:interface>

      <types:type xlink:type = “simple” xlink:href = “#tComputerSystem” />

      </types:component>

 

<! – component: ISARTL description - ->

      <types:component instance:id = “ISARTLComp” xsi:type = “types:Component”>

      <types:description xsi:type = “instance:Description”>ISARTL</types:description>

      <types:interface instance:id = “ISARTLCompTop” xsi:type = “types:Interface”>

      <types:description xsi:type = “instance:Description”>ISARTL.Top</types:description>

      <types:direction xsi:type = “instance:Direction” >inout</types:direction>

      <types:type xlink:type = “simple” xlink:href = “ #tRightType”/>

      </types:interface>

<types:interface instance:id = “ISARTLCompBottom” xsi:type = “types:Interface”>

      <types:description xsi:type = “instance:Description”>ISARTL.Bottom</types:description>

      <types:direction xsi:type = “instance:Direction” >inout</types:direction>

      <types:type xlink:type = “simple” xlink:href = “ #tBottomType”/>

      </types:interface>

      <types:type xlink:type = “simple” xlink:href = “#tISARTL” />

      </types:component>

 

<! – component: Logic description - ->

      <types:component instance:id = “LogicComp” xsi:type = “types:Component”>

      <types:description xsi:type = “instance:Description”>Logic</types:description>

      <types:interface instance:id = “LogicCompTop” xsi:type = “types:Interface”>

      <types:description xsi:type = “instance:Description”>Logic.Top</types:description>

      <types:direction xsi:type = “instance:Direction” >inout</types:direction>

      <types:type xlink:type = “simple” xlink:href = “ #tRightType”/>

      </types:interface>

<types:interface instance:id = “LogicCompBottom” xsi:type = “types:Interface”>

      <types:description xsi:type = “instance:Description”>Logic.Bottom</types:description>

      <types:direction xsi:type = “instance:Direction” >inout</types:direction>

      <types:type xlink:type = “simple” xlink:href = “ #tBottomType”/>

      </types:interface>

      <types:type xlink:type = “simple” xlink:href = “#tLogic” />

      </types:component>

 

<! – component: Circuit description - ->

      <types:component instance:id = “CircuitComp” xsi:type = “types:Component”>

      <types:description xsi:type = “instance:Description”>Circuit</types:description>

      <types:interface instance:id = “CircuitCompTop” xsi:type = “types:Interface”>

      <types:description xsi:type = “instance:Description”>Circuit.Top</types:description>

      <types:direction xsi:type = “instance:Direction” >inout</types:direction>

      <types:type xlink:type = “simple” xlink:href = “ #tRightType”/>

      </types:interface>

<types:interface instance:id = “CircuitCompBottom” xsi:type = “types:Interface”>

      <types:description xsi:type = “instance:Description”>Circuit.Bottom</types:description>

      <types:direction xsi:type = “instance:Direction” >inout</types:direction>

      <types:type xlink:type = “simple” xlink:href = “ #tBottomType”/>

      </types:interface>

      <types:type xlink:type = “simple” xlink:href = “#tCircuit” />

      </types:component>

 

<! – component: PhysicalDevice description - ->

      <types:component instance:id = “PhysicalDeviceComp” xsi:type = “types:Component”>

      <types:description xsi:type = “instance:Description”>PhysicalDevice</types:description>

      <types:interface instance:id = “PhysicalDeviceCompTop” xsi:type = “types:Interface”>

      <types:description xsi:type = “instance:Description”>PhysicalDevice.Top</types:description>

      <types:direction xsi:type = “instance:Direction” >inout</types:direction>

      <types:type xlink:type = “simple” xlink:href = “ #tRightType”/>

      </types:interface>

<types:interface instance:id = “PhysicalDeviceCompBottom” xsi:type = “types:Interface”>

      <types:description xsi:type = “instance:Description”>PhysicalDevice.Bottom</types:description>

      <types:direction xsi:type = “instance:Direction” >inout</types:direction>

      <types:type xlink:type = “simple” xlink:href = “ #tBottomType”/>

      </types:interface>

      <types:type xlink:type = “simple” xlink:href = “#tPhysicalDevice” />

      </types:component>

 

</types: archStructure>

 

      <types: signatureInterfaceMapping>

      <types: outerSignature xsi:type= “simple” xlink:href = “RemoteServerTop”/>

      <types: innerInterface xsi:type= “simple” xlink:href= “SystemProgrammingTop” />

<types: outerSignature xsi:type= “simple” xlink:href = “RemoteServerBottom”/>

      <types: innerInterface xsi:type= “simple” xlink:href= “PhysicalDeviceBottom” />

      </types: signatureInterfaceMapping>

</types:subArchitecture>

</types:component>

 

<!- - Connector: Con1(HCI-Mozilla) Description- - >

      <types:connector instance:id = “Con1” xsi:type = “types:Connector”>

      <types:description xsi:type = “instance:Description” >Connector</types:description>

      <types:interface instance:id = “Con1Top” xsi:type = “types:Interface”>

      <types:description xsi:type = “instance:Description”>Con1.Top</types:description>

      <types:direction xsi:type = “instance:Direction:>inout</types:direction>

      <types:type xlink:type = “simple” xlink:href = “#tTopType”/>

      </types:interface>

      <types:interface instance:id = “Con1Bottom” xsi:type = “types:Interface”>

      <types:description xsi:type = “instance:Description”>Con1.Bottom</types:description>

      <types:direction xsi:type = “instance:Direction:>inout</types:direction>

      <types:type xlink:type = “simple” xlink:href = “#tBottomType”/>

      </types:interface>

      <types:type xlink:type = “simple” xlink:href= “#tCon1” />

      </types:connector>

 

<!- - Connector: API1(Mozilla- Linux) Description- - >

      <types:connector instance:id = “API1” xsi:type = “types:Connector”>

      <types:description xsi:type = “instance:Description” >Connector</types:description>

      <types:interface instance:id = “API1Top” xsi:type = “types:Interface”>

      <types:description xsi:type = “instance:Description”>API1.Top</types:description>

      <types:direction xsi:type = “instance:Direction:>inout</types:direction>

      <types:type xlink:type = “simple” xlink:href = “#tTopType”/>

      </types:interface>

      <types:interface instance:id = “API1Bottom” xsi:type = “types:Interface”>

      <types:description xsi:type = “instance:Description”>API1.Bottom</types:description>

      <types:direction xsi:type = “instance:Direction:>inout</types:direction>

      <types:type xlink:type = “simple” xlink:href = “#tBottomType”/>

      </types:interface>

      <types:type xlink:type = “simple” xlink:href= “#tAPI1” />

      </types:connector>

 

<!- - Connector: NetworkProtocol  Description- - >

      <types:connector instance:id = “NetworkProtocol” xsi:type = “types:Connector”>

      <types:description xsi:type = “instance:Description” >Connector</types:description>

      <types:interface instance:id = “NetworkProtocolTop” xsi:type = “types:Interface”>

      <types:description xsi:type = “instance:Description”>NetworkProtocol.Top</types:description>

      <types:direction xsi:type = “instance:Direction:>inout</types:direction>

      <types:type xlink:type = “simple” xlink:href = “#tTopType”/>

      </types:interface>

<types:interface instance:id = “NetworkProtocolBottom” xsi:type = “types:Interface”>

      <types:description xsi:type = “instance:Description”>NetworkProtocol.Bottom</types:description>

      <types:direction xsi:type = “instance:Direction:>inout</types:direction>

      <types:type xlink:type = “simple” xlink:href = “#tBottomType”/>

      </types:interface>

      <types:type xlink:type = “simple” xlink:href= “#tNetworkProtocol” />

                        </types:connector>

 

<!- - Interface: HCI Description- - >

<types:interface instance:id = “HCI” xsi:type = “types:Interface”>

      <types:description xsi:type = “instance:Description”>HCI</types:description>

      <types:direction xsi:type = “instance:Direction:>inout</types:direction>

      <types:type xlink:type = “simple” xlink:href = “#tHCIType”/>

</types:interface>

 

<!- - Link: HCI- Con1 - Mozilla Description- - >

<types:link instance:id = “link1” xsi:type = “types:Link”>

      <types:description xsi:type = “instance:Description”>HCI – Con1</types:description>

      <types:point xsi:type = “types:Point”>

      <instance:anchorOnInterface xlink:href = “#HCI” xsi:type = “instance:XMLLink” xlink:type = “simple”/>

      </types:point>

      <types:point xsi:type = “types:Point”>

      <instance:anchorOnInterface xlink:href = “#Con1Top” xsi:type = “instance:XMLLink” xlink:type = “simple”/>

      </types:point>

</types:link>

<types:link instance:id = “link2” xsi:type = “types:Link”>

      <types:description xsi:type = “instance:Description”>Mozilla– Con1</types:description>

      <types:point xsi:type = “types:Point”>

      <instance:anchorOnInterface xlink:href = “#Con1Bottom” xsi:type = “instance:XMLLink” xlink:type = “simple”/>

      </types:point>

      <types:point xsi:type = “types:Point”>

      <instance:anchorOnInterface xlink:href = “#MozillaTop” xsi:type = “instance:XMLLink” xlink:type = “simple”/>

      </types:point>

</types:link>

 

<!- - Link: Mozilla- API1 - Linux Description- - >

<types:link instance:id = “link8” xsi:type = “types:Link”>

      <types:description xsi:type = “instance:Description”>Mozilla – API1</types:description>

      <types:point xsi:type = “types:Point”>

      <instance:anchorOnInterface xlink:href = “#MozillaBottom” xsi:type = “instance:XMLLink” xlink:type = “simple”/>

      </types:point>

      <types:point xsi:type = “types:Point”>

      <instance:anchorOnInterface xlink:href = “#API1Top” xsi:type = “instance:XMLLink” xlink:type = “simple”/>

      </types:point>

</types:link>

<types:link instance:id = “link9” xsi:type = “types:Link”>

      <types:description xsi:type = “instance:Description”>API1– Linux</types:description>

      <types:point xsi:type = “types:Point”>

      <instance:anchorOnInterface xlink:href = “#API1Bottom” xsi:type = “instance:XMLLink” xlink:type = “simple”/>

      </types:point>

      <types:point xsi:type = “types:Point”>

      <instance:anchorOnInterface xlink:href = “#LinuxTop” xsi:type = “instance:XMLLink” xlink:type = “simple”/>

      </types:point>

</types:link>

 

<!- - Link: Linux – NetworkProtocol Description- - >

<types:link instance:id = “link25” xsi:type = “types:Link”>

      <types:description xsi:type = “instance:Description”>NetworkProtocol– Linux</types:description>

      <types:point xsi:type = “types:Point”>

      <instance:anchorOnInterface xlink:href = “#NetworkprotocolTop” xsi:type = “instance:XMLLink” xlink:type = “simple”/>

      </types:point>

      <types:point xsi:type = “types:Point”>

      <instance:anchorOnInterface xlink:href = “#LinuxTop” xsi:type = “instance:XMLLink” xlink:type = “simple”/>

      </types:point>

</types:link>

 

<!- - Link: RemoteServer – NetworkProtocol Description- - >

<types:link instance:id = “link26” xsi:type = “types:Link”>

      <types:description xsi:type = “instance:Description”>NetworkProtocol– RemoteServer</types:description>

      <types:point xsi:type = “types:Point”>

      <instance:anchorOnInterface xlink:href = “#NetworkprotocolBottom” xsi:type = “instance:XMLLink” xlink:type = “simple”/>

      </types:point>

      <types:point xsi:type = “types:Point”>

      <instance:anchorOnInterface xlink:href = “#RemoteServerTop” xsi:type = “instance:XMLLink” xlink:type = “simple”/>

      </types:point>

</types:link>