InterSystems M Technologies
-----

Open M Open M
Configuration
Guide

How to Succeed with Client/Server


Table of Contents


Introduction
Open M
Client/Server Architectures
Thick Clients
Thin Clients -- Approach I: Visual M
Thin Clients -- Approach II: Relational Client/Server
Direct Access and SQL Access to Open M Data
Visual M
Visual M Server
Open M Database Configuration
Open M Distributed Databases and Applications
Open M/Server and Distributed Cache Protocol (DCP)
Open M/Server and Routine Serving
Open M/Server and Database Integrity
Open M/Server and Server Shadowing
Open M/Server and Server/Router
Host Systems
Glossary

Introduction

The Open M Configuration Guide offers practical, technical information in a succinct format, so that technical decision makers can readily evaluate how Open M meets their needs for the configuration and deployment of client/server database applications.

This guide covers:

  • How Open M fits into standard client/server models.
  • Actual client/server configurations that InterSystems' customers around the world have deployed running Open M.
  • The core technologies that Open M supports in client/server environments.
  • Components and features of Open M related to client/server computing.

The configuration information appears one topic at-a-time, with links to related topics at the end of each topic. Furthermore, you can click on underlined words within a paragraph and jump to its definition in the glossary at the end of this document. This way, you can read the book in any order that's appropriate to your interests. Of course, you can still read this guide from front to back, to get a comprehensive view of the myriad possibilities of Open M database applications deployed in client/server configurations.

Remember -- The flexibility of the Open M environment allows you to configure your systems as your business requires. The configurations offered here represent a small sampling of the possibilities.

Note -- For a complete description of InterSystems Corporation and the Open M database, see the Open M Technology Guide.

Back to Table of Contents


Open M

Open M is a high-performance database management system (DBMS), which excels in high-volume processing within enterprise-wide client/server configurations. Open M runs on Windows (NT, 95, and 3.x), UNIX, VMS, and DOS, and it implements ANSI-standard M and SQL, plus ODBC, relational capabilities, and implementations of OCX and VBX controls. Popular tools like Visual Basic, Delphi, and PowerBuilder can serve as your client development environment, accessing Open M through ODBC or OCX/VBX technologies.

Component parts of Open M include:

  • Open M/Server -- High-performance networking software that provides LAN and WAN access to Open M databases.
  • Visual M -- Enables you to write graphical user interfaces for your Windows applications using Microsoft's Visual Basic or any development environment that supports OCX/VBX controls or calls to a Windows DLL.
  • Visual M Server -- For client applications written using Visual M technology that need to communicate with an Open M remote environment.
  • Relational Client/Server -- Interoperability products enabling Open M applications and others read/write access to Open M databases via Open Database Connectivity (ODBC) and the Oracle Call Interface (OCI).
  • Developer -- InterSystems' own development environment and application generator with tools for defining user-interface components such as windows, menus, and help topics.
  • M/PACT -- Report writer with an SQL query processor.

InterSystems sells Open M primarily to value-added resellers (VARs) or technical end-users who develop enterprise-size, transaction-intense database applications that run on Open M. These customers are running Open M in over 10,000 systems worldwide, helping over 1.6 million end-users to do their jobs in industries ranging from healthcare to finance to manufacturing.

Back to Table of Contents


Client/Server Architectures

Client/Server Architectures

Client/server applications tend to fall into a three-tier logical structure, each tier providing a distinct service: presentation services, logic (or application) services, and database services. The presentation tier delivers the user interface. Logic services include application logic, business rules, algorithms, and security; this tier mediates between the user and the database. And the database tier handles database reads and writes, as well as issues like the physical database location.

The tiers of this architecture sometimes map directly to physical locations in deployment, and sometimes not. These models are helpful in structuring a database application, but are also pliable enough to suit a broad spectrum of deployment configurations.

Open M supports two- and three-tier client/server models flexibly, with either thick clients or thin clients. Furthermore, the namespace feature of Open M makes configuring diverse deployment strategies easy to implement and easy to manage. And Open M is optimized for transaction-intense data processing applications in any client/server environment, so that you can scale your system to include thousands of concurrent users.

