Tiamat: Generative Communication in a Changing World

Size: px
Start display at page:

Download "Tiamat: Generative Communication in a Changing World"

Transcription

1 Tiamat: Generative Communication in a Changing World Gareth P. McSorley and Huw Evans Department of Computing Science, University of Glasgow gareth@dcs.gla.ac.uk Abstract Providing infrastructural support for pervasive computing environments is difficult due to their ever changing, resource-limited nature. In such environments, generative communications would be of benefit due to the decoupling the paradigm offers. This paper introduces Tiamat, a system which provides a coordination infrastructure for applications in pervasive environments based on generative communications. The Tiamat model maps naturally onto the key characteristics of a pervasive environment and provides a flexible infrastructure, through the use of opportunistic logical tuple spaces, as well as a fine-grained resource management mechanism, via its leasing model. The Tiamat model is presented along with an overview of the current implementation. A set of challenges which must be faced when developing infrastructure for pervasive environments is presented. Future extensions to Tiamat to meet some of these challenges are also described. 1 Introduction Pervasive computing environments typically contain heterogeneous collections of devices, from highly mobile, resource limited PDAs to the largely static, resource-rich modern workstation. One of the challenges for pervasive computing is the coordination of all the disparate, mobile devices in order to allow useful applications to be constructed. One potentially fruitful approach is to use generative communications, which provide decoupling in terms of space, time and identity, to provide a distributed coordination infrastructure for the devices in the pervasive environment. Generative communications, as exemplified by Linda [1], involve the communication of messages through a shared data space, called a tuple space. The units of communication are ordered collections of typed data, called tuples. s are placed into the space by one participant and kept there until they are removed by another, the system typically providing a pattern matching service to find the desired tuple. Generative communications were originally devised to support the coordination of parallel processes. The paradigm has since been applied to other environments including a variety of distributed systems. Generative communications provide three forms of decoupling which are particularly suited to managing devices in a pervasive, mobile environment. Generative communications are decoupled in terms of identity. When tuples are placed in the tuple space they are available to any entity interacting with that space. The consumer of a tuple does not have to be concerned with the identity of the process that made the tuple available, all that is of concern is that the correct tuple can be retrieved. This is useful in a pervasive environment where entities may come and go frequently. In this environment it is not desirable to direct communications toward a particular entity. Rather, it would be better to continue communicating as long as there is another available entity that is willing to coordinate. Generative communications are also decoupled in time. The tuple space is an asynchronous communication mechanism, that is, the producer and the consumer of the data do not need to simultaneously connect to the same space, indeed, they do not even need to exist at the same time because the tuple space ensures the data is independent of the creating entity. This is useful in a pervasive environment as a device may not exist long enough to communicate with another device directly (it may run out of battery power, for example). Finally, generative communications are decoupled in location. The asynchronous nature of the space means that the two coordinating entities do not need to be co-located. This is useful in a system where the entities are frequently mobile and, as a result, coordinating entities may not be co-located long enough to coordinate effectively. This paper introduces Tiamat, a system that has been designed and implemented with the goal of bringing the generative communication paradigm to a pervasive environment. This work is motivated by the need to address the engineering problems which have arisen in previous attempts to provide this kind of infrastructure in a mobile environment. Tiamat achieves this by providing a model and infrastructure which are designed around the environment rather than being imposed upon it. Tiamat provides generative communications through the use of opportunistic logical tuple spaces formed from multiple remote tuple spaces. Opportunistic spaces provide

2 a simple abstraction over the underlying changes in the environment, allowing application programmers to focus on achieving their goals without having to manage the coordination. The remainder of this paper is organised as follows. The Tiamat model is described in Section 2 and is followed by a discussion of the current implementation in Section 3. Section 4 outlines related work in distributed generative communications. Key challenges for the construction of infrastructure for pervasive environments are described in Section 5. Future work is detailed in Section 6 and the paper is concluded in Section 7. 2 The Tiamat Model This section presents the core concepts in the Tiamat model, which has been designed around the constraints and demands of the underlying pervasive environment. Tiamat provides the abstraction of opportunistic logical spaces allowing Linda-like semantics to be provided in the face of environmental change. Tiamat also provides leases as a means of fine grained resource management. 2.1 Linda Semantics Tiamat aims to provide the well understood semantics of traditional generative communication systems. The goal of Tiamat was to retain the semantics of Linda as far as possible and so keep the API simple. Linda provides six operations over the space. The out and eval operators are used to put a tuple into the space. s placed into the space become available to any process performing other operations. In the case of eval the tuple is considered active and contains some computation which must be carried out before the resultant tuple becomes available. The rdp operator searches the tuple space for a tuple matching a given pattern, traditionally called an antituple. If a matching tuple is found, a copy is returned to the caller. If there are multiple matches, one is selected in a non-deterministic manner. The rd operation performs the same function as rdp with the exception that, if there is no matching tuple in the space, the operation will block awaiting a match. When a matching tuple becomes available, the operation will then return. The operations inp and in behave in the same manner as rdp and rd respectively, except that, if a match is found, it is removed from the space before being returned to the caller. 2.2 Opportunistic Logical The nature of a pervasive environment means that the presence of other devices cannot be relied upon. For this reason, each node in Tiamat contains a local tuple space to allow applications to perform tuple space operations through Tiamat even if working in isolation. As well as providing access to the local space, instances of Tiamat also establish connections with other instances for the purpose of forming logical tuple spaces. A logical tuple space is formed from the local tuple space and the tuple spaces of any other currently visible instances of Tiamat. Another instance of Tiamat is considered visible if it can be communicated with in some way. The exact means of this communication may be implemented in different ways, e.g., through direct communication only, or routed through other instances. The Tiamat model does not depend on any particular implementation of visibility, only the concept of visibility. This concept is depicted in figure 1. In part (a) we see two isolated Tiamat instances. In this case the logical tuple space for each instance consists solely of their local space. If these instances become visible to one another, then the logical tuple space will now be a combination of the two local spaces, as shown in (b). This allows each instance to utilise each others tuple spaces. Tiamat defines no global consistency guarantees; that is, it is possible for Tiamat instances to see different logical spaces. This scenario is depicted in part (c) where a third instance, C, becomes visible to instance B, but not to instance A. Instance B now has a logical tuple space consisting of all three tuple spaces. The logical tuple spaces for instances A and C, however, only consist of their own local space along with the space from instance B. (a) (c) Instance A Instance A Instance B Instance B Instance C (b) Key Instance A Network Connection Instance B Logical for instance A Logical for instance B Logical for instance C Figure 1: Logical Operation By default, applications do not interact with the individual local spaces. Rather they interact with the logical space presented by Tiamat. The operations out and eval by default, operate only on the local space. In the case of the operations in, inp, rd and rdp, Tiamat will not only perform the operation on the local space, but will propagate the operation to other currently visible instances, and instances which become visible during the lifetime of the operation (defined by the associated lease as described in Section 2.5). These instances will then attempt to satisfy the operation on their local spaces. If multiple instances locate matching tuples, some appropriate decision should be made as to which one to accept,

