Goals

    • This page describes an upgrade strategy from OODT deployments which exist using the legacy XMLRPC implementation for enabling cross-platform distributed computing tasks to the new AvroRPC implementation packaged into OODT 1.9-SNAPSHOT and above.
    • This page exists for OODT users who may currently be using OODT XMLRPC implementations such as XmlRpcFileManager, XmlRpcFileManagerClient, XmlRpcResourceManager, XmlRpcResourceManagerClient, XmlRpcBatchStub, XmlRpcWorkflowManager, XmlRpcWorkflowManagerClient, and need to transition such implementations to the AvroRPC architecture.
    • The overarching goal of this upgrade guide is to make this easy... we are working on it!

Background and strategic fit

XML-RPC is a remote procedure call (RPC) protocol which uses XML to encode its calls and HTTP as a transport mechanism. The XML-RPC protocol was originally created in 1998 and over the years, as new functionality was introduced, the standard evolved into what became SOAP.

Recent critics (from 2010 and onwards) of XML-RPC argue that RPC calls can be made with plain XML, and that XML-RPC does not add any value over XML. Both XML-RPC and XML require an application-level data model, such as which field names are defined in the XML schema or the parameter names in XML-RPC. Furthermore, XML-RPC uses about 4 times the number of bytes compared to plain XML to encode the same objects, which is itself verbose compared to JSON.

With this in mind, we implemented a new, improved RPC implementation within OODT which leverages Apache Avro's RPC capability.

Avro; a data serialization framework, provides:

  • Rich data structures.
  • A compact, fast, binary data format.
  • A container file, to store persistent data.
  • Remote procedure call (RPC).
  • Simple integration with dynamic languages. Code generation is not required to read or write data files nor to use or implement RPC protocols. Code generation as an optional optimization, only worth implementing for statically typed languages.

Assumptions

  • Readers are familiar with OODT data system configuration e.g. accessing filemgr.properties, workflow.properties, resource.properties, etc.
  • We encourage users to comment on the wiki with improvements or over on dev@oodt.apache.org. The aim is for this document to enable smooth transition for our users as we upgrade OODT's RPC performance.

User interaction and design

Configuration Architecture e.g. How to Upgrade

The content below guides users through the actual steps required to upgrade OODT's core systems from XMLRPC → AvroRPC

File Manager


Workflow Manager

Resource Manager

Questions

Below is a list of questions to be addressed as a result of this requirements document:

QuestionOutcome

Not Doing