Home
White Papers
Documents
FAQ
Documents
Presentations
Tutorials
Contact

EsiObjects: An Architecture for the Future

- by Terry L. Wiechmann

Then and Now

When Object Orientation (OO) was first being offered as the next paradigm shift for the IT industry, I became convinced that OO would indeed be the next logical step for the industry. I became absolutely convinced of it after reading Bertrand Meyers book: Object-oriented Software Construction. He evolved a set of principles based on software quality issues that justified the OO approach. Based on my experience and knowledge of M, it was obvious to me that M provided a natural foundation for the OO paradigm (For more information, visit the Library section at http://www.esitechnology.com or the Document section of Files at http://www.sourceforge.net to view the EsiObjects V4 White Paper and This Old Technology papers). I decided that ESI would invest in evolving M into an OO system. We named it EsiObjects (pronounced ‘easy objects’).

To describe the evolution of EsiObjects would be to recount all the events that have affected all of us in the M world. Suffice it to say that today, EsiObjects is being used in some of the world's largest M installations and is growing in popularity daily. This is in large part due to walking the fine line between leveraging M's strengths, eliminating its weaknesses, integrating modern technology and last, but not least, staying true to the fundamental principles of OO. Also, EsiObjects is an Open Source product. It is free to everyone who wants to use it. ESI provides consulting, contract programming, support, training and add-on features for this technology.

An Overview of EsiObjects

EsiObjects can be viewed from the application runtime or development environment.

EsiObjects Runtime Environment

Figure 1 illustrates the Application Runtime Environment (ARE). Within the M environment there exists the EsiObjects Runtime Module and the TCP/IP Gateway that run within the M server environment. They form the foundation of EsiObjects and provide support for the Class Development Environment (CDE) and ARE.

Figure 1: Application Runtime Environment

The EsiObjects Runtime Module supports the following features:

  • Support for DSM, MSM, Caché and the Open Source version of GT.M.

  • Robust, comprehensive object model implementation based on the Smalltalk class model. This model implements all the concepts required of a full object oriented system, particularly, encapsulation, inheritance and polymorphic behavior.
  • Compiler that implements the 1995 ANSI standard M language and EsiObjects language extensions in support of the object model.
  • Persistent or non-persistent objects.
  • Concrete and virtual libraries are supported to partition classes for convenient access and transfer.
  • Full support for the Class model including single and multiple inheritance as well as nested classes.
  • Class services partitioned by specific interfaces. Method, property, relationship and event object services that can be used to implement a new application based on real objects or virtual objects that wrap existing M data.
  • Full variable scoping that enforces encapsulation, a fundamental requirement of object orientation.
  • Bi-directional message service that permits communication between objects. These services include all public class interfaces that allow access to an object’s methods, properties and relationships.
  • Complete event handling model that permits objects to watch for events that are fired by other objects. The event-handling model is based on a built-in callback mechanism that is available to the programmer as well.
  • Numerous predefined classes such as Collections (Lists, Arrays, Set, etc.), Immutables (time and date stamps), Data Manager, etc. that accelerate development through reuse. Version V4.1 will provide support for XML including a SAX2 parser.

The TCP/IP Gateway implements an object oriented API into the EsiObjects Runtime Module. It supports all valid message protocols needed to invoke an object’s services. It provides the foundation support needed to implement the more sophisticated forms of connectivity implemented by EsiObjects. It also provides direct, simple connectivity via ActiveX controls. The COM proxy, Java proxy and CORBA ORB communications components enable applications to run in multi-tier Client Server or Internet based configurations.

Class Development Environment

Figure 2 illustrates the CDE. The CDE consists of a modern Visual Development Environment (VDE) that communicates with the Runtime Module via a TCP/IP connection.

Figure 2: Class Development Environment

The CDE provides the following main features designed to expedite application development.

  • The VDE activity is directed to server side M implementations through the Session Control module. The Session Control module supports connections to multiple M servers running the EsiObjects Runtime Module and TCP/IP Gateway. The programmer can have any number of sessions active at once – locally or remotely. The client and the server tiers run independently of each other. They are loosely bound to permit interoperability between different M environments.
  • Rapid creation of libraries and classes that contain the supported object services.
  • Variable declaration as well as method, property, event and relationships via editors and wizards.
  • Tools needed to wrap existing M globals and routines, exposing them as objects.
  • Search and Edit functionality as well as an Interactive Debugger and Object Browser.
  • Export and Import facilities for the transfer of class libraries and all of their components as well as access to traditional Global and Routine facilities.
  • Hierarchical work folders that can store any component of the class hierarchy providing access to it directly.
  • An On-line Help facility that contains all documents needed to use EsiObjects including an on-line Getting Started Tutorial.

Bringing it Together

Over the last few years, U.S. government healthcare organizations have contracted ESI to build a sophisticated communications infrastructure to support modern web and wireless applications. Figure 3 illustrates two of the applications built using this infrastructure.

Figure 3: Communications and Application Infrastructure

Easy CHCS Provider Portal – The Department of Navy's e-Business group funded ESI to build a web portal and integrate it into the Department of Defense's (DOD) Composite Health Care System (CHCS). Previously, tools were created to automatically generate object wrappers for the data within CHCS. Once the wrappers were generated, data was accessible via the Java Gateway. Using the EsiObjects development environment tools, Java Proxies were generated. The proxies were installed on the Application Server to provide proxy access to the objects on the server. The Easy CHCS Provider Portal web interface was implemented using Java Server Pages. This system is in test and will be integrated into the CHCS program in the fall of 2002 for distribution to 100+ sites.

Neonatal Wireless Application – Building on the server side work, the Department of Navy's e-Business group also funded ESI to implement wireless communications into EsiObjects. Once the wireless communications was implemented, ESI was contracted to implement a Neonatal application. This application is in beta test.

Additionally, several projects are currently funded and underway. They are:

  1. Integration of data from CHCS and the Veterans Administrations VistA system using XML data formatting and CORBA communications. The XML software will be added to the next Open Source version of EsiObjects.
  2. EsiQuery is an implementation of the Object Data Management Groups (ODMG) Object Query Language (OQL). OQL provides SQL like query capability. This capability will be key to data warehousing applications.
  3. EsiPages is a web page specification tool that can be used to create Java Server Pages automatically at runtime. This will be sold as an add-on to the EsiObjects system.

Conclusion

Today EsiObjects has evolved into a robust development and runtime environment. It is running in large hospital environments and is the object system of choice for M systems within the DOD. Additionally, if you were worried about the future of M, now you have a full Open Source choice – check out the GT.M-I86 Linux system and EsiObjects combination. The price is right - it's free!

Back to Top of Page
Back to White Papers

EsiObjects Inc ©
For more information, please view related sites:

ESI Technology Corporation || NEMUG || World Vista || VistA Outreach || GT.M