Application Examples
As a relational database with good SQL and JDBC support, DataCaster can be used by any application that uses a database. However, the main reason to use DataCaster, given the many other more mature databases available for conventional applications, would be to support data sharing across applications on the web. This is particularly so when the data needs to be shared across web sites across administrative boundaries.
It is now increasingly clear to application developers that a lot of value can be generated when applications share data, and in many cases the data is obtained, owned and managed by different organizations. In these cases, applications need to find effective ways to get data out of applications at other sites, and use that data to provide users integrated information and functionality. This needs to be done while retaining good overall response times.
Web Services and REST
A number of successful solutions have been implemented using web services and the simpler REST approach, where the remote application provides an API to access the data when required. This works quite well for a number of applications, where the data exchange is relatively small for a given transaction, and thus good response is possible for any user request.
Need for Larger Data Sets
There are some application however, where a single request may entail querying, or searching a fair amount of data for each request, or combining larger data sets to get the required results. In such cases, a more direct approach between databases can help ensure the data is available locally when required. Further applications can be built more simply by avoiding the need to access remote data in the application.
DataCaster helps in the latter class of applications. The application queries or creates views of remote data as required, with minimal change in the application. The goal is to make the remote data look just like data in the local database from the application's perspective.
Applibase Xprss
Our first application for such data sharing is Applibase's Xprss application, which is a web application for reading news and blog feeds, and sharing content with others. Our goal is to share data across sites where users are reading news and blogs using Xprss.
Other Applications
We envision a number of applications for DataCaster where applications could benefit from sharing data with other applications. On the web it is apparent that larger web sites are able to use the number of users, volume of data and size of the database to great advantage for many applications. We see the potential for smaller sites to federate their data and deliver many of the benefits to users that the larger sites are able to offer.
For example, the strength of an auction site for a buyer is often in the volume of listings available to the buyer when he is looking for something. For small sites looking to list items for auction, attracting buyers (and hence sellers) is difficult given the small number of listings. By federating with other sites, it may be possible for smaller sites to be more attractive to buyers and overcome some of the barriers to attracting a larger pool of buyers to visit their sites.
Many business applications as well can benefit from integrating data from suppliers and partners in near-real time fashion, and thus give the application user a more powerful application based on all the data. For example, we see the potential for suppliers to make their inventory data available to their customers, and thus provide the customer applications timely data that could make the application much more useful.
Distributed Views versus Queries
While both distributed queries and distributed views both have value in terms of integrating data across distributed applications, it appears that distributed views seem more practical for most applications. This is where a materialized view of remote data is created, and kept refreshed for all changes on the remote server. Applications can use these views with response times and overall performance much the same as local data in the database.