See Also…

Thick Clients
Thin Clients -- Approach I: Visual M
Thin Clients -- Approach II: Relational Client/Server
Open M Distributed Databases and Applications

Back to Table of Contents


Thick Clients

A thick client is where both presentation and logic services are handled by software on the client. This requires that Open M be installed on the client machine, which enables a special capability of Open M. Via Open M/Server's Distributed Cache Protocol (DCP), the client machine can build up and maintain a cache of database blocks in its own local memory, such that subsequent requests for data can be satisfied by the local cache, without need to query the server. This greatly reduces network traffic and the workload on the server.

In a two-tier client/server architecture, the code for both presentation and logic services of the database application are installed locally on the thick client, while one or more Open M/Servers provide database services over the network. It is also possible to split logic services between the client and the server, using Routine Serving to deliver portions of the application that need to be centralized on a server.

Two-Tier Model

With three tiers, logic and database services are deployed on separate, dedicated machines communicating through Distributed Cache Protocol (DCP); this configuration improves throughput, so that the client/server application can scale effectively to large numbers of concurrent users.

Three Tier Model

See Also…

Thin Clients -- Approach I: Visual M
Thin Clients -- Approach II: Relational Client/Server
Open M/Server and Distributed Cache Protocol (DCP)
Open M/Server and Routine Serving

Back to Table of Contents


Thin Clients -- Approach I: Visual M

With a thin client, presentation services are delivered by software on the client, while logic services are provided elsewhere. Hence, there is no need to install Open M on the client computer. Instead, the presentation services tier is provided by a user interface developed using Visual M and a GUI tool like Visual Basic. This user interface talks through TCP to a server on the LAN running Open M, which provides application and/or database services.

Two Tier Model

When thin clients appear in a two-tier client/server architecture, Open M servers handle both application services and database services. Centralizing these functions on Open M servers can simplify system management.

And with Visual M technology, you can use the development environment of your choice to build the user interface.

Three-Tier Model

The point of three-tier client/server computing centers on partitioning the application into multiple tiers, so that each tier can be optimized for its function. Thin clients certainly support the spirit of that goal, by focusing on user-interface operations, while leaving logic and database operations to other tiers.

See Also…

Thick Clients
Thin Clients -- Approach II: Relational Client/Server
Direct Access and SQL Access to Open M Data
Visual M
Visual M Server

Back to Table of Contents


Thin Clients -- Approach II: Relational Client/Server

InterSystems' Relational Client/Server software gives a broad range of applications access to Open M relational databases. Any application that supports ODBC can interact with Open M via SQL.

Relational Client implements the ODBC API for Open M. It includes a variety of transport mechanisms, to route ODBC work to the Relational Server.

Relational Server is the component of Open M that handles requests passed from the client application.

To ensure optimal performance, Open M supports automatically generated stored procedures. Once an SQL query hits the server, its compiled version is saved, so that subsequent hits execute immediately without need for compilation.

Relational Client/Server can communicate in memory or over a network, and can support both two-tier and three-tier client/server models. Examples with thin clients follow, but thick client configurations are also possible.

Two Tier Thin Model

Three-tier thin clients are also possible.

Three-Tier Thin Model

See Also…

Thin Clients -- Approach I: Visual M
Direct Access and SQL Access to Open M Data

Back to Table of Contents


Direct Access and SQL Access to Open M Data

Data/SQL Access

Open M offers two approaches to data. Direct Access looks straight at the data in an Open M database locally or across a network via the Distributed Cache Protocol (DCP). The response time and network traffic required for this view is minimal, due to the caching capabilities of DCP. SQL Access looks at Open M data relationally as tables. Open M's stored procedure architecture ensures optimal performance with SQL.

Open M gives you a choice: you can access data with the approach that makes the most sense, given your application's needs.

All told, Open M offers a wide selection of deployment combinations that include thick and thin clients, as well as Direct Access (via DCP) and SQL access.

Two-Tier Open M Model

And these deployment combinations can be structured according to two-tier or three-tier client/server models.

See Also…

