White Papers

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 lasses.
  • 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 otherobjects. 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 onfigurations.

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.


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!

Stormwoods LLC ©
For more information, please view related sites:

Stormwoods LLC || Out of the Slipstream|| GT.M