Sunteți pe pagina 1din 8

Design, Specification, and Implementation of a

Distributed Virtual Community System

Tom Gross
Fraunhofer Institute for Applied Information Technology—FIT
Fraunhofer Gesellschaft
Schloss Birlinghoven
53754 St. Augustin, Germany
tom.gross@fit.fraunhofer.de

print archives. They specify a metadata harvesting


Abstract protocol, which supports the communication between
different digital library components.
In this paper we introduce an open distributed virtual In this paper we present the functional design of the
community system that supports knowledge workers with system, describe the specification, which was done in a
functionality for searching and browsing in pre-print (e- light-weight UML-like [3, 7] approach, and give details
print) archives as well as for sharing and exchanging on the implementation of the overall environment with a
their findings in virtual communities. Its functionality special focus on the component providing the support for
combines the strengths of existing systems for information the virtual communities. The focus of attention in this
retrieval of online literature with those for sharing and paper is on the software engineering approach for the
exchanging documents in groups or communities. Being development of the open and distributed CYCLADES
based on open standards such as the Open Archive environment. The following chapter describes the
Initiatives (OAi) standard and XML-RPC, it allows the requirements analysis and functional design of the
flexible integration of distributed and heterogeneous environment. The next chapter then describes the approach
components. and outcome of the specification of the environment. A
chapter on presenting the implementation of the
environment follows. Conclusions summarise this paper.
1 Introduction
2 Requirements Analysis and Functional
The CYCLADES environment is an open collaborative Design
virtual archive environment that supports knowledge
workers with functionality for searching and browsing in The basic requirements for CYCLADES are to develop
pre-print (e-print) archives as well as for sharing and an environment supporting a broad range of functionality
exchanging their findings in virtual communities. for both individual scholars, who want to search and
Existing systems typically only provide a part of the browse in open archives as well as for communities of
functionality needed. For instance, systems for scholars who want to share and exchange search results. A
information retrieval of online literature such as the digital multi-disciplinary and distributed team with backgrounds
libraries of the ACM and of IEEE for computer science, in digital libraries, databases, information retrieval, Web-
Math-Net for mathematics [8], or arXiv for physics [15] based systems, as well as computer-supported cooperative
mostly focus on a specific discipline. Systems for sharing work and virtual communities analysed the requirements
and exchanging documents in groups or communities such for such an environment and designed the basic
as Wikis [16] or BSCW [6] do not provide functionality functionality. After a first draft for the basic functionality
for information retrieval of online literature. Furthermore, of the system was finished, the requirements and the
both types of systems are—although often Web- envisioned functionality were presented to prospective
based—designed and implemented as stand-alone, closed users, and their feedback was captured via a Web-based
applications. The CYCLADES environment aims to questionnaire A detailed report on the questionnaire and its
combine functionality for information retrieval and for evaluation can be found in [10].
sharing and exchanging information in groups and As a result, the CYCLADES environment integrates a
communities. As, it is compliant to the Open Archive set of functionalities that support the user when accessing
Initiatives (OAi) standard [12], any e-print archives can be very large virtual e-print archives with: functionality for
connected to the CYCLADES environment. The OAi efficient and effective retrieval of relevant information
standards provide a technical and organisational framework from many large, distributed and multi-disciplinary digital
facilitating the discovery of content stored in distributed e- archives; feedback on the degree of relevance of the

