Issues pertaining to mechanisms which can be used to change the behaviour of java classes at runtime are discussed. The proxy mechanism is compared to, and contrasted with other standard approaches to this problem. So...
详细信息
Issues pertaining to mechanisms which can be used to change the behaviour of java classes at runtime are discussed. The proxy mechanism is compared to, and contrasted with other standard approaches to this problem. Some of the problems the proxy mechanism is subject to are expanded upon. The question of whether statically-developed proxies are a viable alternative to bytecode rewriting was investigated by means of the javaCloak system, which uses statically-generated proxies to alter the runtime behaviour of externally-developed code. The issues addressed include ensuring type safety, dealing with the self problem, object encapsulation, and issues of object identify and equality. Some performance figures are provided which demonstrate the load the javaCloak proxy mechanism places on the system.
A major challenge of maintaining object-oriented programs is to find a means of evolving software that already has a distributed client base. This should be easier for java developers than for most, because dynamic li...
详细信息
ISBN:
(数字)9783540454403
ISBN:
(纸本)3540438475
A major challenge of maintaining object-oriented programs is to find a means of evolving software that already has a distributed client base. This should be easier for java developers than for most, because dynamic linking has been designed into the runtime system. It turns out however that things are not so straightforward as they seem, since a given modification can leave a remote client in one of a number of states, not all of which are tolerable, let alone desirable. In this paper we attempt to delineate these states, and to consider ways of avoiding the worst of them. We describe our utility, which offers library developers a transparent version control system, to protect their remote clients.
A primary goal of program performance understanding tools is to focus the user's attention directly on optimization opportunities where significant cost savings may be found. Optimization opportunities fall into (...
详细信息
ISBN:
(纸本)0769517366
A primary goal of program performance understanding tools is to focus the user's attention directly on optimization opportunities where significant cost savings may be found. Optimization opportunities fall into (at least) three broad categories: the call context of a general component may obviate the need for some of its generality;cross-cutting program aspects may be implemented suboptimally for the particular context of use;and thread dependencies may cause unintended delays. This paper enhances prior work in call path profiling[5] in several ways. First, it provides two different call path oriented views on program performance, a server view and a thread view. The former helps one optimize for throughput, while the latter is useful for optimizing thread latency The views incorporate a typed time notation for representing different program activities, such as monitor wait and thread preemption times. Second, the new framework allows aspect-oriented program profiling, even when the original program was not designed in an aspect oriented fashion. Finally, the approach is implemented in a tool, CPPROFJ, an aspect-capable call path profiler for java. It exploits recent developments in the java APIs to achieve accurate and portable sampling-based profiling. Three case studies illustrate its use.
To facilitate the students and faculties so that they can save their time and eases their work by submitting and evaluating their assignment online through a website. In addition to the submission of the work on line,...
详细信息
ISBN:
(纸本)1880843439
To facilitate the students and faculties so that they can save their time and eases their work by submitting and evaluating their assignment online through a website. In addition to the submission of the work on line, the main goal for this project is to develop a tool that can be used by the instructor to speedup the homework grading. The java programming language assignment submitted by student will automatically run by the system and result generated. The language used to develop the system is also java. Oracle 8i is used as database. The web server used is javaWebserver from SUN. The architecture is a three tier architecture.
J-Orchestra is an automatic partitioning system for java programs. J-Orchestra takes as input java applications in bytecode format and transforms them into distributed applications, running on distinct java Virtual Ma...
详细信息
ISBN:
(纸本)3540437592
J-Orchestra is an automatic partitioning system for java programs. J-Orchestra takes as input java applications in bytecode format and transforms them into distributed applications, running on distinct java Virtual Machines. To accomplish such automatic partitioning, J-Orchestra uses bytecode rewriting to substitute method calls with remote method calls, direct object references with proxy references, etc. Using J-Orchestra does not require great sophistication in distributed system methodology-the user only has to specify the network location of various hardware and software resources and their corresponding application classes. J-Orchestra has significant generality, flexibility, and degree of automation advantages compared to previous work on automatic partitioning. For instance, J-Orchestra can correctly partition almost any pure java program, allowing any application object to be placed on any machine, regardless of how application objects access each other and java system objects. This power is due to the novel way that J-Orchestra deals with unmodifiable code (e,g,, native code in the java system classes). Additionally, J-Orchestra offers support for object migration and run-time optimizations, like the lazy creation of distributed objects. We have used J-Orchestra to successfully partition several realistic applications including a command line shell, a ray tracer, and several applications with native dependencies (sound, graphics).
This one-day tutorial is aimed at software engineering practitioners and researchers, who axe familiar with object-oriented analysis, design and programming and want to obtain an overview of the technologies that are ...
详细信息
ISBN:
(纸本)158113472X
This one-day tutorial is aimed at software engineering practitioners and researchers, who axe familiar with object-oriented analysis, design and programming and want to obtain an overview of the technologies that are enabling component-based development. We introduce the idea of component-based development by defining the concept and providing its economic rationale. We describe how object-oriented programming evolved into local component models, such as java Beans and distributed object technologies, such as the Common Object Request Broker Architecture (CORBA), java Remote Method Invocation (RMI) and the Component Object Model (CONI). We then address how these technologies matured into distributed component models, in partiuclar Enterprise java Beans (EJB) and the CORBA Component Model (CCM). We give an assessment of the maturity of each of these technologies and sketch how they are used to build distributed architectures.
This paper reports on a comprehensive approach to eliminating array bounds checks in java. Our approach is based upon three analyses. The first analysis is a flow-sensitive intraprocedural analysis called variable con...
详细信息
ISBN:
(纸本)3540433694
This paper reports on a comprehensive approach to eliminating array bounds checks in java. Our approach is based upon three analyses. The first analysis is a flow-sensitive intraprocedural analysis called variable constraint analysis (VCA). This analysis builds a small constraint graph for each important point in a method, and then uses the information encoded in the graph to infer the relationship between array index expressions and the bounds of the array. Using VCA as the base analysis, we also show how two further analyses can improve the results of VCA. Array field analysis is applied on each class and provides information about some arrays stored in fields, while rectangular array analysis is an interprocedural analysis to approximate the shape of arrays, and is useful for finding rectangular (non-ragged) arrays. We have implemented all three analyses using the Soot bytecode optimization/annotation framework and we transmit the results of the analysis to virtual machines using class file attributes. We have modified the Kaffe JIT, and IBM's High Performance Compiler for java (HPCJ) to make use of these attributes, and we demonstrate significant speedups.
There is wasted and idle computing potential not only when applications are executed, but also when a user navigates by Internet. To take advantage of this, an architecture named Parasite has been designed in order to...
详细信息
ISBN:
(纸本)3540440496
There is wasted and idle computing potential not only when applications are executed, but also when a user navigates by Internet. To take advantage of this, an architecture named Parasite has been designed in order to use distributed and networked resources without disturbing the local computation. The project is based on developing software technologies and infrastructures to facilitate Web-based distributed computing. This paper outlines the most recent advances in the project, as well as discussing the developed architecture and an experimental framework in order to validate this infrastructure.
With the growing popularity of the java programming language for both client and server side applications in network-centric computing, there is a rising need for programming libraries that can be easily integrated in...
详细信息
ISBN:
(纸本)0769514383
With the growing popularity of the java programming language for both client and server side applications in network-centric computing, there is a rising need for programming libraries that can be easily integrated into java programs. In a previous paper, we surveyed current strategies for integrating C source code into java programs, pointed out their weaknesses and presented goals for an improved migration approach. In this paper, we present the Ephedra approach to software migration and report on the results of three case studies transliterating C source code to java using the Ephedra environment.
暂无评论