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:
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:
- 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.
- 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.
- 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
|