Because Remote Procedure Calls do not compose efficiently, designers of distributed object systems use Data Transfer and Remote Facade patterns to create large-granularity interfaces, hard-coded for particular client ...
详细信息
ISBN:
(纸本)9783642030123
Because Remote Procedure Calls do not compose efficiently, designers of distributed object systems use Data Transfer and Remote Facade patterns to create large-granularity interfaces, hard-coded for particular client use cases. As an alternative to RPC-based distributed objects, this paper presents Remote Batch Invocation (RBI), language support for explicit client-defined batches. A Remote Batch statement combines remote and local execution: all the remote code is executed in a single round-trip to the server, where all data sent to the server and results from the batch are Communicated in bulk. RBI supports remote blocks, iteration and conditionals, and local handling of remote exceptions. RBI is efficient even for fine-grained interfaces, eliminating the need for hand-optimized server interfaces. We demonstrate RBI with an extension to Java, using RMI internally as the transport layer. RBI supports large-granularity, stateless server interactions, characteristic of service-oriented computing.
This report covers the activities of the 2(nd) workshop on "object-oriented Language Engineering for the Post-Java Era". We describe the motivation that led to the organisation of a second edition of the wor...
详细信息
ISBN:
(纸本)354023988X
This report covers the activities of the 2(nd) workshop on "object-oriented Language Engineering for the Post-Java Era". We describe the motivation that led to the organisation of a second edition of the workshop. Relevant organisational aspects are mentioned. The main part of the report consists of a summary of Dave Thomas's invited talk, and a recount of the presentations by the authors of position papers. Comments given along the way by the participants are included. Finally, some pointers to related work and events are given.
A software (design) pattern describes a general solution for a recurring design problem. The solution is mostly described in terms of an abstract design structure expressed in design elements such as classes, methods ...
详细信息
ISBN:
(纸本)3540630899
A software (design) pattern describes a general solution for a recurring design problem. The solution is mostly described in terms of an abstract design structure expressed in design elements such as classes, methods and relationships (inheritance, associations). This paper describes a prototype tool that supports working with design patterns when developing or maintaining object-oriented programs. The tool provides three integrated views on a program: the code (classes, methods, etc.), a design view (abstraction of the code plus additional information not in the code) and occurrences of design patterns in the program. The tool assists developers using patterns in three ways: Generating program elements (e.g. classes, hierarchies) for a new instance of a pattern, taken from an extensible collection of "template" patterns Integrating pattern occurrences with the rest of the program by binding program elements to a role in a pattern (e.g. indicating that an existing class plays a particular role in a pattern instance) Checking whether occurrences of patterns still meet the invariants governing the patterns and repairing the program in case of problems Through the use of an existing refactoring package, the tool supports the use of patterns both in forward engineering and in backwards engineering, i.e. documenting occurrences of patterns in existing programs and modifying the program to better reflect the pattern's structure. The tool is implemented in Smalltalk and has been applied to identify pattern occurrences in several non-trivial (Smalltalk) applications and to reorganize these subsequently.
Architecture represents the most fundamental set of design decisions about a system, and evolution aspects have to be considered at this level. Also, assuming that a deliberate "architecting" step has been t...
详细信息
One of the most important design decisions about a server program is regarding its concurrency mechanisms. However, good concurrency models for general-purpose server programs are increasingly difficult to conceive as...
详细信息
ISBN:
(纸本)9783540705918
One of the most important design decisions about a server program is regarding its concurrency mechanisms. However, good concurrency models for general-purpose server programs are increasingly difficult to conceive as the runtime conditions are hard to predict. In this work, we advocate that the concurrency code is to be decoupled from server programs. To enable such separation, we propose and evaluate CAL, - the Concurrency Aspect Library. CAL provides uniform concurrency programming abstractions and mediates the intrinsic differences among concurrency models. Through CAL, a server program is not tied to any particular concurrency model and framework. CAL can be configured without modifications to use concurrency frameworks of fundamentally different natures. The concurrency code based on CAL is simpler and looks closer to the design. Leveraging the customizability of CAL, we show that a commercial middleware server, refactored to use CAL, outperforms its original version by as much as 10 times.
This book constitutes the proceedings of the 28th european conference on object-oriented programming, ecoop 2014, held in Uppsala, Sweden, in July/August 2014. The 27 papers presented in this volume were carefully rev...
详细信息
ISBN:
(数字)9783662442029
ISBN:
(纸本)9783662442012
This book constitutes the proceedings of the 28th european conference on object-oriented programming, ecoop 2014, held in Uppsala, Sweden, in July/August 2014. The 27 papers presented in this volume were carefully reviewed and selected from 101 submissions. They are organized in topical sections named: analysis; design; concurrency; types; implementation; refactoring; JavaScript, PHP and frameworks; and parallelism.
Advice is a mechanism used by advanced object-oriented and aspect-orientedprogramming languages to augment the behavior of methods in a program. Advice can help to make programs more modular by separating crosscuttin...
详细信息
ISBN:
(纸本)354027992X
Advice is a mechanism used by advanced object-oriented and aspect-orientedprogramming languages to augment the behavior of methods in a program. Advice can help to make programs more modular by separating crosscutting concerns more effectively, but it also challenges existing ideas about modularity and separate development. We study this challenge using a new, simple formal model for advice as it appears in languages like AspectJ. We then add a module system designed to leave program functionality as open to extension through advice as possible, while still enabling separate reasoning about the code within a module. Our system, Open Modules, can either be used directly to facilitate separate, component-based development, or can be viewed as a model of the features that certain AOP IDEs provide. We define a formal system for reasoning about the observational equivalence of programs under advice, which can be used to show that clients are unaffected by semantics-preserving changes to a module's implementation. Our model yields insights into the nature of modularity in the presence of advice, provides a mechanism for enforceable contracts between component providers and clients in this setting, and suggests improvements to current AOP IDEs.
The proceedings contain 3 papers. The topics discussed include: resolving synchronization conflicts in role-based multimodel-synchronization environments;first-class concepts: reifying architectural knowledge beyond t...
ISBN:
(纸本)9781450385428
The proceedings contain 3 papers. The topics discussed include: resolving synchronization conflicts in role-based multimodel-synchronization environments;first-class concepts: reifying architectural knowledge beyond the dominant decomposition;and towards a framework for analyzing context-orientedprogramming languages.
暂无评论