Multi-tiered
Client Server
Delphi:
- Middleware solutions:
- MIDAS:
- allow thin clients that don't directly
access the BDE, only the MIDAS
application server accesses the BDE,
therefore less configuration & no BDE
needed on the client side
- thus MIDAS delivers zero-configuration
thin client distributed applications with
higher performance on
bandwidth-challenged networks, perfect
for mobile computers accessing networks
remotely.
- it is complimentary to MTS technology,
thus MTS developers who use MIDAS gain
thin client briefcase mode, automatic
constraint & business rule updates,
data updates & support for database
engines other than MS SQL Server.
- it requires use of cached updates to
perform edits, this technology has
advantages and also limitations.
- MS Remote Data Services (RDS) was modeled
after MIDAS but differs from MIDAS in
that:
- RDS was designed only to be a
web-based client & can't be
used for standalone apps
- MIDAS is browser independent
whereas RDS requires IE4
- in addition to RDS functionality,
MIDAS provides:
- data constraints (only if
non-ODBC), data aware
controls, support for
heterogeneous networks,
master-detail support,
robust conflict
resolution, support for
business rules in the
middle tier
- other features:
- Java client access
- briefcase model:
- can save TClientDataset
data and delta to local
file as a cds file which
can then be reloaded at a
later date edited and
when connect back to app
server, have updates
applied
- nested datasets:
- master-detail tables can
be nested within the one
table so that the detail
records are embedded in a
data field of the master
record, and visible by
double clicking on that
field in a grid linked to
the TClientDataset
- can automatically get constraints
from the appserver so that they
are applied at the client end as
well, but only written into the
appserver.
- object brokers to provide load
balancing and fail-over support:
- TSimpleObjectBroker - you
tell it the names for
servers and it will
randomly select one to
use
- OLEnterprise
- MTS support
- CORBA support
- ENTERA support??
- MIDAS allows up to 100 users per
server (BUT BDE has limit of 48
concurrent threads per machine
that the BDE is installed on)
- MIDAS is only for the Windows platform
& uses either of 3 communication
protocols:
- DCOM:
- most future-proof mode
- has more stringent
built-in security
features
- server machines need:
- Win NT4, preferably a
domain server
- database interfaces
eg. BDE plus database
server's client (eg.
Sybase open client)
- DBCLIENT.DLL,
STDVCL40.DLL
& IDPROV.DLL
on path and registered
- application server
that you create and
registered (ran once)
- client machines need:
- DCOM dlls (download
from MS website if Win95)
- already on Win98/NT4
- 211kb DBCLIENT.DLL
& STDVCL40.DLL
on path and registered
- register the server
app (run once on client,
or Tregsvr.exe - the
server_app.tlb file)
- client application
you create
- TCP/IP:
- simplest but doesn't
provide load-balancing,
fail-over or security
- does not need a WinNT
server
- server machines need:
- database interfaces
eg. BDE plus database
server's client (eg.
Sybase open client)
- DBCLIENT.DLL,
STDVCL40.DLL
& IDPROV.DLL
on path and registered
- application server
that you create and
registered (ran once)
- Winsock2 (not
supplied with Win95)
- client machines need:
- DBCLIENT.DLL
& STDVCL40.DLL
on path and registered
- register the server
app (run once on client,
or Tregsvr.exe - the
server_app.tlb file)
- client application
you create with TCP
configured to point to
server IP address
- Winsock2 (not
supplied with Win95)
- OLE Enterprise:
- proprietary technique
that builds on TCP/IP
& provides
load-balancing &
fail-over
- the best mode if you
really have to have the
server app on Win95/98
machine
- server machine needs:
- database interfaces
eg. BDE plus database
server's client (eg.
Sybase open client)
- DBCLIENT.DLL,
STDVCL40.DLL
& IDPROV.DLL
on path and registered
- application server
that you create and
registered (ran once)
- OLE enterprise files
(install on a root
directory with short
directory name):
- BROKER.EXE
(run before loading the
object factory)
- OLECFG.EXE
(a utility to configure
the connections)
- OBJFACT.EXE
(the core to the system)
- OLENTEXP.EXE
(object explorer utility)
- client machine needs:
- DBCLIENT.DLL
& STDVCL40.DLL
on path and registered
- client application
you create
- OLE enterprise files
(install on a root
directory with short
directory name):
- OLECFG.EXE
(a utility to configure
the connections)
- OLENTEXP.EXE
(object explorer utility)
- MIDAS 3 (Delphi 5) new
features:
- more stable
- now is stateless to comply with
MTS:
- no more IProvider or
TProvider as replaced by
IAppServer
- you now must bind a
TDataset to a
TDatasetProvider and set
its exported property to
true
- you still set
TClientDataset as in
MIDAS 2, but you cannot
call any of its provider
methods, instead you use
its AppServer property
- DBCLIENT.DLL name changed to
MIDAS.DLL
- STDVCL40.DLL
no
longer required
- changes made to
data at the appServer can now be
automatically be propagated back
to client
- appServer can now
have properties set to prevent
client either inserting, editing
&/or deleting
- dynamic SQL can
now be sent to appServer via
ClientDataset.CommandText
property
- TClientDataset can
now be executed as well as opened
as for a TQuery
- can now disable
support for callbacks in socket
connections:
- faster
- clients
only need Winsock 1 and
not Winsock 2 (which
didn't come with Win95)
- TWebConnection:
- provides a HTTP
connection (default port
is 80) with SSL support
- uses an ISAPI dll: HTTPSRVR.DLL
on the web server
- allows clustering of
servers with true load
balancing and fault
tolerance
- support for object
pooling for the RDM
- requires WININET.DLL
on client
- WebServer that uses MIDAS, XML,
JavaScript & Delphi Web
Broker which means no files are
required on client machine apart
from a web browser!!
- Licence:
- < 94clients: $400/server +
$200/client for 1st 20 clients
then $135/client thereafter
- > 94 clients: $6500 site
licence
- CORBA site licence $3500 (? don't
need to pay if have MIDAS site
licence)
- ENTERA:
- provides a RPC based architecture for
developing cross-platform apps.
- allows distributed applications that can
run on multiple platforms (Windows, Unix)
- Entera can create entera clients
that run in Unix
- Delphi Enterprise creates entera
clients that run in Windows
usingTEnteraConnection &
TEnteraProvider components with
which the TClientDataSet.provider
property is linked.
- provides mechanisms that are designed to
perform one logical task - to implement
business rules while talking to the data
access (server) component
- no user limit per server
- unlike MIDAS which has automated database
operations, these must be via code in
Entera
- supports the following development tools:
Delphi, C++, COBOL, Java, VB
- supports the following platforms:
WindowsNT, AIX, HPUX, Solaris
- security implementation: DCE, GSS
- automated asynchronous operation
- automated threading
- MS Transaction Server
(MTS):
- client application has NO
database-awareness or controls but gets
them from a middleware business services
application which contains the MTS
application components & resource
dispenser (BDE or ODBC). The resource
dispenser use a resource manager (eg. MS
SQL Server, Oracle) that sits in the data
services tier that may be on a separate
machine to the middle tier.
- can be used with MIDAS
- ASTA:
- A Smart Thin Architecture
- http://www.astatech.com
- zero client admin/configuration - the
AstaClient increases app exe size by 150K
- accesses data via BDE, ODBC or any other
TDataset descendent
- server push
- simple to support
- pricing starts at $US299
- dbOvernet:
- http://www.dbovernet.com
- requires either BDE, ODBCExpress or IB
Objects as data engine
- designed in Delphi
- also supports other file formats for
groupware solutions as well as
chat/whiteboard
- manages image & document files
- pass & access emails, zip files,
synchronisation files
- upload updates
- provide callback functions
- visual query builder included
- full support for parameterised queries
& stored procedures as well as remote
procedures on middleware
- dev. kit: $US149 ($US298 with source,
$US425 with source & single server
licence)
- server licence fee: single $US249;
Unlimited $3499;
- simple to implement:
- open BDEServer app, compile &
run
- in client app:
- add TdbOClientDataset,
TwwDatasource, TwwDBGrid
to form
- point grids datasource to
the TwwDatasource, &
the datasource's dataset
to the TdbOClientDataset
- in TdbOClientDataset,
click FieldLayout, then
click Import
- in DatabaseName enter
dbOvernet_Jet (example
Access db)
- in TableName enter
customers
- click Import to
display fields, click
Select All & OK to
import fields to layout
editor
- in layout editor,
click the 1st row
(CustomerID) & click
Key update fields to tell
dbOvernet that's the key
field to use for updating
- click OK to close
Field Layout editor
- click the Form OnShow
event & type in:
dbOClientDataSet1.send;
- add a button to form
labelled
"Refresh" and
set click event to
FormShow event.
- to add where clause
fileter to table, before
the send command add the
line:
- dbOClientDataset.filter
:= 'fieldname like
'+chr(39)+edit1.text+'%'+chr(39);
- compile & run for a
fully updateable,
filterable multi-tier
client app with 2 lines
of code!
- ADO/RDS/OLE
DB - based: