×

客户端-服务器模型的RPC计算理论。 (英语) Zbl 1493.68083号

摘要:使用多层编程语言,程序员可以指定要运行的代码的位置,以减少基于web的客户端-服务器模型的开发工作量,在该模型中,程序员分别编写客户端和服务器程序,并一起测试多个程序。RPC演算是Cooper和Wadler这些语言的基础之一,它在程序员编写任意深度嵌套的客户端-服务器交互时具有对称通信的特性。演算的特性完全通过适合于客户端-服务器模型的蹦床式不对称通信实现。然而,现有的研究只考虑了一种无状态服务器策略,在这种策略中,所有服务器状态都被编码以传输到客户端,因此服务器状态不需要存储在服务器中。它不能总是正确地处理涉及磁盘或数据库的所有有状态操作。为了解决这个问题,我们首先提出了一种新的状态计算,它从程序员的角度完全支持对称通信,并且在其使用蹦床风格的实现中支持非对称通信。所有现有的计算方法要么只提供非对称通信的特性,要么只提出适用于对等模型的对称实现,而不是客户端-服务器模型。其次,用于设计有状态服务器策略的方法基于一个新的位置类型系统,这为客户机-服务器模型的RPC计算理论铺平了道路。除了提出新的状态计算外,该理论还可以改进现有的无状态服务器策略,构建新的状态编码计算,消除现有策略中存在的远程过程调用的运行时检查,并使我们能够设计一种新的混合策略,将这两种策略的优点结合起来。据我们所知,在这三种策略的共同作用下,没有类型化的多层计算为程序员提供对称通信的特性和非对称通信的实现。

MSC公司:

68甲18 函数编程和lambda演算
PDF格式BibTeX公司 XML格式引用

参考文献:

[1] Balat,V.(2006)Ocsigen:使用Objective Caml键入web交互。《2006年ML:2006年ML研讨会论文集》,第84-94页。
[2] Boudol,G.、Luo,Z.、Rezk,T.和Serrano,M.(2012)《关于web应用程序的推理:HOP的操作语义》。ACM事务处理。程序。语言系统。34(2), 10:1-10:40.
[3] Chlipala,A.(2015)《Ur/Web:网络编程的简单模型》。《POPL'15:第42届ACM SIGPLAN-SIGACT编程语言原理研讨会论文集》,第153-165页。
[4] Conway,M.E.(1963)可分离转换图编译器的设计。Commun公司。ACM6(7),396-408.10.1145/366663.366704·Zbl 0116.09605号
[5] Cooper,E.K.和Wadler,P.(2009)《RPC演算》。在PPDP'09:第11届ACM SIGPLAN声明性编程原则和实践会议记录中。美国纽约州纽约市:ACM,第231-242页。
[6] Cooper,E.K.,Lindley,S.,Wadler,P.&Yallop,J.(2007)链接:没有层次的网络编程。FMCO’06:第五届组件和对象形式化方法国际会议论文集。柏林,海德堡:Springer-Verlag,第266-296页。
[7] Flanagan,C.、Sabry,A.、Duba,B.F.和Felleisen,M.(1993)《用延续语编译的本质》。在PLDI’93:ACM SIGPLAN编程语言设计与实现会议论文集。美国纽约州纽约市:ACM,第237-247页。
[8] Ganz,S.E.、Friedman,D.P.和Wand,M.(1999)蹦床风格。在ICFP'99:第四届ACM SIGPLAN函数编程国际会议记录。美国纽约州纽约市:ACM,第18-27页·Zbl 1345.68051号
[9] Gay,S.J.&Hole,M.(1999)客户端-服务器交互的类型和子类型。在ESOP’99:第八届欧洲编程语言和系统研讨会论文集。英国伦敦:施普林格出版社,第74-90页。
[10] Graunke,P.,Findler,R.B.,Krishnamurthi,S.&Felleisen,M.(2001)《网络自动重组程序》。ASE’01:《第16届IEEE自动化软件工程国际会议论文集》,美国哥伦比亚特区华盛顿:IEEE计算机学会,第211-222页。
[11] Krishnamurthi,S.、Hopkins,P.W.、McCarthy,J.、Graunke,P.、Pettyjohn,G.和Felleisen,M.(2007)PLT方案web服务器的实施和使用。高阶符号。计算20(4),431-460.10007/s10990-007-9008-y·Zbl 1129.68330号
[12] Launchbury,J.&Peyton Jones,S.L.(1994)《惰性功能状态线程》。在PLDI’94:ACM SIGPLAN编程语言设计和实现会议记录。美国佛罗里达州奥兰多,第24-35页。
[13] Matthews,J.、Findler,R.B.、Graunke,P.、Krishnamurthi,S.和Felleisen,M.(2004)。自动重新构造web程序。自动。柔和。工程11(4),337-364.10.1023/B:AUSE.000038936.09009.69
[14] McCarthy,J.A.(2009)《自动restful web应用程序:标记模块化可序列化延续》。在ICFP'09:第14届ACM SIGPLAN函数编程国际会议记录。美国纽约州纽约市:ACM,第299-310页·Zbl 1302.68185号
[15] McCarthy,J.A.(2010)《两国解决方案:本地和可序列化延续协议》。在OOPSLA’10:ACM面向对象编程系统语言和应用国际会议论文集。美国纽约州纽约市:ACM,第567-582页。
[16] Murphy VII,T.(2008)移动代码的模式类型。美国宾夕法尼亚州匹兹堡卡内基梅隆大学博士论文。
[17] Murphy VII,T.,Cray,K.,Harper,R.&Pfenning,F.(2004)分布式计算的对称模态lambda演算。在LICS’04:第19届IEEE计算机科学逻辑年会论文集。美国哥伦比亚特区华盛顿:IEEE计算机学会,第286-295页。
[18] Neubauer,M.和Thiemann,P.(2005)通过程序转换从顺序程序到多层应用程序。在POPL'05:第32届ACM SIGPLAN-SIGACT编程语言原理研讨会论文集。美国纽约州纽约市:ACM,第221-232页·兹比尔1369.68149
[19] Queinnec,C.(2004)《延续与网络服务器》。高阶符号。计算17(4),277-295.10007/s10990-004-4866-z
[20] Radanne,G.(2017)《无层网络编程》,巴黎大学狄德罗分校博士论文·Zbl 1483.68055号
[21] Rastogi,A.、Hammer,M.A.和Hicks,M.(2014)《Wysteria:通用混合模式多方计算的编程语言》。2014年IEEE安全与隐私研讨会论文集。美国哥伦比亚特区华盛顿:IEEE计算机协会,第655-670页。
[22] Reynders,B.、Devriese,D.和Piessens,F.(2014)《网络的多层函数反应式编程》。前进!”14:2014年美国计算机学会(ACM)新思想、新范式和编程与软件反思国际研讨会论文集,第55-68页。
[23] Reynolds,J.C.(1972)高阶编程语言的定义解释程序。在ACM’72:ACM年会论文集-第2卷。美国纽约州纽约市:ACM,第717-740页。
[24] Serrano,M.和Berry,G.(2012)《Hop中的多层编程》。Commun公司。ACM55(8),53-59.10.1145/2240236.2240253
[25] Serrano,M.和Prunet,V.(2016)霍普杰斯一瞥。《ICFP’16:第21届ACM SIGPLAN函数编程国际会议论文集》,第180-192页。
[26] Serrano,M.和Queinnec,C.(2010)《Hop的多层语义》。高阶符号。计算23(4),409-4310.1007/s10990-010-9061-9·Zbl 1256.68024号
[27] Serrano,M.,Gallesio,E.&Loitsch,F.(2006)《Hop:一种用于编程web 2.0的语言》。DLS’06:第一届动态语言研讨会论文集,第975-985页。
[28] Timany,A.、Stefanesco,L.、Krogh-Jespersen,M.和Birkedal,L.(2017)状态的一元封装逻辑关系:在runST存在下证明上下文等价性。《PACMPL’17:ACM编程语言会议录》,2(POPL),第64:1-64:28页。
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。