Page 2 of 5

Cloudscape in a Server Framework

In a sense, Cloudscape is always an embedded product. You can embed it in a single-user application or in a server framework--an application that allows multiple users to connect to Cloudscape simultaneously. When Cloudscape is embedded in a single-user application, the local JDBC driver calls the local Cloudscape. When Cloudscape is embedded in a server framework, the server framework's connectivity software provides data to multiple client JDBC applications over a network or the Internet.

Cloudscape provides the Cloudconnector option if you prefer a pre-packaged server framework specially configured to be used with Cloudscape. Cloudconnector also provides many other features useful in a multi-user environment. If you do not require the features included in Cloudconnector, you can embed the basic Cloudscape product in another server framework.

Connectivity Configurations

There are many ways you can embed Cloudscape in a server framework:

  • Use Cloudconnector.

    The easiest way to provide multi-user connectivity. Cloudconnector provides a complete server framework as well as many other features. Cloudconnector provides the functionality of WebLogic/JDBC, as well as Cloudscape customizations for its use.

  • Use RmiJdbc.

    A simple freeware server framework, suitable for prototyping, included in the basic Cloudscape package.

  • Purchase another server framework.

    You can use Cloudscape within many server frameworks, such as Novera and Apache.

  • Write your own framework.

Cloudscape's flexibility allows other configurations as well. For example, rather than embedding Cloudscape in a server that communicates with a client using JDBC, you can embed Cloudscape within a servlet in a Web server that communicates with a browser using HTTP.

The simple Cloudscape demo can be run using Cloudconnector, using RmiJdbc, or embedded. This demo can be found in $CLOUDSCAPE_INSTALL/demo/programs/simple.

See the Cloudscape Developer's Guide for diagrams of standard client/server configurations. Also see the Cloudscape Web site (www.cloudscape.com) for white papers showing examples of server configurations that are possible with Cloudscape.

Differences Between Embedded and Server Configurations

There are very few differences between Cloudscape running embedded in a user application and embedded in a server framework. These minor differences arise because a server implements an intermediate JDBC protocol. The differences are as follows:

  • Different server frameworks handle type conversions in different ways. This can affect a Cloudscape application that is expecting a certain data type.
  • Date/time formats resulting from invoking the toString method on java.sql.Date, java.sql.Time, and java.sql.Timestamp may be different. (This depends on the server framework; it is not an issue for Cloudconnector.)

Apart from these differences, Cloudscape functions identically regardless of the way it is embedded.

Embedding Servers

Since Cloudscape is written in Java, you have great flexibility in configuring your deployment. For example, you can run Cloudscape, the JDBC server framework, and another application in the same JVM as a single process. For more information, see Chapter 10, "Embedding Servers".

Using a Server Framework with Cloudsync

If you choose the Cloudsync option, you will probably run Cloudscape within a server framework. Cloudsync allows you to create and operate source databases. A source database--the central, master database with which multiple targets synchronize--typically runs as a server. Target databases often run embedded in single-user applications that connect intermittently to the source database. When run in a server framework, Cloudsync can synchronize over a network with clients, over the Internet with occasionally connected targets, or both. The server embedding Cloudscape can even itself be embedded in another application, for example as a servlet running in an application server. See the Cloudscape Synchronization Guide for more details about Cloudsync.