<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<section id="JCR.AdvantagesOfeXoJCR">

  <title>Advantages of eXo JCR</title>

  <section id="JCR.AdvantagesOfeXoJCR.Advantages_for_application_developers">
    <title>Advantages for application developers</title>

    <itemizedlist>
      <listitem>
        <para>Data repository and application are isolated from each other so
        an application developer should not learn the details of particular
        data storage's interfaces, but can need to concentrate on business
        logic of a particular application built on the top of JCR.</para>
      </listitem>

      <listitem>
        <para>Repositories can be simply exchanged between different
        applications without changing the applications themselves. This is the
        matter of the repository configuration.</para>
      </listitem>

      <listitem>
        <para>Data storage types/ versions can be changed and also, different
        types of data storages can be combined in one repository data model
        (of course, the complexity and work of building interfaces between the
        repository and its data storage don't disappear but these changes are
        isolated in the repository and thus manageable from the point of view
        of the customer).</para>
      </listitem>
    </itemizedlist>

    <mediaobject>
      <imageobject>
        <imagedata fileref="images/concepts/jcr-490x333.gif" />
      </imageobject>
    </mediaobject>
  </section>

  <section id="JCR.AdvantagesOfeXoJCR.Advantages_for_managers">
    <title>Advantages for managers</title>

    <itemizedlist>
      <listitem>
        <para>Using a standardized repository for content management reduces
        the risk of dependence on a particular software vendor and proprietary
        API.</para>
      </listitem>
    </itemizedlist>

    <itemizedlist>
      <listitem>
        <para>Costs for maintaining and developing a content repository based
        custom application is significantly lower than developing and
        supporting your own interfaces and maintaining your own data
        repository applications (staff can be trained once, it is possible to
        take help from the community and the third party consulters).</para>
      </listitem>
    </itemizedlist>

    <itemizedlist>
      <listitem>
        <para>Thanks to flexible layered JCR API (see below), it is possible
        to fit the legacy storage subsystem into new interfaces and decrease
        the costs and the risk of losing data.</para>
      </listitem>
    </itemizedlist>

    <para>An extension to the API exists as we can see in the following layer
    schema.</para>

    <mediaobject>
      <imageobject>
        <imagedata fileref="images/concepts/JCR-Application2.jpg" />
      </imageobject>
    </mediaobject>
  </section>
</section>
