\contentsline {chapter}{List of Tables}{v} \contentsline {chapter}{List of Figures}{vi} \contentsline {chapter}{Abstract}{1} \contentsline {chapter}{Acknowledgments}{3} \contentsline {chapter}{\numberline {1}Introduction}{1} \contentsline {section}{\numberline {1.1}Background}{1} \contentsline {section}{\numberline {1.2}Research Questions}{3} \contentsline {section}{\numberline {1.3}Theses Outline}{3} \contentsline {chapter}{\numberline {2}Component Based Software Development}{5} \contentsline {section}{\numberline {2.1}Java Components}{6} \contentsline {subsection}{\numberline {2.1.1}Background}{6} \contentsline {subsection}{\numberline {2.1.2}JavaBeans}{6} \contentsline {subsection}{\numberline {2.1.3}Enterprise JavaBeans}{7} \contentsline {subsubsection}{Lifecycle}{8} \contentsline {subsubsection}{State Management}{8} \contentsline {subsubsection}{Security}{9} \contentsline {subsubsection}{Transactions}{9} \contentsline {subsubsection}{Persistence}{9} \contentsline {subsection}{\numberline {2.1.4}Comparing JavaBean Components and Enterprise Beans}{9} \contentsline {section}{\numberline {2.2}CORBA}{10} \contentsline {subsection}{\numberline {2.2.1}Background}{10} \contentsline {subsubsection}{Object Request Broker}{11} \contentsline {subsubsection}{Object Services}{12} \contentsline {subsubsection}{Common Facilities}{12} \contentsline {subsubsection}{Domain Interfaces}{13} \contentsline {subsection}{\numberline {2.2.2}CORBA Components}{13} \contentsline {section}{\numberline {2.3}The Component Object Model}{14} \contentsline {subsection}{\numberline {2.3.1}Background}{14} \contentsline {subsection}{\numberline {2.3.2}Interfaces}{15} \contentsline {subsection}{\numberline {2.3.3}IUnkown}{17} \contentsline {subsection}{\numberline {2.3.4}COM/DCOM/OLE Architecture}{20} \contentsline {subsubsection}{OLE Compound Documents}{21} \contentsline {subsubsection}{ActiveX Controls}{21} \contentsline {subsubsection}{Fundamental Services}{21} \contentsline {subsection}{\numberline {2.3.5}MIDL}{23} \contentsline {subsection}{\numberline {2.3.6}GUIDs}{23} \contentsline {subsection}{\numberline {2.3.7}HRESULT}{23} \contentsline {subsection}{\numberline {2.3.8}Development using ATL}{25} \contentsline {subsection}{\numberline {2.3.9}Dual Interfaces}{29} \contentsline {subsection}{\numberline {2.3.10}Aggregation}{29} \contentsline {subsection}{\numberline {2.3.11}Marshalling}{30} \contentsline {subsection}{\numberline {2.3.12}The Registry}{30} \contentsline {subsection}{\numberline {2.3.13}Introducing Categories}{31} \contentsline {section}{\numberline {2.4}Locating Services in COM and CORBA}{32} \contentsline {chapter}{\numberline {3}Comparison of Categories and the Trading Service}{33} \contentsline {section}{\numberline {3.1}CORBA Trading Service}{33} \contentsline {subsection}{\numberline {3.1.1}The Trader Type Librarian}{34} \contentsline {section}{\numberline {3.2}Categorisation}{35} \contentsline {section}{\numberline {3.3}Comparing Categorisation with the Type Librarian}{37} \contentsline {section}{\numberline {3.4}Anticipated Problems}{37} \contentsline {chapter}{\numberline {4}Development and Design of a Categorisation system}{39} \contentsline {section}{\numberline {4.1}Description of Problem}{40} \contentsline {section}{\numberline {4.2}System Design}{40} \contentsline {subsection}{\numberline {4.2.1}Category Program}{40} \contentsline {subsection}{\numberline {4.2.2}Calculator Programs}{42} \contentsline {subsection}{\numberline {4.2.3}The Register Program}{43} \contentsline {chapter}{\numberline {5}Implementation and analysis of the system}{45} \contentsline {section}{\numberline {5.1}Results}{46} \contentsline {section}{\numberline {5.2}Analysis of implementation}{46} \contentsline {subsection}{\numberline {5.2.1}RegisterCategories Program}{47} \contentsline {subsection}{\numberline {5.2.2}Categorisation Program}{49} \contentsline {section}{\numberline {5.3}Analysis of results}{51} \contentsline {subsection}{\numberline {5.3.1}Categorising}{51} \contentsline {chapter}{\numberline {6}Conclusion}{53} \contentsline {section}{\numberline {6.1}Research Assessment}{53} \contentsline {section}{\numberline {6.2}Future Work}{55} \contentsline {chapter}{Appendix A: Categories Program}{60} \contentsline {chapter}{Appendix B: Calculators}{78} \contentsline {chapter}{Appendix C: Register Program}{115}