|
New features - Version 1.4.0
- Design
Data Center - one-stop
Database/Table/Field/Index/SQL specification w/local and remote design-time fetching
- SOCKS5 support/firewall traversal. The SOCKS specification allows a client
application using a custom protocol (like dbOvernet) to connect to a server through a
firewall or proxy. Most firewalls and proxies support the SOCKS5 (or SOCKS4) protocol.
Through SOCKS, the client is not directly connected to the server - the SOCKS5 server acts
as a relay for all communications. This enables companies to use a firewall or proxy to
protect their internal network against internet intrusion yet still allow authorized users
to connect through the Internet.
- Transparent local/remote
connectivity You can completely blur the
distinction between remote and local loading with a single property setting. Tables can be
streamed from local drives, eliminating time-consuming over-the-Net loading, with
automated remote updating.
- Enhanced business/validation
rules demos dbOvernet is true multi-tier.
Other products try to simulate that by simply sticking socket transmission between clients
and servers. That solution is fine for simplistic, closed-ended approaches, but when you
need to move to serious application development, you need an open middle tier and
the classes to implement functionality in that tier. That's what it's all about.
| |
Our middle tier's
ServerObject class has always enabled easy construction of business rules, remote
procedures, validation and data access rules, centralized in the middle tier, as part of
its basic architecture. With dbOvernet, it's easy to
develop cross-connected business rules or preemptive validation (OnBeforePost,
OnBeforeEdit, OnNewRecord, OnDelete, etc.). Add callback streaming using our
built-in events- logon validation, autonumbering of new records (autoincrement), passback
of updated records and more.
None of these solutions require special programming.
They simply use new instances of the ServerObject class that you can easily create (or you
can tap into our existing ServerObjects, like our RPC models). Because of our open
ServerObject class, you can easily develop your own solutions without waiting for new
releases or hoping that the software developer will add needed features. It's all
there for you as part of the basic architecture. |
- New basic client and server
examples Along with many new example
applications, to show how easy it is to develop apps, our new basic client example
takes no code to develop a complete retrieval and updating application, and our new basic
server example has about 3 lines of code to provide complete access to any database.
These two examples show how easy it is to develop applications that provide full remote
connectivity with functionality against any database.
- Automatic Active A small point, but now, via our SendOnActive flag (which defaults
to true), you can choose whether to trigger Active automatically during runtime startup,
or defer to our far more extensive Send functionality. Our technology ensures you have the
choice.
| |
The
TdbOClientDataset has always supported the Active property during design, but used the
Send property on startup, and that required one line of code in the FormCreate event. Now
if you set the TdbOClientDataset's Active property to true during design, it will
automatically fetch a result set at runtime to provide an initial dataset to the controls. Also, during runtime, if you want to refetch data, you only
need to issue the Send command. You don't need Disable/ EnableContols or
Close/Open. That's all handled internally by the single Send command.
Of course, as you use this technology, you may come across
instances where you don't want setting Active to true to automatically trigger a request
from a remote server. With SendOnActive, you have a choice.
Both options continue to support our unique AutoSQL feature
where SQL expressions are automatically constructed based on values of various properties
in the TdbOClientDataset (any change to any property automatically causes the SQL
expression to be recreated).
And we continue to provide the LiveData property which
allows you to skip data retrieval from a remote database during design (particularly since
it can be time-consuming).
It's features and touches like these that show the maturity
of dbOvernet as a complete multi-tier toolset. With properties like AutoParams, AutoSQL,
AutoUpdate, LiveData, LoadLocal, SendOnActive and UpdateRemote, you can quickly build a
visual solution for every situation you might encounter. |
- Performance
enhancements/statistics/reliability We've
done our homework and now, using a typical dual 200 mhz NT Server,
dbOvernet's Application Server can process over 65 SELECT requests per second at the server.
| |
Those
stats are for server turnaround. The measurements for a complete round tip over a 10 mps network, connecting to an ODBC-driven MS Access
database via the BDE engine reduce that to about 30 requests per second.
This includes:
- 1. Dispatched from a client workstation
- 2. Received by the server
- 3. Executed in an instantiated ServerObject
- 4. Packaged and dispatched from the server
- 5. Received back by the client
- 6. Unpackaged as a result set into an in-memory
TdbOClientDataset and
- 7. Used to populate a TdbGrid
(Average outbound packet is 7 records of 15 fields -
approximately 1,000 bytes).
It just doesn't get much better than that.
Of course, you can use our threaded and pooled models to
ensure throughput for all connections, and you can spread requests over multiple servers
and multiple server executables, but these tests with the non-threaded model demonstrate
the real efficiency of our client > middle tier > server and return connectivity.
They are important benchmarks to ensure you have a common basis for comparison.
For companies not connecting hundreds or
thousands of users, the server can be almost any machine. For example,
in tests on an old 486-50, we were able to
push 10 requests per second. That's more than the majority of networks
require. We ran a test of 12 clients continually against
a single 486-50 server with 16 meg RAM, running Win95, with each client running a
variable, high-demand SELECT loop for 4 hours, without any failure,
slowdown or memory leaks. An astonishing 139,694 SELECT requests were processed on the
486 during the 4 hours. That works out to almost 10 requests per second. |
- Improved Help files and
documentation We've expanded our Help discussions on concepts and
architecture, improved property explanations and re-structured our Contents page.
- New properties of the
TdbOClientDataset and TdbOClientConnection:
-
- ChildFilter: enable child filtering beyond the normal master/detail join.
-
- SocksAuthentication, SocksPassword, SocksPort, SocksServer, SocksUserCode: SOCKS5
properties
-
- DatabaseName: now activated for use with the Data Central Wizard
-
- LoadLocal: specify local stream loading as flat file.
-
- LocalPath: specify the path for local loading.
-
- SendOnActive: let Active decide how data is retrieved on startup
-
- ChildFilter: enable child filtering beyond the normal master/detail join.
-
- SocksAuthentication, SocksPassword, SocksPort, SocksServer, SocksUserCode: SOCKS5
properties
New features -
Version 1.3.7
- Group updates via
ClientConnection Improves our implementation of centralizing cached
updates of multiple tables to provide grouped transaction updates through the
ClientConnection component. The ClientConnection component assembles and processes updates
from linked tables, then disassembles and allots errors to individual tables where
applicable.
- GetNextPacket This
method provides persistent-type connectivity, yet maintains the high-speed and ease-of-use
functionality of dbOvernet's engines.
| |
GetNextPacket
passes a filter to the server-side application's database and, in conjunction with the
MaxRecords property and that filter, the database returns the next set of data records in
a dataset to the client, where they are appended to the current client-side dataset. With this method, developers can comfortably develop applications
enabling dataset retrieval of any length, restricted by the MaxRecords property and
retrieved through GetNextPacket. |
- NTService dbOvernet
server applications running as NT Services is now available.
New features - Version 1.3.5
- Blobs as parameters In
our continuing commitment to accommodate all databases and engines, V 1.3.5 adds
INSERT/UPDATE options to enable blob-type fields (Blob text, binaries, Text sub-types.
etc.) to be passed from clients to the server-side application as automatically labelled
parameters through BlobsAsParams property. Data packets include the data values for
designated blob types in separate records. Server-side applications "glue" them
back together through on-the-fly parameter creation.
| |
This feature
ensures back-end database switching where complex blob fields are used, without
modification to the client applications. BlobsAsParams
is also enabled in feed-back transmission of partially-successful data inserts/updates
where grouped transactions are used. Grouped transactions is unique to
dbOvernet, enabling sub-packaging of groups of records in the ApplyUpdates function of
cached updating through unique identifiers (like invoice numbers, customer numbers, etc.)
assigned to record groups (one to many, one to one). Where records are grouped and sent to
the server as a single set for updating through transactions, an invalid group does not
affect the validity or acceptance of other groups in the set.
Unsuccessful records are automatically reset to the client,
including data records representing blob fields. |
- Client connection component
The ClientConnection component now hosts UserParams, enabling broadcasting
of this property to all connected TdbOClientDatasets. The component now contains the
properties: VersionNumber and VersionDate, to identify
the dbOvernet version you are working with.
New features - Version 1.3
For our latest 1.x release, we've concentrated on
increasing the client-side functionality, adding depth to dbOvernet as well as some great
new properties and methods. Of course, we've added new example and sample programs where
appropriate to demonstrate the new features.
- Remote procedures Execute
procedures stored in the middleware! Define business rules, call pre-validation functions,
offload processing requirements. Create procedures and functions in the server-side
application and execute them from any client. Run any procedure or method, access any
datasource, return any number of parameters. Remote procedures are something like stored
procedures, except they work before the database is accessed, enabling efficient rules
management, pre-processing activity and more.
- One to Many to Many
w/multiple planes Full 1>M>M>n to any level, with unlimited
children on any plane, horizontally and vertically! Simple, robust and no code to enable
data retrieval and data entry. No blinking, no flashing, no delays and - no code required.
- Master source/key fields
- Designates parent and link keys in master/detail relationship (with
automatic generation of connecting parameters) and enables assignment of a source dataset
in client-side stored procedures for completely automatic runtime retrieval of parameter
values. No code required.
- Parameterized queries SQL
expressions with any parameters. Uses standard Delphi TParams functionality.
- Stored procedures Full
stored procedure functionality - handles all types: input, inputoutput, output. Enables
automated list retrieval and select at designtime, automatic param completion - no code
required.
- Automatic param completion
Point a client-side stored proc's Datasource to any client-side
TdbOClientDataset and the stored proc will look to that datasource to automatically
retrieve parameter values at runtime, then pass them to the server for execution.
- Stored procedure
list/select/execute At runtime or design time, retrieve all stored
procs using a single, controller TdboClientDataset. Select and execute any proc at any
time, with automatic param value completion.
- FunctionParams command
group Simplifies execution of any type of server-side function. Clear
to start, SetCode to describe the function, Add to add parameters, SendAndWait to execute
and wait for a response. Results returned into the ExecBuffer property of the hosting
TdbOClientDataset. Develop new ServerObjects and quickly execute their methods using
FunctionParams.
New component - Client
Connection The client connection component is a helper component that
enables Port and Server setting broadcasting at runtime and design time. Set all
client-side TdbOClientDataset components instantly with a change to the
TdbOClientConnection component. Also used to manage 1>M>M data retrieval to ensure
orderly, hierarchial data retrieval.
Features added to our Version 1.1
Release
New component -
TdbOClientDataSet. This one component encapsulates all 4 dbOvernet
components used at the client side and is ideal for SQL work. The other components are
still available for specialized functions that you might require. TdbOClientDataset has:
New properties and methods to:
- Designate the SQL expression through the property, SQL.
Automatically generate SQL expressions into the SQL property, from
visually-designed properties. Can be overridden. Takes information from the FieldLayout,
Filter and ServerTableName properties to create the expression.
- Automatically re-generate SQL expressions when any
linked property changes at design or runtime. Can be overridden.
- Specify whether or not to retrieve live data at design time.
- Provide a field name list for the automated SQL expression's
SELECT statement. The list is created and inserted into the SQL expression automatically
when you close the Field Layout Editor.
- Provide filter specifications through the Filter property
for the WHERE section of the SQL expression. (For instance: customerid like 'd%'.) Can be
overridden.
- Provide the key update field names and field types for
automatic server updating through the property, KeyFieldNames. This property is automatically
created when you select one or more fields in the Field Layout editor and designate
them as the key update fields. Can be overridden.
- Automate the designation of the server-side table associated
with the TdbOClientDataSet through the property, ServerTableName. This field is
automatically created when you enter a table name in the Field Layout editor or Import
from the Field Layout Import dialog. Can be overridden.
- Specify cached updating through the boolean property, CachedUpdates.
If true, updates are automatically cached for subsequent processing through the new
method, ApplyUpdates.
- Control SQL requests through the property, Send.
- Apply cached updates through the property, ApplyUpdates.
- Access error handling through the event, OnDataDone.
Among the other features, not only can you can easily
design runtime SQL expressions, but, in most cases, you don't even have to worry about
creating a SQL expression - it's all done automatically.
This one component reduces everything to basically no code! Now the only components
visible on a form are TdbOClientDataset and TDatasource (or TwwDatasource).
Further, you can override the automated features to
directly specify any SQL expression. Execute complex queries to retrieve data from any
tables and add expressions using the MetaSQL function, and dbOvernet will return both the
metadata field layout information as well as the data.
Note, of course, that all the other
dbOvernet components are still shipped with the product, so you have complete access to
the entire dbOvernet architecture.
Runtime live data.
Permits data to be filtered, viewed and scrolled at design time. You have the option of
turning this feature off or on.
Field support.
dbOvernet supports all field types in their native structure.
Chat program/remote access
management. We now include a fully-functional demonstration chat program
as an add-in to any client- and server-side application. Users can communicate with each
other or to and from the DBA at the server. Uses standard WHO to retrieve user lists,
WHOAMI to obtain current user information, nicknames, etc. The application can run inside
any client-side and server-side application, or as a standalone app.
The chat program demonstrates several capabilities of
dbOvernet, in addition to chat. Client- and server-side programs become full
two-way communicators.
Through this functionality, clients can become servers and
servers can be clients, so you have the built-in capability using dbOvernet's exclusive
Server Objects to perform any action at the client side.
For instance, applications can be developed to provide
remote management to the server-side DBA; others can provide important data and
synchronization functions. Software versioning can be handled through this approach, along
with callbacks.
Applications can be as simple as dropping components on the
client and server applications, along with a few new server objects, or as complex as our
full-blown chat program demonstration:
- Access, retrieve and update databases at the client
- Manage image and document files,
- Provide whiteboard and group-based communications,
- Pass and access emails, ZIP files, synchronization files
- Upload updates, current software
- Provide callback functions
Field layout editor.
dbOvernet now has a full field layout editor. You can designate any database and any table
during design of your client-side applications, select all or any fields into the layout
editor, move fields up/down, delete/rename, etc. for automatic field designation of
client-side dbODatasets.
Encryption/compression.
We have provided events and methods in the TdbOAppServerClient (client-side coordinator)
and TdbOAppServer (server-side coordinator) at key trigger points to enable
encryption/decryption and/or compression/decompression of data moving over the media.
Example programs using simple encryption algorithms demonstrate the methods and enable
linking to other encryption/compression programs.
dbOVisual Query Builder.
The VQB was released previously, but we'd just like to remind everyone about this great
tool. Click here to have a look at it.
Back to top
|