{"title":"SUPRA-RPC: SUbprogram PaRAmeters in Remote Procedure Calls","authors":"A. Stoyen","doi":"10.1002/spe.4380240103","DOIUrl":null,"url":null,"abstract":"Remote-procedure calls (RPCs) allow distributed, high-level language programs to communicate and synchronize in the usual manner via subprogram calls. One of the great challenges in RPC research is to preserve the traditiional call semantics despite the distribution and heterogeneity of the new environment. The main contribution of SUPRA-RPC is in addressing the passing of subprograms as RPC parameters. In doing so, SUPRA overcomes a number of technical difficulties, stemming from scoping, side-effects and other sources. Since supporting subprogram RPC parameters is harder than supporting non-subprogram RPC parameters, the three (of six) components of the SUPRA architecture extend in novel ways the traditional functionality found in their counterparts in other RPC systems. The SUPRA stub generator extracts information not only from remote entry interfaces, but from any scope potentially referenced by a subprogram passed as an RPC parameter. In addition to the usual calland accept-stubs and the marshaling and unmarshaling routines, the generator constructs out-of-scope access stubs, callback’ and callback-handling-stubs, and modified parameter subprograms and others. The SUPRA run-time support manages a runtime symbol table to keep track of referencing environments and out-of-scope objects. When an out-of-scope object is unavailable for access or execution on the server, the object is reached by a synchronous, ‘under-the-covers’ callback. The SUPRA process management supports servers with independent threads of control, manages (possibly nested) callbacks and pools of callback handler threads, and maintains correct identification of thread-initiated calls or callbacks. A SUPRA prototype has been implemented on Sun Unix workstations. The prototype supports C, C++ and CommonLisp programs. A prototype graphical demonstration has been implemented as well, that represents RPC concepts in terms of common life objects and situations.","PeriodicalId":49504,"journal":{"name":"Software-Practice & Experience","volume":null,"pages":null},"PeriodicalIF":2.6000,"publicationDate":"1991-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"19","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Software-Practice & Experience","FirstCategoryId":"94","ListUrlMain":"https://doi.org/10.1002/spe.4380240103","RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q2","JCRName":"COMPUTER SCIENCE, SOFTWARE ENGINEERING","Score":null,"Total":0}
引用次数: 19
Abstract
Remote-procedure calls (RPCs) allow distributed, high-level language programs to communicate and synchronize in the usual manner via subprogram calls. One of the great challenges in RPC research is to preserve the traditiional call semantics despite the distribution and heterogeneity of the new environment. The main contribution of SUPRA-RPC is in addressing the passing of subprograms as RPC parameters. In doing so, SUPRA overcomes a number of technical difficulties, stemming from scoping, side-effects and other sources. Since supporting subprogram RPC parameters is harder than supporting non-subprogram RPC parameters, the three (of six) components of the SUPRA architecture extend in novel ways the traditional functionality found in their counterparts in other RPC systems. The SUPRA stub generator extracts information not only from remote entry interfaces, but from any scope potentially referenced by a subprogram passed as an RPC parameter. In addition to the usual calland accept-stubs and the marshaling and unmarshaling routines, the generator constructs out-of-scope access stubs, callback’ and callback-handling-stubs, and modified parameter subprograms and others. The SUPRA run-time support manages a runtime symbol table to keep track of referencing environments and out-of-scope objects. When an out-of-scope object is unavailable for access or execution on the server, the object is reached by a synchronous, ‘under-the-covers’ callback. The SUPRA process management supports servers with independent threads of control, manages (possibly nested) callbacks and pools of callback handler threads, and maintains correct identification of thread-initiated calls or callbacks. A SUPRA prototype has been implemented on Sun Unix workstations. The prototype supports C, C++ and CommonLisp programs. A prototype graphical demonstration has been implemented as well, that represents RPC concepts in terms of common life objects and situations.
期刊介绍:
Software: Practice and Experience is an internationally respected and rigorously refereed vehicle for the dissemination and discussion of practical experience with new and established software for both systems and applications.
Articles published in the journal must be directly relevant to the design and implementation of software at all levels, from a useful programming technique all the way up to a large scale software system. As the journal’s name suggests, the focus is on practice and experience with software itself. The journal cannot and does not attempt to cover all aspects of software engineering.
The key criterion for publication of a paper is that it makes a contribution from which other persons engaged in software design and implementation might benefit. Originality is also important. Exceptions can be made, however, for cases where apparently well-known techniques do not appear in the readily available literature.
Contributions regularly:
Provide detailed accounts of completed software-system projects which can serve as ‘how-to-do-it’ models for future work in the same field;
Present short reports on programming techniques that can be used in a wide variety of areas;
Document new techniques and tools that aid in solving software construction problems;
Explain methods/techniques that cope with the special demands of large-scale software projects. However, software process and management of software projects are topics deemed to be outside the journal’s scope.
The emphasis is always on practical experience; articles with theoretical or mathematical content are included only in cases where an understanding of the theory will lead to better practical systems.
If it is unclear whether a manuscript is appropriate for publication in this journal, the list of referenced publications will usually provide a strong indication. When there are no references to Software: Practice and Experience papers (or to papers in a journal with a similar scope such as JSS), it is quite likely that the manuscript is not suited for this journal. Additionally, one of the journal’s editors can be contacted for advice on the suitability of a particular topic.