Thick Clients
Thin Clients -- Approach I: Visual M
Thin Clients -- Approach II: Relational Client/Server

Back to Table of Contents


Visual M

Visual M is a suite of technologies included with releases of Open M for Windows. With Visual M technology, you can:

  • Develop your user interface with the GUI product of your choice, such as Microsoft's Visual Basic, Borland's Delphi, PowerSoft's PowerBuilder, or any development environment that supports OCX/VBXs or calls to a DLL to access Open M.
  • Deploy the graphical user interface (GUI) portion of your application as a thin client.

Visual M

Visual M is built around OCX /VBXs which talk through a Dynamic Link Library (DLL) to Open M. You can tie into the Windows-based development environment of your choice at either the OCX/VBX layer or the DLL layer. If your development environment supports VBXs or OCXs, then these can be added as custom controls to that environment. Most Windows-based development environments support calls to a DLL, so those environments can tie in at that layer.

Visual M includes two custom controls:

  • The M/VB control has properties and methods that provide access to Open M data and routines.
  • The M/DeskTop custom control enables Open M routines to access objects in the GUI.

These controls come as a 16-bit VBX (for use with Visual Basic 3.0) or a 32-bit OCX (for Visual Basic 4.0 or later). The custom controls are included with every Open M for Windows release, as is the M/DeskTop Editor, an editor for writing programs in the M language.

See Also…

Thin Clients -- Approach I: Visual M
Visual M Server

Back to Table of Contents


Visual M Server

Visual M Server provides flexibility, so that you can distribute your application code on the client, on a server, or some combination.

Visual M Server

Visual M Server is a server process, through which your GUI applications communicate with Open M. The client may be thick or thin. With thick clients, the application communicates with the Visual M Server in memory. Thin clients talk over the network with Visual M Server via TCP. Thin clients require only that you install locally your GUI front-end, along with any DLLs or other files that it needs.

With the Visual M Server, you can deploy Open M database applications according to a wide variety of client/server models, along with diverse combinations of thick or thin clients.

Visual M Client/Server Models

See Also…

Thin Clients -- Approach I: Visual M
Visual M

Back to Table of Contents


Open M Database Configuration

Open M Database Configuration

In Open M, a namespace represents a logical location where routines and data reside. This is transparent from an application's point of view, such that the application accesses data and routines in the namespace, with no knowledge of their physical location. In fact, the routines and data that belong to a namespace can exist in multiple directories on multiple machines, and Open M automatically directs accesses to the namespace. With this level of transparency, you can move and partition databases and applications after deployment without your application or users noticing.

Open M uses a technology called namespace mapping to assign routines and data in various places to a namespace. Through mapping, a namespace can be a subset or a superset of another namespace, or it can be completely unrelated to others. This way, you can organize your data and routines into maps that help you deploy and redeploy.

Open M supports configurations where the information needed to define all of the namespaces of the client/server enterprise resides on a master server. All client, server, and router machines in the network refer to the master server to translate namespace references to actual locations for data and routines. With this centralization, computers can be added to or deleted from the system by simply editing the map. In enterprises with thousands of client and server machines, the central map provides single-seat management for the deployment and redeployment of the application.

See Also…

Open M Distributed Databases and Applications

Back to Table of Contents


Open M Distributed Databases and Applications

Distributed Databases

Through namespace mapping, Open M gives you the ability to distribute databases and routines across multiple directories, disk volumes, or servers. You can design your own pattern for distributing data and applications in a way that you find optimal for performance and maintenance. And the pattern can be as simple or as complex as you want, since multiple applications can access the same namespace, and one namespace can map to several physical locations. The transparency of location provided by namespaces shields Open M applications from this information, so that you can change the actual location of databases and routines on the fly.

Furthermore, the organizational power of namespaces combines with Open M's other configuration capabilities -- two- and three-tier models, thick and thin clients, direct access and SQL access -- to give the database developer a wide variety of choices for structuring an application and its deployment.

See Also…

Open M Database Configuration

Back to Table of Contents


Open M/Server and Distributed Cache Protocol (DCP)

DCP

