6 research outputs found

    An Optimizing Java Translation Framework for Automated Checkpointing and Strong Mobility

    Get PDF
    Long-running programs, e.g., in high-performance computing, need to write periodic checkpoints of their execution state to disk to allow them to recover from node failure. Manually adding checkpointing code to an application, however, is very tedious. The mechanisms needed for writing the execution state of a program to disk and restoring it are similar to those needed for migrating a running thread or a mobile object. We have extended a source-to-source translation scheme that allows the migration of mobile Java objects with running threads to make it more general and allow it to be used for automated checkpointing. Our translation scheme allows serializable threads to be written to disk or migrated with a mobile agent to a remote machine. The translator generates code that maintains a serializable run-time stack for each thread as a Java data structure. While this results in significant run-time overhead, it allows the checkpointing code to be generated automatically. We improved the locking mechanism that is needed to protect the run-time stack as well as the translation scheme. Our experimental results demonstrate an speedup of the generated code over the original translator and show that the approach is feasible in practice

    Service-oriented mobility of java code in web services-based architectures

    Get PDF
    Dissertação apresentada na Faculdade de Ciências e Tecnologias da Universidade Nova de Lisboa para a obtenção do Grau de Mestre em Engenharia InformáticaSoftware mobility consists of providing software components, the ability to migrate to a remote host with the purpose of interacting locally. In other words, this technology enables computations to be transferred from the current machine to a remote one. This powerful enhancement embodied in a traditional network fairly raises security concerns. For now, we believe that software mobility paradigm is confined to environments with bases of trust such as local area networks or middleware layers where security issues can be better controlled. Service-oriented computations reorganize the network architecture in the form of services, where components are more easily integrated, modified and removed. They have the ability to cooperate between them regardless the programming language used in their development. In addition, service-oriented computing is a widely accepted technology for the implementation of distributed applications, namely middleware. The work developed in this thesis consists of instantiating a model which combines software mobility and service-oriented paradigms as proposed by Paulino [20]. In this model, migrating sessions take advantage of the resources of a service-oriented network, creating thus an environment where the migration is modeled in terms of services instead of network nodes abstractions. In the instantiated model, we aim to apply the migration of Java programs in a context of a service-oriented architecture developed with Web services. This application comprises of a middleware layer that runs between the source program and the Web services technologies, and whose interface is the result of the mapping of the operations defined in the model. The evaluation performed to the instantiated model allows us to identify situations in which component migration to the server to interact locally is more advantageous in comparison to remote interacting with it

    Decentralized Scheduling for Many-Task Applications in the Hybrid Cloud

    Get PDF
    While Cloud Computing has transformed how we solve many computing tasks, some scientific and many-task applications are not efficiently executed on cloud resources. Decentralized scheduling, as studied in grid computing, can provide a scalable system to organize cloud resources and schedule a variety of work. By measuring simulations of two algorithms, the fully decentralized Organic Grid, and the partially decentralized Air Traffic Controller from IBM, we establish that decentralization is a workable approach, and that there are bottlenecks that can impact partially centralized algorithms. Through measurements in the cloud, we verify that our simulation approach is sound, and assess the variable performance of cloud resources. We propose a scheduler that measures the capabilities of the resources available to execute a task and distributes work dynamically at run time. Our scheduling algorithm is evaluated experimentally, and we show that performance-aware scheduling in a cloud environment can provide improvements in execution time. This provides a framework by which a variety of parameters can be weighed to make job-specific and context-aware scheduling decisions. Our measurements examine the usefulness of benchmarking as a metric used to measure a node\u27s performance, and drive scheduling. Benchmarking provides an advantage over simple queue-based scheduling on distributed systems whose members vary in actual performance, but the NAS benchmark we use does not always correlate perfectly with actual performance. The utilized hardware is examined, as are enforced performance variations, and we observe changes in performance that result in running on a system in which different workers receive different CPU allocations. As we see that performance metrics are useful near the end of the execution of a large job, we create a new metric from historical data of partially completed work, and use that to drive execution time down further. Interdependent task graph work is introduced and described as a next step in improving cloud scheduling. Realistic task graph problems are defined and a scheduling approach is introduced. This dissertation lays the groundwork to expand the types of problems that can be solved efficiently in the cloud environment

    Implementation of strong mobility for multi-threaded agents in Java

    No full text
    Strong mobility, which allows an external thread to transparently migrate an agent at any time, is difficult to implement in Java since the Java Virtual Machine does not allow serializing the runtime stack. We give an overview of our implementation strategy for strong mobility in which each agent thread maintains its own serializable execution state at all times. We explain how to solve the synchronization problems involved in migrating a multi-threaded agent and how to terminate the underlying Java threads in the originating virtual machine. We present experimental results that indicate that our implementation approach will be feasible in practice.

    An Autonomic Cross-Platform Operating Environment for On-Demand Internet Computing

    Get PDF
    The Internet has evolved into a global and ubiquitous communication medium interconnecting powerful application servers, diverse desktop computers and mobile notebooks. Along with recent developments in computer technology, such as the convergence of computing and communication devices, the way how people use computers and the Internet has changed people´s working habits and has led to new application scenarios. On the one hand, pervasive computing, ubiquitous computing and nomadic computing become more and more important since different computing devices like PDAs and notebooks may be used concurrently and alternately, e.g. while the user is on the move. On the other hand, the ubiquitous availability and pervasive interconnection of computing systems have fostered various trends towards the dynamic utilization and spontaneous collaboration of available remote computing resources, which are addressed by approaches like utility computing, grid computing, cloud computing and public computing. From a general point of view, the common objective of this development is the use of Internet applications on demand, i.e. applications that are not installed in advance by a platform administrator but are dynamically deployed and run as they are requested by the application user. The heterogeneous and unmanaged nature of the Internet represents a major challenge for the on demand use of custom Internet applications across heterogeneous hardware platforms, operating systems and network environments. Promising remedies are autonomic computing systems that are supposed to maintain themselves without particular user or application intervention. In this thesis, an Autonomic Cross-Platform Operating Environment (ACOE) is presented that supports On Demand Internet Computing (ODIC), such as dynamic application composition and ad hoc execution migration. The approach is based on an integration middleware called crossware that does not replace existing middleware but operates as a self-managing mediator between diverse application requirements and heterogeneous platform configurations. A Java implementation of the Crossware Development Kit (XDK) is presented, followed by the description of the On Demand Internet Computing System (ODIX). The feasibility of the approach is shown by the implementation of an Internet Application Workbench, an Internet Application Factory and an Internet Peer Federation. They illustrate the use of ODIX to support local, remote and distributed ODIC, respectively. Finally, the suitability of the approach is discussed with respect to the support of ODIC
    corecore