Proceedings of the 12th Euromicro Conference on Parallel, Distributed and Network-Based Processing (EUROMICRO-PDP’04)
1066-6192/04 $20.00 © 2004 IEEE
retrieved information; regular information about new recommendation folders. Users can contact recommended
publications in the archive environment, which are users, subscribe to recommended communities that are
relevant to the users’ interests; automatic retrieval of open or contact the manager of closed communities, store
users’ long-term information needs (user profiling); as recommended records, and add recommended collections to
well as rapid dissemination of the search results world- their personal set of collections.
wide. All documents can be rated on a simple scale. The
A special set of features provides communities of median of the ratings is then attached to the document and
scholars with functionality for: the dissemination of visible for any user who has access to the respective
relevant information to community members in the form document. Additionally, annotations containing free text
of recommendations, which are based on collective can be added to documents. Any user who has access to
profiles and behaviour; very easy on-line annotations on the respective document can also see its annotations.
research results published by members of the community; The CYCLADES environment provides two features
carrying out community services such as peer review, for informing users about activities in the CYCLADES
which requires the annotation of on-line manuscripts by environment: event icons and activity reports. Event icons
reviewers, and the sharing of these annotations among are attached to the individual documents and show recent
editors, authors, and others; as well as enabling actions that were performed on the documents (e.g.,
community members to learn from, contribute to, and creation, change, read). Activity reports are sent out daily
collectively build upon the community’s knowledge. via email; they contain information about changes to
In order to use the CYCLADES environment and its documents since the last report was sent out.
functionality users have to register with the system. As More detailed information on the functionality as well
the CYCLADES user interface is Web-based, users as the background in the form of an introduction of grey
simply enter a valid email address in the CYCLADES literature and e-prints, information exchange, and virtual
registration Web page. A registration email is sent to this communities can be found in [9]. We subsequently present
address containing registration information. After the user the specification of this open and distributed CYCLADES
has carried out these steps, the user is registered to environment.
CYCLADES and has a login name, password, and
(empty) home folder. 3 Specification
Users can then log in in order to access their home
folder or add some additional user information such as full The specification of the CYCLADES environment was
name, affiliation, postal address, phone and fax numbers, done with a formal, yet light-weight approach based on
and so forth. Furthermore, users can start working with the unified modelling language (UML) [3, 7]. We used
folders and folder contents. They can create private folders, modelling techniques such as use cases, interaction
community folders, as well as project folders and add diagrams, and class specifications, but simplified the
subfolders and documents to them. Private folders and syntax considerably. The simplification was possible and
community folders can contain metadata records and chosen for two reasons. First, during the beginning of the
queries; project folders additionally can contain any type of project several face-to-face meetings were held, in which
document (e.g., PDF-files, slides, text files). The contents the environment was specified and in which the partners of
of private folders can be seen, accessed, and changed only the project got a thorough idea of their own services as
by its owner. The contents of community and project well as the services provided by the other project partners.
folders can be seen, accessed, and changed by the Secondly, very early in the project the decision was taken
community and project members respectively. Users can to decompose the overall environment into independent
add documents in various ways: they can store records they services, which can treat each other as black boxes and
found in a search and browse activity, they can upload communicate with each other via XML-RPC [14].
documents from the local hard disks, they can add links, Subsequently we will report on the use cases, interaction
and so forth. diagrams, and class specifications.
In order to become member of an existing community
users have two options: either they browse a list of names 3.1 Use Cases
and descriptions of open communities and subscribe to
them according to their interests or they get invited by According to Fowler and Scott a use case can be defined
community managers of closed communities. After a user as: ‘a set of scenarios tied together by a common user
has become a member, the community folder is visible goal’, while a scenario is: ‘a sequence of steps describing
and accessible from the user’s home folder. If users leave a an interaction between a user and a system’ [7, p. 39f].
community, the community folder is removed from their For the specification of the functionality of the
home folder, but is still available for the other community CYCLADES environment verbal descriptions of use cases
members. Only when the last community member leaves were produced. These verbal descriptions could be produced
the community, the community folder is actually deleted. easily and rapidly, which was important because the
For each user the CYCLADES environment generates CYCLADES environment offers a broad range of
recommendations about other users, communities, records, functionality and therefore use cases and because the
and collections, which are stored into special project schedule did not allow much time for this step.

Proceedings of the 12th Euromicro Conference on Parallel, Distributed and Network-Based Processing (EUROMICRO-PDP’04)
1066-6192/04 $20.00 © 2004 IEEE
For some complex use cases the verbal descriptions were in the form of sequence diagrams were primarily used to
combined with activity diagrams. clarify and model the communication between the different
In a first step the overall functionality of the services, which were developed and are being operated at
CYCLADES environment was decomposed into groups of different sites across Europe. An example is shown in
use cases; the groups identified were: use cases for the Figure 1. The interaction diagram shows the interaction
single user, use cases for a community, use cases for a between two users: the inviter on the left side invites the
project, as well as special use cases related to management invitee on the right side to her folder. If the invitee is
activities such as use cases for collection management, already registered and known to the system, he is simply
and use cases for archive management. Examples of use added to the folder’s members list, otherwise the invitee
cases can be found in [5]. has to register to the system first. Other interaction
diagrams can be found in [5].
3.2 Interaction Diagrams
3.3 Class Specifications
Interaction diagrams can be defined as: ‘models that
describe how groups of objects collaborate in some The classes of the CYCLADES environment were
behaviour’; typically they: ‘capture the behaviour of a specified in a very abstract way. Since the different
single use case’ and ‘show a number of example objects partners were using heterogeneous programming
and the messages that are passed between these objects languages and development environments, the class
within the use case’ [7, p.67]. Two types of interaction specifications were written for the purpose of
diagrams can be distinguished—sequence diagrams and communicating the abstract signature of the individual
collaboration diagrams. In sequence diagrams: ‘an object is classes among partners. A detailed description in the
shown as a box at the top of a dashed vertical line’, and in heterogeneous implementation environments and
collaboration diagrams: ‘the example objects are shown as languages would go beyond the scope of this paper.
icons’ [7, p.67ff]
For the CYCLADES environment interaction diagrams

