Logo GISdevelopment.net

GISdevelopment > Proceedings > GITA > 1999


GITA 2002 | GITA 2001 | GITA 2000 | GITA 1999 | GITA 1998 | GITA 1997 |  
Sessions

Business Applications

Data Development and Evolution

Data Distribution and Access

Engineering and Design Applications

Enterprise Integration

Enterprise Resource Planning

Exploiting Field and Mobile Technologies

Invited Track

Operations Support

People Issues

System Architecture

User Perspectives

Work Management


GITA 1999


System Architecture


Object - Component GIS: The new


Object-components
Early, first generation object-oriented GIS were built using C/C++ and suffered from several limitations, notably: difficulty of sharing parts of the system (it is very difficult to share binary C++ components, most attempts have only shared source code), problems of persistence and updating C++ components without recompiling, lack of good modeling languages and tools, and proprietary interfaces and customization tools. To counteract these and other problems many software engineers have adopted component-based approaches to system development. A software component is a binary unit of reusable code (Szyperski 1998). The key to the success of components is that they implement in a very practical way many of the object-oriented principles now commonly accepted in software engineering. Components encapsulate behind a well-defined interface the manipulation methods and the data which characterize each instantiated object. This promotes structured and safe system development. Components facilitate software reuse because they are self-contained building blocks which can easily be assembled into larger systems. They also support inheritance and polymorphism. Inheritance is the ability to re-use code in other components by including a reference to another object's state and behavior. For example, a new type of water valve can easily be create by overwriting or adding a few properties or methods to an existing type of valve that is similar. Polymorphism describes the process whereby each object has its specific implementation for operations, such as draw, create and delete. One example of the benefit of polymorphism is that an AM/FM/GIS can have a generic object creation component that issues generic object create requests to be processed in a specific way by each type of object class factory (e.g., gas pipes, valves and service lines).

In a nutshell an 'object-component' approach is superior to an 'object' approach for AM/FM/GIS because it adds a framework for anyone to extend a data model. In the basic object model approach only the original AM/FM/GIS vendor has complete customization capabilities and is free from performance and functionality bottlenecks. Also, because of the closed nature of object implementations users are bound to proprietary macro languages when they want to undertake customization. With the object-component model, users extend the data model with exactly the same technology as the AM/FM/GIS vendor programmer. As a consequence, users have more options and their objects will perform just as well. To the user, there is absolutely no difference between the AM/FM/GIS vendor supplied objects and the custom objects.

Several different, but overlapping standards have emerged for developing and sharing components. For building interactive desktop applications Microsofi's Component Object Model (COM) is the de fac?o standard. On the Internet, and possibly as a future serious rival to COM on the desktop, Javasoft's Java Beans is viable technology. At a coarser grain appropriate for application level interoperability the Object Management Group (OMG) has specified the Common Object Request Broker Architecture (CORBA).

Data modeling
The world of data modeling has received a recent boost by the development of the Unified Modeling Language, UML (Figure 3). This combines an entity-relationship approach to modeling with an object-component architecture. UML can be used to specify component interfaces and relationships.


Figure 3: An explanation of UML nomenclature.


The boxes are classes, the lines are relationships. An abstract class cannot be used to create objects, but is useful in defining subclasses. CoClasses can directly create objects, ordinary Classes can only be created indirectly. Associations are relationships between classes, Type inheritance defines specialization of subclasses, Instantiation specifies that one class has a method to create the other, Aggregation defines a group of classes, Composition is a stronger form of aggregation, and Multiplicity defines the number of objects in the relationship. Finally, a wormhole is a diagrammatic technique to link parts of a master diagram. For more details see Quatrani (1 998).

Several Computer Aided Software Engineering (CASE) tools have been developed which can create UML diagrams (graphical representations of data models) and can engineer both database schema and code. The schema can be implemented in commercial relational database management systems (RDBMS) such as Access, DB2, Informix, Oracle, SQL Server or Sybase. Additionally, the CASE tools can create code in the form of COM objects for implementing rules and object behavior. Diagrammatically this approach is shown in Figure 4.


Figure 4: Use of a CASE tool for oqject component modeling.


This type of methodology can be implemented for AM/FM/GIS systems using standard products such as the Visio and Rational Rose CASE tools. All that is required is that the products have open interfaces to programming tools and databases, and support UML and other related industry standards.

Page 2 of 4
| Previous | Next |

Applications | Technology | Policy | History | News | Tenders | Events | Interviews | Career | Companies | Country Pages | Books | Publications | Education | Glossary | Tutorials | Downloads | Site Map | Subscribe | GIS@development Magazine | Updates | Guest Book