{Assembling a collection of typed data into a form suitable for being sent across a network (marshalling) is one of the basic functionalities of any distributed system. This job is typically done by means of pieces of code (stubs) tailored to each type and linked to every process that needs them. This paper presents a novel approach where it is a single module, called the Marshalling Machine (MM), that performs marshalling by using a description of the data structure to be transferred. Such a description is in fact a program written in a simple assembly-like language specialized for marshalling, and MM is an interpreter for this language. The design and implementation of both MM and its language are discussed in detail. The performance of a prototype is analysed, and it is shown that the potential performance loss intrinsic to this interpreted approach is unlikely to be a practical issue. The reason is because, essentially, the cost of decoding instructions of the MM language is negligible compared to the fixed costs of the entire message-passing machinery. Motivations for this work are the potential advantages of an MM-based run-time system over a traditional approach based on compiled stubs. These advantages are discussed extensively, and include greater flexibility, simpler generation of distributed programs, a smaller number of memory-to-memory copies in the message-passing machinery, and elegant accommodation of services whose interface is discovered at run-time. {\copyright} 1997 by John Wiley \& Sons, Ltd.}

A Novel Approach to Marshalling

BARTOLI, Alberto
1997-01-01

Abstract

{Assembling a collection of typed data into a form suitable for being sent across a network (marshalling) is one of the basic functionalities of any distributed system. This job is typically done by means of pieces of code (stubs) tailored to each type and linked to every process that needs them. This paper presents a novel approach where it is a single module, called the Marshalling Machine (MM), that performs marshalling by using a description of the data structure to be transferred. Such a description is in fact a program written in a simple assembly-like language specialized for marshalling, and MM is an interpreter for this language. The design and implementation of both MM and its language are discussed in detail. The performance of a prototype is analysed, and it is shown that the potential performance loss intrinsic to this interpreted approach is unlikely to be a practical issue. The reason is because, essentially, the cost of decoding instructions of the MM language is negligible compared to the fixed costs of the entire message-passing machinery. Motivations for this work are the potential advantages of an MM-based run-time system over a traditional approach based on compiled stubs. These advantages are discussed extensively, and include greater flexibility, simpler generation of distributed programs, a smaller number of memory-to-memory copies in the message-passing machinery, and elegant accommodation of services whose interface is discovered at run-time. {\copyright} 1997 by John Wiley \& Sons, Ltd.}
1997
http://dx.doi.org/10.1002/(SICI)1097-024X(199701)27:1\%3C63::AID-SPE74\%3E3.0.CO;2-A
File in questo prodotto:
Non ci sono file associati a questo prodotto.
Pubblicazioni consigliate

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/11368/2560089
 Avviso

Registrazione in corso di verifica.
La registrazione di questo prodotto non è ancora stata validata in ArTS.

Citazioni
  • ???jsp.display-item.citation.pmc??? ND
  • Scopus 4
  • ???jsp.display-item.citation.isi??? 5
social impact