Collaborative
Mediator
Work
Service
Service
Inviter Invitee

request invitation form for adding members to a folder

return invitation form

submit filled-in invitation form with e-mail addresses


(and user names)
create preliminaryusers
indicate new members for e-mail addresses

send registration e-mails


receive
registr.
request user registr. form e-mail
with token
check registr. token
and e-mail address
return user registr. form

submit filled-in user


registr. form

create user and


addUser(userId, name, user’s home folder
passwd)
show folder to which user
has been invited

Figure 1. Interaction diagram for the invitation of another user to a community.

Proceedings of the 12th Euromicro Conference on Parallel, Distributed and Network-Based Processing (EUROMICRO-PDP’04)
1066-6192/04 $20.00 © 2004 IEEE
the Open Archives specification.
4 Implementation • The Search and Browse Service supports the activity of
searching records from the various collections,
The CYCLADES environment consists of several formulating and reusing queries, and browsing
autonomous yet interoperable software components called schemas, attribute values, and metadata records.
services, which run on different machines in different Figure 2 shows the deployment view of the
locations. The individual services have the following CYCLADES environment: The cubicles represent
purposes: nodes—that is machines on which the individual
• The Mediator Service (MS) acts as a registry for the components are running. The left-most cubicle represents
other services—any service of the CYCLADES the user’s machine with the Web browser and various
environment has to register at the MS to be able to windows for the user interfaces of the respective services.
communicate with any other service—and provides The four cubicles in the middle represent machines
security—that is, it checks if a user is entitled to use hosting the distributed CYCLADES services. The three
the system, and ensures that the other services are only cubicles on the right represent instances of open archive
called after proper authentication. servers. The dotted lines visualise the calls between the
• The Collaborative Work Service (CWS) provides a different components (e.g., the graphical user interface of
folder environment for managing records, queries, the Collaborative Work Service calls the Collaborative
collections, documents, and annotations, supports Work Service component, which then in turn calls the
collaboration between users through folder sharing in Filtering and Recommendation Service, Collection
communities and projects. One component or sub- Service, and Rating Management Service components).
service of this service is the Rating Management As a detailed description of all components would go
Service (RMS), which manages ratings. beyond the scope of this paper, we here only focus on the
• The Collection Service (CS) manages collections, thus implementation of the Collaborative Work Service as an
allowing a partitioning of the information space example component.
according to the users’ interests and making the
individual archives transparent to the user. 4.1 Collaborative Work Service—Internal
• The Filtering and Recommendation Service (FRS) Architecture
provides personalised filtering of queries and query
results, recommendations, and personalised folder In this section we will describe the internal architecture
management. of the Collaborative Work Service component, which was
• The Access Service (AS) interacts with the underlying designed and developed at Fraunhofer FIT. Several aspects
metadata archives, currently with archives adhering to such as the interface to the other services have been

Figure 2. Deployment view of the CYCLADES environment.

