\relax \@writefile{toc}{\contentsline {chapter}{List of Tables}{vii}} \@writefile{toc}{\contentsline {chapter}{List of Figures}{viii}} \@writefile{toc}{\contentsline {chapter}{Abstract}{ix}} \citation{Vinoski1997} \@writefile{toc}{\contentsline {chapter}{\numberline {1}Introduction}{1}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \@writefile{toc}{\contentsline {section}{\numberline {1.1}Background Information}{1}} \citation{Watkins1999} \citation{Resendes1998} \citation{BenNatan1997} \citation{Otte1996} \citation{Watkins1999a} \@writefile{toc}{\contentsline {section}{\numberline {1.2}Research Questions}{3}} \@writefile{toc}{\contentsline {section}{\numberline {1.3}Methodology}{3}} \@writefile{toc}{\contentsline {section}{\numberline {1.4}Overview of Thesis}{4}} \@writefile{toc}{\contentsline {chapter}{\numberline {2}Distributed Object Technology}{6}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \@writefile{toc}{\contentsline {section}{\numberline {2.1}Object Oriented Concepts}{6}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.1.1}Abstraction}{6}} \newlabel{abstraction}{{2.1.1}{6}} \@writefile{lof}{\contentsline {figure}{\numberline {2.1}{\ignorespaces Inheritance Hierarchy}}{7}} \newlabel{OMT}{{2.1}{7}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.1.2}Encapsulation}{7}} \newlabel{encapsulation}{{2.1.2}{7}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.1.3}Identity}{8}} \newlabel{identity}{{2.1.3}{8}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.1.4}Inheritance}{8}} \citation{Tanenbaum1995} \citation{Mullender1995} \citation{Tanenbaum1995} \@writefile{toc}{\contentsline {subsection}{\numberline {2.1.5}Polymorphism}{9}} \@writefile{toc}{\contentsline {section}{\numberline {2.2}Distributed Computing}{9}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.2.1}Distributed Systems}{9}} \citation{Orfali1996} \citation{Tanenbaum1995} \@writefile{toc}{\contentsline {subsection}{\numberline {2.2.2}Distributed System vs Centralised System}{10}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {2.2.2.1}Economics}{10}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {2.2.2.2}Reliability}{10}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {2.2.2.3}Software}{10}} \citation{Cafasso1996} \citation{White1997} \citation{Hurwitz1997} \citation{Tanenbaum1995} \@writefile{toc}{\contentsline {subsubsection}{\numberline {2.2.2.4}Security}{11}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.2.3}Features of Distributed Systems}{11}} \citation{Tanenbaum1995} \@writefile{toc}{\contentsline {subsubsection}{\numberline {2.2.3.1}Loosely Coupled System}{12}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {2.2.3.2}Highly Coupled System}{12}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.2.4}Design Issues of Distributed Systems}{12}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {2.2.4.1}Transparency}{12}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {2.2.4.2}Flexibility}{13}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {2.2.4.3}Reliability}{13}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {2.2.4.4}Performance}{14}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {2.2.4.5}Scalability}{14}} \@writefile{toc}{\contentsline {section}{\numberline {2.3}Distributed Object-Oriented Computing}{14}} \citation{Schmidt1998a} \citation{Orfali1997} \citation{Vinoski1997} \citation{Otte1996} \@writefile{toc}{\contentsline {chapter}{\numberline {3}CORBA}{16}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \@writefile{toc}{\contentsline {section}{\numberline {3.1}Object Model}{16}} \citation{Otte1996} \@writefile{toc}{\contentsline {section}{\numberline {3.2}Reference Model}{17}} \@writefile{lof}{\contentsline {figure}{\numberline {3.1}{\ignorespaces Reference Model}}{17}} \newlabel{CORBA}{{3.1}{17}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.2.1}Object Request Broker}{17}} \citation{Vinoski1997} \citation{OMG1998} \@writefile{toc}{\contentsline {subsection}{\numberline {3.2.2}Object Services}{18}} \citation{OMG1998} \citation{Vinoski1997} \@writefile{toc}{\contentsline {subsection}{\numberline {3.2.3}Common Facilities}{20}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.2.4}Vertical Domain Interfaces}{20}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.2.5}Applications Interfaces}{20}} \@writefile{toc}{\contentsline {section}{\numberline {3.3}CORBA}{20}} \@writefile{lof}{\contentsline {figure}{\numberline {3.2}{\ignorespaces ORB Layout}}{21}} \newlabel{ORB}{{3.2}{21}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.3.1}ORB}{21}} \citation{Schmidt1998a} \@writefile{toc}{\contentsline {subsection}{\numberline {3.3.2}OMG Interface Definition Language (OMG IDL)}{22}} \citation{Schmidt1998a} \citation{Gamma1995} \@writefile{toc}{\contentsline {subsection}{\numberline {3.3.3}Language Mappings}{23}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.3.4}Interface Repository}{23}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.3.5}Stubs and Skeletons}{23}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.3.6}Static Invocation and Dispatch}{24}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.3.7}Dynamic Invocation and Dispatch}{24}} \citation{Siegel1996} \citation{Vogel1997} \@writefile{toc}{\contentsline {subsection}{\numberline {3.3.8}Object Adapters}{25}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.3.9}ORB Interface}{25}} \citation{OMG1998} \citation{OMG1998} \@writefile{toc}{\contentsline {chapter}{\numberline {4}Interface Definition Language}{26}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \@writefile{toc}{\contentsline {section}{\numberline {4.1}Interface Definition Language}{26}} \@writefile{lot}{\contentsline {table}{\numberline {4.1}{\ignorespaces CORBA IDL keywords}}{27}} \newlabel{keywords}{{4.1}{27}} \@writefile{toc}{\contentsline {subsection}{\numberline {4.1.1}Primitive Types}{27}} \@writefile{toc}{\contentsline {subsection}{\numberline {4.1.2}Structures}{28}} \@writefile{toc}{\contentsline {subsection}{\numberline {4.1.3}Operations}{28}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.3.1}Oneway Operations}{28}} \citation{OMG1998} \@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.3.2}Return Value}{29}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.3.3}Parameters}{29}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.3.4}Exceptions}{29}} \citation{Tinac} \@writefile{toc}{\contentsline {subsection}{\numberline {4.1.4}Interface Inheritance}{30}} \@writefile{toc}{\contentsline {section}{\numberline {4.2}IDL Extensions and Interface Semantics}{30}} \@writefile{toc}{\contentsline {subsection}{\numberline {4.2.1}Object Definition Language (ODL)}{30}} \citation{Sun} \citation{Sun} \@writefile{lot}{\contentsline {table}{\numberline {4.2}{\ignorespaces TINAC Object Definition Language Keywords}}{31}} \newlabel{ODLkeywords}{{4.2}{31}} \@writefile{toc}{\contentsline {subsection}{\numberline {4.2.2}Assertion Definition Language (ADL)}{31}} \@writefile{lof}{\contentsline {figure}{\numberline {4.1}{\ignorespaces Object Definition Language Example}}{32}} \newlabel{ODLexample}{{4.1}{32}} \citation{Guttag1993} \citation{Guttag1993} \@writefile{lof}{\contentsline {figure}{\numberline {4.2}{\ignorespaces Assertion Definition Language Example}}{33}} \newlabel{ADLexample}{{4.2}{33}} \@writefile{toc}{\contentsline {subsection}{\numberline {4.2.3}Real-Time Interface Definition Language (RIDL)}{33}} \@writefile{toc}{\contentsline {subsection}{\numberline {4.2.4}Larch}{33}} \citation{Guttag1993} \citation{Watkins1999a} \citation{Watkins1999a} \citation{Watkins1999} \citation{Camp1974} \citation{Watkins1999a} \@writefile{toc}{\contentsline {section}{\numberline {4.3}Extended Interface Definition Language (XIDL)}{34}} \@writefile{toc}{\contentsline {subsection}{\numberline {4.3.1}Path Expressions}{34}} \@writefile{lot}{\contentsline {table}{\numberline {4.3}{\ignorespaces Path Expressions Example}}{34}} \newlabel{PathExpressions}{{4.3}{34}} \@writefile{lof}{\contentsline {figure}{\numberline {4.3}{\ignorespaces Path Expressions Example}}{35}} \newlabel{PathExpressionsFile}{{4.3}{35}} \@writefile{lof}{\contentsline {figure}{\numberline {4.4}{\ignorespaces Path Expressions with Inheritance Example}}{35}} \newlabel{PathExpressionsFileInheritance}{{4.4}{35}} \citation{Watkins1999a} \@writefile{toc}{\contentsline {subsection}{\numberline {4.3.2}Modified Path Expressions}{36}} \@writefile{lof}{\contentsline {figure}{\numberline {4.5}{\ignorespaces Modified Path Expressions with Inheritance Example}}{36}} \newlabel{ModifiedPathExpressionsInheritanceFile}{{4.5}{36}} \@writefile{toc}{\contentsline {subsection}{\numberline {4.3.3}XIDL specification}{36}} \newlabel{XIDLspecification}{{4.3.3}{36}} \@writefile{lof}{\contentsline {figure}{\numberline {4.6}{\ignorespaces An XIDL Example}}{37}} \newlabel{XIDLExample}{{4.6}{37}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {4.3.3.1}XIDL keywords}{37}} \citation{Meyer1997} \citation{Watkins1999a} \@writefile{toc}{\contentsline {subsection}{\numberline {4.3.4}Programming by Contract}{38}} \citation{Watkins1999a} \@writefile{lof}{\contentsline {figure}{\numberline {4.7}{\ignorespaces The File contract.idl}}{39}} \newlabel{XIDLContract}{{4.7}{39}} \@writefile{toc}{\contentsline {chapter}{\numberline {5}eXtended Interface Definition Language}{40}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \@writefile{toc}{\contentsline {section}{\numberline {5.1}XIDL summary}{40}} \@writefile{toc}{\contentsline {subsection}{\numberline {5.1.1}List of Available States}{41}} \@writefile{toc}{\contentsline {section}{\numberline {5.2}XIDL examples}{41}} \@writefile{toc}{\contentsline {subsection}{\numberline {5.2.1}\textbf {File} Interface}{41}} \@writefile{lof}{\contentsline {figure}{\numberline {5.1}{\ignorespaces File: UML diagram}}{42}} \newlabel{file}{{5.1}{42}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {5.2.1.1}\textbf {File} Interface in XIDL - Advantages}{42}} \@writefile{lof}{\contentsline {figure}{\numberline {5.2}{\ignorespaces \textbf {File} Interface in the XIDL}}{43}} \newlabel{FileInterface}{{5.2}{43}} \@writefile{toc}{\contentsline {chapter}{\numberline {6}XIDLtojava Compiler Implementation}{44}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \@writefile{toc}{\contentsline {section}{\numberline {6.1}\textbf {idltojava} Compiler - Limitation}{44}} \@writefile{toc}{\contentsline {chapter}{\numberline {7}Research Conclusion}{46}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \@writefile{toc}{\contentsline {chapter}{Appendix\ A\ xidltojava Compiler Source Code}{47}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \bibstyle{chicago} \bibdata{thesis} \bibcite{BenNatan1997}{\citeauthoryear {Ben-Natan}{Ben-Natan}{1997}} \bibcite{Cafasso1996}{\citeauthoryear {Cafasso}{Cafasso}{1996}} \bibcite{Camp1974}{\citeauthoryear {Campbell and Habermann}{Campbell and Habermann}{1974}} \bibcite{Crawley1998}{\citeauthoryear {Crawley and K.R.Duddy}{Crawley and K.R.Duddy}{1998}} \bibcite{Gamma1995}{\citeauthoryear {Gamma, Helm, Johnson, and Vlissides}{Gamma et\penalty \@M \ al.}{1995}} \bibcite{Guttag1993}{\citeauthoryear {Guttag and Horning}{Guttag and Horning}{1993}} \bibcite{Hludzinski1998}{\citeauthoryear {Hludzinski}{Hludzinski}{1998}} \bibcite{Hurwitz1997}{\citeauthoryear {Hurwitz}{Hurwitz}{1997}} \bibcite{Jacobsen1999}{\citeauthoryear {Jacobsen and J.Kramer}{Jacobsen and J.Kramer}{1998}} \bibcite{Meyer1997}{\citeauthoryear {Meyer}{Meyer}{1997}} \bibcite{Mowbray1997}{\citeauthoryear {Mowbray and Malveau}{Mowbray and Malveau}{1997}} \bibcite{Mullender1995}{\citeauthoryear {Mullender}{Mullender}{1995}} \bibcite{Murdocca1998}{\citeauthoryear {Murdocca}{Murdocca}{1998}} \bibcite{OMG1998}{\citeauthoryear {{Object Management Group}}{{Object Management Group}}{1998}} \bibcite{Orfali1997}{\citeauthoryear {Orfali, Harkey, and Edwards}{Orfali et\penalty \@M \ al.}{1997}} \bibcite{Otte1996}{\citeauthoryear {Otte, Patrick, and Roy}{Otte et\penalty \@M \ al.}{1996}} \bibcite{Resendes1998}{\citeauthoryear {Resendes and Laukien}{Resendes and Laukien}{1998}} \bibcite{Orfali1996}{\citeauthoryear {Robert\penalty \@M \ Orfali and Edwards}{Robert\penalty \@M \ Orfali and Edwards}{1996}} \bibcite{Schmidt1998b}{\citeauthoryear {Schmidt}{Schmidt}{1998a}} \bibcite{Schmidt1998a}{\citeauthoryear {Schmidt}{Schmidt}{1998b}} \bibcite{Schmidt1998c}{\citeauthoryear {Schmidt and Cleeland}{Schmidt and Cleeland}{1998}} \bibcite{Schmidt1999}{\citeauthoryear {Schmidt, Levine, and Cleeland}{Schmidt et\penalty \@M \ al.}{pear}} \bibcite{Siegel1996}{\citeauthoryear {Siegel}{Siegel}{1996}} \bibcite{Suhail1997}{\citeauthoryear {Suhail}{Suhail}{1997}} \bibcite{Sun}{\citeauthoryear {{Sun Microsystems Laboratories and X/Open}}{{Sun Microsystems Laboratories and X/Open}}{1996}} \bibcite{Tanenbaum1995}{\citeauthoryear {Tanenbaum}{Tanenbaum}{1995}} \bibcite{Tinac}{\citeauthoryear {{Telecommunication Information Networking Architecture Consortium}}{{Telecommunication Information Networking Architecture Consortium}}{1996}} \bibcite{Vinoski1997}{\citeauthoryear {Vinoski}{Vinoski}{1997}} \bibcite{Vogel1998}{\citeauthoryear {Vogel}{Vogel}{1998}} \bibcite{Vogel1997}{\citeauthoryear {Vogel and Duddy}{Vogel and Duddy}{1997}} \bibcite{Watkins1999}{\citeauthoryear {Watkins}{Watkins}{1999a}} \bibcite{Watkins1999a}{\citeauthoryear {Watkins}{Watkins}{1999b}} \bibcite{Weber1997}{\citeauthoryear {Weber}{Weber}{1997}} \bibcite{Webster1995}{\citeauthoryear {Webster}{Webster}{1995}} \bibcite{White1997}{\citeauthoryear {White}{White}{1997}} \citation{*}