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>