3 and the others should remain in their spaces. By providing this default behaviour, an application can use the Tiamat system to coordinate transparently with another application which may be located on a remote host. 2.3 Flexible, Adaptive Model Constructing the logical tuples space opportunistically, as operations are performed, removes the need for explicit connection/disconnection operations. Tiamat instances can enter or leave the scope of visibility without affecting the semantics of any ongoing operations (although their departure may affect the result of the operation). Explicit connection/disconnection requirements were avoided as they are unsuitable for a pervasive environment where mobile hosts may come and go frequently. Although no explicit connection/disconnection operations are required, they may still be provided in the implementation to allow application developers to choose whether instances passively or actively perceive change in the set of visible instances. An opportunistic model allows Tiamat to adapt to changes in the mobile environment. 2.4 Direct Remote Communications The abstraction over underlying changes provided by the logical tuple space allows applications to function without direct knowledge of remote Tiamat instances. However, it is important that Tiamat does not prevent an application from obtaining this knowledge if it so desires. As such, Tiamat offers applications the means to interact with specific instances when required. This functionality is particularly useful in the case of out and eval where the local space may be refusing to accept the tuple due to resource shortages (see Section 2.5), or in the case where the application wants to make tuples available to other Tiamat instances even after it leaves. In order to support this, each tuple space in Tiamat contains a special tuple. This tuple contains a handle on the space as well some information about that space e.g., whether the local space provides a persistence mechanism or not. Applications can read these tuples and use the handles to perform operations on specific remote spaces. All of the provided operations have special versions which take these handles and perform the operation requested on the remote space specified. Another means of supporting this is provided in the case of out and eval through a third version of each command. These take in a tuple which was returned as a result of a prior in, inp, rd or rdp operation. Tiamat will then attempt to satisfy the operation at the remote instance where the given tuple was obtained. If the destination is not available, then a policy, either at the application or system level, must be established as to whether there are attempts to route the tuple, whether it is placed in the local space, or whether the operation is abandoned altogether. 2.5 Resource Management Tiamat defines a leasing model in which every operation is leased. Whenever an application performs an operation, it must first negotiate a lease with Tiamat. These leases represent the effort a Tiamat instance is willing to dedicate to carrying out the operation. These leases may be based on time or on other measures such as the number of remote instances contacted. Each lease incorporates the concept of expiration, after which the leased resource (e.g., storage space or network resources) may be reclaimed. The final decision as to what lease is actually granted, or if a lease is granted at all, is made by the Tiamat instance. Leases are only valid for the instance which grants them and are not transferable across instances. Any Tiamat instance which, during the course of performing an operation, places demands on another, is responsible for negotiating any further leases. Due to the unpredictable nature of a pervasive system, the leases offered do not represent absolute guarantees. Rather they represent a best-effort on the part of the system to satisfy the application s request. If circumstances change substantially, a Tiamat instance may revoke the lease; although this behaviour should only be employed as a last resort to avoid undermining the leasing system altogether. For the out operation, once the lease expires, the tuple may be removed from the space at anytime. For the eval operation, when the lease expires the resultant computation (if it has not already finished) may be halted and the tuple may be removed. In the case of of in, inp, rd and rdp once the lease expires, the Tiamat instance may stop trying to satisfy the request and, assuming no match has already been found, return nothing. In the case of the blocking operations, in and rd, this represents a slight semantic alteration which is necessary in order to avoid indefinite consumption of resources. Leasing has been included into the Tiamat model in order to provide the facility for fine-grained resource management within Tiamat instances. Due to the asynchronous, identity-separated nature of generative communications, it is not normally possible to identify tuples as being garbage. In Tiamat, the leasing model allows tighter controls to be placed on how long tuples may reside in the space before being removed. By also extending the leasing mechanism to all operations, and by allowing lease expiration to be defined in terms of resources used, as well as just time, a Tiamat instance can control access to its resources on a resource by resource basis. This is crucial in a pervasive environment due to the wide variety of hardware capabilities and resource capacities that are typically found on pervasive

4 devices. The leasing mechanism also allows application programmers to specify upper boundaries on availability of their tuples. 3 Current Tiamat Implementation An initial prototype implementation of the Tiamat model has been produced and is now in use. The Tiamat implementation has been tested by providing a number of simple applications. This section highlights the most pertinent parts of the current implementation. 3.1 Overview The prototype implementation has been constructed entirely in Java. Java was selected due to its portable nature and availability on a wide variety of devices including PDAs and phones. In the current implementation, the only deviation from the model is that operations are only propagated to instances which are visible at the beginning of the operation. Instances which become visible after the operation starts are not included. This is an area for future work. Application Lease Manager Application Comms. Manager Figure 2: A Tiamat Instance Network Communication An overview of a Tiamat instance as presently implemented is shown in figure 2. The lease manager deals with all of the resource management within the system and is the first point of contact for any operation. If a lease is refused, no further work is carried out on the operation. The local tuple space is where all of the tuples in the Tiamat instance are stored. The communications manger is responsible for contacting remote instances of Tiamat, propagating any operations to remote nodes, receiving the results of those operations and receiving requests for operations from other instances Lease Manager All resources that an instance wishes to manage (e.g., threads, sockets) are allocated through factory objects controlled by the lease manager. This allows the lease manager to maintain control over the amount of resources being consumed and allocate leases accordingly. The leasing of operations is performed by applications passing lease requester objects to the system along with their tuples. These lease requester objects have the task of negotiating with the lease manager inside Tiamat. Firstly, a lease requester makes a request to the lease manager. The lease manager then informs the lease requester of what lease it is willing to offer. If the lease requester refuses this lease, then the operation fails The tuple space currently used within the Tiamat system is a basic, custom built tuple space system. The tuple space could be replaced with any system which implements the six standard Linda operations Communications Manager The communications manager is responsible for defining the scope of visibility for the Tiamat model. In the current implementation the visibility of Tiamat instances is defined by a multicast. Normally, when an operation is performed the Tiamat instance involved sends out a multicast packet. Other instances which receive this packet respond, informing the sender of the address and port number on which they should be contacted. The Tiamat instance may then choose to propagate the operation to the instances which respond. If, once the operation is propagated, multiple instances respond with a match, then the first instance to contact the communications manager is accepted and the remaining instances place the tuples back into their respective spaces. While the opportunistic construction of the logical spaces provides adaptability it would be expensive to gather a list of visible hosts for each and every operation via a multicast, particularly if the set of visible hosts happens to change infrequently. The current implementation retains a list of instances which respond to the multicast packets when an operation takes place. When the instance performs subsequent operations, it begins by contacting the instances already on the list, removing any which do not respond. If the end of the list is reached, and the request is not satisfied, then another multicast may be used to try and find more instances. Responding instances are added to the bottom of the list and operation propagation always starts from the top. This improves performance because consistently visible instances work their way to the top of the list and, therefore, will be the first to be contacted when an operation is performed. 3.2 Applications Two sample applications have been built by porting third party code into the Tiamat infrastructure. The first application was the adaptation of a web client and proxy server to use Tiamat for coordination. The second, the adaptation of a fractal generator that was originally based around the provision of a load balancing server. The adaptation of the web client and proxy server, required no modification to the code of either. Around two hundred lines of supplemental code was required in

