A Critique of the Windows Application Programming Interface

Total Page:16

File Type:pdf, Size:1020Kb

A Critique of the Windows Application Programming Interface A Critique of the Windows Application Programming Interface Diomidis Spinellis University of the Aegean 83200 Karlovasi Greece email: [email protected] December 1997 Abstract ware to run under Windows. Although application writers can be isolated from the SDK by using libraries, scripting, The architecture, interface, and functionality of the Win- visual and fourth-generation languages, or utilising pro- dows Application Programming Interface (API) make it dif- grammable components, ultimately the SDK provides the ®cult to master and use effectively, and contribute nega- operating system interface thus affecting the robustness, tively to the safety, robustness, and portability of the ap- portability, performance, safety, and ease of Windows pro- plications developed under it. The API is structured around gramming. a large and constantly evolving set of functions and is based The ®rst versions of Windows provided a graphical envi- on a problematic shared library implementation. The pro- ronment to the MS-DOS operating system. The current ver- vided interfaces are complicated, non-orthogonal, abuse the sions of Windows provide a 32-bit graphical, multi-tasking, type system, cause name-space pollution, and use incon- networked operating system [3] used by thousands of work- sistent naming conventions. In addition, the functional- station and server applications. The core SDK Application ity of the interface suffers from inconsistency, incomplete- Programming Interface (API) covers an extremely broad ness, and inadequate documentation. Application develop- area providing the interfaces listed bellow. ers, programming tool vendors, and Microsoft should face the above problems and provide appropriate solutions. Input and output devices: mouse, keyboard, pen, screen, Keywords: Microsoft Windows; Application Program- printer, and sound. ming Interface; Win32 User interface elements: windows, menus, dialogs, input widgets, the clipboard, and internationalisation func- 1 Introduction tions. System services: ®les, memory, hardware, system Microsoft Windows 95 and Windows NT (from now databases, and networking. on referred-to as ªWindowsº) are increasingly becoming widely adopted as operating system platforms for desktop Graphical elements: bitmaps, fonts, drawing primitives, applications, back-of®ce servers, and research [1]. Their area management functions), and 3D graphics render- programming interface, currently distributed and docu- ing. mented as the ªMicrosoft Platform Software Development An additional number of APIs are provided and docu- Kitº [2] (SDK), provides a set of functions, data types, struc- mented as part of the Windows Platform SDK. The use of tures, macros, and tools for writing user and system soft- some of them is required in order to develop an application Computer Standards & Interfaces, 20:1±8, November 1998. that will satisfy the licensing requirements of Microsoft's This is a machine-readable rendering of a working paper draft that led ªDesigned for Windows NT and Windows 95º Logo Pro- to a publication. The publication should always be cited in preference to gram. These APIs cover the following areas: this draft using the reference in the previous footnote. This material is presented to ensure timely dissemination of scholarly and technical work. the Microsoft's Component Object Model (COM), Ob- Copyright and all rights therein are retained by authors or by other copy- right holders. All persons copying this information are expected to adhere ject Linking and Embedding (OLE), application au- to the terms and constraints invoked by each author's copyright. In most tomation, and ActiveX, cases, these works may not be reposted without the explicit permission of the copyright holder. shell interfacing, 1 telephony interfaces (TAPI), Element Number remote access services and procedure calls (RPC), Number of root header ®les 129 Number of import libraries 48 Total number of header ®les 232 Internet networking, W3 server interfacing (Winsock, Header ®le size (Mb) 5.2 ISAPI), Header ®le lines (non empty non comment) 120516 Macro and constant de®nitions 33174 messaging (MAPI), and Type de®nitions 4858 Functions 3433 game applications (DirectX 2). Interface methods 1462 Messages 858 The Windows platform SDK also documents a number of Noti®cation messages 180 interfaces for entities that are not yet part of the standard Structures 1077 Windows distributions such as the Microsoft SQL, Transac- Properties 498 tion, and Exchange servers, the management console and Enumeration types 110 clustering interfaces, the Win32 Internet functions, and the Function error codes 1137 Open Database Connectivity Interface (ODBC). Although many of the shortcomings of the basic Windows API are Table 1: Win32 API key metrics also evident in the above mentioned interfaces, we will not cover these in this article. The Windows interface is speci®ed using C language 2 Size, Structure, and Implementa- bindings, although due to the nature of its implementation Ð as a set of shared libraries callable using the calling tion convention commonly associated with Pascal programs Ð many of its functions are accessible from other languages The Windows API is accessed through a very large and com- and programming environments. plicated set of elements. Its size is dif®cult to judge because what exactly constitutes it is far from clear. The Windows In this article we will critically examine the architecture, SDK de®nition and its contents change rapidly according to interface, and functionality of the Windows API and point Microsoft's strategic and marketing interests. As an exam- to a number of problems associated with it. We will argue ple the October 1996 edition of the Microsoft Development that because of these problems the Windows interface: Library documents the Internet Server API (ISAPI) as part of the Win32 Software Development Kit (SDK), but docu- is dif®cult to master and use effectively, ments other server related APIs (such as the Open Database Connectivity Ð ODBC Ð API) as separate entities. The can be used to distort competition in the marketplace, April 1997 version of the Microsoft Development Library documents all Windows interfaces under the roof of a sin- contributes negatively to the safety, robustness, and gle ªPlatform SDKº. portability of the applications developed under it. In this article we will consider the Windows API (Win32) to consist of the items supplied as parts of Microsoft's The remainder of this article is structured as follows: Win32 Software Development Kit. The POSIX subsystem in the next section we examine the API's structure, size, of Windows NT, although part of the Win32 SDK, is sepa- and implementation looking on how these affect software rately installed and documented; for this reason we will not development, reliability, and marketplace competition. In consider it as part of Win32. section 3 we examine the interface provided by the Win- A ®le (WIN32API.CSV) supplied together with the Win32 dows API and identify problems related to the complexity SDK lists 9067 API elements (functions, interface methods, and non-orthogonality of the provided interfaces, the type structures, messages, macros, properties, etc.) This num- system, name-space pollution, inconsistent naming conven- ber although large does not include about 29000 constant tions, and portability. In section 4 we look beyond the in- de®nitions (constants de®ned using the #de®ne mechanism terface into the actual functionality provided by the API and of the C preprocessor) and about 4800 type de®nitions (C provide examples of inconsistency, inadequate documenta- typedefs) that can be found by going through all C header tion, and incompleteness. Finally, the last section contains ®les that are part of the SDK, nor does it include the Uni- proposals on how application developers, programming tool code, ASCII, and character set neutral function forms. A vendors, and Microsoft should handle the identi®ed API summary of some key metric sizes of the Win32 API is pro- problems. vided in Table 1. 2 The large size and monolithic nature of the Win32 API 3 Interface negatively affect a number of areas related to software de- velopment. The huge number elements comprising the API The provided functions have a complex and non-intuitive make it dif®cult to master it and use it effectively. As a re- interface with a number of mode changing ¯ags and excep- sult the productivity of application architects, software de- tions that unnecessarily complicate system application de- velopers, and maintainers is negatively affected. velopment. Space restrictions do not allow us to provide a detailed example; interested readers are encouriaged to dis- In addition, the creation of systems providing the same cover for their own edi®cation the three different ways in services on different platforms is dif®cult, and, given the which a read-only mode can be speci®ed using the seven rapidly evolving nature of the API, could well be impossi- parameters of the CreateFile function. ble. In the past, major advances in research and develop- Despite the apparent generality of functions such as Cre- ment of new hardware and operating system architectures ateFile it would be a mistake to think that the Windows such as the RISC processors and microkernels were lever- API provides a small set of generalised functions that cover aged on the ability to provide a Unix-like environment on a lot of ground by being combined in an orthogonal fash- top of the new architecture. With the domination
Recommended publications
  • 1TR6 D-Kanal-Protokoll Im ISDN
    Universität Rostock Fachbereich Elektrotechnik und Informationstechnik Abkürzungen zum Fach Kommunikationssysteme nur für den internen Gebrauch 03/99 Dr. Melzer, Kessler, Mali, Weiß http://www.comlab.uni-rostock.de/ 3 1TR6 D-Kanal-Protokoll im ISDN AIX Advanced Interactive Execute AL Application Layer AL Alignment A ALS Application Layer Structure AMI Alternate Mark Inversion AMIS Audio Message Interchange AA Administrative Authority Specification AAA Authentication, Authorization and AML ACPI Machine Language Accounting AMP Active Monitor Present AAL ATM Adaptation Layer AMT Agent Management Task AAPI ATM-API ANS Advanced Network and Services ABM Asynchronous Balanced Mode ANSI American National Standards ABR Available Bit Rate Institute ACATS Advisory Committee for AOAC Always On/Always Connected Advanced Television Systems AOC ADSL Overhead Control Channel ACD Automatic Call Distribution AOL America Online ACE Access Control Entry AP Access Point ACE Access Control Encryption APC Asynchronous Procedure Call ACF Access Control Field API Application Programming ACK Acknowledgement Interface ACL Access Control List APM Advanced Power Management ACM Association for Computer APPN Advanced Peer to Peer Machinery Networking ACM Adaptive Clock Methode APS Auxiliary Power Supply ACPI Advanced Configuration and ARA AppleTalk Remote Access Power Interface ARC Advanced RISC Computing ACR Attenuation to Crosstalk Ratio ARM Asynchronous Response Mode ACR Allowed Cell Rate ARP Address Resolution Protocol ACS Access Control Store ARPA Advanced Research
    [Show full text]
  • MM Essentials for Windows
    Multimedia Essentials for Windows Welcome to the world of Windows multimedia! Macromedia is pleased to provide you with tips, techniques, and direction for using a Windows–based environment to author and deliver successful multimedia productions. This guide is based upon inquiries from our end users, resellers, and developers and includes answers to questions frequently asked of our technical support group. We hope that it will help you navigate through many of the important choices you will face in cross-platform multimedia development. If you have previously used the Macintosh as an authoring platform, you will find this a useful guide to understanding the differences between Macintosh and Windows– based computers in order to take advantage of cross–platform authoring and delivery opportunities. Useful topics include working with different file formats and converting applications from Macintosh to Windows. If you are new to developing interactive multimedia productions on Windows—even if you are already familiar with the Windows environment—you will find this a beneficial overview of multimedia authoring on the Windows platform. This document offers guidelines for configuring your Windows environment for multimedia, tips for optimizing performance, and suggestions for effectively testing and distributing your productions. A multimedia glossary provides definitions for some of the most commonly used Windows, DOS, and multimedia terms and acronyms to help you become familiar with the talk of the trade. Even veteran Windows multimedia developers interested in becoming acquainted with Macromedia products and cross-platform delivery issues will find this guide informative. It will provide you with insights on how Macromedia tools can empower your multimedia development efforts.
    [Show full text]
  • Windows Multimedia
    Windows Multimedia Some Multimedia Devices • Some multimedia devices: – Waveform audio device (sound card) • converts microphone & other analog audio to digitized samples (ADC) • can be stored as .WAV files • can be played back (DAC) • Also usually has a MIDI device – Musical Instrument Digital Interface – Plays/stores musical notes in response to short binary messages (MIDI codes) – can be attached to a MIDI input device (music keyboard) » And an output device such as a MIDI music synthesizer – CD Audio through the CD-ROM drive – Video for Windows device (AVI video device) • plays movie/animation files (.AVI) – QuickTime and MPEG movies – Video capture boards (different compression schemes) – Laserdisc players & video cassette recorders – Others (DVD) Win32 MM Support & Documentation • Extensive Win32 API support for multimedia devices – Low-level support – High-level support • MSDN online documentation: – http://msdn.microsoft.com/en-us/library/default.aspx • Win32 and COM Development / Graphics and Multimedia / Audio and Video / Windows Multimedia • Visual Studio Help on “MCI Command Strings” Media Control Interface • MCI (Media Control Interface) – High level multimedia control functions – Has commands common to all multimedia hardware • Possible since most use record/play metaphor – Open a device for input or output – If input, record; If output, play • When done, close the device – Some MCI Device Names: • cdaudio, waveaudio, sequencer (MIDI), videodisc, vcr, overlay (analog video in a window), dat (digital audio tape), AVIVideo
    [Show full text]
  • To Download Notes on CGMM Unit 4
    LNCT GROUP OF COLLEGES Name of Faculty: Prof. Akshay Jadhav and Prof. Huma Gupta Designation: Assistant Professor Department: Information Technology Subject: CGMM (IT-601) Semester: 6th Unit: 4th Topic: Multimedia LNCT GROUP OF COLLEGES Unit IV Introduction to multimedia components applications, Multimedia System Architecture, Evolving technologies for Multimedia, Defining objects for Multimedia systems, Multimedia Data interface standards, Multimedia Databases, Multimedia Hardware, SCSI, IDE, MCI, Multimedia Tools, presentation tools, Authoring tools. MULTIMEDIA- The literal meaning of multimedia. Multi − it means more than one Medium − it is singular and it means intermediary or mean Media − it is plural and it means conveying the information Likewise, Multimedia is the field of Computer Science that integrates different forms of information and represents in the form of audio, video, and animation along with the traditional media, i.e., text, graphics/drawings, images, etc. MULTIMEDIA COMPONENTS- Following are the major components of a multimedia computer system − Text- It contains alphanumeric and some other special characters. Keyboard is usually used for input of text; however, there are some internal (inbuilt) features to include such text. Graphics- It is technology to generate, represent, process, manipulate, and display pictures. It is one of the most important components of multimedia application. The development of graphics is supported by a different software. Animation- Computer animation is a modern technology, which helps in creating, developing, sequencing, and displaying a set of images (technically known as ‘frames’). Animation gives visual effects or motion very similar to that of a video file (see image given below). Audio- This technology records, synthesizes, and plays audio (sound).
    [Show full text]
  • ISNCON2011 Speaker Guidelines
    ISNCON2011 Speaker guidelines When you arrive at the Conference Venue: Ø Report to the PREVIEW Room one day before your presentation Ø Only data projection will be allowed. Please bring a Pen drive or CD-ROM with your presentation to the Preview Room. Conference volunteers will make sure that your presentation will be downloaded on the computer in your specific session room. Ø In the PREVIEW Room you can check your presentation and make final changes. Ø If you have questions, please contact at preview room. At the Time of your Presentation: Be present in your presentation room 30 minutes before the start of the session to meet the Hall In charge. A technician and a representative of the scientific committee will be in every room to provide assistance when needed. Please be certain that the length of your oral presentation stays within the allotted time including two minutes for audience interaction. Please note that Audio-visual will shut off at the end of allotted time. Session chairs are instructed to terminate lectures, which exceed their time allotment. Please do not take any brand name of Instrument / Drug / Vaccine. Session chairs are instructed to interrupt in case any brand name is used in presentation or spoken. Please confirm the exact date and time of your presentation in the final scientific program. Audio-Visual Equipment In the room the following audio-visual equipment will be available: • Data projector for power point presentations • PC-computer with Microsoft PowerPoint version 2000 or higher • Overhead projection: Please note that overhead projection will NOT be available at the conference.
    [Show full text]
  • Modular Windows Software Development Kit 1.0 Getting Started
    Getting Started M!CROSOFf MODULAR WINDOWS n., '" SOFTWARE DEVELOPMENT KIT Getting Started Microsoft® Modular Windows™ Software Development Kit Microsoft Corporation Information in this document is subject to change without notice. Companies, names, and data used in examples herein are fictitious unless otherwise noted. No part of this document may be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without the express written permission of Microsoft Corporation. ©1992 Microsoft Corporation. All rights reserved. Microsoft, MS, MS-DOS, and the Microsoft logo are registered trademarks, and Windows is a trademark of Microsoft Corporation in the USA and other countries. CompuServe is a registered trademark of CompuServe, Inc. Gravis PC GamePad is a trademark of Advanced Gravis Computer Technology Ltd. Tandy is a registered trademark and VIS is a trademark of Tandy Corporation. DocumentNo. MM37742-1192 Printed in the United States of America. Contents Introduction . v Getting your First Look at Microsoft Modular Windows . v Redistributable Run-Time Modules . vi Books in the Modular Windows Software Development Kit . vii Online Information. vii Obtaining Support . vii Chapter 1 Installing the Modular Windows Software Development Kit . 1-1 Hardware and Software Requirements . 1-1 Before Installing the Software Development Kit......................... 1-2 Using the Setup Program . 1-3 Setting Up Hand-Control Drivers. 1-4 Installing the Gravis PC GamePad. 1-4 Installing the Tandy Hand Control. 1-5 Changing the Installed Hand Control. ............................... 1-5 Choosing a Windows Installation . 1-5 Running the WinShell Application . 1-6 Chapter 2 What's New for Modular Windows? ............................ 2-1 Changes from Microsoft Windows 3.1 .
    [Show full text]
  • " Who Controls the Vocabulary, Controls the Knowledge"
    Acronyms from Future-Based Consultancy & Solutions "Translation" of some Business, Finance, ICDT acronyms (including several SAP ones), initialims, tech term oddities and techronyms, loaded words and buzzwords to ease the reading of courses, books, magazines and papers: see "anacronym", "ASS" and many others ... (third main version since 1997) ( www.fbc-e.com , updated & corrected twice a month. Release 02-10-2009) " Who controls the vocabulary , 6170+ controls the knowledge " George ORWELL in "1984" Instruction To ease your researches , we are inviting you to use the " search " function within the Menu " edit " Pour faciliter vos recherches, utilisez la fonction " rechercher " disponible dans le menu " Edition " Information Underligned names are identifying authors, editors and / or copyrighted applications ©, ®, ™ FBWPA Free Business White Page Available (www.fbc-e.com ) Acronym Rose salmon is related to acronyms and assimilated terms and concepts. IL / InLin Internet Lingo also called " PC talk" Intelligence Light green color is related to intelligence, business intelligence ( BI , CI ) FBC>s Yellow color is related to FBC>s concepts and methodologies (more on www.fbc-e.com ) Finance Deep blue color is related to Finance and Accounting ( FI ) Note: BOLD acronyms KM Deep green color is related to Knowledge Management ( KM ) and texts are "translated" HR & R Lemon green color is related to HR and recruitment in the list. Mobility Light blue color is related to mobile communication ( MoMo ) Security Red color is related to security and risks management ( RM ) Note : US spelling Virtual Pink color is related to virtual / virtuality ( VR ) & ampersand $$$ temporary files Feel free to copy and distribute this "computer-babble *.001 Hayes JT Fax translator" provided that it is distributed only in its 0 Day FTP server supposed to be moved within original and unmodified state with our name, address, the next 24 hours to another IP .
    [Show full text]
  • AA Auto Answer AAB All-To-All Broadcast AAL Asynchronous
    AA Auto Answer Advanced Communications Function AAB All-to-All Broadcast ACH Automated Clearing House AAL Asynchronous Transfer Mode Adaption Layer ACIAS Automated Calibration Interval Analysis System AAP Applications Access Point [DEC] ACIS American Committee for Interoperable Systems AAS All-to-All Scatter ACK Acknowledgment AASP ASCII Asynchronous Support Package ACL Access Control List AAT Average Access Time ACM Association for Computing Machinery ABC * Atanasoff-Berry Computer (First digital Audio Compression Manager [Microsoft] calculating machine that used vacuum tubes) ACMS Application Control Management System ABEND Abnormal End ACP Ancillary Control Program + Auxilary Control Process ABI Application Binary Interface ACPI Advanced Configuration Power Interface ABIOS Advanced BIOS ACROSS Automated Cargo Release and Operations ABIST Automatic Built-In Self-Test [IBM] Service System ABLE Adaptive Battery Life Extender ACS Access + Access Control Set + ABR Available Bit Rate Access Control System + ABRS Automated Book Request System [British Library] * Advanced Computer System [IBM] + ABS Address Book Synchronization [IBM] + Absolute Asynchronous Communication Server ABT Abort ACTS Automated Computer Time Service ABTS ASCII Block Terminal Services ACTT Advanced Communication and Timekeeping AC Autocheck + Automatic Computer + Alternating Current Technology [Seiko] ACAP Application Configuration Access Protocol ACU Automatic Calling Unit ACC Accumulator A/D Analog to Digital ACD Automatic Call Distribution ADA Automatic Data Acquisitions
    [Show full text]
  • Microsoft Windows "Chicago"
    Microsoft Windows ‘‘Chicago’’ Reviewer’s Guide Beta-1 The information discussed in this guide is based on features and functionality present either in the Beta-1 release of Chicago, or planned for a future release. The discussion of Chicago herein, does not represent a commitment on the part of Microsoft for providing or shipping the features and functionality discussed in the final retail product offerings of Chicago. This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT. Table of Contents INTRODUCTION ....................................................1 Welcome ..................................................................................1 Chicago Mission......................................................................1 Where We’ve Been.................................................................................................1 Where We Are Today.............................................................................................1 Where We’re Headed .............................................................................................2 How We Get There.................................................................................................3 A Quick Preview of Chicago’s Top Features ........................4 Even Easier.............................................................................................................4 Faster and More Powerful ......................................................................................5
    [Show full text]
  • Z/OS Communications Server Glossary
    z/OS Communications Server Glossary Version2Release1 Glossary This glossary provides terms and definitions for the z/OS Communications Server software and products. For other terms and definitions, see the IBM Terminology website. Numerics 31-bit storage addressing An addressing structure introduced with the MVS/XA operating system that supports addressing up to 2 GB of real and virtual memory, in addition to the prior support for 24-bit addressing. The architecture has since been extended with 64-bit addressing. 3270 data stream The commands, control codes, orders, attributes, and data or structured fields for 3270 devices, that are transmitted inbound to an application program or outbound to a terminal. A AAL See ATM adaptation layer. AARP See AppleTalk Address Resolution Protocol. abend See abnormal end of task. abend dump A dump that is produced when a program ends abnormally. ABM 1. See activity based management. 2. See asynchronous balanced mode. abnormal end of task (abend) The termination of a task, job, or subsystem because of an error condition that recovery facilities cannot resolve during execution. abnormal termination A system failure or operator action that causes a job to end unsuccessfully. ABR See area border router. abstract syntax A data specification that includes all distinctions that are needed in data transmissions, but that omits (abstracts) other details such as those that depend on specific computer architectures. See also Abstract Syntax Notation One, Basic Encoding Rules. Abstract Syntax Notation One (ASN.1) 1. The international standard for defining the syntax of information data. It defines a number of simple data types and specifies a notation for referencing these types and for specifying values of these types.
    [Show full text]
  • Visual C# .NET Developer's Handbook
    Visual C# .NET Developer's Handbook John Paul Mueller Associate Publisher: Richard Mills Acquisitions and Developmental Editor: Denise Santoro Lincoln Editor: Colleen Wheeler Strand Production Editor: Kylie Johnston Technical Editor: Ross Russell Mullen Graphic Illustrator: Tony Jonick Electronic Publishing Specialist: Nila Nichols Proofreaders: Amey Garber, Dave Nash, Laurie O'Connell, Yariv Rabinovitch, Nancy Riddiough Indexer: Ron Strauss CD Coordinator: Dan Mummert CD Technician: Kevin Ly Cover Designer: Carol Gorska/Gorska Design Cover Photographer: Glen Allison/PhotoDisc Copyright © 2002 SYBEX Inc., 1151 Marina Village Parkway, Alameda, CA 94501. World rights reserved. The author created reusable code in this publication expressly for reuse by readers. Sybex grants readers limited permission to reuse the code found in this publication or its accompanying CD-ROM so long as the author is attributed in any application containing the reusable code and the code itself is never distributed, posted online by electronic transmission, sold, or commercially exploited as a stand-alone product. Aside from this specific exception concerning reusable code, no part of this publication may be stored in a retrieval system, transmitted, or reproduced in any way, including but not limited to photocopy, photograph, magnetic, or other record, without the prior agreement and written permission of the publisher. Library of Congress Card Number: 2002103166 ISBN: 0-7821-4047-5 SYBEX and the SYBEX logo are either registered trademarks or trademarks of SYBEX Inc. in the United States and/or other countries.Screen reproductions produced with FullShot 99. FullShot 99 © 1991-1999 Inbit Incorporated. All rights reserved.FullShot is a trademark of Inbit Incorporated. The CD interface was created using Macromedia Director, COPYRIGHT 1994, 1997-1999 Macromedia Inc.
    [Show full text]
  • Quality of Service Analysis for Distributed Multimedia Systems in a Local Area Networking Environment (148 Pp.)
    QUALITY OF SERVICE ANALYSIS FOR DISTRIBUTED MULTIMEDIA SYSTEMS IN A LOCAL AREA NETWORKING ENVIRONMENT A Dissertation Presented to The Faculty of the Fritz J. and Dolores H. Russ College of Engineering and Technology Ohio University In Partial Fulfillment of the Requirement for the Degree Doc tor of Philosophy by Edward Chi-Fai Chung June, 1996 Acknowledgments I wish to take this opportunity to express my sincere gratitude to those people who provided me with the guidance and encouragement during the final stages of this education endeavor. Special thanks is given to my dissertation advisor, Dr. Mehmet Celenk, for his patience, understanding and support throughout the project. His dedication to work and attention to detail never cease to amaze me. I am also grateful to my other committee members; Dr. Dennis Irwin, Dr. Jeffery Dill, Professor Hari Shankar and especially Dr. Costas Vassiliadis, for their time and valuable suggestions. I owe much thanks to Mr. Sean Ann of RIM Communications Ltd., Hong Kong, for his invaluable support. Mr. Sean Ann is an exceptional friend whose suggestions are often inspirational and challenging. Partial funding of this research by RIM Communications Ltd. is also gratefully acknowledged. Also deserving acknowledgment are the following individuals for their kind assistance: Dr. Jerrel Mitchell, Mr. Timothy Bambeck and Mrs. Janelle Baney. Mrs. Denise Ragan who gave her time to assist me with things that made my life much easier. Special thanks go to Ms. Lisa Lung for her spiritual and emotional support. She always reminded me of those things which are really essential in my life that I sometimes overlooked.
    [Show full text]