When do I need to buy a MIDAS License?

By: John Kaster

Abstract: John K reveals the greatly reduced price for MIDAS 3, explains MIDAS licensing, and gives some example scenarios.



    When Do I Need to Buy a MIDAS License?

by John Kaster, Borland Developer Relations


Borland MIDAS (Multi-Tier Distributed Application Services) is a suite of components and files that make writing a multi-tier database application very easy. This article does not attempt to explain multi-tier technology to those unfamiliar with it. (For general information on MIDAS, please see the MIDAS Product Page.) Rather, it simply explains various ways you may use the MIDAS technology you may develop with Borland Delphi, C++ Builder, or JBuilder, and which uses require a license.

Note: InternetExpress, first released in Delphi 5, uses XML-formatted MIDAS data packets to provide its HTML client-based database operations. The licensing scenarios described in this paper also apply to its XML data packets.

Not all uses of MIDAS require a license, and not all applications require a multi-tier solution. In many cases, you can still get great benefits from using MIDAS features in your application without requiring the purchase of a deployment license. This article is simply a guide to help answer the popular question: "When do I need to buy a MIDAS license?" If you feel that your licensing question is not answered by this article, please consult the LICENSE.TXT and DEPLOY.TXT files that ship with your development tool, and contact your Borland sales representative before deploying a MIDAS application.

In all cases, the scenarios in this white paper are for illustrational purposes only. The only legally binding information regarding MIDAS 3 deployment licenses is the MIDAS Deployment license itself, and the information that is contained in the License and Deploy documents included with the development tool you use to create the MIDAS application.

    Simplified MIDAS Licensing

The MIDAS licensing options changed from MIDAS 2 to MIDAS 3. These licensing options apply to MIDAS 3 and above. MIDAS 3 development support is currently available in Delphi 5 Enterprise and C++ Builder 5 Enterprise.

Reduced Pricing in MIDAS 3

For MIDAS 3, we slashed the suggested list price from US$5000 to US$299.95 for unlimited usage servers. Because of this drastic price reduction, we no longer offer the per-seat client license, which started at US$250. This is a good thing both for Borland and its customers, because MIDAS licensing is greatly simplified, and MIDAS pricing is extremely competitive. (I'm sure some of our competitors will say it's too competitive!) For your convenience, you can order it online.

Follow the Data Packet

The way you use the MIDAS data packet determines whether you need to purchase a MIDAS deployment license or not. To me, this is the simplest way to put the licensing requirements:

  • If the MIDAS data packet goes from one machine to another by any means, a license is required
  • If the MIDAS data packet always stays on the same machine, you do not need a license

"By any means" includes copying to a floppy, using email, copying from one hard drive to another, backing up from one machine and restoring on another then resolving the data, and so on. Basically, any method of transferring the data packet from one machine to another.

Everything else discussed below just provides examples and more details.

    Now, the specifics

Quote from LICENSE.TXT

This version of the software may include redistributable files identified as "ClientDataset Redistributables" for creating multi-tier application programs. Installation and use of the ClientDataset Redistributables for supporting data sharing among two or more computers requires purchase of a MIDAS Deployment License, available separately from Inprise; please refer to the on-line documentation, including DEPLOY.TXT, for contact information. "Data sharing" refers to any use of the ClientDataset Redistributables for supporting the transmission by any means of data from one computer to another for use by ClientDataset Redistributables installed on another computer. Note that purchase of a MIDAS Deployment License is not required for deploying an application which does not use ClientDataset Redistributables for supporting such data sharing among computers.

This may sound complex, but breaking this statement down, you find effectively two components to the license:

  • Using ClientDataSet Redistributables. If you use the ClientDataSet component or the IAppServer interface, you are using ClientDataSet Redistributables. The implementation details of the IAppServer interface are in MIDAS.DLL. How you use the packet produced by a ClientDataSet dictates whether or not you need a MIDAS deployment license. Please see the example scenarios listed below for further information.
  • Data sharing across machines. If you are using ClientDataSet Redistributables to transmit a data packet from one machine to another machine, you need a license.


Term Definition
ClientDataSet Redistributables MIDAS.DLL is the only file comprising the redistributable portion of MIDAS.
Data packet The data stream that is packaged up and used in conjunction with the ClientDataSet Redistributables. This includes the XML data packet used by HTML clients for InternetExpress, normally built with a TMIDASPageProducer component or a descendant.
One-tier A self-contained database application. There is no access to another machine to retrieve data.
Two-tier A database application that retrieves its data from another computer. Typically, you will still need to install the BDE (or a suitable alternative) on client machines. Using this configuration produces what is known as a fat client, due to the size of the executable and extra overhead required in the form of a database access layer.
n-tier A database application that is partitioned into data services (DBMS), business services (application server) and presentation services (client application). This configuration produces a thin client, due to the low overhead required on the client machine.

    Pricing & Licensing

The licensing fees quoted in the following paragraphs are for US customers only and are subject to change without notice. If you are not a US customer, contact your local sales representative for pricing in your country.