5 order to integrate the web communication with the logical tuple space. In the system clients place their identified requests into the space as tuples. The client then performs a blocking operation attempting to retrieve a response tuple with the same identifying information. Proxy servers perform blocking operations awaiting requests. When a request is placed into the space it is removed and given to a proxy server, which obtains the relevant pages, wraps them up in a tuple along with the original identifying information. The proxy server then places this tuple back into the space allowing it to be retrieved by the client. For the low cost of two hundred lines of code, the power of the web client and proxy server are greatly increased. Firstly, due to the anonymity afforded by generative communications, proxy servers can be dynamically added without the clients knowledge. This allows proxy servers to be added both for the purposes of load balancing, adding more servers to handle increases in demand, and in the case of failure, to replace the failed server. Neither of these actions is visible to, nor perturbs, the clients. Another useful feature presents itself when the client becomes disconnected. The client can still make requests even in the absence of any servers (e.g., while in between networks). Once a server becomes visible it will see the tuple (assuming the lease has not expired) and perform the necessary operation. The fractal generator gleaned much the same benefits from its adaption to the Tiamat system. The load balancing server was removed and the data producers communicated with the entities performing the calculations through the space, resulting in a decrease in the amount of code necessary. Communications were handled in a similar fashion to the web system, with masters placing identified tuples defining the calculation to be performed, and the workers attaching the same identity to the result. Once again, the number of entities performing calculations could be increased and decreased without perturbing the clients. In both sample applications, the code base was provided by an external source and adapted to use Tiamat. This required very little knowledge of the operation of the applications beyond the communication paths. In the case of the web client/proxy example, no modification was made to either the client or the proxy being used. 4 Related Work This section summarises other research into providing generative communications in distributed environments. 4.1 Linda The original Linda system [1] was designed to allow parallel processes to coordinate through the shared tuple space. While interesting from a semantic perspective the system does not consider distribution. 4.2 Commercial Systems Ts [2] and Javas [3] are two powerful, commercial, distributed generative communication platforms. Both systems offer the tuple space abstraction to devices on a client/server basis. Although the centralised nature of these two systems may not impact their usefulness in a distributed setting, it does reduce it in a pervasive environment. Due to the changeable nature of a pervasive environment, the presence of other devices for the provision of services cannot be relied upon. This means that centralised architectures, where one machine must be visible to all others, are not appropriate in a mobile environment. 4.3 L imbo imbo [4] is a distributed tuple space system designed to operate in a mobile environment. L imbo uses a Distributed (DTS) protocol to replicate tuple spaces across participating hosts. Each tuple space has its own multicast group, and clients attempt to maintain a consistent replica of the space by multicasting a copy of every operation to the group. The DTS protocol provides facilities for disconnected operation. Each tuple has a single owner associated with it. Ownership can be transferred to another client, and only to owner of a tuple may remove it from the space. While disconnected clients can perform out and rd operations as normal, but can only perform in operations on tuples it owns. The client must retain information as to which tuples were removed during its disconnection so that it can inform others to update their spaces once it reconnects. After reconnection, the client begins watching other multicast messages to determine if any tuples were placed in the space in its absence. It subsequently requests copies of any new tuples. The replication mechanism places some heavy resource constraints on the participants. In order to make use of a tuple space each client must be willing to keep its own replica of the tuple space which could place a burden on the resources available. It also modifies the semantics of the operations. In a traditional generative communication system, once a particular tuple has been removed from the space, it should not be available to any subsequent operation. This is not the case in L imbo as the tuple may still be accessible to a disconnected host or one that did not receive a particular multicast message. The concept of ownership breaks the traditional generative communications model and breaks the decouplings which give it many of its advantages. This model is no longer decoupled in identity as a client must have knowledge of the intended recipient of a tuple in order to pass on ownership. The client must also be able L

6 to communicate directly with the recipient in order to hand over ownership, breaking the time and space decoupling. In addition, in a mobile environment, ownership causes a resource management issue. If a client deposits a sizeable number of tuples in the space and then leaves, no other client can remove those tuples until that same client returns, something which may never happen. If the client does not return then the tuples will simply continue to consume resources on all of the clients participating in that space. 4.4 Lime The LIME system [5] is another attempt to provide Linda-like semantics in a mobile environment. LIME uses the concept of transiently shared tuple spaces, which are similar to the opportunistic logical spaces in Tiamat. LIME provides support for both logical mobility, in the form of mobile agents, and physical mobility of hosts. Each agent possesses its own tuple space called an Interface (ITS) which moves along with the agent. Agents located on the same host engage their tuple spaces to form a host-level space. Communicating hosts engage their tuple spaces into larger federated tuple spaces. Unlike Tiamat, LIME does not do this on an opportunistic basis, rather it tries to ensure global consistency across hosts, attempting to ensure that all hosts have identical views of the shared tuple space. While this may be feasible within a single host, or perhaps even across a small number of hosts, it is likely to prove unworkable in large networks due to large latencies. LIME also requires the space engagement and disengagement operations to be atomic across all hosts in the federated space. This means that other operations cannot proceed while hosts are engaging/disengaging which could be a problem in an environment where hosts may be coming and going rapidly, potentially causing delays in normal tuple space operation processing as the engagements/disengagements are dealt with. LIME s constrained model is not well suited to the dynamic nature of a mobile environment. This disparity between model and environment has also resulted in some implementation difficulties. Indeed, it has been reported in [6] that the prototype implementation of LIME cannot function with more than six hosts forming a single federated space. 4.5 CoreLime CoreLime is a restricted LIME variant developed in an attempt to address many of the scalability issues which LIME presents [7]. It attempts to simplify the LIME model whilst trying to maintain the semantics of the various primitives. CoreLime does not make use of federated tuple spaces. Agents still have an ITS and they can still form host-level spaces, but these are no longer permitted to form federated tuple spaces. This removes many of the global synchronisation problems which arise from trying to maintain a consistent view of the world. Operations are only allowed on local spaces, no remote communications are permitted at all. Instead, clients are expected to take advantage of mobile agents to access other hostlevel tuple spaces. If a client wants to perform an operation on a remote, host-level tuple space, it must create a new mobile agent and migrate it the desired host. Once there, the agent would engage with the host-level space, perform the operation and finally migrate back to the originating host. CoreLime removes many of the inefficiencies present in the LIME model, and still retains much of the functionality in the form of host-level tuple spaces. However, since CoreLime does not attempt to federate the tuple spaces, the burden of doing so is placed on the application developer. The application developer has to discover which tuple spaces are available, connect to them and begin making use of them. 4.6 Peers Peers [8] is a tuple space system based on JXTA, Sun Microsystems open-source peer-to-peer infrastructure. Each JXTA node contains a tuple space and reading operations are sent out in a flooding broadcast to other nodes in the network in order to find matches. While Peers does include the concept of leasing while searching the network, it is included only to ensure fault-tolerance. Apart from this and the mention of potentially adding the concept of expiration to data in the space, Peers makes no other attempts to provide any resource management features. 4.7 Comparison and Categorisation The original Linda model is designed around a single shared data space for the coordination of parallel processes. Ts and Javas provide a heavyweight server/client model in a distributed environment. Other than Tiamat, there are four approaches to supporting decentralised generative communication. L imbo replicates tuple spaces across mobile hosts resulting in the problems with inconsistency and ownership. LIME uses federated tuple spaces in order to provide global consistency which results in a system which does not scale well as the number of hosts increases and also requires explicit connection and disconnection of devices which does not suit a mobile environment. CoreLime provides host level tuple spaces but leaves the location and utilisation of remote spaces to the application developer through the provision of mobile agents. Peers provides a peer-to-peer like flooding mechanism for locating tuples in remote spaces. Tiamat provides opportunistic logical tuple spaces. Neither

7 Peers nor Tiamat attempt to provide global consistency and, as a result, are more likely to scale to allow a greater number of devices simultaneous access to resources. Tiamat also provides fine-grained resource management which is important at the implementation level in a pervasive environment as described in Section Challenges Six key challenges have been identified which must be tackled in the development of infrastructure for a pervasive environment. This section details these six challenges, explaining what each challenge is, why it is important to attempt to understand and, hopefully, overcome it and how these challenges should be approached. 5.1 Environment Driven Design The overall challenge in developing infrastructure to support pervasive computing is to ensure that the infrastructure which is designed and implemented is driven by the environment it finds itself in. Pervasive environments have potentially limitless permutations and combinations of devices, each one placing a different set of demands on the infrastructure. It is not feasible to specifically program for each and every one of these situations, rather the infrastructure which is put in place must be able to adapt itself to suit the present circumstances. Infrastructures for pervasive environments are primarily influenced by two factors. Firstly, there are the constraints imposed by the underlying Run-Time Support (RTS). The RTS encompasses any systems or services upon which the infrastructure relies for operation as well as the context in which it sits (i.e., the set of other entities in the system, their current state and accessibility). The RTS may restrict the set of resources or services which are available to a given infrastructure or the set of other devices may change as devices enter and leave the system. Secondly, there are the demands placed on the infrastructure by the applications built on top of it. These demands will vary as the behaviour of the applications change. These two driving influences, the applications from above and the RTS from below, form the operational environment for the infrastructure. In order to adapt to the environment an infrastructure must obtain information about these two influences and also know how to react appropriately as they change. This results in five further sub-challenges: obtaining information about the RTS; adapting in accordance with that information; obtaining information about the application behaviour; adapting to take account of application behaviour; and dealing with conflicts in adaptation. 5.2 Monitoring the Run-Time Support It is important to design and implement infrastructure which can obtain information regarding the nature and state of the current RTS. An infrastructure cannot adapt to changes in its environment if it does not know about them and, therefore, it is important that the infrastructure be capable of gathering information about the current environment. Before an infrastructure can gather information about the RTS, such information must be made available. It is important to identify the set of information which is pertinent to the infrastructure and to establish whether the cost of obtaining such information can be offset through subsequent use. The underlying RTS must then provide a mechanism that allows the infrastructure to obtain the information required, for example, an event based system could be utilised to inform interested infrastructures of significant changes in the environment. The infrastructure must then decide how this information should be stored or processed. For example should it be stored to allow for the identification of trends or is the current state the only point of interest? Can future behaviour be estimated through an examination of the past? The computational and storage costs of these analyses must be compared to the potential benefits when trying to determine their value. 5.3 Adapting to Change Once an infrastructure has access to information regarding the underlying RTS, it must use that information to adapt to the current situation. This should be done to ensure that the infrastructure makes better use of the limited resources that are available. The infrastructure should attempt to exploit characteristics of the underlying RTS and the set of resources it provides. For example, nodes which move around frequently could be exploited for the dissemination of information, while those that are relatively fixed could be used as temporary data stores. 5.4 Modelling Application Behaviour The developed infrastructure must also be capable of obtaining information about, and constructing models of, different behaviours exhibited by the applications. Again, this challenge is driven by the fact that adaptation cannot occur without information. This modelling of application behaviour may come at run time, through monitoring of such things as: what operations the application performs; when and in what order these operations are performed; and whether the previous operations succeeded or failed. Alternatively, the information may be provided through either automatic or manual static analysis. The former situation is similar to the understanding of the RTS and the same set of questions arise: what should

