Appliances: what can replication do for you?
In general,
replication improves
data availability and scalability without
sacrificing
performance, security and application usability. Replication
can be used in many ways, solving many problems. Summarized here are a
few of those possibilities.
Not much details are given:
these have to be recovered during the design phase of the
implementation because
typically each solution has it own set of points of interest
and complexity.
Mobile
applications
By
using Frext as an asynchronous
data replication tool, applications
become always available, even when the network is down. Mobile
applications are typically off line
and using synchronization.
Partitioning
is an option provided by Frext for reducing network overhead.
Typically, on the remote side
there are many or even a large number databases involved which can be
handled well by Frext.
Mobile applications uses a
master-remote model: remotes are fully
dependent from the master, but the master is in no way dependent from
any remote. Remotes can be recreated anytime from the master data set.
Examples:
- sales force on the road
- servicemen
on the road
Server-to-server
replication
Integration of two or more databases
on the same server or between
different back end servers at the same or different location. Servers
are always connected, but are treated as an mobile application, so off line.
Examples:
- functional:
- distribution or mirroring:
copying data from one database to one are more (read-only) databases
for better data access, e.g. workload for viewing (for reporting) is
separated from production database
- consolidation:
merging data
from two or more remote databases into one master database, e.g. point
of sale systems replicating back cash operations to a central database
on the end of the day
- emulate
multi-company
support: sharing a predefined set of (static) tables between different
databases; in this situation, the different databases are equally
important, thus can not be recreated from a single. master database as
opposed to mobile applications where there's a specific
hierarchy
- technical:
- fail safe backup by providing a warm
standby mirror (crash recovery)
- roll forward logging to
provide recovery in a point of time
- redo &
undo for testing purposes
Connecting servers can be done in several ways:
- over a LAN: company with divided branches, all in
one location, possible multiple databases on one server
- over a WAN (internet): company with geographical
divided
branches
Application
Integration
Frext can
facilitate the connection or integration between different information
systems with each other (not restricted by Firebird) by providing
a common interface. Frext is able to function as a front end (message
consumer) or as back end (message producer); the other end does not
have
to be an instance of Frext/Firebird. Thus, Frext acts as an interface
between different, heterogeneous servers or applications.
Examples:
- application integration
- message
start point
- message end point
- queuing:
MSMQ, JMS
Data
transformation
With
Frext, it is easy to change (enhance) data on a field level as
this is
replicated from the sender
to the receiver. This can be implemented in two ways:
- modify
the
produced message files; this is possible because
messages are
in plain, open, transparent XML-format, so choose any preferred
XML-tool.
- the other way is
using an intermediate (stager-) database where
changes are done by triggers on that database. The latter option is
cleaner is a way that only standard functions of Frext are
being
used. Because both implementations are outside Frext (but facilitated
by Frext through transparent operation), data transformation is an
implementation issue and thus this is implicit functionality of Frext.
Transformation
of data can mean any of the following:
- translations
- field mappings
- enriching
- splitting
- consolidation
Transaction
log viewer
Frext can be also used in more a technical way, i.e.
for statistical analysis and auditing of database
usage. Frext implements a pseudo transaction log (Firebird does not
have a transaction log), publicly viewable thus facilitating these
solutions. See architecture.
For more
information
about application integration and data transformation, see Enterprise
Information
Patterns (Hohpe & Woolf). |