The list price for an unlimited client MIDAS license is US$299.95 per machine. This particular machine may run any number of MIDAS application servers with any number of users, and may have up to four (4) CPUS. Additional CPUs will require another MIDAS license. Contact your sales representative for current pricing or other pricing options.

If you plan to use IIOP (a feature of CORBA) as a transport for your MIDAS datapacket, a VisiBroker deployment license is required. This has changed from the previous licensing arrangement of MIDAS, which could include a VisiBroker license for use with the MIDAS server. No VisiBroker license is included in an unlimited MIDAS server any longer. For current pricing on VisiBroker, contact your local sales representative. For further information on VisiBroker, see the VisiBroker home page.


The following examples are not intended to be a complete listing of all possible scenarios; however, they will serve as a guideline to help you determine when purchasing a MIDAS deployment license is required. Some of the scenarios include graphics to help explain the configuration options.

Note: The "BDE" referred to in these scenarious could also mean ADOExpress, InterbaseExpress components, or any other direct database connection.

Scenarios Requiring Deployment Licenses

  • Web Server using InternetExpress (requires deployment license, no BDE on client)
    If the InternetExpress application (normally, something that uses TMidasPageProducer) running via a Web server is accessed by an HTML brower on any machine other than the one running the Web server, a deployment license is required. In this scenario, the XML version of the MIDAS data packet is crossing machine boundaries.

  • Logical & Physical Three-tier (requires deployment license, no BDE on client)
    This is the typical scenario used when creating multi-tier applications. The developer creates an application server and places it on one machine. This application server exposes data via the IAppServer interface. A client application is placed on another machine, and can read the data provided by the application server by using the TClientDataSet component.
Hide image
Logical & Three-tier Scenario
Logical & Physical Three-tier Scenario.

  • Load-balanced Three-tier (requires multiple deployment licenses)
    As your deployment becomes increasingly larger and traffic to, from, and on the server increases, you may want to have a certain segment of your users log in to one server, while other users will log in to another server. In this scenario you would be required to purchase one MIDAS license for each server machine that is running an application server. Note that Delphi and C++Builder have a component, TSimpleObjectBroker, that makes load-balancing extremely easy to do.
Hide image
Click to see full-sized image
Load-balanced Three-tier Scenario.

  • Multiple application servers on one machine (requires deployment license)
    Software developers frequently find themselves writing a suite of applications to accomplish different tasks. If you write an application server for each different task, you can run each of those application servers on one machine if you so choose. As long as all the application servers are running on that one machine, only one MIDAS deployment license is required.

  • FTP a briefcase file (requires deployment license, no BDE)
    In this scenario, a developer writes an application server that uses a ClientDataSet to save data to a briefcase file. This file is then transported via FTP to another machine, where the client decodes that data using another ClientDataSet. Since the IAppServer interface wasn't used to transport the data packet back and forth, you might think that this is a configuration that does not require a MIDAS license. However, a license is required here because you used a ClientDataSet Redistributable on one machine to provide data to another ClientDataSet Redistributable on another machine. The fact that FTP is used to transport the data packet is immaterial. The transport you choose has nothing to do with whether or not a MIDAS license is required.

Scenarios that Do Not Require a Deployment License

  • Logical Three-tier/Physical Two-tier (no deployment license, BDE on "client")
    If the developer creates an application server and client application exactly as above, but deploys both the application server and client application to the same machine, no license is required. A byproduct of this setup is that the BDE must be installed to make this solution work. However, you still have access to all of the features of MIDAS (disconnected mode, error reconciliation, etc.). In addition, you can merge the application server and client application to develop a solution that uses ClientDataSet Redistributables to serve and read data all in one application.
Hide image
Logical Three-tier/Physical Two-tier Scenario
Logical Three-tier/Physical Two-tier Scenario.

  • Standalone (no deployment license, no BDE)
    For deployment needs where the BDE is either too large or requires too much configuration, MIDAS' TClientDataSet can be used to provide a powerful alternative solution. The TClientDataSet component can be used for local data storage. You can use the ClientDataSet component to create an in-memory table. Because this table is in-memory, manipulations of it are extremely fast. In addition, since it descends from the virtual TDataset class, you can use the standard data-aware controls as you always have. If you want to persist the table, you can use the built-in methods SaveToFile and LoadFromFile. Also, simply assigning the ClientDataSet.FileName property will persist the table automatically.
Hide image
Standalone Scenario
Standalone Scenario.

  • Using SocketServer to avoid DCOM configuration (no deployment license)
    DCOM is very difficult to install, configure and maintain. To combat this problem, you can use SCKTSRVR and TSocketConnection to route all of the DCOM traffic over straight TCP/IP. If you don't use a ClientDataSet Redistributable to provide a data packet from one machine to another, you can effectively use the SCKTSRVR to bypass the DCOM configuration problems. In addition, using the tools in this manner does not require a MIDAS license.


Server Response from: ETNASC01