8 be monitored; how should it be monitored; and should the information be retained or discarded? It is important to identify the correct set of information and determine which information should be used for each individual infrastructure. The latter source of information is a more general computing science problem. Application developers often do not have a clear picture of how their application will behave once it is deployed. This is particularly true in the case of decentralised architectures where complicated global behaviours can develop out of simple local behaviours, making it difficult for the application developer to accurately communicate such information. 5.5 Adapting to Application Behaviour Once an infrastructure is capable of modelling the behaviour of the applications, through whatever mechanism, it must begin to make use of that information to adapt, in order to attempt to make better use of the resources available to the infrastructure. Behavioural information can be used to establish resource allocation strategies, for example, caching behaviour, which better suit the application. Policy decisions within the infrastructure could also be made on a more informed basis. The infrastructure may also be able to preempt certain operations or problems through prediction of future application behaviour. This would allow the infrastructure to reduce the impact such problems might have by preparing for them in advance. 5.6 Resolving Conflict in Adaptation The final challenge is learning how to identify and deal with conflict arising from the separate sets of demands being placed on the infrastructure. This is important as there will be times when the demands of the applications are in discord with each other or with the constraints imposed by the RTS. In these situations, the infrastructure must attempt to resolve the conflict in an appropriate manner. The identification of the conflict will vary from the obvious, such as lack of a required resource, to the subtle, such as aggressive applications causing data starvation to others. For the various possible conflicts, the infrastructure must be able to notice their occurrence. This may be possible through direct means, such as trapping refused requests for a resource, or through indirect means, such as noticing a large number of failed operations or some degradation in the performance of the system. As well as the mechanisms for identification, the infrastructure should also be provided with the appropriate mechanisms for resolving such conflicts. Due to the large number of conflicts which may arise, it may be desirable to have an infrastructure make a best guess as to what the appropriate resolution might be, and then allow it to monitor the situation so that the decision can be reversed if things get worse. 6 Future Work Future work on the Tiamat system will focus on the monitoring and adaptation as a result of changes to the run-time support as described in Sections 5.2 and 5.3. The Tiamat system will be extended to examine each instance s position in the network as well as the set of other instances which are visible. The social characteristics of the instances may be exploited to provide a routing mechanism in Tiamat. Tiamat will also attempt to exploit the relatively fixed and well connected portions of the network as a backbone for more efficient communications. 7 Summary In this paper we have introduced Tiamat, a flexible infrastructure for supporting coordination in a pervasive environment. The Tiamat system has been designed around the environment rather than imposed upon the environment. This has resulted in a model and system more suited to a mobile, pervasive environment. This in turn provides application developers with a flexible, yet powerful infrastructure which provides them with a simple abstraction over the network and underlying changes in the system. A working implementation of the Tiamat model has been constructed along with applications to demonstrate its functionality. Six critical challenges have also been identified, which must be addressed in the construction of infrastructure for pervasive environments. We have described how we will extend the Tiamat system in order to examine approaches to two of these challenges. References [1] David Gelernter. Generative Communication in Linda. ACM ToPLaS, 7(1):80 112, January [2] P. Wyckoff, S. McLaughry, T. Lehman, and D. Ford. T spaces. IBM Systems Journal, 37(3): [3] J. Waldo et al. Java Specification Technical report, Sun Microsystems, March [4] Nigel Davies, Adrian Friday, Stephen Wade, and Gordon Blair. L imbo: A Distributed Systems Platform for Mobile Computing. MONET, 3(2): , August [5] Gian Pietro Picco, Amy L. Murphy, and Gruia-Catalin Roman. LIME: Linda Meets Mobility. In Proceedings of ICSE 99, pages ACM Press, May [6] Bogdan Carbunar, Marco Tulio Valente, and Jan Vitek. Lime revisited. In Mobile Agents 2001, LNCS [7] Bogdan Carbunar, Marco Tulio Valente, and Jan Vitek. CoreLime: A Coordination Model for Mobile Agents. In ConCoord 2001, Lipari, Italy, July [8] N. Busi, C. Manfredini, A. Montresor, and G. Zavattaro. Peers: Datadriven Coordination in Peer-to-Peer Networks. In SAC 03. ACM Press, 2003.

Service Provision in Ad Hoc Networks

Service Provision in Ad Hoc Networks Service Provision in Ad Hoc Networks Radu Handorean and Gruia-Catalin Roman Department of Computer Science Washington University Saint Louis, MO, 63130 {raduh, roman}@cs.wustl.edu Abstract. The client-server

More information

MS Project Proposal. Tuple Board

MS Project Proposal. Tuple Board MS Project Proposal Tuple Board A New Distributed Computing Paradigm for Mobile Ad Hoc Networks Chaithanya Bondada cxb3178 @ cs.rit.edu Department of Computer Science Rochester Institute of Technology

More information

Screen Saver Science: Realizing Distributed Parallel Computing with Jini and JavaSpaces

Screen Saver Science: Realizing Distributed Parallel Computing with Jini and JavaSpaces Screen Saver Science: Realizing Distributed Parallel Computing with Jini and JavaSpaces William L. George and Jacob Scott National Institute of Standards and Technology Information Technology Laboratory

More information

The Jini architecture. Johan Petrini and Henning Sundvall

The Jini architecture. Johan Petrini and Henning Sundvall The Jini architecture Johan Petrini and Henning Sundvall Distributed Systems Fall 2002 Abstract A technology has been developed that exemplifies a new approach to the architecture of computing systems.

More information

Chapter 18 Distributed Systems and Web Services

Chapter 18 Distributed Systems and Web Services Chapter 18 Distributed Systems and Web Services Outline 18.1 Introduction 18.2 Distributed File Systems 18.2.1 Distributed File System Concepts 18.2.2 Network File System (NFS) 18.2.3 Andrew File System

More information

New and Improved: Linda in Java

New and Improved: Linda in Java New and Improved: Linda in Java George C. Wells Department of Computer Science, Rhodes University, Grahamstown, 6140, South Africa G.Wells@ru.ac.za Abstract This paper discusses the current resurgence

More information

Timestamps and authentication protocols

Timestamps and authentication protocols Timestamps and authentication protocols Chris J. Mitchell Technical Report RHUL MA 2005 3 25 February 2005 Royal Holloway University of London Department of Mathematics Royal Holloway, University of London

More information

Adaptive Cluster Computing using JavaSpaces

Adaptive Cluster Computing using JavaSpaces Adaptive Cluster Computing using JavaSpaces Jyoti Batheja and Manish Parashar The Applied Software Systems Lab. ECE Department, Rutgers University Outline Background Introduction Related Work Summary of

