Developing Honest Java Programs with Diogenes

Developing Honest Java Programs with Diogenes
复制标题

使用 Diogenes 开发诚实的 Java 程序

DOI:
10.1007/978-3-319-39570-8_4
复制
发表时间:
2016
期刊:
ArXiv
影响因子:
--
通讯作者:
Massimo Bartoletti
Massimo Bartoletti
中科院分区:
--
文献类型:
--
作者:
Nicola Atzei;Massimo Bartoletti

文献摘要

参考文献

被引文献

相似文献

现代分布式应用程序通常是通过将新代码与遗留的和可能不受信任的第三方服务集成来获得的。最近的一些工作提议通过行为合同来约束这些服务之间的互动。其思想是动态发现和组合服务,只有那些具有合规合同的服务才能进行交互,并监控其执行以检测和制裁违反合同的行为。在这种情况下,如果一个服务总是遵守它所遵守的契约,那么它就是诚实的。诚实是至关重要的,因为它保证了服务不会被制裁;此外,诚实服务的组成是无死锁的。然而,开发诚实的程序并不是一件容易的事情,因为即使在意外或恶意的情况下也必须尊重合同。在本文中,我们提出了第欧根尼,一套工具,支持程序员编写诚实的Java程序。通过Eclipse插件,程序员可以编写服务的规范,验证其诚实性,并将其转换为框架Java程序。然后,他们可以将这个框架细化为适当的Java代码,并使用该工具来验证它的诚实性没有受到细化的影响。
Modern distributed applications are typically obtained by integrating new code with legacy and possibly untrusted third-party services. Some recent works have proposed to discipline the interaction among these services through behavioural contracts. The idea is a dynamic discovery and composition of services, where only those with compliant contracts can interact, and their execution is monitored to detect and sanction contract breaches. In this setting, a service is said honest if it always respects the contracts it advertises. Being honest is crucial, because it guarantees a service not to be sanctioned; further, compositions of honest services are deadlock-free. However, developing honest programs is not an easy task, because contracts must be respected even in the presence of failures whether accidental or malicious of the context. In this paper we present Diogenes, a suite of tools which supports programmers in writing honest Java programs. Through an Eclipse plugin, programmers can write a specification of the service, verify its honesty, and translate it into a skeletal Java program. Then, they can refine this skeleton into proper Java code, and use the tool to verify that its honesty has not been compromised by the refinement.
打字诚实
DOI: 10.2168/lmcs-12(4:7)2016
发表时间: 2017
影响因子: 0.6
作者:
Bartoletti M
通讯作者: Bartoletti M