When Do I Need to Buy a MIDAS License?
by John Kaster, Borland Developer Relations
Introduction
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.
Definitions
| 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.

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.

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.

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.

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.
|