More information

Guide to Mitigating Risk in Industrial Automation with Database

Guide to Mitigating Risk in Industrial Automation with Database Guide to Mitigating Risk in Industrial Automation with Database Table of Contents 1.Industrial Automation and Data Management...2 2.Mitigating the Risks of Industrial Automation...3 2.1.Power failure and

More information

Routing protocols in WSN

Routing protocols in WSN Routing protocols in WSN 1.1 WSN Routing Scheme Data collected by sensor nodes in a WSN is typically propagated toward a base station (gateway) that links the WSN with other networks where the data can

More information

Chapter 3. Design of Grid Scheduler. 3.1 Introduction

Chapter 3. Design of Grid Scheduler. 3.1 Introduction Chapter 3 Design of Grid Scheduler The scheduler component of the grid is responsible to prepare the job ques for grid resources. The research in design of grid schedulers has given various topologies

More information

Assignment 5. Georgia Koloniari

Assignment 5. Georgia Koloniari Assignment 5 Georgia Koloniari 2. "Peer-to-Peer Computing" 1. What is the definition of a p2p system given by the authors in sec 1? Compare it with at least one of the definitions surveyed in the last

More information

Chapter 1: Distributed Information Systems

Chapter 1: Distributed Information Systems Chapter 1: Distributed Information Systems Contents - Chapter 1 Design of an information system Layers and tiers Bottom up design Top down design Architecture of an information system One tier Two tier

More information

Distributed Scheduling for the Sombrero Single Address Space Distributed Operating System

Distributed Scheduling for the Sombrero Single Address Space Distributed Operating System Distributed Scheduling for the Sombrero Single Address Space Distributed Operating System Donald S. Miller Department of Computer Science and Engineering Arizona State University Tempe, AZ, USA Alan C.

More information

Protocol for Tetherless Computing

Protocol for Tetherless Computing Protocol for Tetherless Computing S. Keshav P. Darragh A. Seth S. Fung School of Computer Science University of Waterloo Waterloo, Canada, N2L 3G1 1. Introduction Tetherless computing involves asynchronous

More information

ECE519 Advanced Operating Systems

ECE519 Advanced Operating Systems IT 540 Operating Systems ECE519 Advanced Operating Systems Prof. Dr. Hasan Hüseyin BALIK (10 th Week) (Advanced) Operating Systems 10. Multiprocessor, Multicore and Real-Time Scheduling 10. Outline Multiprocessor

More information

Distributed Computing Environment (DCE)

Distributed Computing Environment (DCE) Distributed Computing Environment (DCE) Distributed Computing means computing that involves the cooperation of two or more machines communicating over a network as depicted in Fig-1. The machines participating

More information

SPAWN: Service Provision in Ad-hoc Wireless Networks

SPAWN: Service Provision in Ad-hoc Wireless Networks Washington University in St. Louis Washington University Open Scholarship All Computer Science and Engineering Research Computer Science and Engineering Report Number: WUCSE-2005-35 2005-08-02 SPAWN: Service

More information

Introduction to Distributed Systems

Introduction to Distributed Systems Introduction to Distributed Systems Distributed Systems L-A Sistemi Distribuiti L-A Andrea Omicini andrea.omicini@unibo.it Ingegneria Due Alma Mater Studiorum Università di Bologna a Cesena Academic Year

More information

Advanced Databases Lecture 17- Distributed Databases (continued)

Advanced Databases Lecture 17- Distributed Databases (continued) Advanced Databases Lecture 17- Distributed Databases (continued) Masood Niazi Torshiz Islamic Azad University- Mashhad Branch www.mniazi.ir Alternative Models of Transaction Processing Notion of a single

More information

Lime Revisited. Bogdan Carbunar, Marco Tulio Valente, Jan Vitek. Dept. of Computer Sciences Purdue University

Lime Revisited. Bogdan Carbunar, Marco Tulio Valente, Jan Vitek. Dept. of Computer Sciences Purdue University Lime Revisited Bogdan Carbunar, Marco Tulio Valente, Jan Vitek Dept. of Computer Sciences Purdue University Abstract. Lime is a middleware communication infrastructure for mobile computation that addresses

More information

On Object Orientation as a Paradigm for General Purpose. Distributed Operating Systems

On Object Orientation as a Paradigm for General Purpose. Distributed Operating Systems On Object Orientation as a Paradigm for General Purpose Distributed Operating Systems Vinny Cahill, Sean Baker, Brendan Tangney, Chris Horn and Neville Harris Distributed Systems Group, Dept. of Computer

More information

Occasionally, a network or a gateway will go down, and the sequence. of hops which the packet takes from source to destination must change.

Occasionally, a network or a gateway will go down, and the sequence. of hops which the packet takes from source to destination must change. RFC: 816 FAULT ISOLATION AND RECOVERY David D. Clark MIT Laboratory for Computer Science Computer Systems and Communications Group July, 1982 1. Introduction Occasionally, a network or a gateway will go

More information

Protecting Mission-Critical Application Environments The Top 5 Challenges and Solutions for Backup and Recovery

Protecting Mission-Critical Application Environments The Top 5 Challenges and Solutions for Backup and Recovery White Paper Business Continuity Protecting Mission-Critical Application Environments The Top 5 Challenges and Solutions for Backup and Recovery Table of Contents Executive Summary... 1 Key Facts About

More information

Distributed Systems: Models and Design

Distributed Systems: Models and Design Distributed Systems: Models and Design Nicola Dragoni Embedded Systems Engineering DTU Informatics 1. Architectural Models 2. Interaction Model 3. Design Challenges 4. Case Study: Design of a Client-Server

More information

Documentation Accessibility. Access to Oracle Support

Documentation Accessibility. Access to Oracle Support Oracle NoSQL Database Availability and Failover Release 18.3 E88250-04 October 2018 Documentation Accessibility For information about Oracle's commitment to accessibility, visit the Oracle Accessibility

More information

Distributed Systems. Characteristics of Distributed Systems. Lecture Notes 1 Basic Concepts. Operating Systems. Anand Tripathi

Distributed Systems. Characteristics of Distributed Systems. Lecture Notes 1 Basic Concepts. Operating Systems. Anand Tripathi 1 Lecture Notes 1 Basic Concepts Anand Tripathi CSci 8980 Operating Systems Anand Tripathi CSci 8980 1 Distributed Systems A set of computers (hosts or nodes) connected through a communication network.

More information

Distributed Systems. Characteristics of Distributed Systems. Characteristics of Distributed Systems. Goals in Distributed System Designs

Distributed Systems. Characteristics of Distributed Systems. Characteristics of Distributed Systems. Goals in Distributed System Designs 1 Anand Tripathi CSci 8980 Operating Systems Lecture Notes 1 Basic Concepts Distributed Systems A set of computers (hosts or nodes) connected through a communication network. Nodes may have different speeds

More information

Reflective Java and A Reflective Component-Based Transaction Architecture

Reflective Java and A Reflective Component-Based Transaction Architecture Reflective Java and A Reflective Component-Based Transaction Architecture Zhixue Wu APM Ltd., Poseidon House, Castle Park, Cambridge CB3 0RD UK +44 1223 568930 zhixue.wu@citrix.com ABSTRACT In this paper,

More information

Middleware. Adapted from Alonso, Casati, Kuno, Machiraju Web Services Springer 2004

Middleware. Adapted from Alonso, Casati, Kuno, Machiraju Web Services Springer 2004 Middleware Adapted from Alonso, Casati, Kuno, Machiraju Web Services Springer 2004 Outline Web Services Goals Where do they come from? Understanding middleware Middleware as infrastructure Communication

More information

An agent-based peer-to-peer grid computing architecture

An agent-based peer-to-peer grid computing architecture University of Wollongong Research Online Faculty of Informatics - Papers (Archive) Faculty of Engineering and Information Sciences 2005 An agent-based peer-to-peer grid computing architecture J. Tang University

More information

Gustavo Alonso, ETH Zürich. Web services: Concepts, Architectures and Applications - Chapter 1 2

