Figure 2: Heterogeneous data managed by Octapy based
CMSs
providers that share common knowledge. In Oc-
tapy3 the information sharing is achieved exchanging
documents, each document has multiple representa-
tions, the default one is called Octapy eXchange Format
(OXF), it is a serialization exposed by all digital ob-
ject through the IOctapyContent interface. OXF exports
both document contents and structures, i.e., the doc-
ument type definition. An OXF serialization allows
to implement and manage remote contents consider-
ing them as local contents, even in the case the CMS
doesn’t have, locally available, the definition of the
remote content type.
From an architecture point of view, Octapy3 have
been organized around three main application levels:
• Documents Definition Layer: it contains software
modules that add functionalities that simplify the
definition of new document types. In Octapy3
the document definition is carried out during the
configuration phase. To pursue this goal XML-
based language Octapy Configuration Markup Lan-
guage (OCML) was defined and used to specify
both application and presentation logic.
• Content Components Layer: one of the main
goals of Octapy3 is to abstract from the content
structure introducing a clear separation among ap-
plication layers. Starting from content descrip-
tion, Octapy3 generates specific software com-
ponents, called “content component”, that repre-
sent the managed contents. These components ex-
pose interfaces used, for example, to manage doc-
uments structure and documents relationships.
• Distributed and Cooperative Layer: Octapy is
designed to build communities of cooperating
knowledge node providers. Therefore, special at-
tention has been paid to support standards for in-
teroperability, such as XML for data representa-
tion, RDF/RDFS (Lassila O., 1998) for semantic
interoperability, Dublin Core metadata set (DC,
1995), Open Archive Initiative protocol (OAI-
PMH, 2001) for metadata exchange among hete-
reogeneous systems.
To achieve these goals we developed Oc-
tapy3 adopting the Component Architecture of
the Zope3/Plone software platform (von Weiter-
shausen P., 2007). On top of this architecture we
first developed the “content components” to imple-
ment the document type definition process, and next
the middleware to make location independent the doc-
ument process management.
In Octapy3 documents are implemented as
classes, more specifically the class OctapyContent im-
plements the document living only in each document
repository, i.e., locally. The classes RemoteObject and
OctapyProxy are used to manage, on a given repository
node, documents located in the rest of the knowledge
community nodes.
In the rest of this section we will describe the main
designed and implemented software components. We
start shortly summarizing the components that imple-
ment the “content component”. Next we focus on the
implementation of the distributed and interoperability
functionalities..
3.1 The Octapy3 content component
The Octapy3 platform is built using a Component Ar-
chitecture model mechanism, in particular for doc-
uments that are the community knowledge building
blocks. The Component Architecture make possi-
ble to abstract from the specific content schemata.
We developed a special Octapy3 component, called
“content components”, that it is in charge to auto-
matically generate software components starting from
document type description written using the OCML
language, see section 3.2 below. The software gener-
ation process is carried out using YODA (Yoda is Oc-
tapy Document Assembler) compiler that generates
both the archetype (von Weitershausen P., 2007) code
and the interfaces describing the document structure.
This interface is an enumeration of attributes for each
Content Type Description field and the corresponding
archetype class that implements this interface, called
“content component”.
A content component implements, see Figure 3,
at least two interfaces: the content type definition and
the IOctapyInterface. This interface is generic in the
sense that it is common to all content components
and exposes the method getContentInteface() and
returns the interface describing the document content
type, i.e. it allows searching for a specific data inter-
face.
Octapy3 allows also handling and managing con-
tent type extensions in a generic way. An adapter,
to the fixed interface IOctapyContent, could add the
Figure 2: Heterogeneous data managed by Octapy based
CMSs.
ument type definition. An OXF serialization allows
to implement and manage remote contents consider-
ing them as local contents, even in the case the CMS
doesn’t have, locally available, the definition of the
remote content type.
From an architecture point of view, Octapy3 have
been organized around three main application levels:
• Documents Definition Layer: it contains software
modules that add functionalities that simplify the
definition of new document types. In Octapy3
the document definition is carried out during the
configuration phase. To pursue this goal XML-
based language Octapy Configuration Markup Lan-
guage (OCML) was defined and used to specify
both application and presentation logic.
• Content Components Layer: one of the main
goals of Octapy3 is to abstract from the content
structure introducing a clear separation among ap-
plication layers. Starting from content descrip-
tion, Octapy3 generates specific software com-
ponents, called “content component”, that repre-
sent the managed contents. These components ex-
pose interfaces used, for example, to manage doc-
uments structure and documents relationships.
• Distributed and Cooperative Layer: Octapy is
designed to build communities of cooperating
knowledge node providers. Therefore, special at-
tention has been paid to support standards for in-
teroperability, such as XML for data representa-
tion, RDF/RDFS (Lassila O., 1998) for semantic
interoperability, Dublin Core metadata set (DC,
1995), Open Archive Initiative protocol (OAI-
PMH, 2001) for metadata exchange among hete-
reogeneous systems.
To achieve these goals we developed Oc-
tapy3 adopting the Component Architecture of
the Zope3/Plone software platform (von Weiter-
shausen P., 2007). On top of this architecture we
first developed the “content components” to imple-
ment the document type definition process, and next
the middleware to make location independent the doc-
ument process management.
In Octapy3 documents are implemented as
classes, more specifically the class OctapyContent im-
plements the document living only in each document
repository, i.e., locally. The classes RemoteObject and
OctapyProxy are used to manage, on a given repository
node, documents located in the rest of the knowledge
community nodes.
In the rest of this section we will describe the main
designed and implemented software components. We
start shortly summarizing the components that imple-
ment the “content component”. Next we focus on the
implementation of the distributed and interoperability
functionalities..
3.1 The Octapy3 Content Component
The Octapy3 platform is built using a Component Ar-
chitecture model mechanism, in particular for doc-
uments that are the community knowledge building
blocks. The Component Architecture make possi-
ble to abstract from the specific content schemata.
We developed a special Octapy3 component, called
“content components”, that it is in charge to auto-
matically generate software components starting from
document type description written using the OCML
language, see section 3.2 below. The software gener-
ation process is carried out using YODA (Yoda is Oc-
tapy Document Assembler) compiler that generates
both the archetype (von Weitershausen P., 2007) code
and the interfaces describing the document structure.
This interface is an enumeration of attributes for each
Content Type Description field and the corresponding
archetype class that implements this interface, called
“content component”.
Figure 3: The Octapy component model.
A COOPERATIVE AND DISTRIBUTED CONTENT MANAGEMENT SYSTEM
143