Mainstream object-oriented languages, such as C++ and java(1), provide only a restricted form of polymorphic methods, namely uni-receiver dispatch. In common programming situations, developers must work around this li...
详细信息
ISBN:
(纸本)188044612X
Mainstream object-oriented languages, such as C++ and java(1), provide only a restricted form of polymorphic methods, namely uni-receiver dispatch. In common programming situations, developers must work around this limitation. We describe how to extend the java Virtual Machine to support multi-dispatch and examine the complications that java imposes on multi-dispatch in practice. Our technique avoids changes to the java programming language itself, maintains source code and library compatibility, and isolates the performance penalty and semantic changes of multi-method dispatch to the program sections which use it. We have micro-benchmark and application-level performance results for a dynamic Most Specific Applicable (MSA) dispatcher, a framework-based Single Receiver Projections (SRP) dispatcher, and a tuned SRP dispatcher. Our general-purpose technique provides smaller dispatch latency than programmer-written double-dispatch code with equivalent functionality.
The multi-faceted nature of communication technologies and information management has demanded that supporting systems be highly cohesive and yet loosely coupled. It calls for the systems to be efficiently integrated,...
详细信息
ISBN:
(纸本)9781467360531
The multi-faceted nature of communication technologies and information management has demanded that supporting systems be highly cohesive and yet loosely coupled. It calls for the systems to be efficiently integrated, interoperable and highly adaptable to the ever-changing operating landscape. Interoperability among systems becomes difficult, though the emergence of service oriented technologies had provided some form of reprieve. In today's rapidly changing environment, applications such as healthcare applications need to be highly adaptable and versatile. Service Oriented Architecture (SOA) becomes more and more important. The goal-oriented nature of agent, coupled with highly configurable agent actions, makes it very suitable for implementing such systems. In this research, an agent framework is designed and implemented to cater for the applications of agents in service oriented environment. J2EE technology is used for its implementation so as to enable the service oriented nature of the agent. This paper first discusses several design considerations. Then the agents are developed and incorporated using the proposed agent framework.
We present an extension to java CARD Dynamic Logic, a program logic for reasoning about java CARD programs, to handle java CARD's so-called non-atomic methods. Although java CARD DL already supports the atomic tra...
详细信息
ISBN:
(纸本)3540372156
We present an extension to java CARD Dynamic Logic, a program logic for reasoning about java CARD programs, to handle java CARD's so-called non-atomic methods. Although java CARD DL already supports the atomic transaction mechanism of java CARD, non-atomic methods present an additional challenge: state updates triggered by such a non-atomic method are not subjected to any transaction that may possibly be in progress. The semantics of a non-atomic method itself seems to be simple and straightforward to formalise, however experimental studies showed that non-atomic methods affect the whole semantics of the java CARD transaction mechanism in a subtle way, in particular, it affects the notion of a transaction roll-back. In this paper we show how to adapt java CARD DL to accommodate this newly discovered complex transaction behaviour. The extension completes the formalisation of all Of java CARD in Dynamic Logic.
With the expansion of the Internet, the Grid has become an attractive platform for scientific computing. java, with a platform-independent execution model and built-in support for distributed computing is an inviting ...
详细信息
ISBN:
(纸本)1424401860
With the expansion of the Internet, the Grid has become an attractive platform for scientific computing. java, with a platform-independent execution model and built-in support for distributed computing is an inviting choice for implementation of applications intended for Grid execution. Recent work has shown that an accurate performance model combined with a load-balancing scheduling strategy can significantly improve the performance of distributed applications on a heterogeneous computing platform, such as the Grid. However, current performance modeling techniques are not suitable for java applications, as the virtual machine execution model presents several difficulties: 1) a significant amount of time is spent on compilation at the beginning of the execution, 2) the virtual machine continuously profiles and recompiles the code during the execution, 3) garbage collection can have unpredictable effects on memory hierarchy, 4) some applications can spend more time garbage collecting than computing for certain heap sizes and 5) small variations in virtual machine implementation can have a large impact on the application's behavior. In this paper, we present a practical profile-based strategy for performance modeling of java scientific applications intended for execution on the Grid. We introduce two novel concepts for the java execution model: Point of Predictability (PoP) and Point of Unpredictability (PoU). PoP accounts for the volatile nature of the effects of the virtual machine on execution time for small problem sizes. PoU accounts for the effects of garbage collection on certain applications that have a memory footprint that approaches the total heap size. We present an algorithm for determining PoP and PoU for java applications, given the hardware platform, virtual machine and heap size. We also present a code-instrumentation-based mechanism for building the algorithm complexity model for a given application. We introduce a technique for calibrating this mode
In this paper, we describe a new Eclipse-based IDE for teaching java following the object-later approach. This IDE allows the programmer to write code in java-, a smaller version of the javalanguage that does not inc...
详细信息
ISBN:
(纸本)9783319301426;9783319301419
In this paper, we describe a new Eclipse-based IDE for teaching java following the object-later approach. This IDE allows the programmer to write code in java-, a smaller version of the javalanguage that does not include object-oriented features, and includes all the powerful features available when using an IDE like Eclipse (such as debugging, automatic building, and project wizards). With our implementation, it is also straightforward to create self-assessment exercises for students, which are integrated in Eclipse and JUnit.
We have proposed and implemented the language Cojava, which offers both the advantages of simulation-like process modeling in java, and the capabilities of true decision optimization. By design, the syntax of Cojava i...
详细信息
ISBN:
(纸本)3540462678
We have proposed and implemented the language Cojava, which offers both the advantages of simulation-like process modeling in java, and the capabilities of true decision optimization. By design, the syntax of Cojava is identical to the programminglanguagejava, extended with special constructs to (1) make a nondeterministic choice of a numeric value, (2) assert a constraint, and (3) designate a program variable as the objective to be optimized. A sequence of specific selections in nondeterministic choice statements corresponds to an execution path. We define an optimal execution path as one that (1) satisfies the range conditions in the choice statements, (2) satisfies the assert-constraint statements, and (3) produces the optimal value in a designated program variable, among all execution paths that satisfy (1) and (2). The semantics of a Cojava program amounts to first finding an optimal execution path, and then procedurally executing it. To find an optimal execution path, the implemented Cojava compiler reduces the problem to a standard optimization formulation, and then solves it on an external solver. Then, the Cojava program is run as a java program, where the choice statements select the found optimal values, and the assert and optimization statements are ignored. We illustrate the usage and semantics of Cojava using a simple supply-chain example, in which elastic demand, a manufacturer and a supplier are modeled as java classes.
java has gained popularity in the commercial server arena, but the characteristics of java server applications are not well understood. In this research, we characterize the behavior of two java server benchmarks, Vol...
详细信息
ISBN:
(纸本)0780372301
java has gained popularity in the commercial server arena, but the characteristics of java server applications are not well understood. In this research, we characterize the behavior of two java server benchmarks, VolanoMark and SPECjbb2000, on a Pentium X system with the latest java Hotspot Server VM. We compare java server applications with SPECint2000 and also investigate the impact of multithreading by increasing the number of clients. java servers are seen to exhibit poor instruction access behavior, including high instruction miss rate, high ITLB miss rate, high BTB miss rate and, as a result, high I-stream stalls. With increasing number of threads, the instruction behavior improves, suggesting increased locality of access. But the resource stalls increase and eventually dwarf the diminishing I-stream stalls. With more clients, the instruction count per unit work increases and becomes a hindrance to the scalability of the servers.
java provides a synchronized construct for multi-core programming with many workloads. However, naive use of the synchronized construct causes performance scalability problems due to lock contention. One of the source...
详细信息
ISBN:
(纸本)9781479936069
java provides a synchronized construct for multi-core programming with many workloads. However, naive use of the synchronized construct causes performance scalability problems due to lock contention. One of the sources of lock contentions is a synchronized collection class. There are known concurrency code patterns to alleviate lock contentions such as a Concurrent Collection (CC), Read-Write Lock (RWL), and Double-Checked Locking (DCL). To date, there is no algorithm to transform a program using DCL. This paper describes steps on how to rewrite synchronized blocks using DCL.
programming has evolved with diverse ways of doing things all with the aim of removing ambiguity and creating optimized methods in solving problems. The final keyword in java has been a point of discussion and controv...
详细信息
ISBN:
(纸本)9781479985470
programming has evolved with diverse ways of doing things all with the aim of removing ambiguity and creating optimized methods in solving problems. The final keyword in java has been a point of discussion and controversy since the inception of the java programming language. The final keyword has been seen by java programmers as a necessary tool for optimization. Other programmers have also seen it as a setback on the implementation of inheritance and re-useability. Few questions should be asked: Any relationship between final and finalization? Is the problem of optimization solved in the light of the usage of the final keyword? Are there better ways to present the idea behind this keyword which should be considered in the next version of java? Though not totally a fan of 'final' (you will find that out by the time you read my 'final' comment on final), in this paper, these questions are answered and a quick review of this keyword is done with the purpose of exposing its features, usefulness and, possibly, presenting its defects as most programmers tend to postulate. An expose on the concept behind the keyword is done to establish whether java's final keyword is actually 'final'.
Self-adaptive systems are capable of dealing with uncertainty at runtime handling complex issues as resource variability, changing user needs, and system intrusions or faults. If the requirements depend on context, ru...
详细信息
ISBN:
(纸本)9781467369053
Self-adaptive systems are capable of dealing with uncertainty at runtime handling complex issues as resource variability, changing user needs, and system intrusions or faults. If the requirements depend on context, runtime uncertainty will affect the execution of these contextual requirements. This work presents SACRE, a proof-of-concept implementation of an existing approach, ACon, developed by researchers of the Univ. of Victoria (Canada) in collaboration with the UPC (Spain). ACon uses a feedback loop to detect contextual requirements affected by uncertainty and data mining techniques to determine the best operationalization of contexts on top of sensed data. The implementation is placed in the domain of smart vehicles and the contextual requirements provide functionality for drowsy drivers.
暂无评论