|
|
|
Apogee Resource ModelA new thread was started on Apogee list regarding the Apogee resource model.
Anyone willing to participate on this topic may subscribes here: http://lists.nuxeo.com/cgi-bin/mailman/listinfo/apogee
The document describing the Apogee resource model can be found here: http://apogee.nuxeo.org/sections/documentation/apogee-global The resource model is still under development so it may change in future. Here is a short summary of things discussed: Aren't files and folders model restrictive compared with CPS object model ? Can resources have a file and a folder nature in the same time? (this means resources having content as files but also children as folders) Files and folders are handles to real objects described by resource metadatas and that may be put in a tree structure. So that folders are nodes that may contains children and files are terminal nodes. Real objects behind these handles are not affected by the handle type (file or folder) - this is used only to define the resource tree. The real object may be unaware that it is a file or folder in the Apogee resource model. Objects may be of any type. Every resource may support having content - even folders. For example a resource folder may point to a "Link", "Calendar" or wathever object you want even to a "file"having some content in a file system. The same applies for the file resource. It may points to a real folder in a file system ... So the File and Folder properties are defined on the resource level not on the underlying object level. Underlying object are completely described by the associated metadata. Each ECMporvider may defines it's own objects and metadatas - so that Apogee should be able to handle any type of object. This is why the resource model is not defining objects but only basic resources like Site, File and Folders and Metadatas objects that describes the underlying object or content. About containment: How it will be managed for maximum flexibility? Is there envisaged a virtual tree structure to create mixed tree using resources from different ECM providers? Containement is managed at the persistence level - by ECM providers. The resource tree is build by calling ISiteController.getChildren(folder) for each folder resource - operation that is implemented by the corresponding ECM provider - so that the resource tree will reflect the tree structure defined by the provider. For the local ECM provider that will be implemented in Apogee we will use a db4o database. The resources will be stored as objects and the three structure will be defined explicitely by each object by keeping the parent path and the local name of the resource (relative to its parent) Example: Object { parentPath: "path/to/parent"; name: "myName"; } To query for all children for a given folder we may query for all objects having the parentPath equals to the folder path. This is an example. There are also other ways of describing the tree inside db4o. Anyway, we can envisage to define in the resource model "Virtual Sites" owning a resource tree made by resources belonging to other sites having different ECM providers. So that we can create virtual trees of objects. Implementing this is possible. The virtual site should be bound to a special ISiteController implementation that delegates operations to the controller corresponding for the target resource. For example the ISiteController.exists() method can be writted as follow: public boolean exists(ISiteResource resource ) { return resource.getSite().getController().exists(); } Also, the resource should keep a reference to its real site and NOT to the virtual site - so that it is not even aware that is used inside another site. The containment for virtual sites cannot be defined be the ECM providers... since resources from different providers are put together in the same tree. This can be done directly in the resource model (by the virtual site) by using RDF relations between existing resources. Something like: "resource1_URI hasParent resource2_URI" RDF relations can also be easly stored in a db40 database. Communicaion between several ECm providers? For example is publishing a resource to several ECM provider sites working? Yes, operations may be executed between sites. For example a copy operation may allows that the resource to be copied be in other sote than the destination folder where the resource to be copied. The same thing can be done for a publish. Authentication is an ECM Provider function? Using the site controller or how? Yes, supports for authentication will be added in ISiteController API. Are workflows used in the resource model core? I want to keep the resource model core as simple as possible and functionality to be added as extensions and not directly in the core - and plugged into the operation execution logic by using the notification mechanism. Anyway we could add some fonctionality directly in the resource core. This will be decided at the time of designing the functionality. But for workspace or security checks I think they should be implemented by each ECM provider since they need custom workflow and security mechansims. The UNDO/REDO manager is an example of a generic service that may directly implemented in Apogee core (and not by providers) since it manages ISiteOperation objects that are not depending on any ECM provider. Important announcement: Join the Nuxeo team and contribute to the Nuxeo project! We have open positions in France and the UK for open source Java EE developers and sales engineers, both junior and senior. Trackback PingsTrackback URL for this entry:
http://blogs.nuxeo.com/sections/blogs/bogdan_stefanescu/2006_02_21_apogee-resource-model/tbping
Posted by Bogdan Stefanescu @ 02/21/2006 07:39 PM.
-
Categories:
apogee,
eclipse,
nuxeo,
rich_client
-
1 comments
|
Nuxeo Bloggers: Log in! Search Nuxeo Blogs
About this blog
Archives
Categories
Nuxeo Bloggers
Photos and Pictures
|
|
Nuxeo -
Indesko -
Nuxeo 5 Project
All content is copyrighted by their author. CPSSkins is Copyright © 2003-2006 by Jean-Marc Orliaguet. | CPS is Copyright © 2002-2006 by Nuxeo SAS. |