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

Ozone Doc Project: Dev doc start...



Ozone Documentation Project

Ozone Developer Documentation TOC

Hi everyone, this is a very modest start. It is the TOC from which, I hope, 
something appropriate will come out. Remember I volunteered for the Ozone 
Doc Project, but I am just an Ozone newbie. So of course my effort here is 
certainly full of flaws!!! It is pretty short also: at this point, I expect 
my work to be completely remodeled (if not scrapped). It is just meant to 
serve as ignition. I'm looking for comments/advices/flames from Ozone 
experts here, on top  of everything... Please correct me, guide me, make 
suggestions!

Intro
----------------------------------------
This section serves as a general presentation of Ozone - I think it could 
be common to dev/user/admin docs


-Who is behind Ozone
-Ozone's goals, philsophy, target uses and users
-What Ozone is and what it is not (Object Server vs OODBMS)
-Credits
-Who can contribute

Architecture
----------------------------------------
The Architecture section provides a high-level view of Ozone's components. 
What do you think about a layered approach, such as the following, to 
describe the architecture?

- Client application
	-ExternalDatabase (an abtraction of the underlying db)
	-Proxies vs _impl vs OzoneRemote (the opp phase)
	...

- Ozone communication
	-RemoteDatabase
	-Protocol
	-Connection management (pooling, multithreading issues)
	...

- Ozone core/kernel
	-Transactions
	-Storage
	...

Here I suggest a high-level diagram (not UML, something less OO, more 
abstract). Maybe I could submit a diagram in Visio; Ozone could have its 
own notation, as far as representing architectural concepts is concerned.


Exploring Ozone's Internals
----------------------------------------

Here I suggest to "explode" every architectural layer and describe the 
components involved("components" being a very generic term that 
means  "packages, classes, interfaces, libraries..."), from the general 
(explaining concepts beind implementation, interaction with other 
components, etc) to the specifics (code excerpts, which class/interface 
does what, under what conditions, etc.)


1. Client-Side

1.1. ExternalDatabase: connecting to Ozone (local vs remote, how it is done)	

1.2. OzoneProxy: creating, what is under the hood of a proxy; how it is 
linked to a database

...

2. Ozone server

2.1. The Protocol - the ozoneDB.core.DBRemote package

2.2. The Server's components : concepts, classes: Server, Env, InvokeServer 
(ozoneDB and ozoneDB.core) I think the Env class needs a lot of 
explanation. It seems to be the heart of Ozone, right?

2.3. Connection management: ExternalDatabase vs pooling, multithreading; 
DBClient vs DBLocalClient

3. Ozone core/kernel

	-Management of proxies and _impl instances within
	the server
	-Transactions
	-Storage (containers, clusters, etc.);
	...


I am still digging, digging... Orientation welcome. Waiting for input. Cheers.

Yanick