DDObjects 1.0.2
---------------
http://www.delphi-online.at/projects/ddobjects

Copyright (c) 2006 Stefan Meisner
http://www.delphi-online.at, stefan.meisner@gmx.net

This software is distributed as shareware. It is not free. You may use
the software for a trial period of thirty (30) days, at no cost to you,
to determine if it fits your needs. If you decide to use the software,
you shall register it and pay the applicable registration fee.
The Shareware (restricted) version may be freely distributed, as long as
no fees are charged and original packaging, the above copyright notice
and documentation are retained.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABI-
LITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY
RIGHTS. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFT-
WARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

IMPORTANT INFORMATION FOR USERS OF VERSION 0.9.85 AND PRIOR
-----------------------------------------------------------

Due to a change within some base classes in version 0.9.90 you need to
recreate the sources which have been generated by the DDOWizard prior to
version 0.9.90. Just open the appropiate XML files within the wizard and
click 'Sources' to execute code generation. I am sorry for this inconve-
nience caused.

Installing DDObjects (Shareware Version without Sources)
--------------------------------------------------------

Unzip the package to a folder of your choice. The folder contains a sub-
folder Lib which contains the precompiled DCU eg. OBJ files for each sup-
ported version of Delphi and C++ Builder. Add the appropiate folder to
your library path and install the contained package dclDDObjects within
your IDE selecting Component|Install Packages. A new tabsheet labelled
delphi-online.at, containing seven new components, should appear.

If you have any problems in proceeding these steps, check your library-
as well as your windows searchpath which should include the directory
which contains the package files.

Installing DDObjects (Registered Version incl. Sources)
-------------------------------------------------------

The steps to install DDObjects are the same as described above. If you
would like to build DDObjects yourself you'll find the complete source-
code within the subfolder Source. The subfolder packages contains the
package files.

Users wholike to use DDObjects support for TDataSet should open the file
DDObjects.inc and activate the conditional define DDODataSet which is
disabled by default to support users of Delphi's personal editions.

Limitations of the Shareware Version
------------------------------------

Beneath the fact that the sourcecode is not included there are no more
limitations except the number of calls to be processed by all listeners
within a certain server process. As soon as 10,000 requests have been
handled, all DDOListeners will be deactivated. The server needs to be
restarted in order to handle new requests.

Delphi 2005 Personal Edition
----------------------------

Delphi 2005 Personal Edition does not have the xmlrtl.dcp file which is
required by the designide package. This means that users of that edition
won't be able to compile any designtime package which does require it.
The solution is to install a faked xmlrtl.dcp like xmlrtlFAKE.dcp which
contains the two faked units XmlDom and XmlIntf. These two unit do not
have an implementation section; their interface section contains only the
interface section parts that are needed by the designide package. With
this .dcp file it is possible to use designtime packages in Delphi 2005
Personal Edition. You can download the file at:
  http://unvclx.sf.net/other/D2k5PExmlrtlFake.zip

However, within Delphi 2005 Personal Edition the DDOWizard will not be
available. Users of this version can use the commandline tools instead
which are available since release 0.9.50.

Getting Started
---------------

Several demo-projects, located within the subfolder Demo, are provided to
help you getting started. The projectgroup gDDObjectsDemos found in the
projects root folder references each of them. A step-by-step tutorial
showing how to create the first demo (FirstDemoClient and Server) and
giving a deeper insight into various options and details is available at
  http://www.delphi-online.at/projects/ddobjects/tutorial.php

The other demos show DDObjects support for callbacks, asynchronous method
calls, object streaming as well as the capabilities of the broker- and
nameserver components.

Performance, Delphi and it's MemoryManager
------------------------------------------

As Delphi's default MemoryManager is known to scale bad in multithreaded
environments and suffers from memory fragmentation I recommend using
FastMM as MemoryManager replacement at least for server applications
build with DDObjects. Note that Borland has replaced Delphis Memory-
Manager by FastMM since Delphi 2005.

Commandline Tools
-----------------

The package contains a set of commandline tools which extend some of the
functions found within the wizard. As the wizard won't be available with-
in the personal editions of Delphi 2005 and 2006 you also can invoke it
using these commandline tools. The tools can be executed via DDOTools.exe
on the commandline. The following parameters are available:
  -gui                      Invokes the DDObjects wizard
  -l[ist] ip:port           Displays available services on specified host
  -d[isplay] ip:port name   Displays definition of specified service
  -c[ode] ip:port name      Generates code to access specified service

The follwing example will connect to a DDOListener running on port 7000
on the host with the IP 192.168.1.99, import the metadata which defines
the available methods of the service called TestClass. Afterwards code-
-generation will be triggered in order to generatate source files to be
included within your project to access and invoke the service TestClass
using a DDORequester component.
  DDOTools.exe -c 192.168.1.99:7000 TestClass

Known Bugs and Limitations
--------------------------

For a most frequent list please locate your browser to
  http://www.delphi-online.at/projects/ddobjects/bugs.php

Reporting Bugs
--------------

Please send me an eMail with a short description of your problem and, if
possible, a project which does expose it (source-code only). Please also
do have a look at the list of frequently asked questions at
  http://www.delphi-online.at/projects/ddobjects/faq.php

Contributors
------------

Many thanks to Indra Gunawan for his suggestions as well as to Markus
Landwehr who has provided the code which has been adapted within the unit
DDOFirewall.pas. Special thanks go to Hallvard Vassbotn who has provided
a very fast replacement for StringReplace.
DDObjects includes zlib 1.2.3. See http://www.zlib.net for more details.

Updates
-------

Updates are constantly announced on the website and are available at
  http://www.delphi-online.at/projects/ddobjects
Registered users can download the latest release at
  http://www.delphi-online.at/products/gateway.php

Roadmap for Version 1.1
-----------------------
To be released in March 2007
o TDDOConnection to use different layers of connection
    (Borland Socket Components, Indy, Synapse)
o Session persistence
o Support for Free Pascal

Roadmap for Version 1.5
-----------------------

No date scheduled yet
o Enhanced customization
o Support for SSL using OpenSSL