Proceedings of the 12th Euromicro Conference on Parallel, Distributed and Network-Based Processing (EUROMICRO-PDP’04)
1066-6192/04 $20.00 © 2004 IEEE
realised similarly in other components. ( op_*.py ), interface template files (*.html , *.txt,
The CWS provides its functionality via the graphical *.gif) and configuration modules (config*.py). In order
user interface and via an API to the other CYCLADES to facilitate the independent development of kernel code
services. All user interaction via the graphical user and package code, packages are stored in a separate
interface is mediated by the Mediator Service—that is, directory, (e.g., packages/Cyclades ). Each package
both the interaction of the users with the graphical user directory itself is structured like the kernel directory—that
interface of the CWS and the interaction of the users with is, it contains a subdirectory src for the code and a
the graphical user interfaces of other services. Other messages directory for user interface templates. The icons
services can directly access the CWS functionality via the of a package must be stored in the same directory as the
CWS API. In the case of graphical user interface the kernel’s icons.
communication takes place via HTTP and the format is At the highest level of abstraction the CWS can be fur-
HTML; in the case of the API the communication takes ther decomposed into three layers, which deal with user
place via HTTP and the format is XML and XML-RPC request and API call handling, method and operation han-
(cf. below). dling, and persistent object storage (cf. Figure 4). In the
The CWS consists of a standard Apache Web server user request handling layer the details of the request are
that transmits incoming HTTP requests via CGI to the formatted as an internal representation called a Request,
CWS components that serve on the one hand the user which is then dispatched to a particular operation han-
operations and on the other hand the API calls (cf. Figure dler. In the API call handling layer the call is translated
3). into internal format, its parameters are checked for correct-
ness, and the call is
dispatched to particu-
browser interface API interface lar method handler.
Both operation and
HTTP responses HTTP responses method handlers im-
HTTP GET/POST
(HTML) (XML-RPC)
HTTP POST requests
plement the function-
requests (XML-RPC) ality requested, such
as getting the con-
Standard
StandardWeb
WebServer
Server tents of a community
CGI interfaces folder, or saving re-
bscw rpc2
sults from a search
BSCW
BSCWKernel
Kernel CWS
CWSAPI
API and browse session.
The operation and
CWS
CWS‘Cyclades’
‘Cyclades’package
package method handlers inter-
act with the persis-
Figure 3. CWS components. tent store to process
the request or call,
The CWS is based on the Basic Support for creating, deleting and modifying objects as necessary,
Cooperative Work system (BSCW) [2]. BSCW supports before generating a response. The response is returned to
Web-based shared workspaces (called folders in the the request or call handling layer for translation into a
CYCLADES terminology) and provides basic concrete format suitable for the access method employed.
collaboration support that is adapted and extended for So, for requests via the API the response format is XML-
CYCLADES. The private, project, and community folders RPC, and for requests via the graphical user interface the
are implemented on top of BSCW shared workspaces. The format is HTML, which can be displayed in the Web
BSCW kernel provides a modular extension of the World- browser. Each of these three layers provides a well-defined
Wide Web’s client-server architecture without requiring interface, and it is possible to extend the CWS and
modification to Web clients, servers or protocols. The integrate specialised application services at each level. As
core is a standard Web server extended with the BSCW well as introducing new request handling components for
kernel software, providing the basic shared workspace different methods of access, new operation handlers can be
functionality. BSCW is extended for implementing the added to provide new functionality or as wrappers around
CWS functionality via BSCW’s package mechanism. A application services, and the persistent store can be
separate component handles the incoming API calls accessed to store new kinds of objects without modifying
(translation and dispatch). the storage routines themselves.
The BSCW package mechanism allows programmers As has been said, a core requirement for the
to enhance the BSCW kernel by additional software CYCLADES environment was an open and flexible
packages, which may be added or removed at run-time. architecture allowing the designers and implementers to
The implementation of external packages is organised just run services in a distributed and heterogeneous
like the kernel. It may consist of class definition modules environment as well as to easily add and remove
(cl_*.py), utility modules (bs_*.py), operation handlers components upon request of the users. One central aspect

Proceedings of the 12th Euromicro Conference on Parallel, Distributed and Network-Based Processing (EUROMICRO-PDP’04)
1066-6192/04 $20.00 © 2004 IEEE
API method call and Method handlers
response handling

Get
call Children
Method call Procedure

bscw
rpc2
HTTP

rpc2
Requests and response checking and Save
translation response dispatching results
Standard Persistent
Web Object
Server request Storage
HTTP
List
bscw
Responses Request and Request and
response response documents
translation response dispatching Add
member

User request and User operation


response handling handlers

Figure 4. CWS server kernel.

