818 research outputs found

    Using mobility and exception handling to achieve mobile agents that survive server crash failures

    Get PDF
    Mobile agent technology, when designed and used effectively, can minimize bandwidth consumption and autonomously provide a snapshot of the current context of a distributed system. Protecting mobile agents from server crashes is a challenging issue, since developers normally have no control over remote servers. Server crash failures can leave replicas, instable storage, unavailable for an unknown time period. Furthermore, few systems have considered the need for using a fault tolerant protocol among a group of collaborating mobile agents. This thesis uses exception handling to protect mobile agents from server crash failures. An exception model is proposed for mobile agents and two exception handler designs are investigated. The first exists at the server that created the mobile agent and uses a timeout mechanism. The second, the mobile shadow scheme, migrates with the mobile agent and operates at the previous server visited by the mobile agent. A case study application has been developed to compare the performance of the two exception handler designs. Performance results demonstrate that although the second design is slower it offers the smaller trip time when handling a server crash. Furthermore, no modification of the server environment is necessary. This thesis shows that the mobile shadow exception handling scheme reduces complexity for a group of mobile agents to survive server crashes. The scheme deploys a replica that monitors the server occupied by the master, at each stage of the itinerary. The replica exists at the previous server visited in the itinerary. Consequently, each group member is a single fault tolerant entity with respect to server crash failures. Other schemes introduce greater complexity and performance overheads since, for each stage of the itinerary, a group of replicas is sent to servers that offer an equivalent service. In addition, future research is established for fault tolerance in groups of collaborating mobile agents

    Open Multithreaded Transactions: A Transaction Model for Concurrent Object-Oriented Programming

    Get PDF
    To read the abstract, please go to my PhD home page

    ATOMAS : a transaction-oriented open multi agent system; final report

    Get PDF
    The electronic marketplace of the future will consist of a large number of services located on an open, distributed and heterogeneous platform, which will be used by an even larger number of clients. Mobile Agent Systems are considered to be a precondition for the evolution of such an electronic market. They can provide a flexible infrastructure for this market, i.e. for the installation of new services by service agents as well as for the utilization of these services by client agents. Mobile Agent Systems basically consist of a number of locations and agents. Locations are (logical) abstractions for (physical) hosts in a computer network. The network of locations serves as a unique and homogeneous platform, while the underlying network of hosts may be heterogeneous and widely distributed. Locations therefore have to guarantee independence from the underlying hard- and software. To make the Mobile Agent System an open platform, the system furthermore has to guarantee security of hosts against malicious attacks

    Intrusion-Tolerant Middleware: the MAFTIA approach

    Get PDF
    The pervasive interconnection of systems all over the world has given computer services a significant socio-economic value, which can be affected both by accidental faults and by malicious activity. It would be appealing to address both problems in a seamless manner, through a common approach to security and dependability. This is the proposal of intrusion tolerance, where it is assumed that systems remain to some extent faulty and/or vulnerable and subject to attacks that can be successful, the idea being to ensure that the overall system nevertheless remains secure and operational. In this paper, we report some of the advances made in the European project MAFTIA, namely in what concerns a basis of concepts unifying security and dependability, and a modular and versatile architecture, featuring several intrusion-tolerant middleware building blocks. We describe new architectural constructs and algorithmic strategies, such as: the use of trusted components at several levels of abstraction; new randomization techniques; new replica control and access control algorithms. The paper concludes by exemplifying the construction of intrusion-tolerant applications on the MAFTIA middleware, through a transaction support servic

    Management of object-oriented action-based distributed programs

    Get PDF
    Phd ThesisThis thesis addresses the problem of managing the runtime behaviour of distributed programs. The thesis of this work is that management is fundamentally an information processing activity and that the object model, as applied to actionbased distributed systems and database systems, is an appropriate representation of the management information. In this approach, the basic concepts of classes, objects, relationships, and atomic transition systems are used to form object models of distributed programs. Distributed programs are collections of objects whose methods are structured using atomic actions, i.e., atomic transactions. Object models are formed of two submodels, each representing a fundamental aspect of a distributed program. The structural submodel represents a static perspective of the distributed program, and the control submodel represents a dynamic perspective of it. Structural models represent the program's objects, classes and their relationships. Control models represent the program's object states, events, guards and actions-a transition system. Resolution of queries on the distributed program's object model enable the management system to control certain activities of distributed programs. At a different level of abstraction, the distributed program can be seen as a reactive system where two subprograms interact: an application program and a management program; they interact only through sensors and actuators. Sensors are methods used to probe an object's state and actuators are methods used to change an object's state. The management program is capable to prod the application program into action by activating sensors and actuators available at the interface of the application program. Actions are determined by management policies that are encoded in the management program. This way of structuring the management system encourages a clear modularization of application and management distributed programs, allowing better separation of concerns. Managemental concerns can be dealt with by the management program, functional concerns can be assigned to the application program. The object-oriented action-based computational model adopted by the management system provides a natural framework for the implementation of faulttolerant distributed programs. Object orientation provides modularity and extensibility through object encapsulation. Atomic actions guarantee the consistency of the objects of the distributed program despite concurrency and failures. Replication of the distributed program provides increased fault-tolerance by guaranteeing the consistent progress of the computation, even though some of the replicated objects can fail. A prototype management system based on the management theory proposed above has been implemented atop Arjuna; an object-oriented programming system which provides a set of tools for constructing fault-tolerant distributed programs. The management system is composed of two subsystems: Stabilis, a management system for structural information, and Vigil, a management system for control information. Example applications have been implemented to illustrate the use of the management system and gather experimental evidence to give support to the thesis.CNPq (Consellho Nacional de Desenvolvimento Cientifico e Tecnol6gico, Brazil): BROADCAST (Basic Research On Advanced Distributed Computing: from Algorithms to SysTems)

    VORTEX ENTERPRISE: DECENTRALIZED VIRTUAL REALITY BLOCKCHAIN-BASED PLATFORM

    Get PDF
    Virtual Reality (VR) has been used in industries since the 1960s. However, the recent development of hardware and software has made it possible for VR technologies to become widely adopted by the mass market with the highest level of immersion and affordable price. However, building platforms for VR technologies will require many active users and their engagement in project development. Those activities will include platform activities, content creation, social media marketing, processing power, and storage. For that purpose, we introduce VoRtex enterprise high-level software architecture and decentralized blockchain solution. Introduced VoRtex enterprise high-level software architecture will be used to develop blockchain-based virtual world (VW) platform with VR support. The goal of the VW platform is to support the development of education, certification and massive open online courses (MOOC). A blockchain component inside the VW platform will be used for engaging users in project development through collaboration and content sharing. Active users that promote platform content will get rewards for contributions using cryptocurrency. Also, we will showcase this feature on the VoRtex platform prototype where the user earns cryptocurrencies for activity inside the VW. In the end, we will evaluate the proposed solutio

    Coordinated collaboration for e-commerce based on the multiagent paradigm.

    Get PDF
    Lee Ting-on.Thesis (M.Phil.)--Chinese University of Hong Kong, 2000.Includes bibliographical references (leaves 116-121).Abstracts in English and Chinese.Acknowledgments --- p.iAbstract --- p.iiChapter 1 --- Introduction --- p.1Chapter 1.1 --- Roadmap to the Thesis --- p.5Chapter 2 --- Software Agents and Agent Frameworks --- p.7Chapter 2.1 --- Software Agent --- p.7Chapter 2.1.1 --- Advantages of Agent --- p.10Chapter 2.1.2 --- Roles of Agent --- p.11Chapter 2.2 --- Agent Frameworks --- p.13Chapter 2.3 --- Communication Services and Concepts --- p.15Chapter 2.3.1 --- Message Channel --- p.15Chapter 2.3.2 --- Remote Procedure Call --- p.16Chapter 2.3.3 --- Event Channel --- p.17Chapter 2.4 --- Component --- p.18Chapter 3 --- Related Work --- p.20Chapter 3.1 --- Collaboration Behaviors --- p.20Chapter 3.2 --- Direct Coordination --- p.22Chapter 3.3 --- Meeting-oriented Coordination --- p.23Chapter 3.4 --- Blackboard-based Coordination --- p.24Chapter 3.5 --- Linda-like Coordination --- p.25Chapter 3.6 --- Reactive Tuple Spaces --- p.26Chapter 4 --- Background and Foundations --- p.27Chapter 4.1 --- Choice of Technologies --- p.27Chapter 4.2 --- Jini Technology --- p.28Chapter 4.2.1 --- The Lookup Service --- p.29Chapter 4.2.2 --- Proxy --- p.31Chapter 4.3 --- JavaSpaces --- p.32Chapter 4.4 --- Grasshopper Architecture --- p.33Chapter 5 --- The CoDAC Framework --- p.36Chapter 5.1 --- Requirements for Enabling Collaboration --- p.37Chapter 5.1.1 --- Consistent Group Membership --- p.37Chapter 5.1.2 --- Atomic Commitment --- p.39Chapter 5.1.3 --- Uniform Reliable Multicast --- p.40Chapter 5.1.4 --- Fault Tolerance --- p.40Chapter 5.2 --- System Components --- p.41Chapter 5.2.1 --- Distributed Agent Adapter --- p.42Chapter 5.2.2 --- CollaborationCore --- p.44Chapter 5.3 --- System Infrastructure --- p.45Chapter 5.3.1 --- Agent --- p.45Chapter 5.3.2 --- Distributed Agent Manager --- p.46Chapter 5.3.3 --- Collaboration Manager --- p.46Chapter 5.3.4 --- Kernel --- p.46Chapter 5.4 --- Collaboration --- p.47Chapter 5.5.1 --- Global Collaboration --- p.48Chapter 5.5.2 --- Local Collaboration --- p.48Chapter 6 --- Collaboration Life Cycle --- p.50Chapter 6.1 --- Initialization --- p.50Chapter 6.2 --- Resouces Gathering --- p.53Chapter 6.3 --- Results Delivery --- p.54Chapter 7 --- Protocol Suite --- p.55Chapter 7.1 --- The Group Membership Protocol --- p.56Chapter 7.1.1 --- Join Protocol --- p.56Chapter 7.1.2 --- Leave Protocol --- p.57Chapter 7.1.3 --- Recovery Protocol --- p.59Chapter 7.1.4 --- Proof --- p.61Chapter 7.2 --- Atomic Commitment Protocol --- p.62Chapter 7.3 --- Uniform Reliable Multicast --- p.63Chapter Chapter 8 --- Implementation --- p.66Chapter 8.1 --- Interfaces and Classes --- p.66Chapter 8.1.1 --- The CoDACAdapterInterface --- p.66Chapter 8.1.2 --- The CoDACEventListener --- p.69Chapter 8.1.3 --- The DAAdapter --- p.71Chapter 8.1.4 --- The DAManager --- p.75Chapter 8.1.5 --- The CoDACInternalEventListener --- p.77Chapter 8.1.6 --- The CollaborationManager --- p.77Chapter 8.1.7 --- The CollaborationCore --- p.78Chapter 8.2 --- Messaging Mechanism --- p.79Chapter 8.3 --- Nested Transaction --- p.84Chapter 8.4 --- Fault Detection --- p.85Chapter 8.5 --- Atomic Commitment Protocol --- p.88Chapter 8.5.1 --- Message Flow --- p.89Chapter 8.5.2 --- Timeout Actions --- p.91Chapter Chapter 9 --- Example --- p.93Chapter 9.1 --- System Model --- p.93Chapter 9.2 --- Auction Lifecycle --- p.94Chapter 9.2.1 --- Initialization --- p.94Chapter 9.2.2 --- Resource Gathering --- p.98Chapter 9.2.3 --- Results Delivery --- p.100Chapter Chapter 10 --- Discussions --- p.104Chapter 10.1 --- Compatibility --- p.104Chapter 10.2 --- Hierarchical Group Infrastructure --- p.106Chapter 10.3 --- Flexibility --- p.107Chapter 10.4 --- Atomicity --- p.108Chapter 10.5 --- Fault Tolerance --- p.109Chapter Chapter 11 --- Conclusion and Future Work --- p.111Chapter 11.1 --- Conclusion --- p.111Chapter 11.2 --- Future Work --- p.112Chapter 11.2.1 --- Electronic Commerce --- p.112Chapter 11.2.2 --- Workflow Management --- p.114Bibliography --- p.116Publication List --- p.12

    System support for object replication in distributed systems

    Get PDF
    Distributed systems are composed of a collection of cooperating but failure prone system components. The number of components in such systems is often large and, despite low probabilities of any particular component failing, the likelihood that there will be at least a small number of failures within the system at a given time is high. Therefore, distributed systems must be able to withstand partial failures. By being resilient to partial failures, a distributed system becomes more able to offer a dependable service and therefore more useful. Replication is a well known technique used to mask partial failures and increase reliability in distributed computer systems. However, replication management requires sophisticated distributed control algorithms, and is therefore a labour intensive and error prone task. Furthermore, replication is in most cases employed due to applications' non-functional requirements for reliability, as dependability is generally an orthogonal issue to the problem domain of the application. If system level support for replication is provided, the application developer can devote more effort to application specific issues. Distributed systems are inherently more complex than centralised systems. Encapsulation and abstraction of components and services can be of paramount importance in managing their complexity. The use of object oriented techniques and languages, providing support for encapsulation and abstraction, has made development of distributed systems more manageable. In systems where applications are being developed using object-oriented techniques, system support mechanisms must recognise this, and provide support for the object-oriented approach. The architecture presented exploits object-oriented techniques to improve transparency and to reduce the application programmer involvement required to use the replication mechanisms. This dissertation describes an approach to implementing system support for object replication, which is distinct from other approaches such as replicated objects in that objects are not specially designed for replication. Additionally, object replication, in contrast to data replication, is a function-shipping approach and deals with the replication of both operations and data. Object replication is complicated by objects' encapsulation of local state and the arbitrary interaction patterns that may exist among objects. Although fully transparent object replication has not been achieved, my thesis is that partial system support for replication of program-level objects is practicable and assists the development of certain classes of reliable distributed applications. I demonstrate the usefulness of this approach by describing a prototype implementation and showing how it supports the development of an example toy application. To increase their flexibility, the system support mechanisms described are tailorable. The approach adopted in this work is to provide partial support for object replication, relying on some assistance from the application developer to supply application dependent functionality within particular collators for dealing with processing of results from object replicas. Care is taken to make the programming model as simple and concise as possible
    corecore