Show simple item record

dc.contributor.advisorGill, Andy
dc.contributor.authorDawson, Justin Troy
dc.date.accessioned2019-01-01T20:48:55Z
dc.date.available2019-01-01T20:48:55Z
dc.date.issued2018-05-31
dc.date.submitted2018
dc.identifier.otherhttp://dissertations.umi.com/ku:15965
dc.identifier.urihttp://hdl.handle.net/1808/27588
dc.description.abstractRemote Procedure Calls are an integral part of the internet of things and cloud computing. However, remote procedures, by their very nature, have an expensive overhead cost of a network round trip. There have been many optimizations to amortize the network overhead cost, including asynchronous remote calls and batching requests together. In this dissertation, we present a principled way to batch procedure calls together, called the Remote Monad. The support for monadic structures in languages such as Haskell can be utilized to build a staging mechanism for chains of remote procedures. Our specific formulation of remote monads uses natural transformations to make modular and composable network stacks which can automatically bundle requests into packets by breaking up monadic actions into ideal packets. By observing the properties of these primitive operations, we can leverage a number of tactics to maximize the size of the packets. We have created a framework which has been successfully used to implement the industry standard JSON-RPC protocol, a graphical browser-based library, an efficient byte string implementation, a library to communicate with an Arduino board and database queries all of which have automatic bundling enabled. We demonstrate that the result of this investigation is that the cost of implementing bundling for remote monads can be amortized almost for free, when given a user-supplied packet transportation mechanism.
dc.format.extent172 pages
dc.language.isoen
dc.publisherUniversity of Kansas
dc.rightsCopyright held by the author.
dc.subjectComputer science
dc.subjectapplicative functor
dc.subjectbatch request
dc.subjectHaskell
dc.subjectmonad
dc.subjectnatural transformations
dc.subjectremote procedure call
dc.titleThe Remote Monad
dc.typeDissertation
dc.contributor.cmtememberAlexander, Perry
dc.contributor.cmtememberKulkarni, Prasad
dc.contributor.cmtememberLuo, Bo
dc.contributor.cmtememberCamarda, Kyle
dc.thesis.degreeDisciplineElectrical Engineering & Computer Science
dc.thesis.degreeLevelPh.D.
dc.identifier.orcid
dc.rights.accessrightsopenAccess


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record