Use off-the-shelf Oracle technology to build distributed systems.
Replication involves keeping some or all application data in a distributed system synchronized across multiple databases. In this column, I'll explain why you need to use the replication feature and describe some Oracle technologies that can be used to implement replication capabilities.
There are several reasons why you need to design a system with replication capabilities:
Remote data access requires a large network bandwidth;
Network latency can cause your application to run very slowly;
Failure or collapse of a single site can result in unacceptable service failure;
Local ownership and control of specific data is required.
Data and performance
There are two network factors to consider when evaluating replication: network bandwidth and network latency.
Network bandwidth is hardly a problem unless you are running on a wireless network or your WAN (WAN) connection is done by dialing or ISDN. In this case, it may be more efficient to copy the data than to access it each time it is needed.
Network latency is also not a big problem for Web protocols such as HTTP, because each user requests a minimum number of round-trip trips to the network, and network requests are generally handled in parallel. However, when you use JDBC to access data, the underlying data access protocol generally requires multiple network trips to satisfy a single request.
High Availability and security
In addition to networking, replication can also help you meet a number of goals, such as ensuring the normal operation of critical services and maintaining control over data.
A synchronized copy of the data restores the data to the latest version, which is not possible for traditional backups. In cases where short service outages are also unacceptable, one-way replication ensures that a standby database takes over the work of the primary database as soon as it is notified.
There are often regulations, security-related, or other practical reasons that require maintaining local control over shared data. For example, suppose two government agencies need to share specific data, but the law prohibits merging its complete dataset. Replication can selectively publish data changes in both directions.
Alternatively, replication can be set to one-way (master-from), bidirectional (multiple master nodes) or N to (that is, three or more nodes are synchronized). A strategy to reduce the inherent complexity of N to sync is not to allow updating of data. Your system can divide the data into different "versions" and create a new global identifier for each new version.
Oracle and Replication
Several Oracle technologies are especially useful for designing data replication capabilities. Choosing which technology to use depends entirely on the requirements of your particular application.
There are generally two forms of replication, usually called data replication and program replication.
When using data replication, changes to database objects (such as tables) are captured and stored locally, and then applied to each remote location. Advanced Replication (Advanced Replication) is an Oracle database feature that implements this replication. Because you need an Oracle Net Services (sql*net) connection between databases, advanced replication is often not suitable for use on a WAN (WAN). However, advanced replication does not require program code, and can propagate changes in data and patterns.
Program replication uses program code to capture and propagate committed transactions, rather than data changes themselves. For example, it may be much simpler to represent changes to a shipping charge on a purchase order as a transaction than all the changes in the database table that make up the purchase order. Oracle Advanced Queuing (AQ) is an Oracle database feature that provides Message Queuing and enables transactions to be routed to remote systems. AQ can handle a variety of different payload types, like advanced replication features, AQ can propagate messages on Oracle Net services. But AQ can also encode messages in XML format, propagating them over HTTP and SMTP, making them a better choice to use on a WAN.
If you need to share data with a non-Oracle system, then oracle9i Application Server (Oracle9iAS) integration may be a good choice. It provides an application integration framework designed around Oracle AQ message centers. The Oracle9iAS integration solution provides content-based routing, cross-reference, and domain-value mapping characteristics required for connectivity between different systems. As always, I'm just taking a superficial look at the subject, so if you want to learn more about it, see the Oracle documentation.