|
 |
Open M
Configuration
Guide
How to Succeed with Client/Server
|
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
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 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 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
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.
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.
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.
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.
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
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.
Three-tier thin
clients are also possible.
See Also
Thin Clients -- Approach I: Visual M
Direct Access and SQL Access
to Open M Data
Back to Table of Contents
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.
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 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 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 provides
flexibility, so that you can distribute your application code on the
client, on a server, or some combination.
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.
See Also
Thin Clients -- Approach I: Visual M
Visual M
Back to Table of Contents
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
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
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 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 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 journalling focuses on data that is about to go into the
database. It follows this process:
- Data to be written to the database goes into a buffer pool.
- The buffer pool is written to the write-daemon journal.
- The write daemon applies the pool to the database.
- 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.
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
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 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
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.
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
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
|