{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2023,10,25]],"date-time":"2023-10-25T17:11:34Z","timestamp":1698253894850},"reference-count":22,"publisher":"Wiley","issue":"1","license":[{"start":{"date-parts":[[2006,10,30]],"date-time":"2006-10-30T00:00:00Z","timestamp":1162166400000},"content-version":"vor","delay-in-days":4685,"URL":"http:\/\/onlinelibrary.wiley.com\/termsAndConditions#vor"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Softw Pract Exp"],"published-print":{"date-parts":[[1994,1]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>Remote\u2010procedure calls (RPCs) allow distributed, high\u2010level 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.<\/jats:p><jats:p>The main contribution of SUPRA\u2010RPC is in addressing the passing of subprograms as RPC parameters. In doing so, SUPRA overcomes a number of technical difficulties, stemming from scoping, side\u2010effects and other sources. Since supporting subprogram RPC parameters is harder than supporting non\u2010subprogram 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 call\u2010 and accept\u2010stubs and the marshaling and unmarshaling routines, the generator constructs out\u2010of\u2010scope access stubs, callback' and callback\u2010handling\u2010stubs, and modified parameter subprograms and others. The SUPRA run\u2010time support manages a run\u2010time symbol table to keep track of referencing environments and out\u2010of\u2010scope objects. When an out\u2010of\u2010scope object is unavailable for access or execution on the server, the object is reached by a synchronous, \u2018under\u2010the\u2010covers\u2019 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\u2010initiated calls or callbacks.<\/jats:p><jats:p>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.<\/jats:p>","DOI":"10.1002\/spe.4380240103","type":"journal-article","created":{"date-parts":[[2006,11,17]],"date-time":"2006-11-17T16:48:57Z","timestamp":1163782137000},"page":"27-49","source":"Crossref","is-referenced-by-count":7,"title":["Supra\u2010RPC: Subprogram parameters in remote procedure calls"],"prefix":"10.1002","volume":"24","author":[{"given":"Alexander D.","family":"Stoyenko","sequence":"first","affiliation":[]}],"member":"311","published-online":{"date-parts":[[2006,10,30]]},"reference":[{"key":"e_1_2_1_2_2","unstructured":"Apollo Computer Incorporated Network Computer System Reference Reference Manual 1987."},{"key":"e_1_2_1_3_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1987.232837"},{"key":"e_1_2_1_4_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1987.232879"},{"key":"e_1_2_1_5_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380180705"},{"key":"e_1_2_1_6_2","doi-asserted-by":"publisher","DOI":"10.1145\/2080.357392"},{"key":"e_1_2_1_7_2","unstructured":"SUN Microsystems Networking on the Sun Workstation Reference Manual February1986."},{"key":"e_1_2_1_8_2","unstructured":"R.Hayes N. C.Hutchinson R. D.Schlichting \u2018Integrating Emerald into a system for mixed\u2010language programming\u2019 Technical Report 88\u201336 Department of Computer Science University of Arizona October1988."},{"key":"e_1_2_1_9_2","unstructured":"S.Manweiler R.HayesandR. D.Schlichting \u2018The MLP system user's guide\u2019 Technical Report 84\u20134 Department of Computer Science University of Arizona February1984."},{"key":"e_1_2_1_10_2","doi-asserted-by":"publisher","DOI":"10.1109\/32.56097"},{"key":"e_1_2_1_11_2","unstructured":"S. A.Yemini G. S.Goldszmidt A. D.Stoyenko Y.\u2010H.WeiandL.Beeck \u2018CONCERT: a high level language approach to heterogeneous distributed systems\u2019 proc. 9th IEEE International Conference on Distributed Computing Systems Newport Beach CA 5\u20139 June 1989."},{"key":"e_1_2_1_12_2","doi-asserted-by":"publisher","DOI":"10.1016\/0743-7315(91)90043-9"},{"key":"e_1_2_1_13_2","unstructured":"A. D.Stoyenko \u2018A general model and mechanisms for model\u2010level heterogeneous RPC interoperability\u2019 Proceedings of the 2nd IEEE Symposium on Parallel and Distributed Processing Dallas TX 9\u201313 December 1990."},{"key":"e_1_2_1_14_2","volume-title":"RPC2 User Manual","author":"Satyanarayanan M.","year":"1986"},{"key":"e_1_2_1_15_2","volume-title":"Parallel communication in a large distributed environment","author":"Satyanarayanan M.","year":"1987"},{"key":"e_1_2_1_16_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1987.233507"},{"key":"e_1_2_1_17_2","unstructured":"B.Liskov T.Bloom D.Gifford R.ScheiflerandW.Wiehl \u2018Communication in the Mercury system\u2019 Proceedings of the Hawaii International Conference on System Sciences Honolulu Hawii January1988."},{"key":"e_1_2_1_18_2","doi-asserted-by":"crossref","unstructured":"B.LiskovandL.Shrira \u2018Promises: linguistic support for efficient asynchronous procedure calls in distributed systems\u2019 Proc. SIGPLAN '88 Conference on Programming Language Design and Implementation Atlanta Georgia June1988.","DOI":"10.1145\/53990.54016"},{"key":"e_1_2_1_19_2","doi-asserted-by":"publisher","DOI":"10.1145\/45059.45061"},{"key":"e_1_2_1_20_2","unstructured":"K. P.L\u00f6hr J.M\u00fcllerandL.Nentwig \u2018DAPHINE: support for distributed applications programming in heterogeneous computer networks\u2019 Proc. 8th IEEE International Conference on Distributed Computing Systems San Jose CA June1988."},{"key":"e_1_2_1_21_2","doi-asserted-by":"publisher","DOI":"10.1145\/69622.357182"},{"key":"e_1_2_1_22_2","unstructured":"A. D.Stoyenko J.Bosch M.Ak\u0161itandT. J.Marlowe \u2018Inverse remote procedure calls\u2019 in revision forJournal of Parallel and Distributed Computing 1993."},{"key":"e_1_2_1_23_2","unstructured":"A. D.Stoyenko \u2018SUPRA\u2010RPC: SUbprogram PaRAmeters in Remote Procedure Calls\u2019 Proc. 3rd IEEE Symposium on Parallel and Distributed Processing Dallas TX December1991."}],"container-title":["Software: Practice and Experience"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.wiley.com\/onlinelibrary\/tdm\/v1\/articles\/10.1002%2Fspe.4380240103","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/pdf\/10.1002\/spe.4380240103","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,10,24]],"date-time":"2023-10-24T23:49:32Z","timestamp":1698191372000},"score":1,"resource":{"primary":{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/10.1002\/spe.4380240103"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1994,1]]},"references-count":22,"journal-issue":{"issue":"1","published-print":{"date-parts":[[1994,1]]}},"alternative-id":["10.1002\/spe.4380240103"],"URL":"https:\/\/doi.org\/10.1002\/spe.4380240103","archive":["Portico"],"relation":{},"ISSN":["0038-0644","1097-024X"],"issn-type":[{"value":"0038-0644","type":"print"},{"value":"1097-024X","type":"electronic"}],"subject":[],"published":{"date-parts":[[1994,1]]}}}