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
Printer Friendly Format

Page 1 of 6
| Next |


Building dynamic network models with GIS software components

Dr. Erik Heel
Environmental Systems Research Institute
380 New York Street
Redlands, CA 92373
Emailt: ehoel@esri.com


Software technology
Software technology continues to develop at an ever-increasing pace. Pronounced technological advancements are being made in the areas of object-oriented analysis, design, and implementation infrastructure. The ultimate goal of such advancement is to leverage technology in order to create more flexible and robust systems with lowered development investment. An increased level of software reuse is directly correlated with lowered error/defect density and increased programmer productivity (Basili, V., Briand, L., and Melo, W., 1996). Object-orientation has promised these gains for well over a decade, but until recently it has been particularly difficult to achieve such results.

  1. Evolution of Obiect-Orientation
    Object-orientation is undergoing an evolution that has been characterized as having three fundamental phases, termed the first, second, and third waves (Box, D., 1998(1)).

    1. First Wave
      The First Wave of object-orientation began in the late 1980s. This period can be characterized as focussing on the concepts of classes - namely the bundling of state and behavior. Objects belong to classes and clients manipulate objects via class-based references. Implementation inheritance was the dominant characteristic of this wave. A programmer assembled classes into libraries that were often documented in a manner that assumed that the end user would access the source code as the final reference. The technical downside of this class-centric approach is tight coupling of the class library and the client application classes. This type of implementation inheritance is often termed white-box reuse you must have knowledge of the internals of the base class in order to ensure integrity of the derived class. The class-centric approach also suffers from problems related to portability; class libraries differ by compiler and platform, thus precluding a client application built using a different compiler from linking against the class library. Additionally, this approach also suffers from the lack of binary encapsulation; the client compiler must know the class layout in order to instantiate it or make method calls. We direct the motivated reader to Box, D., 1998(2) for further details.


    2. Second Wave
      The Second Wave of object-orientation began in the middle 1990s. This period can be considered as advancing the concept of components (or interface-based development). Components and their associated frameworks enhance modularity by hiding implementation details behind stable and well-defined interfaces (Fayad, M,, and Schmidt, D., 1997; Wiederhold, 1998). This reduces coupling and retains the benefits of polymorphism. This is a refinement of the classical 1980s object-orientation as the interface is now the primary mechanism for expressing type relationships. Interfaces are separate from implementation - the "what" and the "how" of an object are two distinct concepts. The developer views implementation as a black box; all implementation details are opaque to the client of an object. Essentially, implementation reuse is binary reuse - the client does not need to know any of the inner details of the component, nor does the client know or care which language was used to implement the component.

      The key point to building reusable components is black-box reuse, which means the piece of code attempting to reuse another component knows nothing, and needs to know nothing, about the internal structure or implementation of the component being used. In other words, the code attempting to reuse a component depends upon the behavior of the component and not the exact implementation. Frameworks that were key to the adoption of interfaced-based development include Microsofi's COM (Microsoft, 1994), Object Management Group's CORBA (Object Management Group, 1995), and Java's RMI (Arnold, K., and Gosling, J., 1997).


    3. Third Wave
      The Third Wave of object-orientation is currently in its infancy. You can characterize this wave as focussing on stateless objects and transaction monitors (which support scalable distributed component architectures). You can logically model an object as state and behavior, but the implementation must explicitly distinguish between the two. Developers can leverage this new infrastructure (concurrency, error recovery, load balancing, and data consistency) to decouple the virtual function pointers (i.e., behavior) from the object state. Microsofl Transaction Server (MTS) is an example of such an infrastructure. Another notable example is the Sybase Jaguar Component Transaction Server.

      These technologies may prove to be the future of object-oriented software. At present, they are evolving technologies that do not yet have the maturity necessary for incorporation into high-end AM/FM/GIS. An important consideration is that AM/FM/GIS systems based upon component architectures will be well positioned when stateless objects are ready for widespread commercial implementation.
Page 1 of 6
| 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