首页 > 最新文献

Principles and Practice of Programming in Java最新文献

英文 中文
A serialization based approach for strong mobility of shared object 一种基于序列化的共享对象强移动性方法
Pub Date : 2007-09-05 DOI: 10.1145/1294325.1294359
Soumaya Marzouk, M. B. Jemaa, M. Jmaiel
Mobility becomes very important in distributed Computing. Thus, many works deal with process strong mobility, but few of them deal with mobility of shared objects. In this paper, we present a mobility approach based on source code transformation, which allows strong mobile processes to communicate via remote shared objects. This approach enables shared object strong mobility. We demonstrate how both strong mobile processes and strong mobile shared objects can migrate at the same time while maintaining consistency of the application execution. We implemented our approach on Java Threads, using Java RMI. The evaluation of execution times shows that the overhead is very small compared to the original execution time.
在分布式计算中,移动性变得非常重要。因此,处理过程强移动性的作品较多,但处理共享对象移动性的作品较少。在本文中,我们提出了一种基于源代码转换的移动性方法,该方法允许强移动性进程通过远程共享对象进行通信。这种方法使共享对象具有较强的移动性。我们演示了强移动进程和强移动共享对象如何同时迁移,同时保持应用程序执行的一致性。我们使用Java RMI在Java线程上实现了我们的方法。对执行时间的评估表明,与原始执行时间相比,开销非常小。
{"title":"A serialization based approach for strong mobility of shared object","authors":"Soumaya Marzouk, M. B. Jemaa, M. Jmaiel","doi":"10.1145/1294325.1294359","DOIUrl":"https://doi.org/10.1145/1294325.1294359","url":null,"abstract":"Mobility becomes very important in distributed Computing. Thus, many works deal with process strong mobility, but few of them deal with mobility of shared objects. In this paper, we present a mobility approach based on source code transformation, which allows strong mobile processes to communicate via remote shared objects. This approach enables shared object strong mobility. We demonstrate how both strong mobile processes and strong mobile shared objects can migrate at the same time while maintaining consistency of the application execution. We implemented our approach on Java Threads, using Java RMI. The evaluation of execution times shows that the overhead is very small compared to the original execution time.","PeriodicalId":169989,"journal":{"name":"Principles and Practice of Programming in Java","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131265630","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 3
A Java toolkit for the design and the automatic checking of server architectures 一个用于设计和自动检查服务器体系结构的Java工具包
Pub Date : 2007-09-05 DOI: 10.1145/1294325.1294341
G. Loyauté, R. Forax, G. Roussel
This paper presents Saburo, a Java toolkit that generates, from a single Java specification, Java Internet server implementations, together with their formal model that can be automatically checked using the model checker SPIN. This approach ensures the coherence between the Internet server behavior and the static verifications applied on its formal model. Moreover, the use of the Java language as a unique input specification should help the dissemination of formal verification techniques. To simplify the automatic abstraction of the formal model, the Saburo approach is based on the separation of concerns principle. The Java specification is decomposed into three parts: a concurrency model chosen among several predefined ones, a graph describing all the communication and synchronization, and the business code. This approach has two main advantages: the change of the concurrency model is straightforward, and the classical problem of state explosion induced by the automatic extraction of the formal model from the source code is minimized. This work blends together a set of features coming from server design, compilers, software engineering and formal verification. Even though we do not claim novelty in each of the techniques adopted for Saburo, they have been unified into our Java toolkit, which supports all server design phases.
本文介绍了Saburo,这是一个Java工具包,它从单个Java规范生成Java Internet服务器实现,以及可以使用模型检查器SPIN自动检查的正式模型。这种方法确保了Internet服务器行为和应用于其正式模型的静态验证之间的一致性。此外,使用Java语言作为唯一的输入规范应该有助于正式验证技术的传播。为了简化形式化模型的自动抽象,Saburo方法基于关注点分离原则。Java规范被分解为三个部分:从几个预定义的模型中选择的并发模型、描述所有通信和同步的图以及业务代码。这种方法有两个主要优点:并发模型的更改很简单,并且最小化了由于从源代码中自动提取形式模型而引起的状态爆炸的经典问题。这项工作融合了来自服务器设计、编译器、软件工程和形式化验证的一系列特性。尽管我们并不认为Saburo采用的每一种技术都是新颖的,但它们已经统一到我们的Java工具包中,该工具包支持所有服务器设计阶段。
{"title":"A Java toolkit for the design and the automatic checking of server architectures","authors":"G. Loyauté, R. Forax, G. Roussel","doi":"10.1145/1294325.1294341","DOIUrl":"https://doi.org/10.1145/1294325.1294341","url":null,"abstract":"This paper presents Saburo, a Java toolkit that generates, from a single Java specification, Java Internet server implementations, together with their formal model that can be automatically checked using the model checker SPIN. This approach ensures the coherence between the Internet server behavior and the static verifications applied on its formal model. Moreover, the use of the Java language as a unique input specification should help the dissemination of formal verification techniques.\u0000 To simplify the automatic abstraction of the formal model, the Saburo approach is based on the separation of concerns principle. The Java specification is decomposed into three parts: a concurrency model chosen among several predefined ones, a graph describing all the communication and synchronization, and the business code. This approach has two main advantages: the change of the concurrency model is straightforward, and the classical problem of state explosion induced by the automatic extraction of the formal model from the source code is minimized.\u0000 This work blends together a set of features coming from server design, compilers, software engineering and formal verification. Even though we do not claim novelty in each of the techniques adopted for Saburo, they have been unified into our Java toolkit, which supports all server design phases.","PeriodicalId":169989,"journal":{"name":"Principles and Practice of Programming in Java","volume":"181 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114553919","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
FSMC+, a tool for the generation of Java code from statecharts FSMC+,从状态图生成Java代码的工具
Pub Date : 2007-09-05 DOI: 10.1145/1294325.1294338
Roberto Tiella, Adolfo Villafiorita, Silvia Tomasi
ProVotE is a two-phase project aiming at actuating art. 84 of law 2 -- 5/3/2003 of the Autonomous Province of Trento (Italy), which promotes the introduction of e-voting systems for the next provincial elections in Trentino (Nov. 2008). During the first phase of the ProVotE project we built jprovote, a Java/Linux e-voting system. The jprovote system has been used with experimental value by more than 11000 voters during local elections held in various municipalities of Trentino (Italy). A critical component of jprovote is its core logic, that is responsible of controlling the overall behavior of the e-voting machine during an election. In order to simplify its development and to allow for formal verification of this critical component we developed FSMC+. FSMC+ is a compiler that takes as input a subset of UML Statecharts and produces the corresponding Java and NuSMV code (NuSMV is a model checker developed at ITC-irst). Support for parameters in events, complex expressions in guards, and support to nested states are some of the distinguishing features of FSMC+. In this paper we present FSMC+ and we show how we used it for the development and the verification of the ProVotE e-voting machine. Even though FSMC+ has been specifically created to ease the development of jprovote, we believe the approach and the tool we developed to be general enough to be used in other applications.
ProVotE是一个旨在推动艺术的两阶段项目。意大利特伦托自治省2003年5月3日第2号法令第84条,为特伦蒂诺省下一届选举推广电子投票系统(2008年11月)。在ProVotE项目的第一阶段,我们构建了jprovote,一个Java/Linux电子投票系统。在特伦蒂诺(意大利)多个城市举行的地方选举中,超过11000名选民使用了jprovote系统,并具有实验价值。jprovote的一个关键组成部分是其核心逻辑,它负责在选举期间控制电子投票机的整体行为。为了简化其开发并允许对这一关键组件进行正式验证,我们开发了FSMC+。FSMC+是一个编译器,它将UML Statecharts的一个子集作为输入,并生成相应的Java和NuSMV代码(NuSMV是一个在itc - first开发的模型检查器)。支持事件中的参数、守卫中的复杂表达式以及支持嵌套状态是FSMC+的一些显著特性。在本文中,我们介绍了FSMC+,并展示了我们如何使用它来开发和验证ProVotE电子投票机。尽管FSMC+是专门为简化jprovote的开发而创建的,但我们相信我们开发的方法和工具足够通用,可以用于其他应用程序。
{"title":"FSMC+, a tool for the generation of Java code from statecharts","authors":"Roberto Tiella, Adolfo Villafiorita, Silvia Tomasi","doi":"10.1145/1294325.1294338","DOIUrl":"https://doi.org/10.1145/1294325.1294338","url":null,"abstract":"ProVotE is a two-phase project aiming at actuating art. 84 of law 2 -- 5/3/2003 of the Autonomous Province of Trento (Italy), which promotes the introduction of e-voting systems for the next provincial elections in Trentino (Nov. 2008).\u0000 During the first phase of the ProVotE project we built jprovote, a Java/Linux e-voting system. The jprovote system has been used with experimental value by more than 11000 voters during local elections held in various municipalities of Trentino (Italy).\u0000 A critical component of jprovote is its core logic, that is responsible of controlling the overall behavior of the e-voting machine during an election. In order to simplify its development and to allow for formal verification of this critical component we developed FSMC+.\u0000 FSMC+ is a compiler that takes as input a subset of UML Statecharts and produces the corresponding Java and NuSMV code (NuSMV is a model checker developed at ITC-irst). Support for parameters in events, complex expressions in guards, and support to nested states are some of the distinguishing features of FSMC+.\u0000 In this paper we present FSMC+ and we show how we used it for the development and the verification of the ProVotE e-voting machine. Even though FSMC+ has been specifically created to ease the development of jprovote, we believe the approach and the tool we developed to be general enough to be used in other applications.","PeriodicalId":169989,"journal":{"name":"Principles and Practice of Programming in Java","volume":"58 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129551821","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 19
Supporting exception handling for futures in Java 支持Java中期货的异常处理
Pub Date : 2007-09-05 DOI: 10.1145/1294325.1294349
Lingli Zhang, C. Krintz, P. Nagpurkar
A future is a simple and elegant construct that programmers can use to identify potentially asynchronous computation and to introduce parallelism into serial programs. In its recent 5.0 release, Java provides an interface-based implementation of futures that enables users to encapsulate potentially asynchronous computation and to define their own execution engines for futures. In prior work, we have proposed an alternative model, called directive-based lazy futures (DBLFutures), to support futures in Java, that simplifies Java programmer effort and improves performance and scalability of future-based applications. In the DBLFuture model, programmers use a new directive, "@future", to specify potentially concurrent computations within a serial program. DBLFutures enable programmers to focus on the logic and correctness of a program in the serial version first, and then to introduce parallelism gradually and intuitively. Moreover, DBLFutures provide greater flexibility to the Java virtual machine for efficient future support. In this paper, we investigate the exception handling aspect of futures in Java. In Java 5.0 Future APIs, exceptions of future execution are propagated to the point in the program at which future values are queried (used). We show that this exception handling model is not appropriate or desirable for DBLFutures. Instead, we propose an as-if-serial exception handling mechanism for DBL-Futures in which the system delivers exceptions at the same point as they would be delivered if the program was executed sequentially. Our approach, we believe, provides programmers with intuitive exception handling behavior and control. We present the design and implementation of our approach within the DBLFuture framework in the Jikes Research Virtual Machine. Our results show that our implementation introduces negligible overhead for applications without exceptions, and guarantees serial semantics of exception handling for applications that throw exceptions.
future是一个简单而优雅的结构,程序员可以用它来识别潜在的异步计算,并在串行程序中引入并行性。在最近的5.0版本中,Java提供了基于接口的期货实现,使用户能够封装潜在的异步计算,并为期货定义自己的执行引擎。在之前的工作中,我们提出了一种替代模型,称为基于指令的延迟期货(DBLFutures),以支持Java中的期货,这简化了Java程序员的工作,并提高了基于未来的应用程序的性能和可伸缩性。在DBLFuture模型中,程序员使用一个新的指令“@future”来指定串行程序中潜在的并发计算。DBLFutures使程序员能够首先关注串行版本中程序的逻辑和正确性,然后逐步直观地引入并行性。此外,dbfutures为Java虚拟机提供了更大的灵活性,以实现高效的未来支持。在本文中,我们研究了Java中期货的异常处理方面。在Java 5.0 Future api中,未来执行的异常被传播到程序中查询(使用)未来值的点。我们表明,这种异常处理模型不适合或不适合DBLFutures。相反,我们为DBL-Futures提出了一种类似串行的异常处理机制,在这种机制中,系统在程序顺序执行时交付异常的同一点交付异常。我们相信,我们的方法为程序员提供了直观的异常处理行为和控制。我们在Jikes Research虚拟机的DBLFuture框架中展示了我们的方法的设计和实现。我们的结果表明,我们的实现为没有异常的应用程序引入了可以忽略不计的开销,并保证了抛出异常的应用程序的异常处理的串行语义。
{"title":"Supporting exception handling for futures in Java","authors":"Lingli Zhang, C. Krintz, P. Nagpurkar","doi":"10.1145/1294325.1294349","DOIUrl":"https://doi.org/10.1145/1294325.1294349","url":null,"abstract":"A future is a simple and elegant construct that programmers can use to identify potentially asynchronous computation and to introduce parallelism into serial programs. In its recent 5.0 release, Java provides an interface-based implementation of futures that enables users to encapsulate potentially asynchronous computation and to define their own execution engines for futures. In prior work, we have proposed an alternative model, called directive-based lazy futures (DBLFutures), to support futures in Java, that simplifies Java programmer effort and improves performance and scalability of future-based applications. In the DBLFuture model, programmers use a new directive, \"@future\", to specify potentially concurrent computations within a serial program. DBLFutures enable programmers to focus on the logic and correctness of a program in the serial version first, and then to introduce parallelism gradually and intuitively. Moreover, DBLFutures provide greater flexibility to the Java virtual machine for efficient future support.\u0000 In this paper, we investigate the exception handling aspect of futures in Java. In Java 5.0 Future APIs, exceptions of future execution are propagated to the point in the program at which future values are queried (used). We show that this exception handling model is not appropriate or desirable for DBLFutures. Instead, we propose an as-if-serial exception handling mechanism for DBL-Futures in which the system delivers exceptions at the same point as they would be delivered if the program was executed sequentially. Our approach, we believe, provides programmers with intuitive exception handling behavior and control. We present the design and implementation of our approach within the DBLFuture framework in the Jikes Research Virtual Machine. Our results show that our implementation introduces negligible overhead for applications without exceptions, and guarantees serial semantics of exception handling for applications that throw exceptions.","PeriodicalId":169989,"journal":{"name":"Principles and Practice of Programming in Java","volume":"48 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117255212","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 27
A Java-based science portal for neutron scattering experiments 一个基于java的中子散射实验科学门户
Pub Date : 2007-09-05 DOI: 10.1145/1294325.1294329
Sudharshan S. Vazhkudai, J. Kohl, J. Schwidder
The Spallation Neutron Source (SNS) is a state-of-the-art neutron scattering facility recently commissioned by the US Department of Energy (DOE). The neutron beam produced at SNS will have an intensity that is an order of magnitude higher than existing facilities worldwide, enabling a significantly better understanding of and exploration into the structure of matter. The SNS is a billion-and-a-half dollar investment supporting research that impacts diverse science domains such as materials, chemistry, engineering, polymers, structural biology, and superconductivity. Thousands of scientists from around the world will annually perform experiments at SNS, ultimately producing petabytes of raw data that must be reduced, curated, analyzed and visualized. The SNS facility is developing a Java-based one-stop shopping web portal with access to the broad spectrum of data and computing services that will facilitate scientific discovery by enabling geographically dispersed users to seamlessly access and utilize the SNS facility resources. In this article, we describe the design and implementation of the SNS portal, focusing on several key architectural components, highlighting the diverse usage of Java in a production environment, ranging from enterprise level software composition to remote interactive visualization and integration with high performance distributed computing.
散裂中子源(SNS)是美国能源部(DOE)最近委托的最先进的中子散射设施。SNS产生的中子束的强度将比世界上现有的设施高一个数量级,使人们能够更好地理解和探索物质的结构。SNS是一项15亿美元的投资,支持影响材料、化学、工程、聚合物、结构生物学和超导等不同科学领域的研究。来自世界各地的数千名科学家每年将在SNS上进行实验,最终产生pb级的原始数据,这些数据必须经过精简、整理、分析和可视化处理。SNS设施正在开发一个基于java的一站式购物门户网站,可以访问广泛的数据和计算服务,通过使地理上分散的用户能够无缝地访问和利用SNS设施资源,从而促进科学发现。在本文中,我们描述了SNS门户的设计和实现,重点关注几个关键的体系结构组件,强调了Java在生产环境中的不同使用,从企业级软件组合到远程交互式可视化和与高性能分布式计算的集成。
{"title":"A Java-based science portal for neutron scattering experiments","authors":"Sudharshan S. Vazhkudai, J. Kohl, J. Schwidder","doi":"10.1145/1294325.1294329","DOIUrl":"https://doi.org/10.1145/1294325.1294329","url":null,"abstract":"The Spallation Neutron Source (SNS) is a state-of-the-art neutron scattering facility recently commissioned by the US Department of Energy (DOE). The neutron beam produced at SNS will have an intensity that is an order of magnitude higher than existing facilities worldwide, enabling a significantly better understanding of and exploration into the structure of matter. The SNS is a billion-and-a-half dollar investment supporting research that impacts diverse science domains such as materials, chemistry, engineering, polymers, structural biology, and superconductivity. Thousands of scientists from around the world will annually perform experiments at SNS, ultimately producing petabytes of raw data that must be reduced, curated, analyzed and visualized. The SNS facility is developing a Java-based one-stop shopping web portal with access to the broad spectrum of data and computing services that will facilitate scientific discovery by enabling geographically dispersed users to seamlessly access and utilize the SNS facility resources. In this article, we describe the design and implementation of the SNS portal, focusing on several key architectural components, highlighting the diverse usage of Java in a production environment, ranging from enterprise level software composition to remote interactive visualization and integration with high performance distributed computing.","PeriodicalId":169989,"journal":{"name":"Principles and Practice of Programming in Java","volume":"193 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123345434","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 4
A Prolog-oriented extension of Java programming based on generics and annotations 基于泛型和注释的面向prolog的Java编程扩展
Pub Date : 2007-09-05 DOI: 10.1145/1294325.1294352
Maurizio Cimadamore, Mirko Viroli
Although object-oriented languages are nowadays the mainstream of application development, several research contexts suggest that a multi-paradigm approach is worth pursuing. In particular, a declarative, logic-based paradigm could fruitfully add functionalities related to automatic reasoning, adaptivity, and conciseness in expressing algorithms. In this paper we present P@J, a framework for enhancing interoperability between Java and Prolog based on the tuProlog open-source Prolog engine for Java. P@J supports smooth language-interoperability by first introducing an API for modeling first-order logic terms by Java generics and wildcards, promoting expressiveness and safety. On top of it, an annotation layer is then introduced that extends Java with the ability of implementing parts of the application code using Prolog.
尽管面向对象语言是当今应用程序开发的主流,但一些研究背景表明,多范式方法值得追求。特别是,声明性的、基于逻辑的范式可以有效地添加与自动推理、适应性和表达算法的简洁性相关的功能。在本文中,我们提出了P@J,一个基于tuProlog开源Java Prolog引擎的框架,用于增强Java和Prolog之间的互操作性。P@J首先引入了一个API,通过Java泛型和通配符对一阶逻辑术语进行建模,从而提高了表达性和安全性,从而支持流畅的语言互操作性。在此基础上,引入了一个注释层,该注释层扩展了Java,使其能够使用Prolog实现部分应用程序代码。
{"title":"A Prolog-oriented extension of Java programming based on generics and annotations","authors":"Maurizio Cimadamore, Mirko Viroli","doi":"10.1145/1294325.1294352","DOIUrl":"https://doi.org/10.1145/1294325.1294352","url":null,"abstract":"Although object-oriented languages are nowadays the mainstream of application development, several research contexts suggest that a multi-paradigm approach is worth pursuing. In particular, a declarative, logic-based paradigm could fruitfully add functionalities related to automatic reasoning, adaptivity, and conciseness in expressing algorithms. In this paper we present P@J, a framework for enhancing interoperability between Java and Prolog based on the tuProlog open-source Prolog engine for Java. P@J supports smooth language-interoperability by first introducing an API for modeling first-order logic terms by Java generics and wildcards, promoting expressiveness and safety. On top of it, an annotation layer is then introduced that extends Java with the ability of implementing parts of the application code using Prolog.","PeriodicalId":169989,"journal":{"name":"Principles and Practice of Programming in Java","volume":"108 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124234389","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 13
A framework for mobile Java applications 用于移动Java应用程序的框架
Pub Date : 2007-09-05 DOI: 10.1145/1294325.1294360
A. Hughes
We present the Dynamic Theory Execution (DynamiTE) framework for creating concurrent object-oriented applications, with semantics grounded in a process calculus. DynamiTE allows a system to be constructed as a series of distinct mobile components called environs which can change position during execution, and between which individual processes can migrate.
我们提出了动态理论执行(Dynamic Theory Execution, DynamiTE)框架,用于创建并发的面向对象应用程序,其语义以进程演算为基础。DynamiTE允许将系统构建为一系列不同的移动组件,称为环境,可以在执行过程中改变位置,并且单个进程可以在其之间迁移。
{"title":"A framework for mobile Java applications","authors":"A. Hughes","doi":"10.1145/1294325.1294360","DOIUrl":"https://doi.org/10.1145/1294325.1294360","url":null,"abstract":"We present the Dynamic Theory Execution (DynamiTE) framework for creating concurrent object-oriented applications, with semantics grounded in a process calculus. DynamiTE allows a system to be constructed as a series of distinct mobile components called environs which can change position during execution, and between which individual processes can migrate.","PeriodicalId":169989,"journal":{"name":"Principles and Practice of Programming in Java","volume":"53 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124281577","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 1
Advanced Java bytecode instrumentation 高级Java字节码检测
Pub Date : 2007-09-05 DOI: 10.1145/1294325.1294344
Walter Binder, J. Hulaas, Philippe Moret
Bytecode instrumentation is a valuable technique for transparently enhancing virtual execution environments for purposes such as monitoring or profiling. Current approaches to bytecode instrumentation either exclude some methods from instrumentation, severely restrict the ways certain methods may be instrumented, or require the use of native code. In this paper we compare different approaches to bytecode instrumentation in Java and come up with a novel instrumentation framework that goes beyond the aforementioned limitations. We evaluate our approach with an instrumentation for profiling which generates calling context trees of various platform-independent dynamic metrics.
字节码插装是一种有价值的技术,可以透明地增强虚拟执行环境,用于监视或分析等目的。当前的字节码插装方法要么从插装中排除某些方法,要么严格限制某些方法的插装方式,要么要求使用本机代码。在本文中,我们比较了Java中字节码插装的不同方法,并提出了一个超越上述限制的新型插装框架。我们使用分析工具来评估我们的方法,该工具生成各种平台独立动态指标的调用上下文树。
{"title":"Advanced Java bytecode instrumentation","authors":"Walter Binder, J. Hulaas, Philippe Moret","doi":"10.1145/1294325.1294344","DOIUrl":"https://doi.org/10.1145/1294325.1294344","url":null,"abstract":"Bytecode instrumentation is a valuable technique for transparently enhancing virtual execution environments for purposes such as monitoring or profiling. Current approaches to bytecode instrumentation either exclude some methods from instrumentation, severely restrict the ways certain methods may be instrumented, or require the use of native code. In this paper we compare different approaches to bytecode instrumentation in Java and come up with a novel instrumentation framework that goes beyond the aforementioned limitations. We evaluate our approach with an instrumentation for profiling which generates calling context trees of various platform-independent dynamic metrics.","PeriodicalId":169989,"journal":{"name":"Principles and Practice of Programming in Java","volume":"32 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127648991","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 120
simpA: an agent-oriented approach for prototyping concurrent applications on top of Java simpA:用于在Java之上构建并发应用程序原型的面向代理的方法
Pub Date : 2007-09-05 DOI: 10.1145/1294325.1294350
A. Ricci, Mirko Viroli
More and more aspects of concurrency and concurrent programming are becoming part of mainstream programming and software engineering, as a result of several factors, such as the widespread availability of multi-core / parallel architectures and Internet-based systems. Java has been one of the first mainstream languages providing a first-class native support for multi-threading, with basic low-level fine-grained concurrency mechanisms, recently improved by means of the java.util.concurrent library provided in the JDK 5.0. Besides such a fine-grained support to concurrency, the identification of higher-level---more coarse-grained---support is important as soon as the programming and engineering of complex concurrent applications is considered, helping to bridge the gap between system design, implementation, or testing. Accordingly, in this paper we present simpA, a library-based extension of Java which aims at providing a high-level coarse-grained support to complex multithreaded / concurrent application programming, by providing Java programmers with an agent-oriented abstraction layer on top of the basic OO layer to organise and structure applications in terms of agents and artifacts.
由于多核/并行体系结构和基于internet的系统的广泛应用,并发和并发编程的越来越多的方面正在成为主流编程和软件工程的一部分。Java是第一批为多线程提供一流原生支持的主流语言之一,具有基本的低级细粒度并发机制,最近通过JDK 5.0中提供的Java .util.concurrent库进行了改进。除了对并发性的这种细粒度支持之外,一旦考虑复杂并发应用程序的编程和工程,识别更高级别(更粗粒度)的支持就很重要,这有助于弥合系统设计、实现或测试之间的差距。因此,在本文中,我们提出了simpA,这是一个基于库的Java扩展,旨在为复杂的多线程/并发应用程序编程提供高级的粗粒度支持,方法是在基本的OO层之上为Java程序员提供面向代理的抽象层,以便根据代理和工件组织和构建应用程序。
{"title":"simpA: an agent-oriented approach for prototyping concurrent applications on top of Java","authors":"A. Ricci, Mirko Viroli","doi":"10.1145/1294325.1294350","DOIUrl":"https://doi.org/10.1145/1294325.1294350","url":null,"abstract":"More and more aspects of concurrency and concurrent programming are becoming part of mainstream programming and software engineering, as a result of several factors, such as the widespread availability of multi-core / parallel architectures and Internet-based systems. Java has been one of the first mainstream languages providing a first-class native support for multi-threading, with basic low-level fine-grained concurrency mechanisms, recently improved by means of the java.util.concurrent library provided in the JDK 5.0.\u0000 Besides such a fine-grained support to concurrency, the identification of higher-level---more coarse-grained---support is important as soon as the programming and engineering of complex concurrent applications is considered, helping to bridge the gap between system design, implementation, or testing. Accordingly, in this paper we present simpA, a library-based extension of Java which aims at providing a high-level coarse-grained support to complex multithreaded / concurrent application programming, by providing Java programmers with an agent-oriented abstraction layer on top of the basic OO layer to organise and structure applications in terms of agents and artifacts.","PeriodicalId":169989,"journal":{"name":"Principles and Practice of Programming in Java","volume":"4613 1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127245802","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 11
J2MEMicroDB: an open source distributed database engine for mobile applications J2MEMicroDB:用于移动应用程序的开源分布式数据库引擎
Pub Date : 2007-09-05 DOI: 10.1145/1294325.1294358
M. A. Forment, Pablo Casado Arias, María José Casany Guerrero
Mobile distributed applications must be able to work offline when no network connection is available, or simply to spare bandwidth or money. To do so the mobile client must be able to store and handle structured data. Java 2 Micro Edition (J2ME) does not support neither object serialization nor relational table management. When most legacy systems still rely on database engines, it also seems that J2ME only considers the Webservices API as a tool to access data on the server side. No JDBC API is provided to send and retrieve data from the mobile device to the DBMS in the server. This paper presents an Open Source library for J2ME that implements a lightweight database engine that allows CDLC devices (such as the currently available mobile phones) to handle object serialization easily, SQL relational database management and JDBC, using SQL to access any DBMS in the mainframe.
移动分布式应用程序必须能够在没有网络连接的情况下离线工作,或者只是为了节省带宽或金钱。为此,移动客户端必须能够存储和处理结构化数据。Java 2 Micro Edition (J2ME)既不支持对象序列化,也不支持关系表管理。当大多数遗留系统仍然依赖数据库引擎时,J2ME似乎也只将Webservices API视为访问服务器端数据的工具。没有提供JDBC API来将数据从移动设备发送和检索到服务器中的DBMS。本文提出了一个J2ME的开源库,它实现了一个轻量级数据库引擎,允许CDLC设备(例如当前可用的移动电话)轻松地处理对象序列化、SQL关系数据库管理和JDBC,使用SQL访问大型机中的任何DBMS。
{"title":"J2MEMicroDB: an open source distributed database engine for mobile applications","authors":"M. A. Forment, Pablo Casado Arias, María José Casany Guerrero","doi":"10.1145/1294325.1294358","DOIUrl":"https://doi.org/10.1145/1294325.1294358","url":null,"abstract":"Mobile distributed applications must be able to work offline when no network connection is available, or simply to spare bandwidth or money. To do so the mobile client must be able to store and handle structured data. Java 2 Micro Edition (J2ME) does not support neither object serialization nor relational table management. When most legacy systems still rely on database engines, it also seems that J2ME only considers the Webservices API as a tool to access data on the server side. No JDBC API is provided to send and retrieve data from the mobile device to the DBMS in the server.\u0000 This paper presents an Open Source library for J2ME that implements a lightweight database engine that allows CDLC devices (such as the currently available mobile phones) to handle object serialization easily, SQL relational database management and JDBC, using SQL to access any DBMS in the mainframe.","PeriodicalId":169989,"journal":{"name":"Principles and Practice of Programming in Java","volume":"15 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127278093","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 3
期刊
Principles and Practice of Programming in Java
全部 Acc. Chem. Res. ACS Applied Bio Materials ACS Appl. Electron. Mater. ACS Appl. Energy Mater. ACS Appl. Mater. Interfaces ACS Appl. Nano Mater. ACS Appl. Polym. Mater. ACS BIOMATER-SCI ENG ACS Catal. ACS Cent. Sci. ACS Chem. Biol. ACS Chemical Health & Safety ACS Chem. Neurosci. ACS Comb. Sci. ACS Earth Space Chem. ACS Energy Lett. ACS Infect. Dis. ACS Macro Lett. ACS Mater. Lett. ACS Med. Chem. Lett. ACS Nano ACS Omega ACS Photonics ACS Sens. ACS Sustainable Chem. Eng. ACS Synth. Biol. Anal. Chem. BIOCHEMISTRY-US Bioconjugate Chem. BIOMACROMOLECULES Chem. Res. Toxicol. Chem. Rev. Chem. Mater. CRYST GROWTH DES ENERG FUEL Environ. Sci. Technol. Environ. Sci. Technol. Lett. Eur. J. Inorg. Chem. IND ENG CHEM RES Inorg. Chem. J. Agric. Food. Chem. J. Chem. Eng. Data J. Chem. Educ. J. Chem. Inf. Model. J. Chem. Theory Comput. J. Med. Chem. J. Nat. Prod. J PROTEOME RES J. Am. Chem. Soc. LANGMUIR MACROMOLECULES Mol. Pharmaceutics Nano Lett. Org. Lett. ORG PROCESS RES DEV ORGANOMETALLICS J. Org. Chem. J. Phys. Chem. J. Phys. Chem. A J. Phys. Chem. B J. Phys. Chem. C J. Phys. Chem. Lett. Analyst Anal. Methods Biomater. Sci. Catal. Sci. Technol. Chem. Commun. Chem. Soc. Rev. CHEM EDUC RES PRACT CRYSTENGCOMM Dalton Trans. Energy Environ. Sci. ENVIRON SCI-NANO ENVIRON SCI-PROC IMP ENVIRON SCI-WAT RES Faraday Discuss. Food Funct. Green Chem. Inorg. Chem. Front. Integr. Biol. J. Anal. At. Spectrom. J. Mater. Chem. A J. Mater. Chem. B J. Mater. Chem. C Lab Chip Mater. Chem. Front. Mater. Horiz. MEDCHEMCOMM Metallomics Mol. Biosyst. Mol. Syst. Des. Eng. Nanoscale Nanoscale Horiz. Nat. Prod. Rep. New J. Chem. Org. Biomol. Chem. Org. Chem. Front. PHOTOCH PHOTOBIO SCI PCCP Polym. Chem.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1