Middleware layer

 

Component: A piece of code closely related can be seen as a component

Connector: For CORBA case, IIOP is a kind of connector

Interface:

 Link:

 Example: Take our earlier simplified example, a client buying a book from amazon.com:

 

 

 

 

 

<!- - 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: Client Description - - >

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

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

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

                  <types:description xsi:type = “instance:Description”>Client.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 = “#tClient” />

 </types:component>

 

<! - - Component: amazon.com Description - - >

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

                  <types:description xsi:type = “instance:Description”>amazon.com</types:description>

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

                   <types:description xsi:type = “instance:Description”>amazoncom.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 = “#tamazon.com” />

      </types:component>

 

<! - - Component: ORB1 Description - - >

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

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

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

                  <types:description xsi:type = “instance:Description”> ORB1.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 = “ORB1CompBottom” xsi:type = “types:Interface”>

                   <types:description xsi:type = “instance:Description”> ORB1.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 = “#tORB1” />

      </types:component>

 

<! - - Component: ORB2 Description - - >

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

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

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

                  <types:description xsi:type = “instance:Description”> ORB2.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 = “ORB2CompBottom” xsi:type = “types:Interface”>

                   <types:description xsi:type = “instance:Description”> ORB2.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 = “#tORB2” />

            </types:component>

 

<! - - Connector: IIOP Description - - >

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

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

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

                  <types:description xsi:type = “instance:Description”> IIOP.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= “#tIIOP” />

</types:connector>

 

<! - - Connector: API1(Client-ORB1) Description - - >

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

                  <types:description xsi:type = “instance:Description>API1</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:API2(amazon.com – ORB2) Description - - >

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

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

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

                  <types:description xsi:type = “instance:Description”>API2.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 = “API2Bottom” xsi:type = “types:Interface”>

                   <types:description xsi:type = “instance:Description”>API2.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= “#tAPI2” />

</types:connector>

 

 

            <! - - Link:  Client – API1-ORB1 Description - - >

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

      <types:description xsi:type = “instance:Description”>Client-API1</types:description>

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

      <instance:anchorOnInterface xlink:href = “#ClientBottom” 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 = “link2” xsi:type = “types:Link”>

      <types:description xsi:type = “instance:Description”>API1-ORB1</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 = “#ORB1Top” xsi:type = “instance:XMLLink” xlink:type = “simple”/>

      </types:point>

</types:link>

 

            <! - - Link: IIOP – ORB1 Description - - >

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

      <types:description xsi:type = “instance:Description”>ORB1-IIOP</types:description>

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

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

      </types:point>

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

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

      </types:point>

</types:link>

 

            <! - - Link: amazon.com – API2 – ORB2 Description - - >

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

      <types:description xsi:type = “instance:Description”>amazon.com-API2</types:description>

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

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

        </types:point>

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

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

         </types:point>

</types:link>

 

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

                  <types:description xsi:type = “instance:Description”>API2-ORB2</types:description>

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

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

                  </types:point>

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

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

                  </types:point>

</types:link>

 

<! - - Link: IIOP – ORB2 Description - - >

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

                  <types:description xsi:type = “instance:Description”> ORB2-IIOP</types:description>

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

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

                  </types:point>

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

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

                  </types:point>

</types:link>

 

</types:archStructure>

… …