Intra- Application Scripting

 

Component: At scripting structural level, component is application program or system function provided by OS, etc.

Connector: At scripting structural level, connector is the operator defined by scripting language.

 Interface:

Link:

Example: Since JavaScript is the default script language for browsers right now, and its interesting programming way: embedded into HTML file, we try to use describe this structure using xADL2.0.

 

 

And copy an example code from our previous one – “Buying items via web”:

 

<HTML>
<HEAD>

<SCRIPT LANGUAGE="JavaScript">
<!-- Beginning of JavaScript -

function MsgBox (textstring) { alert (textstring) }

// - End of JavaScript - -->
</SCRIPT>

</HEAD>

 

<BODY>

<FORM>
<INPUT NAME="text1" TYPE=Text>
<INPUT NAME="GO!" TYPE=Button VALUE="GO!" onClick="MsgBox(form.text1.value)">
</FORM>

</BODY>
</HTML>

 

And we have xADL-type structural diagram:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

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

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

             <types:description xsi:type = “instance:Description”>Head.Right </types:description>

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

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

                  </types:interface>

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

 

                  <! - - subArchitecture description - ->

                  <types: subArchitecture>         

                              <types: archStructure>

                              <! – component: function description - ->

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

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

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

            <types:description xsi:type = “instance:Description”>function.Right </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 = “functionCompLeft” xsi:type = “types:Interface”>

             <types:description xsi:type = “instance:Description”>function.Left</types:description>

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

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

                  </types:interface>

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

                  </types:component>

</types: archStructure>

 

                  <types: signatureInterfaceMapping>

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

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

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

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

                  </types: signatureInterfaceMapping>

</types:subArchitecture>

</types:component>

 

<!- - Component: Body Description- - >

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

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

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

             <types:description xsi:type = “instance:Description”> Body.Left </types:description>

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

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

                  </types:interface>

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

      </types:component>

 

<!- - Connector: Con1 Description- - >

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

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

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

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

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

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

                  </types:interface>

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

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

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

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

                  </types:interface>

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

      </types:connector>

 

<!- - Link: Head-Con1 Description- - >

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

                  <types:description xsi:type = “instance:Description”>Head-Con1</types:description>

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

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

                  </types:point>

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

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

                  </types:point>

</types:link>

 

<!- - Link: Body-Con1 Description- - >

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

                  <types:description xsi:type = “instance:Description”>Body-Con1</types:description>

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

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

                  </types:point>

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

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

                  </types:point>

</types:link>

</types:archStructure>

… …