blob: 8f8887818e9b4302d776a8d226d3e8b7ada79899 [file] [log] [blame]
Title: Remote Object Persistence Introduction
<P>&quot;Remote Object Persistence&quot; is a low-overhead web services-based technology that provides lightweight object persistence and query functionality to 'remote' applications. In other words it provides familiar Cayenne API to applications that do not have direct access to the database. Instead such applications would access <A href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=CAY&title=Cayenne%20Web%20Service" class="createlink">Cayenne Web Service (CWS)</A>. A single abstract data model (expressed as Cayenne XML DataMap) is used on the server and on the client, while execution logic can be partitioned between the tiers.</P>
<P>The following picture compares a regular Cayenne web application and a rich client application that uses remote object persistence technology:</P>
<P><SPAN class="image-wrap" style=""><IMG src="remote-object-persistence-introduction.data/remote-object-persistence.jpg" style="border: 0px solid black"></SPAN></P>
<P>Persistence stack above consists of the following parts:</P>
<UL>
<LI><B>ORM Tier:</B> a server-side Cayenne Java application that directly connects to the database via JDBC.</LI>
<LI><B>CWS (Cayenne Web Service):</B> A wrapper around an ORM tier that makes it accessible to remote CWS clients.</LI>
<LI><B>Remote Tier (aka Client Tier):</B> A Java application that has no direct DB connection and persists its objects by connecting to remote Cayenne Web Service (CWS). Note that CWS Client doesn't have to be a desktop application. It can be another server-side application. The word &quot;client&quot; means a client of Cayenne Web Service.</LI>
</UL>