[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

ozone & modularity



Ozone needs more documentation, especialy a high-level description of
the architecture. UML documentation would be nice, like diagrams on the
prowler site which are nice; but more is
needed, not just diagrams generated from the code, need also sequence
and/or collaboration diagrams.

Ozone needs modularity. The broad functionalities should be modular and
layered: basic object storage, XML storage, client-server aspect,
transactions, XPath queries, etc.

The limitations of the current implementation should be listed.

The are many good free software projects, but API's are lacking, which
would enable us to take the best of each. 

_____________

For a quick solution to my problem of stroring big documents, I could
use code similar to DOMStore() in XML/Client.java. I just have to use a
ContentHandler that creates DOM objects and stores them right away in an
Ozone transaction.

But anyway it seems that the Sax storage strategy should be enhanced to
avoid memory limitations. Is it easy to change the storage policy so
that memory problem are
avoided during load of large document? Parhaps by commiting from times
to times?
Based on available memory, a chunk size for partial transactions could
be computed. Also to handle
disk space limitations, an estimated storage size should be computed for
an XML file, in order to forbid storage if too big.


Ozone as it stands now can only store small XML files, about 1Mb, even
lots of them. But with many files, you cannot do a global XPath request
on all those documents without Prowler.

Basic concepts of Ozone and Prowler are nice, but the architecture
either not enough modular or 
not enough documented.

Modularity is really important. For instance, what we need for the
"Worldwide Botanical Knowledge Base" project is a way to make XPath
queries with sufficent response times on a 15Mb document.
Probably to achieve this, an indexing of textual content is needed. 

With ozone, we have no big documents, no indexing of textual content.
But we have transactions, client-server, Java objects persistence, ODMG
API's. 
Since our requests will be done in a servlet, and updates will happen
every few weeks or months, we don't need all this fonctionality, but it
is here, and it probably adds complexity to the possible implementation
of enhancements in the storage modules.

And of course, modularity makes for nice architectures, reusable and
better maintainable.
So if I could get advice on how to use the basic storage +XML +XPath
alone, I'm willing to work on these parts. 

After that, I could work on text indexation. Maybe for this it is
possible to rely on Ozone infrastructure:
create the words index as an extra XML document, this way:
<index__><word1><id>objectID1</id>... etc
and then translate internally an XPath request with contains() into
another without, provided that we have internally a function
objectID(node) .

______________

Exploration of the code:

org.ozoneDB.core.Env (environment of a ozone database server)
instanciates an object of interface:
org.ozoneDB.core.Store
which is implemented by:
org.ozoneDB.core.wizardStore.WizardStore
which is implemented by:
org.ozoneDB.core.wizardStore.ClusterStore
where the function:
public DxBag recoverClusterIDs()
looks in the storage directory for clusters
where the function:
protected void storeData( Object obj, String key )
actually stores a Cluster object 

--
<person>
  <firstName>Jean-Marc</firstName>
  <lastName>Vanel</LastName>
  <motto>Veni, vidi, convici</motto>
  <conference>9th International World Wide Web Conference - Amsterdam,
May
15-19, 2000
   <a href="/ozone-users/01-2001/http://www.www9.org/">site</a>
  </conference>
  <project>Worlwide Botanical Knowledge Base -
      making botany available on Internet
    <a href="/ozone-users/01-2001/http://wwbota.free.fr/" >site</a>
  </project>
  <a href="/ozone-users/01-2001/http://jmvanel.free.fr/>home page</a>
  <a href="/ozone-users/01-2001/mailto:jmvanel@free.fr">mail (possibly put "wwbota" in
subject to
route your mail in relevant folder)</a>
</person>








--
<person>
  <firstName>Jean-Marc</firstName>
  <lastName>Vanel</LastName>
  <motto>Veni, vidi, convici</motto>
  <conference>9th International World Wide Web Conference - Amsterdam,
May 15-19, 2000
   <a href="/ozone-users/01-2001/http://www.www9.org/">site</a>
  </conference>
  <project>Worlwide Botanical Knowledge Base -
      making botany available on Internet
    <a href="/ozone-users/01-2001/http://wwbota.free.fr/" >site</a>
  </project>
  <a href="/ozone-users/01-2001/http://jmvanel.free.fr/>home page</a>
  <a href="/ozone-users/01-2001/mailto:jmvanel@free.fr">mail (possibly put "wwbota" in
subject to route your mail in relevant folder)</a>
</person>