Gustavo Alonso, ETH Zürich. Web services: Concepts, Architectures and Applications - Chapter 1 2 Chapter 1: Distributed Information Systems Gustavo Alonso Computer Science Department Swiss Federal Institute of Technology (ETHZ) alonso@inf.ethz.ch http://www.iks.inf.ethz.ch/ Contents - Chapter 1 Design

More information

OpenCache. A Platform for Efficient Video Delivery. Matthew Broadbent. 1 st Year PhD Student

OpenCache. A Platform for Efficient Video Delivery. Matthew Broadbent. 1 st Year PhD Student OpenCache A Platform for Efficient Video Delivery Matthew Broadbent 1 st Year PhD Student Motivation Consumption of video content on the Internet is constantly expanding Video-on-demand is an ever greater

More information

Motivation for peer-to-peer

Motivation for peer-to-peer Peer-to-peer systems INF 5040 autumn 2015 lecturer: Roman Vitenberg INF5040, Frank Eliassen & Roman Vitenberg 1 Motivation for peer-to-peer Ø Inherent restrictions of the standard client/ server model

More information

Introduction to Distributed Systems

Introduction to Distributed Systems Introduction to Distributed Systems Other matters: review of the Bakery Algorithm: why can t we simply keep track of the last ticket taken and the next ticvket to be called? Ref: [Coulouris&al Ch 1, 2]

More information

SIPCache: A Distributed SIP Location Service for Mobile Ad-Hoc Networks

SIPCache: A Distributed SIP Location Service for Mobile Ad-Hoc Networks SIPCache: A Distributed SIP Location Service for Mobile Ad-Hoc Networks Simone Leggio Hugo Miranda Kimmo Raatikainen Luís Rodrigues University of Helsinki University of Lisbon August 16, 2006 Abstract

More information

Active Adaptation in QoS Architecture Model

Active Adaptation in QoS Architecture Model Active Adaptation in QoS Architecture Model Drago agar and Snjeana Rimac -Drlje Faculty of Electrical Engineering University of Osijek Kneza Trpimira 2b, HR-31000 Osijek, CROATIA Abstract - A new complex

More information

LECTURE 9. Ad hoc Networks and Routing

LECTURE 9. Ad hoc Networks and Routing 1 LECTURE 9 Ad hoc Networks and Routing Ad hoc Networks 2 Ad Hoc Networks consist of peer to peer communicating nodes (possibly mobile) no infrastructure. Topology of the network changes dynamically links

More information

A Tutorial on The Jini Technology

A Tutorial on The Jini Technology A tutorial report for SENG 609.22 Agent Based Software Engineering Course Instructor: Dr. Behrouz H. Far A Tutorial on The Jini Technology Lian Chen Introduction Jini network technology provides a simple

More information

Chapter 4. Fundamental Concepts and Models

Chapter 4. Fundamental Concepts and Models Chapter 4. Fundamental Concepts and Models 4.1 Roles and Boundaries 4.2 Cloud Characteristics 4.3 Cloud Delivery Models 4.4 Cloud Deployment Models The upcoming sections cover introductory topic areas

More information

A Declarative Approach to Agent-Centered Context-Aware Computing in Ad Hoc Wireless Environments

A Declarative Approach to Agent-Centered Context-Aware Computing in Ad Hoc Wireless Environments A Declarative Approach to Agent-Centered Context-Aware Computing in Ad Hoc Wireless Environments Gruia-Catalin Roman 1 Christine Julien 1 Amy L. Murphy 2 1 Department of Computer Science Washington University

More information

Important Lessons. Today's Lecture. Two Views of Distributed Systems

Important Lessons. Today's Lecture. Two Views of Distributed Systems Important Lessons Replication good for performance/ reliability Key challenge keeping replicas up-to-date Wide range of consistency models Will see more next lecture Range of correctness properties L-10

More information

Processes in Distributed Systems

Processes in Distributed Systems Processes in Distributed Systems Distributed Systems L-A Sistemi Distribuiti L-A Andrea Omicini andrea.omicini@unibo.it Ingegneria Due Alma Mater Studiorum Università di Bologna a Cesena Academic Year

More information

Peer Assisted Content Distribution over Router Assisted Overlay Multicast

Peer Assisted Content Distribution over Router Assisted Overlay Multicast Peer Assisted Content Distribution over Router Assisted Overlay Multicast George Xylomenos, Konstantinos Katsaros and Vasileios P. Kemerlis Mobile Multimedia Laboratory & Department of Informatics Athens

More information

Evaluating Client/Server Operating Systems: Focus on Windows NT Gilbert Held

Evaluating Client/Server Operating Systems: Focus on Windows NT Gilbert Held 5-02-30 Evaluating Client/Server Operating Systems: Focus on Windows NT Gilbert Held Payoff As organizations increasingly move mainframe-based applications to client/server platforms, Information Systems

More information

A Generic Multi-node State Monitoring Subsystem

A Generic Multi-node State Monitoring Subsystem A Generic Multi-node State Monitoring Subsystem James A. Hamilton SLAC, Stanford, CA 94025, USA Gregory P. Dubois-Felsmann California Institute of Technology, CA 91125, USA Rainer Bartoldus SLAC, Stanford,

More information

OPTIMIZING MOBILITY MANAGEMENT IN FUTURE IPv6 MOBILE NETWORKS

OPTIMIZING MOBILITY MANAGEMENT IN FUTURE IPv6 MOBILE NETWORKS OPTIMIZING MOBILITY MANAGEMENT IN FUTURE IPv6 MOBILE NETWORKS Sandro Grech Nokia Networks (Networks Systems Research) Supervisor: Prof. Raimo Kantola 1 SANDRO GRECH - OPTIMIZING MOBILITY MANAGEMENT IN

More information

DHCP Failover: An Improved Approach to DHCP Redundancy

DHCP Failover: An Improved Approach to DHCP Redundancy Overview The DHCP Failover protocol specification and ISC s implementation of the protocol have problems that can cause issues in production environments, primarily in those environments where configurations

More information

Overview. Distributed Systems. Distributed Software Architecture Using Middleware. Components of a system are not always held on the same host

Overview. Distributed Systems. Distributed Software Architecture Using Middleware. Components of a system are not always held on the same host Distributed Software Architecture Using Middleware Mitul Patel 1 Overview Distributed Systems Middleware What is it? Why do we need it? Types of Middleware Example Summary 2 Distributed Systems Components

More information

05 Indirect Communication

05 Indirect Communication 05 Indirect Communication Group Communication Publish-Subscribe Coulouris 6 Message Queus Point-to-point communication Participants need to exist at the same time Establish communication Participants need

More information

Distributed Systems. The main method of distributed object communication is with remote method invocation

Distributed Systems. The main method of distributed object communication is with remote method invocation Distributed Systems Unit III Syllabus:Distributed Objects and Remote Invocation: Introduction, Communication between Distributed Objects- Object Model, Distributed Object Modal, Design Issues for RMI,

More information

Kernel Korner AEM: A Scalable and Native Event Mechanism for Linux

