Contents
Introduction . . . . . . . . . 3
Why a Standard Terminology Interface . . . . . . 4
Drive to use Object-Oriented Technology . . . . . . 5
Why a Distributed Object Computing Environment . . . . . 8
Conclusion . . . . . . . . . 10
References . . . . . . . . . 14
Endnotes . . . . . . . . . 15
This position paper deals with our experiences in the creation of a prototype for a terminology system coupled with terminology services to be used in a Distributed Object Computing (DOC) environment. Our decision to create the prototype was driven from three fronts.
· Second, we were interested in understanding the ramifications of utilizing an object-oriented technology approach in accomplishing such a task.
· Third, we wanted to develop this prototype utilizing DOC to demonstrate the viability of a distributed environment and also identify the benefits that a terminology system coupled with terminology services could provide in linking disparate systems.
The medical domain provides a good example of the difficulty of managing data without adequate terminology, given the large number of disparate terminologies in use today, such as: The International Classification of Diseases: 9th revision, Clinical Modification (ICD-9-CM)1, Medical Subject Headings (MeSH)1, Systemized Nomenclature of Human and Veterinary Medicine (SNOMED)1, Physicians Current Procedural Terminology (CPT-4)1, and Logical Observation Identifier Names and Codes (LOINC)1. There are also countless ad hoc terminology systems developed as proprietary solutions to specific problems. Recent pushes for an electronic medical record, along with the demand for integration of many previously disparate computerized medical systems, has begun to expose the differences in approach, functionality, and content between these various systems. Frequently, information in one terminology system cannot be recognized by other systems, thereby hindering the ability to integrate component applications into larger systems.1 The following example appears in a conference paper entitled Desiderata for Controlled Medical Vocabularies in the Twenty-First Century:
Consequently, we focused on modeling a standard terminology interface. We have done so in a fashion that will allow vocabularies to evolve independently of the interface definition, with the interface definition itself evolving at controlled intervals.
The submission and prototype were developed utilizing a wide breadth of object-oriented technologies.
First, however, we had to develop a vision, a long-term outlook and our goals for wanting to utilize object-oriented technology-each of which had their own influencing factors. Once these steps were completed, we focused on the architecture.
The architecture was divided into three basic areas; the model, the platform and the tools-all encompassed in a DOC environment or a driving force for utilizing a DOC environment. Our vision, long-term outlook and goals assisted us in making the necessary technological decisions.
Utilizing Object-Oriented Technology (OT) as an engineering practice we can design and develop reusable components, which, in turn, allows us to produce higher quality, more timely solutions to help us meet our business needs.
2. Cost-effective technology.
3. Large success in our industry.
4. Risk could be reduced to an acceptable level due to the availability of sufficient knowledge and tools.
5. Availability of pertinent operating systems.
6. Reusable component packages, such as libraries
7. Case tools that support the OO Development Life-Cycle
8. Training and mentoring availability.
9. Standards being developed by several standards organizations, e.g., OMG, IEEE, ANSI, ISO, HL7.
10. Seamless integration of distributed objects for heterogeneous systems.
Influences for our long-term outlook:
2. Smalltalk evolved in the mid/late 1970's; in the early 1980's other object-oriented languages followed.
3. Large-scale development began to utilize OT in the late 1980's because traditional methods either failed or were failing and because the emergence of sound C++ development environments were occurring.
4. OT's acceptance has exploded since the mid 1980's. It is now available with complete development environments, numerous commercial libraries, a large set of supporting tools for object-oriented development, as well as the development of standards.
1. We wanted to understand how Object-Oriented Analysis/Design could help developers cope with the increasing complexity of software systems.
2. We wanted to understand how Object-Oriented Programming can help the developers of complex systems overcome the limitations of conventional procedural programming paradigms.
3. We wanted to understand how an Object-Oriented Database differs from a Relational Database, and how those differences may allow us to provide the highest possible performance in managing our complex systems.
Influences for goals:
2. Utilize an object-oriented programming language that supports the basic object concepts; encapsulation, polymorphism, and inheritance. Encapsulation provides the ability to control visibility in a flexible manner. Polymorphism provides flexibility in making it possible to send the same message to different objects and elicit a distinct but semantically similar response from each. Inheritance promotes behavior reuse and object substitution.
3. The retrieval and organizational structure of the data elements potentially could become large and complex, which, in turn, may render relational technology inadequate in its ability to perform adequately and at the same time minimize the proliferation of redundancy.
1. Model
FACTORS:
· Encourage the reuse of software and design
· Develop a system more resilient to change
· Reduce the risk of developing a complex system
· Appeals to human cognition
2. Platform
FACTORS:
· Availability
· Cost of development
The original machine used to develop the prototype was an HP Vectra 90MHz Pentium, 4gig drive, 48MB RAM.
Today the prototype is working on a Gateway 9100XL 266MHz Pentium II Processor, 5GB, 64MB
We were also concerned with developing in an environment that would offset some of the development costs associated with larger systems. For example, development costs may include object-oriented development tools, On-Line Transaction Processing (OLTP) tools, persistent store development and maintenance, operating costs, enhancement costs and maintenance costs.
3. Tools
FACTORS:
· Capability
· Cost
Because we chose an object model and made the decision to utilize UML as the object modeling language, we needed a tool that could express UML. We chose Rational Rose, primarily because its founders were the chief architects of UML. In the beginning we downloaded a trial copy from the Internet and later purchased a full copy. The trial copy gave us the confidence that this tool would help us succeed in our endeavor.
Client, server tool:
In order not to incur any additional costs, we decided to utilize Visual C++ 5.0 since it was already on the workstation and there was no need to become trained in another environment. Although Visual C++ is arguably not a pure object-oriented language, it provided us the necessary functionality to perform our task. Visual C++ was used to create the TF-Manager, TF-Server, and TF-Client. In the case of the TF-Manager and TF-Client, the user interface was also developed in Visual C++.
Persistent store:
Object Design's ObjectStore was also available on the workstation and familiarity and usage were already gained. It provided us with the ability to offer a scheme that could operate on the object model and at the same time provide seamless integration into the Terminology Framework.
Object Request Broker (ORB):
HP OrbPlus 2.5 Object Request Broker (ORB) was available free of charge for a limited time and was used in the early stages. Once the final update to the specification was completed, a change to Orbix was made in order to utilize a supported product. The ORB product provided us the ability to generate IDL and the necessary stubs and skeletons to implement the LQS specification.
The DOC environment could certainly have been included in the Drive to use Object-Oriented Technology section but it was felt that it deserved a section unto itself.
In making a decision to use DOC we first considered the risks of not using DOC and then came up with the benefits for using DOC to see if the benefits would outweigh the risks. We then made our decisions for which DOC to use.
Healthcare is not unique to the need for informational sharing, it is however one where the complexity of information between disparate groups proves a good test bed. We also believe that by not utilizing a DOC environment in an enterprise setting such as healthcare, the following ramifications will include:
2. Latency in the ability to provide timely extensibility.
3. Maintainability problems.
4. Manual deployment.
5. Development lag.
The following outlines some of the benefits that we perceived that a DOC environment could provide:
2. Utilize components.
3. Allows for the use of existing infrastructures.
4. Allows for the concentration of efforts in order to get the correct information to the correct people without manual mechanisms being involved.
5. Minimizes the costs of having duplicate copies of information located at each site.
6. Standard interfaces are available.
7. Standard services are available.
8. Standard interfaces coupled with a thin layer of wrapper code bring legacy applications into the environment.
9. Maximizes programmer productivity.
10. Allows for code reuse.
11. Allows user to mix and match tools within a project.
We organize ourselves around voluntary commitments.
--W.L. Gore
FACTORS:
· Utilize existing DOC technologies
· Enterprise interoperability
Because we believed there existed a need to develop a standard terminology interface, we also believed there was wide spread knowledge about terminology as well as many efforts in the development of tools for terminology. Consequently, to ensure that we acquired industry-wide input and acceptance, we chose to respond to an RFP issued by the Object Management Group (OMG) CORBAmed Domain Tasks Force for a Lexicon Query Service (LQS) specification. This allowed us a necessary forum for suggestions and advice from industry and academic experts.
The OMG has developed the Object Management Architecture (OMA) which is a multivendor standard for DOC. This includes CORBA-the Component Object Request Broker Architecture that provided us with a DOC environment. In 1991 CORBA 1.1 was introduced and defined the Interface Definition Language (IDL) and the Application Programming Interfaces (API) required by an ORB to enable an object-oriented implementation of a client/server paradigm. In December 1994, the CORBA 2.0 specification was adopted which specified the interoperability layer between ORB vendor products thus allowing different ORB vendor products to interact in a the distributed world. The success of CORBA in the following domains made it a more intriguing DOC environment to test the waters of our prototype:
· Advertising/Marketing
· Aerospace/Defense
· Banking/Finance
· Chemical/Petrochemical
· Electronic Commerce
· Government
· Healthcare/Insurance
· Manufacturing
· Publishing/Multimedia
· Real Estate
· Research
· Retail
· Software Companies
· Telecommunications
· Transportation
· Utilities
The ORB exists as the middleware-it establishes the relationships needed for the client and server to communicate in a DOC environment. The ORB handles the necessary responsibility of locating the correct object, passing the parameters, invoking methods and returning results. It does so which out regard for the object's programming language, its operating system or platform. Consequently, because many enterprises consist of multiple applications (developed in multiple languages), multiple operating systems and multiple platforms this type of enterprise interoperability made the CORBA/ORB DOC appealing.
As we designed the specification and developed the prototype, we became convinced of the power that a terminology system coupled with a terminology service interface could bring to the medical domain. In addition, we attained a better understanding of the benefits that object-oriented technology could provide. Finally, we ascertained a better understanding of how a standardized DOC environment could solve many of today's legacy problems, how it could be utilized to exchange information between disparate systems, as well as how it could provide an environment that was developer friendly.
Architecture
PROS:
· As we developed the model we began to see patterns and could place where the model could be simplified through inheritance, which resulted in a time savings as well as providing a more robust model.
· The model helped drive applicable solutions and tool sets.
PROS:
· Less costly development. The development tools as well as the ORB tools are considerably less expensive.
· Portable relocation of the prototype.
· Graphical User Interface tools supplied by the ORB vendor made the management of registering objects and monitoring a running CORBA-based application much easier.
ISSUES:
· Configuration and scalability of the operating system.
· UML allowed us to capture and drive the model. Use cases were used to capture the requirements as well as define the business rules. Class modeling was used to define the business objects and application architecture. The object model was used to define the behavior required by the various classes and ensure that the use cases and business rules were supported correctly.
· UML has been adopted by the OMG as a standard which will increase the number and usability of tools and encourage the development of add-ons. This, in turn, means that existing models in UML will not become obsolete in the future.
· Modeling tools do not magically insert themselves into the development process-they require a behavior change. Developers must focus on using the model as the blueprint for development, managers need to focus less on getting the code cut and more on learning to value the model and, of course, users must be involved.
CONS:
· The ability to utilize standard C++ language constructs to query and manipulate objects from the database meant we would not need to undergo further training in a new query language.
· Ability to import an existing database scheme into the server eliminated the need for redundant programming.
· Object Oriented Database Management System (OODBMS) architecture allowed us an easy way to develop the complex informational model. There also existed a robust set of inter-relationship objects which could be utilized to structure the necessary relationships in the scheme and manipulate them in the programming language.
· Importance of object language bindings.
· OODBMS or RDBMS will depend on user's application.
· Code-generation of server skeletons and client stubs expedited the implementation development of both the client and the server.
· The ability to run a server from a different machine in a different location from the client made the realization that DOC was a reality. Also, it gave us a better understanding of how an ORB could be used to provide a link to legacy systems while making the migratory move to a more fully compliant DOC environment.
Concurrency.
Load balancing.
· Allows us the ability to concentrate on the problem space rather than on the underlining technology.
· Standardized architecture improves development quality, costs, and effort.
· Legacy integration can be a reality.
· Maximized programmer productivity through the use of a sophisticated base and seamless integration through transparent distribution.
· Interoperability results because clients on one platform know how to invoke standard operations on objects on any other platform regardless of programming languages, platforms or operating system.
· Possible change in costing structures.
· Desire to utilize specifications that are not yet mature.
· Integration pertaining to the co-existence with the Distributed Component Object Model (DCOM) from Microsoft needs to be investigated and potentially prototyped.
Booch Grady. Object Oriented Design with Applications. The Benjamin/Cummings Publishing Company, Inc.: 1991.
Cattell R.G.G. The Object Database Standard:ODMG-93. Morgan Kaufmann Publishing, Inc.: 1996.
Coonradt Charles A. with Nelson Lee. The Game of Work. Shadow Mountain: 1985.
Goldberg Adele, Rubin Kenneth S., Succeeding with Objects Decision Frameworks for Project Management. Addison-Wesley Publishing Company, Inc. : 1995.
Mowbray Thomas J., Malveau Raphael C. CORBA Design Patterns. Wiley Computer Publishing: 1997.
Object Management Group (OMG). http://www.omg.org/
Siegel Jon. CORBA Fundamentals and Programming. Wiley Computer Publishing Group: 1996.
Stroustrup Bjarne. The Design and Evolution of C++. Addison-Wesley Publishing Company, Inc. : 1994.
Cimino JJ, summarizing the findings of Wong ET, Pryor TA, Huff SM, Hau PJ, Warner HR. "Interfacing a stand-alone diagnostic expert system with a hospital information system." Comput Biomed Res. 1994;27:116-129.