Distributed Cache Protocol (DCP) enables a server to send entire blocks of data to a client. When a client requests a record, it receives a block of data in return. That block, which contains other records as well, remains in a cache in the client's local memory. The next time the client requests data from the server, it is likely that the information already exists in a block in the cache. Once the cache is built up, a significant number of database requests are satisfied by the client's cache, meaning that the server's workload is greatly reduced and the network experiences minimal traffic. Plus, Distributed Cache Protocol (DCP) can participate in a variety of client/server architectures, as long as two machines wishing to communicate both have Open M installed.

See Also…

Open M/Server and Routine Serving

Back to Table of Contents


Open M/Server and Routine Serving

Routine Serving

Open M/Server can pass routines to a client machine running Open M. Once a cache of routines is built up on the client, subsequent calls from the client for routines can be satisfied from the local cache. This is called Routine Serving, and it simplifies maintenance because routines exist in only one place -- on the Open M server.

See Also…

Open M Database Configuration
Open M/Server and Distributed Cache Protocol (DCP)

Back to Table of Contents


Open M/Server and Database Integrity

Open M guarantees data integrity through journalling. Open M's journalling ensures that a power failure or an inadvertent shutdown does not compromise the database.

Write-Daemon Image Journal

Write-daemon journalling focuses on data that is about to go into the database. It follows this process:

  1. Data to be written to the database goes into a buffer pool.
  2. The buffer pool is written to the write-daemon journal.
  3. The write daemon applies the pool to the database.
  4. The process repeats.

In the event of an interruption in service, Open M can read the journal and apply unfinished transactions to the database. This way, Open M applies what should be there, instead of what used to be there, as with most other DBMSs.

After-Image Journal

Open M's after-image journalling keeps track of all changes to the database. If an accident or a hardware failure requires restoring a backup of the database, applying the after-image journal can update the database to within seconds of when the failure occurred. And Open M supports concurrent full and incremental backups to keep operations up and running 24 hours, 365 days a year.

For added protection, you can enable both write-daemon and after-image journalling, to achieve a truly bullet-proof database.

See Also…

Open M/Server and Server Shadowing

Back to Table of Contents


Open M/Server and Server Shadowing

Server Shadowing

When Server Shadowing is in place, a failed server can be replaced by a mirror-image copy. Server Shadowing uses a hybrid of after-image journalling to keep a shadow system synchronized with a server. All changes to a server's database go into the server's after-image journal file, which is copied periodically to the shadow machine. On the shadow machine, changes are "de-journalled" from its copy of the after-image journal to update the shadow's database.

If the primary server fails, the shadow server takes its place. A client computer accessing a failed server typically doesn't notice any interruption. Its application pauses for a few seconds while the shadow takes over, then resumes where it left off. As an added benefit, you can make backups from the shadow, to avoid interrupting the primary server. So for truly mission-critical applications that cannot tolerate downtime, Open M with Server Shadowing provides 24-hour, 365-days-a-year operation.

Of course, Open M is a well-behaved environment that is completely compatible with operating system and hardware facilities like logical volume sets, RAID levels 0-5, and so forth.

See Also…

Open M/Server and Database Integrity

Back to Table of Contents


Open M/Server and Server/Router

Open M Server/Router

Open M/Server has an optional feature known as server/router. When enabled, database communications from a client machine go to an intermediate machine (the server/router), which forwards them to the appropriate server, if it cannot satisfy the request itself. The server/router option helps you to optimize large client/server networks, where it functions as an application server or a "front-line" database server.

Like any other Open M/Server, one with server/router enabled can make use of Distributed Cache Protocol (DCP), thus increasing throughput between clients and servers.

Finally, the server/router option enables an Open M/Server to function as a gateway machine to another LAN or WAN.

See Also…

Client/Server Architectures
Open M/Server and Distributed Cache Protocol (DCP)

Back to Table of Contents


Host Systems

Host Setup

Open M can serve as a classic host computer supporting terminals. The terminals may connect to the computer by direct cabling, via modem, or over a network through terminal servers. Instead of terminals, there might be workstations using communications or terminal-emulation software. Based on platform, Open M supports RS-232, LAT, and telnet connections.

