How do I learn Object Oriented Concepts?
Some time ago, ESI made a FREE on-line Object Oriented Concepts tutorial available to everyone on our Web site. It covers all the fundamental concepts of Object Orientation. It can be taken on-line with your favorite web browser or you can download .pdf files and run it on your PC using the free Acrobat Reader. The tutorial includes exercises, designed to implement a Poker Game. The source code solutions to the exercises are available for download as well.
What is Open Source? How much will EsiObjects cost?
Open Source means you get all the EsiObjects sources and runtime FREE! The Open Source program is best described by the Open Source Web site at www.opensource.org.
Is EsiObjects the database or a database if used only in conjunction with an M System?
EsiObjects is a database when used in conjunction with one of the supported M systems: Cache or GT.M.
The development environment consists of a Visual Development Environment (VDE) that contains all the browsers and editors expected in an object oriented development environment. This layer resides on the development station. All objects of the EsiObjects system (ESI supplied libraries and user written libraries) reside on the server as M globals and routines.
The development client side of EsiObjects is supported on:
- Windows 2000 (x86)
- Windows 98 and Windows XP (x86)
The runtime client side can be any client that can register an ActiveX control. It permits connectivity through COM or TCP/IP. Java classes can be built for any Java environment. It uses the Java Gateway and all connectivity is built in automatically using TCP/IP.
The server side of EsiObjects is supported on:
- GT.M (Linux)
- Cache (NT, Linux and AIX)
What are the connectivity interfaces supported by EsiObjects?
EsiObjects supports 4 fundamental gateways:
- TCP/IP Gateway - This gateway is used to connect the EsiObjects Client Development VDE with any of the supported M systems. Additionally, The TCP/IP Gateway is also used to connect the runtime environment via an ActiveX Control.
- COM Bridge - This is used with Microsoft clients built using VB, C++, C# , etc. It uses the TCP/IP Gateway and implements the ActiveX control for EsiObjects.
- Java Gateway - This gateway uses the TCP/IP Gateway. There exists a set of methods in the ESI library that let you generate external Java Proxy classes from any EsiObjects class. All the connectivity is built in. Therefore, you can take the Java file that is created and use it within your Java environment, using the proxies automatically accesses the data on the EsiObjects Server.
- CORBA ORB (aka EsiORB) - This package is an add-on to EsiObjects. It is an implementation of the Object Management Groups (OMG) Common Object Request Broker Architecture (CORBA). The ORB uses the TCP/IP Gateway. It is under the EsiObjects EOPL lincence and can be downloaded.
All of these approaches have been enhanced to take advantage of what we call Bulk Transfer Objects (BTO). That is, a client simply makes a request of an object from the server. The server then creates a collection of that object and sends it back as opposed to asking for each object property (internal data) individually.
Is it possible to create and execute classes and code dynamically?
Yes! All of the classes and methods used by the Visual Development Environment (VDE) Browsers to create a class, variable, property and method are accessible to the developer via the appropriate class interface. They can be created and compiled and then executed if so desired.
What are the different possible ways to connect to the EsiObjects database?
The connections to a database is a little confusing simply because it is so flexible. Keep in mind that EsiObjects supports session control. That is, you can set up all kinds of connections to M systems, either the local database through COM, local database through TCP or remote databases through TCP. You can switch between them from one client.In terms of the possible connections supported, they are:
- Local database via TCP - You can install Cache on the local machine as if it were a remote server and set up a TCP session to connect to it.
- Remote databases via TCP - Of course, you can set up sessions for remote Cache, and GT.M servers.
It seems EsiObjects is going to look and behave much the same no matter what M server is being used. Is this true?
Yes! EsiObjects essentially encapsulates the underlying M system, taking advantage of its powerful features and hiding its weaknesses. We used M as an enabling technology. Encapsulating M with the object paradigm actually normalized all M implementations around that paradigm.