You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

 

Introduction

OODT is a framework that allows distributed storage and cataloging of objects. To achieve its scalability OODT uses the concept of grid computing.

Idea

Currently OODT uses XMLRPC to enable communication between computers is the grid. "Our version of this library currently sits at 2.0.1, which was released on 28th December 2005." Apache Avro is a more moders data serialization system which also has a RPC implementation. Among the advantages of Avro to XMLRPC are smaller size (serialization can be done to binary or JSON) which means better speed.

Uses of XMLRPC are littered thoughout the OODT code. Sometimes XMLRPC is used in an implementation of an abstract class like XmlRpcCommunicationChannelClient or XmlRpcCommunicationChannelServer. Other times XMLRPC is used directly - like in CrawlDaemon.

So my idea is to first try to abstract the XMLRPC creation and calling logic behind an RPC interface. This will keep the existing functionality the code will have mentions of XMLRPC in as few places as possible.
Then, I will create similar implementations as for XMLRPC that will actually use Avro for object serialization and remote procedure call.
The code will gert the RPC implementation using a factory method for example.

I think abstractisation of the method names and RPC client creations should be straightforward because method names are strings. I see difficutlies with this approach if OODT uses some special arguments that are specific to XMLRPC.

Timeline

Community bonding:
- Get familliar with the OODT project source code
- Set up a GRID like environment which uses OODT
- Get familliar with the Avro library

Week 1-5
Refactor current code to use and abstract RPC interfacte which is implemented using XMLRPC

Week 6-12
Implement the RPC interface using Avro RPC

Throughout the implmentation I plan to write tests that exercise new functionality or that are missing for the old functionality.

Deliverables

- Abstractisation of the RPC framework used in OODT
- Implementation of RPC communication using Apache AVRO

About me
My name is Radu Manole and I am a student at the Alexandru Ioan Cuza Univerisy of IASI, Romania. I am very interested in web services and distributed computing (although I am just a beginner) and I would like to expand my knowledge while contributing to an open source project.

You can contact me at: manole.v.radu@gmail.com

  • No labels