Network Host Setup

A step beyond the standard terminal/host setup is to have two or more computers supporting terminals, connected in a peer-to-peer manner. While this involves networking, it is not client/server per se. Even so, host machines coexist happily with other configurations in a client/server environment. A machine playing host to a set of terminals can also function as a client to a server on the network.

Putting Open M hosts on a network provides a number of benefits:

  • Gives more users access to the system.
  • Allows a partitioning of the database.
  • Gets your investment in terminals connected to the enterprise through a network.
  • Serves as a first step when migrating from host-based to client/server architecture.

Back to Table of Contents


Glossary

Application Server -- Serves application software to clients; typically found in a three-tier client/server configuration.

Database Services -- The tier in a client/server logical structure which handles writes and reads to and from the database, as well as transparent issues, such as the physical location of data.

DCP -- See Distributed Cache Protocol below.

Direct Access -- Open M's inherent method of accessing databases quickly, optimizing access with the Distributed Cache Protocol.

Distributed Cache Protocol -- A block-oriented database protocol with caching which enables the client to satisfy many of its data requests from its local cache, thus speeding up the client application, as well as reducing network traffic and the load on servers.

Fat Client -- See Thick Client below.

Journalling -- Records database writes in a journal, such that -- in the event of a failure -- unfinished transactions can be completed, or the database can be rolled back to a previous state.

Logic Services -- The tier in a client/server logical structure which handles application logic, business rules, algorithms, and security.

M/DeskTop -- A custom control that gives Open M routines access to objects in a graphical user interface created with Visual Basic.

M/DeskTop Editor -- Used to write methods in the M language for objects in an application created with Visual Basic.

M/VB -- A custom control that gives applications written with Visual Basic access to Open M routines and data.

Master Server -- The server (typically in a large client/server configuration) which holds the namespace map of the entire configuration and which provides that map to other computers on the network.

Namespace -- The logical area where a database is accessed, so that the database's physical location remains transparent to the application.

Namespace Map -- A map of all the computers on a given client/server network; generally maintained on and distributed from the Master Server.

Namespace Mapping -- The configuration process of assigning routines and databases to namespaces.

Open M -- The high-performance database management system (DBMS) from InterSystems Corporation.

Open M/Server -- High-performance network software that provides LAN and WAN access to Open M databases.

Presentation Services -- The tier in a client/server logical structure which handles the user interface.

Relational Client/Server -- Provides read/write access to Open M databases via ODBC or the Oracle Call Interface (OCI).

Routine Serving -- Where an Application Server delivers Open M routines to a client upon request; both server and client cache routines to optimize the process.

Server Shadowing -- Where a database on a primary server is copied and kept up-to-date on a shadow server; if the primary server fails, the shadow becomes primary to avoid interuption of service to users.

Server/Router -- An intermediary server which routes communications between clients and database servers; it helps to organize and optimize large client/server configurations.

SQL Access -- Looks at Open M data relationally via tables and SQL.

Thick Client -- Where the presentation and logic layers of a client/server structure are handled on the client computer, while database services are handled remotely on a server.

Thin Client -- Where the presentation layer of a client/server structure is handled on the client computer, while logic and database services are handled remotely on one or more servers.

Three-Tier Client/Server -- Where the three logical layers of a client/server structure are distributed among three physical locations.

Two-Tier Client/Server -- Where the three logical layers of a client/server structure are distributed among two physical locations.

Visual M -- Suite of technologies which enables you to develop applications using the GUI tools of your choice, and to deploy thick or thin clients with a GUI.

Visual M Server -- A server process providing communications between Open M servers and GUI clients.


Back to Table of Contents

© Copyright 1996, 1997, InterSystems Corporation. All Rights Reserved.
wwwadmin@intersys.com

Return to Main Open M Index


Home | M Technologies | Support | Company | Contact

MOVE TO CACHÉ

© Copyright 1996-2000 InterSystems Corporation. All Rights Reserved.
email: wwwadmin@intersys.com

 
Rule
Rule