of the overall architecture is, therefore, the communication Method calls consist of the method name and zero or
among components, which will be described subsequently more parameters. A method response contains a single
in detail. parameter or a fault consisting of a fault code and a fault
string which are encoded in XML.
4.2 Communication Protocol XML-RPC supports the following six scalar data
types: int: a 32 bit signed integer; boolean: either 1 (true)
The services of the CYCLADES environment or 0 (false); string: a string containing any character
communicate via HTTP. The internal communication except ‘<’ and ‘&’ (they are encoded as ‘&lt’ and ‘&amp’);
among the services works with HTTP and XML-RPC. double: a double-precision signed floating point number;
XML-RPC is a simple protocol for implementing dateTime.iso8601: date and time encoded in the compact
cross-platform, distributed applications [14]. As its name version of the ISO 8601 standard; and base64: base64
suggests, communication between the distributed encoded binary data; as well as two compound data types
applications is done via remote procedure calls. The XML- struct: a collection of members consisting of a name and a
RPC protocol is based on Internet standards: method calls value (names are strings and values may be of any XML-
and responses are transmitted using HTTP, and the bodies RPC data type) and array: a one-dimensional array of
of the calls and responses are encoded in XML. Compared values encoded as a single data element with any number
to SOAP [4] XML-RPC is very simple and light- of values; values may be of any type including structs and
weight—for instance, the headers that have to be included arrays; mixing of types in one array is possible. A
in each individual message call are much smaller and complete specification of the protocol including the HTTP
simpler—and consequently very well suited for the header requirements can be found in [14].
purpose of the CYCLADES environment. In the CYCLADES environment the XML-RPC
There are implementations for XML-RPC available for protocol is used for the communication between the
numerous platforms (Unix, Windows and Mac OS X) and services—the input and output parameters of the
programming languages (C, C++, Java, Perl, PHP, individual methods had to correspond to the encoding
Python, Tcl and others). Many of the implementations are described below.
open source and free to use. The following example shows From the XML-RPC definition it is clear that the
a simple XML-RPC method call (without the HTTP input parameter list of a method is a <params> construct
header). consisting of zero or more single <param>s each having a
<value> of a certain data type, so that the following two
<methodCall> examples are are both legal method calls:
<methodName>sample.sumAndDiff</methodName>
<params> <methodCall>
<param><value><int>5</int> <methodName>listCollections</methodName>
</value></param> <params></params>
<param><value><int>3</int> </methodCall>
</value></param>
</params>
</methodCall>

Proceedings of the 12th Euromicro Conference on Parallel, Distributed and Network-Based Processing (EUROMICRO-PDP’04)
1066-6192/04 $20.00 © 2004 IEEE
<methodCall> Management Service. Since object identifiers are strings,
<methodName>saveRating</methodName> they are encoded like other strings (e.g., <string>
<params> CW_1001</string>).
<param><value><string>CW_1001</string> Objects of a certain CYCLADES class such as records
</value></param>
<param><value><double>2.55</double>
and queries are encoded as <struct> s where the
</value></param> <member>s correspond to the class attributes. A record
</params> with attributes id, name and metadata is consequently
</methodCall> encoded as follows:

Consequently, no specific construct is needed for <struct>