Kernel Korner AEM: A Scalable and Native Event Mechanism for Linux Kernel Korner AEM: A Scalable and Native Event Mechanism for Linux Give your application the ability to register callbacks with the kernel. by Frédéric Rossi In a previous article [ An Event Mechanism

More information

Computer-based systems will be increasingly embedded in many of

Computer-based systems will be increasingly embedded in many of Programming Ubiquitous and Mobile Computing Applications with TOTA Middleware Marco Mamei, Franco Zambonelli, and Letizia Leonardi Universita di Modena e Reggio Emilia Tuples on the Air (TOTA) facilitates

More information

System models for distributed systems

System models for distributed systems System models for distributed systems INF5040/9040 autumn 2010 lecturer: Frank Eliassen INF5040 H2010, Frank Eliassen 1 System models Purpose illustrate/describe common properties and design choices for

More information

Analysis of Passive CORBA Fault Tolerance Options for Real-Time Applications Robert A. Kukura, Raytheon IDS Paul V. Werme, NSWCDD

Analysis of Passive CORBA Fault Tolerance Options for Real-Time Applications Robert A. Kukura, Raytheon IDS Paul V. Werme, NSWCDD Analysis of Passive CORBA Fault Tolerance Options for Real-Time Applications Robert A. Kukura, Raytheon IDS Paul V. Werme, NSWCDD PASSIVE CORBA FAULT TOLERANCE All clients send method invocations only

More information

Chapter 2 Overview of the Design Methodology

Chapter 2 Overview of the Design Methodology Chapter 2 Overview of the Design Methodology This chapter presents an overview of the design methodology which is developed in this thesis, by identifying global abstraction levels at which a distributed

More information

Processes in Distributed Systems

Processes in Distributed Systems Processes in Distributed Systems Distributed Systems Sistemi Distribuiti Andrea Omicini andrea.omicini@unibo.it Dipartimento di Informatica Scienza e Ingegneria (DISI) Alma Mater Studiorum Università di

More information

Disconnected Operation in a Mobile Computation System

Disconnected Operation in a Mobile Computation System Disconnected Operation in a Mobile Computation System Marco T. de O. Valente, Roberto da S. Bigonha, Mariza A. da S. Bigonha, Antonio A.F. Loureiro Department of Computer Science University of Minas Gerais

More information

A Mobile Agent Platform for Supporting Ad-hoc Network Environment

A Mobile Agent Platform for Supporting Ad-hoc Network Environment International Journal of Grid and Distributed Computing 9 A Mobile Agent Platform for Supporting Ad-hoc Network Environment Jinbae Park, Hyunsang Youn, Eunseok Lee School of Information and Communication

More information

MULTIPROCESSORS AND THREAD LEVEL PARALLELISM

MULTIPROCESSORS AND THREAD LEVEL PARALLELISM UNIT III MULTIPROCESSORS AND THREAD LEVEL PARALLELISM 1. Symmetric Shared Memory Architectures: The Symmetric Shared Memory Architecture consists of several processors with a single physical memory shared

More information

Introduction to Distributed Systems

Introduction to Distributed Systems Introduction to Distributed Systems Distributed Systems Sistemi Distribuiti Andrea Omicini andrea.omicini@unibo.it Ingegneria Due Alma Mater Studiorum Università di Bologna a Cesena Academic Year 2011/2012

More information

Internal Server Architectures

Internal Server Architectures Chapter3 Page 29 Friday, January 26, 2001 2:41 PM Chapter CHAPTER 3 Internal Server Architectures Often, it is important to understand how software works internally in order to fully understand why it

More information

Knowledge enrichment through dynamic annotation

Knowledge enrichment through dynamic annotation Knowledge enrichment through dynamic annotation Abstract This paper describes a technique for interceding between users and the information that they browse. This facility, that we term dynamic annotation,

More information

ECE 7650 Scalable and Secure Internet Services and Architecture ---- A Systems Perspective

ECE 7650 Scalable and Secure Internet Services and Architecture ---- A Systems Perspective ECE 7650 Scalable and Secure Internet Services and Architecture ---- A Systems Perspective Part II: Data Center Software Architecture: Topic 3: Programming Models Piccolo: Building Fast, Distributed Programs

More information

TRIREME Commander: Managing Simulink Simulations And Large Datasets In Java

TRIREME Commander: Managing Simulink Simulations And Large Datasets In Java TRIREME Commander: Managing Simulink Simulations And Large Datasets In Java Andrew Newell Electronic Warfare & Radar Division, Defence Science and Technology Organisation andrew.newell@dsto.defence.gov.au

More information

Chapter 2 System Models

Chapter 2 System Models CSF661 Distributed Systems 分散式系統 Chapter 2 System Models 吳俊興國立高雄大學資訊工程學系 Chapter 2 System Models 2.1 Introduction 2.2 Physical models 2.3 Architectural models 2.4 Fundamental models 2.5 Summary 2 A physical

More information

APM. Object Monitor. Object Lab. Richard Hayton & Scarlet Schwiderski

APM. Object Monitor. Object Lab. Richard Hayton & Scarlet Schwiderski APM POSEIDON HOUSE CASTLE PARK CAMBRIDGE CB3 0RD UNITED KINGDOM +44 1223 515010 Fax +44 1223 359779 Email: apm@ansa.co.uk URL: http://www.ansa.co.uk Object Lab Object Monitor Richard Hayton & Scarlet Schwiderski

More information

Datacenter replication solution with quasardb

Datacenter replication solution with quasardb Datacenter replication solution with quasardb Technical positioning paper April 2017 Release v1.3 www.quasardb.net Contact: sales@quasardb.net Quasardb A datacenter survival guide quasardb INTRODUCTION

More information

ADAPTIVE AND DYNAMIC LOAD BALANCING METHODOLOGIES FOR DISTRIBUTED ENVIRONMENT

ADAPTIVE AND DYNAMIC LOAD BALANCING METHODOLOGIES FOR DISTRIBUTED ENVIRONMENT ADAPTIVE AND DYNAMIC LOAD BALANCING METHODOLOGIES FOR DISTRIBUTED ENVIRONMENT PhD Summary DOCTORATE OF PHILOSOPHY IN COMPUTER SCIENCE & ENGINEERING By Sandip Kumar Goyal (09-PhD-052) Under the Supervision

More information

DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN. Chapter 1. Introduction

DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN. Chapter 1. Introduction DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN Chapter 1 Introduction Modified by: Dr. Ramzi Saifan Definition of a Distributed System (1) A distributed

More information

Mobile Transport Layer

Mobile Transport Layer Mobile Transport Layer 1 Transport Layer HTTP (used by web services) typically uses TCP Reliable transport between TCP client and server required - Stream oriented, not transaction oriented - Network friendly:

More information

Distributed Systems. Distributed Shared Memory. Paul Krzyzanowski

Distributed Systems. Distributed Shared Memory. Paul Krzyzanowski Distributed Systems Distributed Shared Memory Paul Krzyzanowski pxk@cs.rutgers.edu Except as otherwise noted, the content of this presentation is licensed under the Creative Commons Attribution 2.5 License.

More information

Designing and debugging real-time distributed systems

Designing and debugging real-time distributed systems Designing and debugging real-time distributed systems By Geoff Revill, RTI This article identifies the issues of real-time distributed system development and discusses how development platforms and tools

More information

04 Webservices. Web APIs REST Coulouris. Roy Fielding, Aphrodite, chp.9. Chp 5/6

04 Webservices. Web APIs REST Coulouris. Roy Fielding, Aphrodite, chp.9. Chp 5/6 04 Webservices Web APIs REST Coulouris chp.9 Roy Fielding, 2000 Chp 5/6 Aphrodite, 2002 http://www.xml.com/pub/a/2004/12/01/restful-web.html http://www.restapitutorial.com Webservice "A Web service is

More information

RFC 003 Event Service October Computer Science Department October 2001 Request for Comments: 0003 Obsoletes: none.

RFC 003 Event Service October Computer Science Department October 2001 Request for Comments: 0003 Obsoletes: none. Ubiquitous Computing Bhaskar Borthakur University of Illinois at Urbana-Champaign Software Research Group Computer Science Department October 2001 Request for Comments: 0003 Obsoletes: none The Event Service

More information

The goal of the Pangaea project, as we stated it in the introduction, was to show that

The goal of the Pangaea project, as we stated it in the introduction, was to show that Chapter 5 Conclusions This chapter serves two purposes. We will summarize and critically evaluate the achievements of the Pangaea project in section 5.1. Based on this, we will then open up our perspective

More information

Custodial Multicast in Delay Tolerant Networks

Custodial Multicast in Delay Tolerant Networks Custodial Multicast in Delay Tolerant Networks Challenges and Approaches Susan Symington, Robert C. Durst, and Keith Scott The MITRE Corporation McLean, Virginia susan@mitre.org, durst@mitre.org, kscott@mitre.org

More information

Distributed Computing: PVM, MPI, and MOSIX. Multiple Processor Systems. Dr. Shaaban. Judd E.N. Jenne

Distributed Computing: PVM, MPI, and MOSIX. Multiple Processor Systems. Dr. Shaaban. Judd E.N. Jenne Distributed Computing: PVM, MPI, and MOSIX Multiple Processor Systems Dr. Shaaban Judd E.N. Jenne May 21, 1999 Abstract: Distributed computing is emerging as the preferred means of supporting parallel

More information

Importance of Interoperability in High Speed Seamless Redundancy (HSR) Communication Networks

Importance of Interoperability in High Speed Seamless Redundancy (HSR) Communication Networks Importance of Interoperability in High Speed Seamless Redundancy (HSR) Communication Networks Richard Harada Product Manager RuggedCom Inc. Introduction Reliable and fault tolerant high speed communication

More information

Jini Architecture Specification

Jini Architecture Specification Jini Architecture Specification A Jini system is a Java technology-centered, distributed system designed for simplicity, flexibility, and federation. The Jini architecture provides mechanisms for machines

More information

I/O in the Gardens Non-Dedicated Cluster Computing Environment

I/O in the Gardens Non-Dedicated Cluster Computing Environment I/O in the Gardens Non-Dedicated Cluster Computing Environment Paul Roe and Siu Yuen Chan School of Computing Science Queensland University of Technology Australia fp.roe, s.chang@qut.edu.au Abstract Gardens

More information

Distributed File Systems. CS432: Distributed Systems Spring 2017

Distributed File Systems. CS432: Distributed Systems Spring 2017 Distributed File Systems Reading Chapter 12 (12.1-12.4) [Coulouris 11] Chapter 11 [Tanenbaum 06] Section 4.3, Modern Operating Systems, Fourth Ed., Andrew S. Tanenbaum Section 11.4, Operating Systems Concept,

More information

Violating Independence

Violating Independence by David McGoveran (Originally published in the Data Independent, Premier Issue, Jan. 1995: Updated Sept. 2014) Introduction A key aspect of the relational model is the separation of implementation details

More information

Microsoft SharePoint Server 2013 Plan, Configure & Manage

Microsoft SharePoint Server 2013 Plan, Configure & Manage Microsoft SharePoint Server 2013 Plan, Configure & Manage Course 20331-20332B 5 Days Instructor-led, Hands on Course Information This five day instructor-led course omits the overlap and redundancy that

More information

Part IV. Chapter 15 - Introduction to MIMD Architectures

Part IV. Chapter 15 - Introduction to MIMD Architectures D. Sima, T. J. Fountain, P. Kacsuk dvanced Computer rchitectures Part IV. Chapter 15 - Introduction to MIMD rchitectures Thread and process-level parallel architectures are typically realised by MIMD (Multiple

More information

PROPOSALS FOR THE REGULATION OF VIDEO ON DEMAND SERVICES RESPONSE BY BRITISH SKY BROADCASTING LIMITED

PROPOSALS FOR THE REGULATION OF VIDEO ON DEMAND SERVICES RESPONSE BY BRITISH SKY BROADCASTING LIMITED PROPOSALS FOR THE REGULATION OF VIDEO ON DEMAND SERVICES RESPONSE BY BRITISH SKY BROADCASTING LIMITED 1. INTRODUCTION 1.1. On 14 September 2009, Ofcom published its consultation document entitled Proposals

More information

Elimination Of Redundant Data using user Centric Data in Delay Tolerant Network

Elimination Of Redundant Data using user Centric Data in Delay Tolerant Network IJIRST International Journal for Innovative Research in Science & Technology Volume 1 Issue 9 February 2015 ISSN (online): 2349-6010 Elimination Of Redundant Data using user Centric Data in Delay Tolerant

More information

Dependability Considerations in Distributed Control Systems

Dependability Considerations in Distributed Control Systems 10th ICALEPCS Int. Conf. on Accelerator & Large Expt. Physics Control Systems. Geneva, 10-14 Oct 2005, TH3B.3-3O (2005) Dependability Considerations in Distributed Control Systems K. Žagar, Cosylab, Ljubljana,

More information

Countering Hidden-Action Attacks on Networked Systems

Countering Hidden-Action Attacks on Networked Systems Countering on Networked Systems University of Cambridge Workshop on the Economics of Information Security, 2005 Outline Motivation 1 Motivation 2 3 4 Motivation Asymmetric information inspires a class

More information

Middleware Mediated Transactions & Conditional Messaging

Middleware Mediated Transactions & Conditional Messaging Middleware Mediated Transactions & Conditional Messaging Expert Topic Report ECE1770 Spring 2003 Submitted by: Tim Chen John C Wu To: Prof Jacobsen Date: Apr 06, 2003 Electrical and Computer Engineering

More information

Chapter 9. Software Testing

Chapter 9. Software Testing Chapter 9. Software Testing Table of Contents Objectives... 1 Introduction to software testing... 1 The testers... 2 The developers... 2 An independent testing team... 2 The customer... 2 Principles of

More information

High Performance Computing Prof. Matthew Jacob Department of Computer Science and Automation Indian Institute of Science, Bangalore

High Performance Computing Prof. Matthew Jacob Department of Computer Science and Automation Indian Institute of Science, Bangalore High Performance Computing Prof. Matthew Jacob Department of Computer Science and Automation Indian Institute of Science, Bangalore Module No # 09 Lecture No # 40 This is lecture forty of the course on

More information

Embedded Systems Dr. Santanu Chaudhury Department of Electrical Engineering Indian Institute of Technology, Delhi

Embedded Systems Dr. Santanu Chaudhury Department of Electrical Engineering Indian Institute of Technology, Delhi Embedded Systems Dr. Santanu Chaudhury Department of Electrical Engineering Indian Institute of Technology, Delhi Lecture - 13 Virtual memory and memory management unit In the last class, we had discussed

More information

02 - Distributed Systems

02 - Distributed Systems 02 - Distributed Systems Definition Coulouris 1 (Dis)advantages Coulouris 2 Challenges Saltzer_84.pdf Models Physical Architectural Fundamental 2/58 Definition Distributed Systems Distributed System is

More information

Coping with Conflicts in an Optimistically Replicated File System

Coping with Conflicts in an Optimistically Replicated File System Coping with Conflicts in an Optimistically Replicated File System Puneet Kumar School of Computer Science Carnegie Mellon University 1. Introduction Coda is a scalable distributed Unix file system that

More information

02 - Distributed Systems

02 - Distributed Systems 02 - Distributed Systems Definition Coulouris 1 (Dis)advantages Coulouris 2 Challenges Saltzer_84.pdf Models Physical Architectural Fundamental 2/60 Definition Distributed Systems Distributed System is

More information

WSN Routing Protocols

WSN Routing Protocols WSN Routing Protocols 1 Routing Challenges and Design Issues in WSNs 2 Overview The design of routing protocols in WSNs is influenced by many challenging factors. These factors must be overcome before

More information

CS /15/16. Paul Krzyzanowski 1. Question 1. Distributed Systems 2016 Exam 2 Review. Question 3. Question 2. Question 5.

CS /15/16. Paul Krzyzanowski 1. Question 1. Distributed Systems 2016 Exam 2 Review. Question 3. Question 2. Question 5. Question 1 What makes a message unstable? How does an unstable message become stable? Distributed Systems 2016 Exam 2 Review Paul Krzyzanowski Rutgers University Fall 2016 In virtual sychrony, a message

More information

Challenges for Mobile Agents. Munindar P. Singh

Challenges for Mobile Agents. Munindar P. Singh Challenges for Mobile Agents Munindar P. Singh singh@ncsu.edu www.csc.ncsu.edu/faculty/mpsingh Agents vs. Processes Trend to relabel all processes as agents! Nothing is gained by changing the terminology

More information

Characteristics of Mult l ip i ro r ce c ssors r

Characteristics of Mult l ip i ro r ce c ssors r Characteristics of Multiprocessors A multiprocessor system is an interconnection of two or more CPUs with memory and input output equipment. The term processor in multiprocessor can mean either a central

More information