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.

info.png 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: 

  1. modify the produced message files; this is possible because messages are in plain, open, transparent XML-format, so choose any preferred XML-tool. 
  2. 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.

info.png For more information about application integration and data transformation, see Enterprise Information Patterns icon-external-link.png(Hohpe & Woolf).