@inproceedings{Uniqueness, author = {Philipp Haller and Martin Odersky}, title = {Capabilities for Uniqueness and Borrowing}, booktitle = {ECOOP 2010, Maribor, Slovenia, June 21-25, 2010.}, pages = {354--378}, year = {2010}, } @article{implementingrpc, title={Implementing remote procedure calls}, author={Birrell, Andrew D and Nelson, Bruce Jay}, journal={ACM Transactions on Computer Systems (TOCS)}, volume={2}, number={1}, pages={39--59}, year={1984}, publisher={ACM} } @article{rmipaper, title={A Distributed Object Model for the Java\^{} T\^{} M System}, author={Wollrath, Ann and Riggs, Roger and Waldo, Jim}, year={1996} } @book{rmibook, title={Java. rmi: The Remote Method Invocation Guide}, author={Pitt, Esmond and McNiff, Kathy}, year={2001}, publisher={Addison-Wesley Longman Publishing Co., Inc.} } @book{critiqueofrpc, title={A critique of the remote procedure call paradigm}, author={Tanenbaum, Andrew Stuart and van Renesse, Robbert}, year={1987} } @inproceedings{rpcoverrdma, title={FaSST: Fast, Scalable and Simple Distributed Transactions with Two-Sided (RDMA) Datagram RPCs}, author={Kalia, Anuj and Kaminsky, Michael and Andersen, David G}, booktitle={12th USENIX Symposium on Operating Systems Design and Implementation (OSDI 16)}, pages={185--201}, organization={USENIX Association} } @inproceedings{sunnfs, title={Design and implementation of the Sun network filesystem}, author={Sandberg, Russel and Goldberg, David and Kleiman, Steve and Walsh, Dan and Lyon, Bob}, booktitle={Proceedings of the Summer USENIX conference}, pages={119--130}, year={1985} } @misc{thrift, title={Apache Thrift}, author={Prunicki, Andrew}, year={2009} } @book{corba, title={CORBA 3 fundamentals and programming}, author={Siegel, Jon and Ph. D.}, volume={2}, year={2000}, publisher={John Wiley \& Sons New York, NY, USA:} } @misc{grpc, title = {gRPC}, author={Google}, url = {http://www.grpc.io/}, note = {Accessed: 2016-11-11}, } @misc{soaparticle1, title = {Exclusive .NET Developer's Journal "Indigo" Interview with Microsoft's Don Box}, author={Derek Ferguson}, url = {http://dotnet.sys-con.com/node/45908}, note = {Accessed: 2016-11-11}, } @misc{corbasite, title = {CORBA-OMG}, author={CORBA}, url = {http://www.corba.org/}, note = {Accessed: 2016-11-11}, } @inproceedings{finagle, title={Your server as a function}, author={Eriksen, Marius}, booktitle={Proceedings of the Seventh Workshop on Programming Languages and Operating Systems}, pages={5}, year={2013}, organization={ACM} } @inproceedings{anycastrpc, title={Anycast-RPC for Wireless Sensor Networks}, author={Bergstrom, Eric and Pandey, Raju}, booktitle={2007 IEEE International Conference on Mobile Adhoc and Sensor Systems}, pages={1--8}, year={2007}, organization={IEEE} } @article{rpcrfc, title={RFC 1831 - RPC: Remote procedure call protocol specification version 2}, author={Srinivasan, Raj}, year={1995} } @misc{microservices1rpc, title={Delving Into the Microservices Architecture}, author={Mueller, John}, year={2015}, url = {http://blog.smartbear.com/microservices/delving-into-the-microservices-architecture/}, } @article{rpcorigin, title={High-level framework for network-based resource sharing}, author={White, James E}, year={1975} } @inproceedings{interweave1, title={Integrating remote invocation and distributed shared state}, author={Tang, Chunqiang and Chen, DeQing and Dwarkadas, Sandhya and Scott, Michael L}, booktitle={Parallel and Distributed Processing Symposium, 2004. Proceedings. 18th International}, pages={30}, year={2004}, organization={IEEE} } @inproceedings{interweave2, title={Interweave: A middleware system for distributed shared state}, author={Chen, DeQing and Dwarkadas, Sandhya and Parthasarathy, Srinivasan and Pinheiro, Eduardo and Scott, Michael L}, booktitle={International Workshop on Languages, Compilers, and Run-Time Systems for Scalable Computers}, pages={207--220}, year={2000}, organization={Springer} } @inproceedings{interweave3, title={Multi-level shared state for distributed systems}, author={Chen, DeQing and Tang, Chunqiang and Chen, Xiangchuan and Dwarkadas, Sandhya and Scott, Michael L}, booktitle={Parallel Processing, 2002. Proceedings. International Conference on}, pages={131--140}, year={2002}, organization={IEEE} } @article{offloading1, title={A survey of computation offloading for mobile systems}, author={Kumar, Karthik and Liu, Jibang and Lu, Yung-Hsiang and Bhargava, Bharat}, journal={Mobile Networks and Applications}, volume={18}, number={1}, pages={129--140}, year={2013}, publisher={Springer} } @misc{ibis, title={Ibis Communication middleware}, author={Ibis}, url = {https://www.cs.vu.nl/ibis/rmi.html}, } @article{cuckoo, title={Cuckoo: flexible compute-intensive task offloading in mobile cloud computing}, author={Zhou, Zhigang and Zhang, Hongli and Ye, Lin and Du, Xiaojiang}, journal={Wireless Communications and Mobile Computing}, year={2016}, publisher={Wiley Online Library} } @inproceedings{maui, title={MAUI: making smartphones last longer with code offload}, author={Cuervo, Eduardo and Balasubramanian, Aruna and Cho, Dae-ki and Wolman, Alec and Saroiu, Stefan and Chandra, Ranveer and Bahl, Paramvir}, booktitle={Proceedings of the 8th international conference on Mobile systems, applications, and services}, pages={49--62}, year={2010}, organization={ACM} } @article{docker, title={Docker: lightweight linux containers for consistent development and deployment}, author={Merkel, Dirk}, journal={Linux Journal}, volume={2014}, number={239}, pages={2}, year={2014}, publisher={Belltown Media} } @inproceedings{selfdest, title={RFID systems and security and privacy implications}, author={Sarma, Sanjay E and Weis, Stephen A and Engels, Daniel W}, booktitle={International Workshop on Cryptographic Hardware and Embedded Systems}, pages={454--469}, year={2002}, organization={Springer} } @misc{oraclenfs, title={Overview of Secure RPC}, author={Oracle}, url = {https://docs.oracle.com/cd/E23823_01/html/816-4557/auth-2.html}, } @misc{capnprotosecure, title={Is Cap'n Proto Secure?}, author={Kenton}, url = {https://capnproto.org/faq.html#is-capn-proto-secure}, } @article{grid1, title={High performance GridRPC middleware}, author={Caniou, Yves and Caron, Eddy and Desprez, Fr{\'e}d{\'e}ric and Nakada, Hidemoto and Tanaka, Yoshio and Seymour, Keith}, journal={Recent Developments in Grid Technology and Applications, Nova Science Publishers}, pages={141--181}, year={2008} } @incollection{gridsolve1, title={Gridsolve: The evolution of a network enabled solver}, author={YarKhan, Asim and Dongarra, Jack and Seymour, Keith}, booktitle={Grid-Based Problem Solving Environments}, pages={215--224}, year={2007}, publisher={Springer} } @article{gridsolve2, title={Interactive Grid-access using Gridsolve and giggle}, author={Hardt, M and Seymour, Keith and Dongarra, Jack and Zapf, M and Ruitter, NV}, journal={Computing and Informatics}, volume={27}, number={2}, pages={233--248}, year={2012} } @article{ninf, title={Ninf-G: A reference implementation of RPC-based programming middleware for Grid computing}, author={Tanaka, Yoshio and Nakada, Hidemoto and Sekiguchi, Satoshi and Suzumura, Toyotaro and Matsuoka, Satoshi}, journal={Journal of Grid computing}, volume={1}, number={1}, pages={41--51}, year={2003}, publisher={Springer} } @article{erlang, title={Concurrent programming in ERLANG}, author={Armstrong, Joe and Virding, Robert and Wikstr{\"o}m, Claes and Williams, Mike}, year={1993}, publisher={Citeseer} } @misc{Apigee, title={gRPC: The Story of Microservices at Square}, author={Surtani, Manick and Ho, Alan}, url = {https://www.youtube.com/watch?v=-2sWDr3Z0Wo}, } @misc{CoreSurfaceAPIs, title={gRPC core APIs}, author={Google}, url = {https://github.com/grpc/grpc/tree/master/src/core}, } @misc{gRPCCompanies, title={About gRPC}, author={Google}, url = {http://www.grpc.io/about/}, } @misc{gRPCLanguages, title={gRPC Documentation}, author={Google}, url = {http://www.grpc.io/docs/}, } @misc{gRPCProtos, title={Google APIs}, author={Google}, url = {https://github.com/googleapis/googleapis/}, } @misc{rpcimage, title={Remote Procedure Call (RPC)}, author={Taing, Nguonly}, url = {http://lycog.com/distributed-systems/remote-procedure-call/}, note = {Image URL: http://lycog.com/wp-content/uploads/2011/03/rpc-10-steps.png} } @misc{trendrpcthrift, title={Remote Procedure Call (RPC)}, author={Google Trends}, url = {https://www.google.com/trends/explore?cat=31&date=today%2012-m&q=apache%20thrift,grpc&hl=en-US} } @misc{grpcauth, title={GRPC Authentication}, author={Google}, url = {http://www.grpc.io/docs/guides/auth.html}, } @misc{rfc707, title={RFC 707: A high-level framework for network-based resource sharing}, author={White, James E}, year={1975}, publisher={December} } @techreport{rfc674, title={RFC 674: Procedure call documents: Version 2}, author={Postel, J and White, JE}, year={1974} } @article{rfc684, title={RFC 684: Commentary on procedure calling as a network protocol}, author={Schantz, Richard}, year={1975} } @misc{grpcbetter, title={GRPC Authentication}, author={Google}, url = {https://www.quora.com/Is-GRPC-better-than-Thrift}, publisher = {Quora} } @misc{multiplexingthrift, title={Added service multiplexing support}, author={Yu, Lixin}, url = {https://github.com/eleme/thriftpy/pull/88/commits/0877531f9246ca993c1d9af5d29cd009ee6ec7d4}, publisher = {Github} } @techreport{rfc5531, title={RFC 5531: RPC: Remote Procedure Call Protocol Specification Version 2}, author={Thurlow, R}, year={2009} } @techreport{rfc1831, title={RFC 1831: RPC: Remote Procedure Call Protocol Specification Version 2}, author={Srinivasan, R}, year={1995} } @misc{grpcchapter, title={gRPC}, booktitle={Programming Models for Distributed Computation}, author={Grosu, P and Abdul Rehman, M and Anderson, E and Pai, V and Miller, H}, url = {http://dist-prog-book.com/chapter/1/gRPC.html}, publisher = {Github} } @misc{stubrpc, title={stub}, author={Rouse, M}, url = {http://whatis.techtarget.com/definition/stub}, publisher = {WhatIs} } @misc{grpcpersec, title={Scalable Realtime Microservices with Kubernetes and gRPC}, author={Mandel, M}, url = {https://www.youtube.com/watch?v=xb8u2s7cxzg&t=486s}, publisher = {YouTube} } @misc{usgdp, title={2016 United States Budget Estimate}, author={InsideGov}, url = {http://federal-budget.insidegov.com/l/119/2016-Estimate}, publisher = {InsideGov} } @incollection{notedistributed, title={A note on distributed computing}, author={Waldo, Jim and Wyant, Geoff and Wollrath, Ann and Kendall, Sam}, booktitle={Mobile Object Systems Towards the Programmable Internet}, pages={49--64}, year={1997}, publisher={Springer} } @misc{dewan, title={Synchronous vs Asynchronous}, author={Dewan, P}, url = {http://www.cs.unc.edu/~dewan/242/s07/notes/ipc/node9.html}, year={2006}, publisher = {UNC} } @misc{async, title={Asynchronous RPC}, url = {https://msdn.microsoft.com/en-us/library/windows/desktop/aa373550(v=vs.85).aspx}, year={2006}, publisher = {Microsoft} } @misc{roi, title={Remote Object Invocation}, author={Setia, S}, url = {https://cs.gmu.edu/~setia/cs707/slides/rmi-imp.pdf}, publisher = {QMU} } @misc{Wiener, title={XML-RPC}, author={Weiner, D}, url = {http://xmlrpc.scripting.com/spec.html}, year={1999}, publisher = {QMU} } @misc{soapvsxml, title={XML-RPC}, author={Jones, M}, url = {https://www.quora.com/What-is-the-difference-between-xml-rpc-and-soap}, year={2014}, publisher = {Quora} } @misc{thrifttut, title={Apache THRIFT: A Much Needed Tutorial}, author={Maheshwar, C}, url = {http://digital-madness.in/blog/wp-content/uploads/2012/11/BSD_08_2013.8-18.pdf}, year={2013}, publisher = {Digital Madness} } @misc{finagletut, title={Finagle-Quickstart}, author={Twitter}, url = {https://twitter.github.io/finagle/guide/Quickstart.html}, year={2016}, publisher = {Twitter} } @misc{norman, title={Communication Fundamentals}, author={Norman, S}, url = {http://slideplayer.com/slide/8555756/}, year={2015}, publisher = {SlideShare} }