encoding the tuple of input parameters, even if it is <member>
<name>id</name>
empty. This is not true for the output parameters. The
<value>
definition states that the output of a method in the non- <string>AC_http://arXiv.org/abs/
fault case is a <params> construct consisting of exactly alg-geom/9712032</string>
one <param> having a <value> of a certain data type. </value>
Therefore, an empty output value (void) and a tuple of </member>
output parameters need a specific encoding. <member>
A review of the signatures of the CYCLADES service <name>name</name>
methods shows that there are the following kinds of <value>
parameters: booleans; integers (e.g., fault codes); floating <string>A morphism of intersection
point numbers (e.g., term weights); strings (e.g., object homology</string>
</value>
names and descriptions); timestamps; void representing </member>
the empty return value; object identifiers (e.g., identifiers <member>
of users, folders, records); objects of a certain class (e.g., a <name>metadata</name>
record or a query); tuples (e.g., a pair of object identifier <value>
and string); lists of object identifiers, objects or tuples. <string>?xml version="1.0"?>record>...
There is currently no use of binary data in /record></string>
CYCLADES method signatures. We treat the encoding of </value>
the different kinds of parameters in the order they appear in </member>
the above list. </struct>
Booleans, integers and floating-point numbers are
encoded in the corresponding XML-RPC scalar types Since nesting of <struct>s and <array>s is possible,
<boolean> , <int> and <double> . Boolean t r u e is attribute values may also be lists, tuples or other objects.
encoded as <boolean>1</boolean>, and boolean false is Class attributes may have no value assigned in a particular
encoded as <boolean>0</boolean>. instance (e.g., the classifier label attribute of a record may
Strings are meant to be Unicode strings. If no other be undefined as may be the query string of a query).
encoding is given in the XML header of the XML-RPC Tuples and lists are encoded as <array>s. Since
message, the standard XML encoding UTF-8 is used. For <array>s may contain values of different types, and since
8-bit strings entered into the system at the browser nesting of a <array> s and <struct>s is possible, no
interface, it will be impossible to determine the correct problems arise with tuples containing objects, lists of
interpretation since the interpretation is a browser setting objects or other tuples.
not accessible to a service with a user interface. For Fault codes are reported in XML-RPC as a distinct type
instance, for the CWS a Latin-1 interpretation is used as of method response: a struct having as members a fault
default. code and a fault string. In CYCLADES, there are general
Timestamps are encoded in the <dateTime.iso8601> fault codes and strings to be used by all services in a
data type, which uses the compact version of the ISO unified way. Additionally, there are specific fault codes and
8601 standard, (e.g., <dateTime.iso8601>20011209T22 strings that every service may define and use. The exact
:10:01</dateTime.iso8601>. All timestamps are in values of fault codes and fault strings are defined by the
Universal Time Coordinated (UTC). respective service. CYCLADES fault codes start at 10000,
Object identifiers in CYCLADES are printable ASCII the assignment to the services is as follows:
strings (Unicode ordinal numbers 32–127) with a length • 10,000-10,999: CYCLADES general fault codes
greater than three. The first two characters denote the • 11,000-11,999: Access Service fault codes
service, which generated the identifier, the third character • 12,000-12,999: Search and Browse Service fault codes
is a separator, an underscore, and the rest of the object • 13,000-13,999: Filtering and Recommendation Service
identifier is the service internal object identifier. Service fault codes
denotations are: ME: Mediator Service, CO: Collection • 14,000-14,999: Collection Service fault codes
Service, FR: Filtering and Recommendation Service, AC: • 15,000-15,999: Collaborative Work Service fault codes
Access Service, SB: Search and Browse Service, CW: • 16,000-16,999: Rating Management Service fault
Collaborative Work Service, and RM: Rating codes

Proceedings of the 12th Euromicro Conference on Parallel, Distributed and Network-Based Processing (EUROMICRO-PDP’04)
1066-6192/04 $20.00 © 2004 IEEE
• 17,000-17,999: Mediator Service fault codes anonymous reviewers for comments on the initially
The mapping of XML-RPC data types to the major submitted version of this paper.
programming languages used in CYCLADES—Java and
Python—is done as follows. For Java, the Helma XML- References
RPC implementation [11] or its adaptation as Apache
XML-RPC [1] are used. The XML-RPC data types map 1. ApacheSoftwareFoundation. XML-RPC - Apache
to the following Java data types: XML-RPC. http://ws.apache.org/xmlrpc/, 2003.
• <int> maps to java.lang.Integer (Accessed 23/10/2003).
• <boolean> maps to java.lang.Boolean 2. Bentley, R., Appelt, W., Busbach, U., Hinrichs, E.,
Kerr, D., Sikkel, K., Trevor, J. and Woetzel, G. Basic
• <string> maps to java.lang.String Support for Cooperative Work on the World-Wide Web.
• <double> maps to java.lang.Double International Journal of Human Computer Studies:
• <dateTime.iso8601> maps to java.util.Date Special Issue on Novel Applications of the WWW
• <struct> maps to java.util.Hashtable (Spring 1997).
• <array> maps to java.util.Vector 3. Berners-Lee, T., Cailliau, R., Loutonen, A., Nielsen,
H.F. and Secret, A. UML 2001: A Standardisation
• <base64> maps to byte[ ] Odyssey. Communications of the ACM 29, 10 (Oct.
For Python the xmlrpclib from Secret Labs, which has 1999). pp. 29-37.
three extra classes to cater for some XML-RPC data types 4. Box, D., Ehnebuske, D., Kakivaya, G., Layman, A.,
not readily available in Python [13]. The mapping of data Mendelsohn, N., Nielsen, H.F., Thatte, S. and Winer, D.
types is as follows: Simple Object Access Protocol (SOAP). W3C,
• <int> maps to int http://www.w3.org/TR/SOAP/, 2003. (Accessed
• <boolean> maps to xmlrpclib.Boolean 23/10/2003).
5. Candela, L., Castelli, D., Fischer, G., Fuhr, N., Gross,
• <string> maps to string or unicode T., Kreifelts, T., Pagano, P., Papadopoulos, N.,
• <double> maps to float Plexousakis, D., Renda, M.E., Sebastiani, F. and
• <dateTime.iso8601> maps to xmlrpclib.DateTime Straccia, U. Detailed System Specification Report.
• <struct> maps to dictionary Deliverable D 3.0.1 of the IST-2000-25456 project
• <array> maps to list or tuple CYCLADES, partly funded by the EC. CNR—Consiglio
Nazionale delle Ricerche, 56124 Pisa, Italy, Feb. 2002.
• <base64> maps to xmlrpclib.Binary 6. FIT. BSCW Home Page. Fraunhofer FIT and OrbiTeam
This communication is used in many cases. For Software GmbH, http://bscw.fit.fraunhofer.de, 2003.
instance, the Collaborative Work Service notifies the (Accessed 23/10/2003).
Filtering and Recommendation Service when community 7. Fowler, M. and Scott, K. UML Distilled: A Brief Guide t o
folders are created or deleted, or when recommendation the Standard Object Modelling Language. Addison-
preferences are changed via the FRS API methods Wesley, Reading, MA, 2000.
addfolder(), deleteFolder(), setRecommendation- 8. Groetschel, M. Math-Net. http://www.math-net.org/,
Preferences(). 2002. (Accessed 19/6/2002).
9. Gross, T. CYCLADES: A Distributed System for Virtual
Community Support Based on Open Archives. In
5 Conclusions Proceedings of the Eleventh Euromicro Conference o n
Parallel, Distributed, and Network-Based Processing -
In this paper we have reported on the design, PDP 2003 (Feb. 5-7, Genova, Italy). IEEE Computer
specification, and implementation of an open collaborative Society Press, Los Alamitos, CA, 2003. pp. 484-491.
virtual archive environment. We have presented the 10. Gross, T. and Kreifelts, T. Sharing and Exchanging
functional design of the system, described the Knowledge in Virtual Communities: The CYCLADES
specification, which was done in a lightweight UML-like System. In Proceedings of the Tenth International
approach, and gave details on the implementation of the Information Management Talks - IDIMT 2002 (Sept. 11-
13, Zadov, Czech Republic). Universitaetsverlag Rudolf
overall environment with a special focus on the Trauner, Linz, 2002. pp. 71-81.
component providing the support for the virtual 11. Helma. XML-RPC for Java. http://xmlrpc.helma.org/,
communities. The main goal of this paper was to present 2002. (Accessed 23/10/2003).
an approach for the development of an open, distributed, 12. OAi. Open Archives Initiative. http://www.
and heterogeneous environment based on open standards. openarchives.org/, 2003. (Accessed 25/1/2003).
13. SecretLabsAB. XML-RPC for Python. http://www.
Acknowledgments pythonware.com/products/xmlrpc, 2003. (Accessed
23/10/2003).
The research presented here was carried out in the IST- 14. UserLandSoftwareInc. XML-RPC Home Page. http://
www.xmlrpc.com/, 2003. (Accessed 23/5/2003).
2000-25456 project CYCLADES, partly funded by the 15. Webmaster. arXiv.org. http://arxiv.org, 2002.
EC. I would like to thank my colleagues from the (Accessed 19/6/2002).
CYCLADES team at Fraunhofer FIT as well as at 16. Wiki. Wiki: Welcome Visitors. http://wiki.org/, 2003.
ERCIM, CNR, FORTH, and UNIDO. Thanks to the (Accessed 23/10/2003).

Proceedings of the 12th Euromicro Conference on Parallel, Distributed and Network-Based Processing (EUROMICRO-PDP’04)
1066-6192/04 $20.00 © 2004 IEEE

S-ar putea să vă placă și