Enterprise Edition
Manifold System Release 5.00 Enterprise Edition is a version of Manifold
System that includes additional capabilities not found in the Professional Edition
version. If you have purchased and installed Enterprise Edition the features
described in this and other Enterprise topics will be available to you. If you
have installed the standard Professional Edition of Manifold System you will
not be able to use these features.
Enterprise Edition Features
Integrated Debugger - Enterprise Edition includes the Manifold debugging system for scripting. The
debugger that is bundled within Enterprise Edition may be optionally purchased
as an extension for Professional Edition. The debugger enables debugging
commands as well as the Call Stack, Variables and Watches panes.
Export to .e00 Format - Enterprise Edition allows export to ESRI .e00 format as well as to the export formats for drawings supported by
Professional Edition (ESRI .shp, MapInfo .mid/.mif, Manifold 4.50, AutoCAD .dxf and US
Federal SDTS format).
Storage in Centralized DBMS - Enterprise Edition can store any Manifold component within a database,
called an Enterprise server, hosted by an ODBC compliant database management system such as IBM DB2,
Microsoft SQL Server, and Oracle. DB2, SQL Server and Oracle are officially
supported while many other DBMS systems, such as MySQL have been tested and are known
to work but are not officially supported.
Multi-user Coordination - Enterprise Edition enforces access control and controlled editing of shared
components so that many users at once can use the same components. Edits can
be made using an easily understood "check out" procedure so that simultaneous,
incompatible edits cannot be made. Users can continue using shared components
even when someone else has checked them out for editing.
Use One Component in Many Projects - A single copy of a component like a drawing or image can be used in
hundreds of projects, but only a single copy need be kept within the Enterprise
server. This saves disk space when the same component is frequently used in many
different projects.
SQL Server Desktop Engine - The Manifold CD includes a complete installation package for Microsoft's
SQL Server 2000 Desktop Engine, the same engine that powers SQL Server.
Installing Desktop Engine allows high performance, centralized DBMS storage via
Enterprise servers using SQL Server capabilities without any additional purchase
required. See the SQL Server Desktop Engine topic for more.
Centralized storage allows multi-user use of common components so different
users can simultaneously use the same component within their projects. For
example, many users in a town's GIS department can use a base map drawing of a town
within their projects. Another benefit to storage of components within an
Enterprise server, in addition to the multi-user access thus provided, is the
ability to share a single copy of a component within many different projects.
For example, if the same drawing of Europe or the US is frequently re-used as
a background layer in a map we can share that drawing into an Enterprise server
and then get it whenever needed. Only one copy of the drawing will be
maintained, the copy within the Enterprise server. If a drawing or other component
(such as an image) is used in hundreds of different projects we will see
considerable savings in disk space.
Introduction to Enterprise Edition
Manifold's Enterprise Edition uses a new approach to centralized storage of
data within DBMS providers. The old approach taken by ArcSDE and similar is to
store objects within Oracle Spatial (or other DBMS) at the "atomic" object
level. As drawings are used, collections of objects in view or involved are fetched
on the fly from the DBMS. This is very slow and limits the ultimate
functionality of the product to capabilities understood by the DBMS. It also limits
centralized storage to only drawings (and sometimes, images) and requires using
special spatial cartridges that are specific to the DBMS vendor, with great
difficulty in using other DBMS products.
Enterprise Edition stores the entire component within the DBMS, basically
using the DBMS as a centralized data warehouse with supervisory, multi-user
resolution features added. In the Manifold model, when a drawing, image, surface or
other component is shared on a database the master copy of the data is kept
within the DBMS, called an Enterprise server. Whenever a user wants to work with a component saved in the Enterprise
server, he or she can link the component into the project at hand. Behind the
scenes, Manifold fetches a temporary working copy of the entire component into
local memory.
The Manifold model has many benefits, foremost among them tremendous speed
once remote components are linked into the local project. All operations happen
within local memory so operations using shared components are just as fast as
those using local ones. If a user wishes to edit a shared component, he or she
can check it out for local editing, and then check it back into the Enterprise
server when done editing. This check out / check in model of usage is based on
the highly successful source code control model used within many development
environments for collaborative program development by large teams. It is well
understood in the industry and has proven very efficient as a means of managing
multiple edit operations by many users.
Advantages of Enterprise Edition Architecture
Enterprise Edition storage within Enterprise server geospatial databases has
many benefits compared to older models for DBMS-centric GIS architectures. The
default Enterprise Edition installation provides the following benefits:
- Faster performance, at times by a factor of 100 or more in interactive GIS
operations as compared to older architectures.
- Reliable, conflict-free editing of complex data in a multi-user environment.
Surprisingly, even some very expensive older systems cannot guarantee
conflict-free editing as does Manifold.
- Freedom to choose almost any DBMS vendor. Enterprise Edition works with dozens
of different database management systems without any need for special
"spatial" DBMS versions or costly middleware. The Manifold model by default allows use
of almost any DBMS that allows transactions and that has an ODBC driver.
- Heterogeneous, free form utilization of Enterprise servers. Within the same
project Manifold can transparently include multiple components from different
Enterprise servers hosted by different DBMS vendors.
- DBMS safety. If the DBMS crashes while working on an Enterprise project the
project is still safe and can be saved with no loss of data.
- Network fault tolerance. If the network crashes while working on an
Enterprise project the project is still safe. Transient disconnects won't even be
noticed, and lengthy disconnects still allow a local save of the project. Work can
continue even without the network. When the network comes back up the project
can be opened and automatic synchronization will occur.
- Ability to use Internet. The high bandwidth requirements of older
architectures mean that connecting over Internet to a remote DBMS is not usually
realistic. With Manifold, the more efficient Enterprise architecture means that it is
realistic in many cases to connect to an Enterprise server via corporate
Internet links.
- Off-line working capability. Older systems cannot work without a constant,
"live" connection to the DBMS. Manifold allows transparent off-line work, such
as with laptops when travelling away from a direct connection to an Enterprise
server. Users can continue working while away from their corporate network.
Enterprise Servers
Once a database containing a Manifold component has been created, it is said
to be an Enterprise server. Components stored within an Enterprise server are said to be shared components. Users accessing an Enterprise server using Enterprise Edition are
said to be Enterprise users.
To create an Enterprise server we initialize the database and share at least
component to it. Thereafter, any Enterprise user can fetch and use components
from the Enterprise server. There are two ways for user to work with
components saved within the Enterprise server:
- Import components from the Enterprise server. When importing components from the
server a local copy of the component is made and work proceeds on that local
copy without further connection to the server. Enterprise servers used in this
way function simply as a centralized repository from which users may fetch
components as desired for their local purposes.
- Link components from the Enterprise server. When a component is linked from the
server the component continues to reside within the Enterprise server with
controls on how that component can be used by different users at the same time. It
is said to be a shared component. Enterprise Edition provides several ways of working with shared
components that allow coordination between multiple simultaneous users.
Enterprise users can share components using the following commands, which
appear in the context menu when right-clicking onto a component in the project pane:
- Share - Save a component into the Enterprise server. Use this command to load the
Enterprise server with shared components.
- Unshare - Convert a shared component into a local component. The data from the
Enterprise server will be downloaded to the local project and all connection to the
Enterprise server for this component will be ended.
- Check Out - Gets the latest version of a shared component and makes it editable
exclusively by us. Only one user at a time can check out a component. Other users can
still link the component, but they will not see any changes we make until we
check in that component.
- Check In - Saves the edited version of a component back to the Enterprise server and
makes the component read-only in our project. When we are done editing a shared
component we can Check In to save the changed version of the component to the Enterprise server.
After we check in, any user getting that component will get the newly edited
version.
- Get Latest Version - Fetches the latest version of a shared component. If we are working with a
shared component and suspect that someone might have checked out the component
we are using and altered it, we can use Get Latest Version to fetch the latest version.
- Undo Check Out - Enabled if we have used Check Out to get a component for editing. Abandons any changes we have made to a
shared component on our local system, gets the latest version from the server and
makes it read-only.
- Link - Appears in the File menu and in the Tools - Server Console dialog. Fetches the latest version of a shared component for use in our
project. This opens a shared component in a read-only mode. We can view the
component and allow it to participate in maps we create, but we cannot edit it.
- Cached - Shared components are cached by default. We can designate a component to
be uncached by right clicking on a shared component in the project pane and
choosing Cached from the pop-up context menu to toggle the check mark next to the Cached entry. Tool tips and the project pane status bar will show the
cached/uncached status of each shared component. See the Cached and Uncached Components topic.
The above commands will be familiar to users of Microsoft Visual SourceSafe
source code control system, if one understands Link to mean SourceSafe's Get. The Manifold commands have, in fact, been deliberately designed to retain
conceptual compatibility with similar commands used within source code control
systems to resolve multi-user access and conflicts issues in complex development
projects.
Remote, Shared and Local Components
Components that are stored in an Enterprise server are called remote components. Components in an Enterprise server that are linked into the
current project are called shared components. Components that are stored within the project are called local components. A project can contain any combination of local or shared
components. Shared components from many different Enterprise servers may be included
within the same project.
The project pane shows shared components with a small gray lock icon next to the component icon to show they are read only. A component that
is checked out by us will have a small red check mark icon. A component that is checked out by someone else will have a small dark blue lock icon. If someone else has checked out a component and edited it, the icon
for that component will appear as a dark red lock icon. This indicates that if we want to work with the latest version of that
component we should do a Get Latest Version.
Tool tips show the status of a shared component when the mouse hovers over it
in the project pane. If a component is not checked out it will be reported as
a shared component using the name of the Enterprise server data source. In
the above example, the Roads Drawing component is shared on an Enterprise server data source called Enterprise example.
If we check out the component the icon turns to a red check mark and the tool
tip reports it as being checked out.
If someone else checks out the component the icon turns to a black lock and
the tool tip reports which user checked it out. In the above example, a user
called Administrator on a machine called PROJECT has checked out the component. Tool tips report which user has checked a
component so we can get in contact with them should we want them to check the
component in so that we can check it out for editing.
If someone else checks out the component, changes it and then checks in the
component, the icon turns to a dark red lock in our project. This lets us know
it is time to get the latest version. The tool tip reports that the component
is that it is outdated.
Forms Cannot be Shared
Forms components cannot be shared to an Enterprise server. The reason why not
is that forms can contain programming controls which cannot be guaranteed to be
available on the client computer. In some cases, users may employ licensed
controls within their forms that are not redistributable to other computers
without a license grant by the originating vendor.
Nomenclature
Although Enterprise components are brought in from the Enterprise server using
a "link" command once they are in the projected they are called "shared" components. Within Manifold, the term "linked" component is used to refer to tables that are linked into the project via
OLE DB without supervision from an Enterprise server.
The main operational distinction between a linked table and a shared table is
that a shared table is supervised by Enterprise Edition and it will be
read-only unless it is checked out. An ordinary linked table will usually be
read/write subject to the access controls of the host DBMS.
Project Capacity and Performance
When a component is shared to an Enterprise server, Manifold will upload a
compressed version of the component into the Enterprise server. For large
components, the process of compression can take a minute or more. When linking a
component from an Enterprise server Manifold will fetch a local, read-only copy
of the component into temporary local storage, decompressing it as it is fetched
from the server. For large components, the decompression process can take a
minute or more. Once a shared component has been linked into the project
performance will be the same as if it were a local component.
Projects using shared components are subject to the same size limitation as
other Manifold projects: they cannot exceed a total capacity of 2 gigabytes
unless a 64-bit edition of Manifold is being used. 64 bit editions of Manifold
require a 64-bit processor such as an Intel Itanium and a 64-bit edition of Windows
as well.
Enterprise servers can store as much information as can be handled by the host
DBMS, possibly terabytes given the right hardware and software.
Compatible DBMS Products
Enterprise Edition has been developed using the latest editions of IBM DB2,
Microsoft SQL Server (including SQL Server Desktop Engine) and Oracle. These
products are "supported" in that Enterprise Edition is designed to function using
these three DBMS server products for Enterprise servers. Users purchasing
Developer Tech Support incidents may ask questions about Enterprise Edition usage
using those three DBMS servers as examples and may expect reasonably sensible
answers.
Many other DBMS products may be used as Enterprise servers in addition to DB2,
SQL Server and Oracle. For example, MySQL has been frequently used within manifold.net. Enterprise Edition even includes special code that works around a MySQL bug
in a recent MySQL version that sometimes strips the last character in a stored
section of binary data. There are many other fine DBMS products that will
work well as Enterprise servers with Enterprise Edition. In general, any
professional quality, multi-user, enterprise class DBMS that handles transactions well
is a good candidate for use with Enterprise Edition. Some users even use
Access 2000 (although this is discouraged since SQL Server Desktop Engine is a
profoundly better multi-user DBMS server).
MySQL users please note: Enterprise Edition requires that transactions support be enabled within MySQL
when hosting an Enterprise server on MySQL. MySQL users should see the
Manifold Knowledge Base articles on MySQL.
Enterprise Edition FAQ
Can I run Enterprise Edition without purchasing a DBMS system? Yes. You can install the SQL Server Desktop Engine and create Enterprise
server databases within the SQL Server DBMS installation thus created. You can
also run Enterprise Edition without using Enterprise features (that is, like
Professional) without any DBMS at all.
How is Enterprise Edition licensed? - See the License topic. Each computer on which Manifold System is installed must have a
license for Manifold, except that for each license you may also install Manifold
System on a notebook computer used by the primary licensee in addition to the main
system used. You may install the SQL Server Desktop Engine on any computer
that will function as a server for Manifold. For example, you could have two
Manifold licenses and thus operate Manifold on two different machines; however,
you could also install the Desktop Engine on several other machines to use as
Enterprise servers.
Can I install SQL Server Desktop Engine on a machine without installing
Enterprise Edition? - Yes. You may install Desktop Engine on any machine you would like to
configure as a server for Enterprise Edition or as a storage repository for tables
for Professional Edition.
Does Enterprise Edition work with DBMS products other than the three supported? - Yes. It works with almost any DBMS that supports transactions and that has
an ODBC driver. manifold.net has tested Enterprise Edition with Oracle, SQL Server and DB2 and will
closely monitor these DBMS products as their vendors produce future editions. There
are many other DBMS products with which Enterprise Edition will work; however,
it is not possible for manifold.net to test them all or to keep track of new releases from all vendors.
Does Enterprise Edition read and write ArcSDE or Oracle Spatial native formats? - No. Enterprise Edition uses higher level, more general storage within
databases to provide much greater speed and more capability. We believe that
setting the object level higher in the geospatial database hierarchy, as Enterprise
Edition does, is a more modern architectural approach. If desired, users can
always write scripts to access individual points, lines and area objects within
Enterprise servers.
If more than five users attempt to work with Desktop Engine, will they lose
data? - No. The five user limitation in Desktop Engine does not cause any crashes,
stoppages or loss of data if more than five users attempt to access the server
at the same time. The limiting mechanism simply slows down the server at that
point to discourage more than five users from being active at the same time.
All requests will be fulfilled (slowly) without any data loss. With caching
on, the transactional load to the Enterprise server is so low that an
organization would have to have very many more users than five before it had to worry
about the five simultaneous user throttle.
Can I run Enterprise Edition with Windows 95? - Windows 95 is not officially supported for Enterprise Edition, even though
there is nothing in the code that would prevent Enterprise Edition from working
on Windows 95. The reason Enterprise Edition is not officially supported is
that Microsoft is no longer supporting Windows 95 with updates and new products.
As a result, it is not clear when a Microsoft update that is required for
correct Manifold function will no longer support Windows 95. In addition, newer
Microsoft utilities like SQL Server 2000 Desktop Engine do not officially
support Windows 95. As always, our advice is to migrate to Windows XP or at least
Windows 2000.
Can Enterprise Edition connect to an Enterprise server across Internet? - Yes. This is simply a matter of configuring the ODBC data source to work
across Internet. Because Internet is normally slower than working in local
area networks it is probably wise to retain the default cached storage option.
There will then be some delay while fetching components initially from the
server but thereafter work can proceed with local caching unless changes are made in
shared components. That will greatly reduce the traffic passed back and forth
over Internet.
Troubleshooting
To be sure your Enterprise Edition installation is working correctly, create
an Enterprise server using SQL Server Desktop Engine on the same machine, using
an Administrator login for all work. The usual cause of any problems sharing
components or otherwise using Enterprise servers are errors in the
configuration or operation of the database server, or errors in the configuration or use of
access permissions. It's the same familiar story well known to network and
database administrators: one can configure a beautiful installation, but if a
given user does not have access permissions to use it problems will occur.
Ultimately, one cannot administer an Enterprise Edition administration if one does
not know how to administer the host Windows operating system as well as the DBMS
being used to host the Enterprise server.
See Also
Creating an Enterprise Server
Working with Enterprise Edition
Cached and Uncached Components
SQL Server Desktop Engine
Administering Enterprise Servers
Server Console
Back to Manifold Home Page