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.

images/fig_enterprise_server.png

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:

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:

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:

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.

images/sc_enterprise_project_01.png

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.

images/sc_enterprise_project_03.png

If we check out the component the icon turns to a red check mark and the tool tip reports it as being checked out.

images/sc_enterprise_project_02.png

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.

images/sc_enterprise_project_04.png

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