"Plug and play" Geospatial applications
Towards plug and play - Today 's standards
By its very nature, Plug and Play implies an adherence to some form of standard. This is
not unlike plugging in an electrical appliance. A computer laptop will work in most
outlets in the United States, but a trip to Europe will reveal that the system suddenly
needs to have a special adapter to plug into an outlet. And one needs to be sure that the
AC adapter for the computer supports 240V power, or the laptop may not last too long.
(I know, I nearly had this problem the first time I took a laptop to England many years
ago but I unplugged quickly when I began to smell smoke.)
The fundamental building block for support of a Plug and Play architecture is Object
Orientation. Object Orientation is a term that has been grossly misused, but when
implemented at a core level of an application system it truly allows an application to meet
the requirements of being plug and play.
It is not the purpose of this paper to explain the details of object-orientation but for
purposes of clarification it is important to briefly touch upon the basic concepts. Some of
the confusion that exists around object-orientation is due to the fact that the word object
is used in different ways when discussing geospatial information and applications. There
are object databases, object-based modeling and object-oriented programming
environments. For purposes of this paper the discussion will center around objectoriented
programming and the object model. With regard to object-oriented
programming, the key elements are inheritance, polymorphism and encapsulation. It is
the property of encapsulation that we will address as it relates to Plug and Play geospatial
applications
Encapsulation is a way of packaging data and procedures together in an object.
Encapsulation promotes the hiding of data so that the details are not made available
external to the object. What this does is to promote a well-defined interface to the object,
thus protecting the data from other interactions. The importance of this in Plug and Play
geospatial applications is quite obvious when you consider the interactions that occur in
an information system between the different components.
The commercialized support for object-orientation is manifested in a number of ways,
these include COM/OLE and CORBA. COM/OLE originated from Microsoft. The
initial standard was OLE, Object Linking and Embedding. This was enhanced from a
compound document protocol to an object model, thereafter referred to as COM, or
Component Object Model. While COM doesn't support inheritance, it is true to the
concept of object-orientation in that the actual COM model has stayed constant since
1993. This means that applications that are written against COM'S initial release can still
work unchanged with today's enhanced COM standards. COM objects are not language
dependent, rather they are written to the COM standard in common languages such as
C++. Visual Basic and Java.
Having this well-defined interface in a COM object is a big part of what has made
applications in the Microsofl world so valuable. Multiple applications actually appear as
the same program to the users and code can be downloaded to a browser providing a very
standard way to distribute code to users, which is what ActiveX controls do.
Another standard for distributed objects is CORBA (Common Object Request Broker
Architecture). A consortium of software vendors and end users known as the Object
Management Group is developing the CORBA standard. OMG member companies as
well as other software applications vendors are developing commercial products that
support these standards.
CORBA provides the mechanisms by which objects transparently make requests and
receive responses, as defined by OMGS Object Request Broker (ORB). Like COM, the
CORBA ORB is an application framework that provides interoperability between objects,
which are often built in different languages. While COM was initially just for Microsofi
platforms the CORBA standard has been focussed from the start on the use of different
machines in heterogeneous distributed environments. The overall architecture of this
system is referred to as the Object Management Architecture.