Enhancing Web Services with Message-Oriented Middleware

Size: px
Start display at page:

Download "Enhancing Web Services with Message-Oriented Middleware"

Transcription

1 Enhancing Web Services with Message-Oriented Middleware Piyush Maheshwari University of New South Wales and National ICT Australia Ltd., Sydney NSW 2052, Australia Hua Tang Coin Software Pty. Ltd. Level 10, 9 Castlereagh Street, Sydney, NSW 2000, Australia htang@coinsoftware.com.au Roger Liang CSC Australia 26 Talavera Road, Macquarie Park, NSW 2113, Australia rliang@csc.com.au Abstract This paper outlines the design and implementation of WSMQ, which is a message-oriented middleware specifically designed to enhance the reliability of Web services. Highlights of this application feature fault tolerance of Web services communication, Quality of Services including authentication and prioritization, security enhancement and performance improvements in Web services over the existing architecture. The implementation of these features aims to address the existing issues surrounding Web services, and further its advancement towards a new standard for distributed application development. 1. Introduction A Web service is a collection of functions that are packaged as a single entity and published to the network for use by other programs. Web services are building blocks for creating open distributed systems, and allow companies and individuals to quickly and cheaply make their online services available worldwide. In a nutshell, "Web Services are self-contained, modular applications that can be described, published, located, and invoked over a network, generally, the Web [1]." Web services allow the implementation of a loosely coupled distributed computing environment. It involves various functions or 'services' to be published to a directory, accessible by others. This directory is then consulted and reference to the needed program is obtained. The required service is then executed remotely and any results passed back to the originator of the request. The concept of distributed computing was not started with Web services. Indeed there were prior attempts to succeed in this area, with such technologies as CORBA, Distributed SmallTalk, and Java RMI. However, these systems required too much tight coupling with an overhead not suitable for Business-to-Business communications [1]. In detail, the following series of steps are necessary for the use of a Web service: A service or program is made to be accessible over the Web. The nature of this service is published to a registry. This includes a summary of the services offered by the program. Another peer which is in request of the Web service consults the registry and discovers the Web service. A request is formed by the peer and sent directly to the Web service. When the request has been satisfied by the Web service, a response if any is returned to the peer who sent the request. Web services can have impact on all kinds of distributed applications, including Internet-based grid, and peer-to-peer (P2P) computing [2, 3]. The advantages to using Web services can be summarised as follows: Allows platform and software independence Runtime integration Encapsulation Many speculate that Web services will standardize distributed computing. However there are still some weaknesses that exist in their design that is preventing them from being widely deployed. Some of the main areas of weakness in Web Services are reliability, scalability, security and performance. The main objective of our research is to specify, design, and implement a customized message-oriented middleware (MOM) to enhance the value of Web services. This MOM application directly addresses some of the most critical issues surrounding the commercial deployment of Web services. In addition, it adds value to Web services by providing services that are not found in general purpose MOM applications. The rest of the paper is organized as follows. Section 2 gives a short overview of message-oriented middleware and builds the motivation for designing a message queuing system, called WSMQ, for Web services. Sections 3 and 4 present the functionality and important design decisions for WSMQ. Section 5 evaluates reliability and performance aspects of this system. Section 6 concludes the paper with discussion on further research in this area.

2 2. Message-Oriented Middleware For integrating distributed applications, messageoriented middleware is often seen as a solution for facilitating communication among applications [4]. MOM generally adds extra flexibility to the client/server architecture. It provides the reliable data delivery mechanisms, yet let the systems be loosely coupled not always operating at the same speed, sometimes disconnected, and not having the recipient synchronously locked until the communication was completed. MOM coordinates message traffic between distributed applications, handling all network communications so that application developers need not be concerned with the underlying transport. Hence it assists the development by providing platform and implementation independence. This is so the client and the server can have a common communications medium. There are quite a number of different MOM products available, based on different technologies (e.g., IBM MQSeries, SonicMQ, TIBCO/Rendezvous, etc.) Message Sending Asynchronous versus Synchronous MOM is most commonly associated with asynchronous message transfer [5, 6]. Messages are held in a queue and fed through to the server at such a rate so as not to overwhelm it. The purpose of the MOM in this situation is to buffer the messages and ensure the rate of arrival does not exceed a pre-determined limit. Whilst the request is being handled, the client process is free to continue execution. MOM based on synchronous messaging is less common, as it involves blocking the sender until the response is received. This may end up being very inefficient, as the time for a request to be processed is variable and may be unpredictable. Whilst the request is being serviced, the client is in a state of inactivity Point-to-Point / Publish & Subscribe Point-to-Point messaging ensures that there is a unique copy of the message, and this is passed to a single recipient. Publish & Subscribe messaging is a sort of multicast, where every subscriber to a particular service will receive the same message. Point-to-Point example: Sending a request to a server for a quote. Publish & Subscribe example: Sending out stock prices to all those interested (the subscribers) MOM and Web Services Given the nature of Web services, it seems that MOM is definitely a solution for addressing some of their issues. Under the current architecture, Web service client applications communicate with service providers directly across the Internet. Using the protocols such as SOAP, WSDL and UDDI, applications can easily communicate with each other over the Internet protocols [7]. However, this implies that in order for a service invocation to complete successfully, both the client and the server need to be online at the same time. An enterprise message queue application would relax constraint with its very typical guaranteed delivery mechanism. A popular Web service should expect to receive thousands of service requests per second. There is definitely no guarantee that a server would able to handle all the messages without losing any. A message queue application has the capability of reliably storing these messages until each of them have been processed. The fact that the Internet itself is an unreliable medium of communication further advocates the need for a reliable communication mechanism in a distributed computing environment. In this paper, we show that a MOM plays serious role in addressing these needs Motivation for WSMQ Although using a general-purpose message queue application for Web services communication solves some of the problems, it has its disadvantages: Web service clients and servers send SOAP messages. Therefore, the message queue application must have the mechanism to read SOAP messages and extract destination information. This could have serious impact on Web services performance. Web services need to be aware of the existence and location of the message queue application and may need to explicitly send the messages to its location. This contradicts the idea of Web service, which aims to promote loosely coupled distributed computing. Most messaging applications do not provide robust security mechanisms for messages. WS-Reliability specification [8] addresses Web services messaging issues such as delivery guarantee, duplicate message elimination, and message ordering. These features are based on extensions to SOAP, rather than being tied to the underlying transport protocol. The specification is designed to let systems interoperate reliably independent of platform and vendor. Our design of Web Services Message Queue (WSMQ), a message queue application, is based on the concept of message-oriented middleware. WSMQ aims to enhance the reliability of Web service messaging, improve the scalability of its service provision, and maintain the security of all communication, all whilst preserving the natural strength of Web services. WSMQ adds further value by providing QoS features such as prioritization of user under different schemes and Web services statistics gathering. 3. Web Services Message Queue Functionality and Features Built using pure Java, WSMQ includes a number of components which are described below. These include a simulation of Web services invocation library, messaging service component which includes a custom-made message queue implementation, a data store using PostgreSQL as well as an administration tool to configure and maintain the messaging service status.

3 This section focuses on the fundamental functionality of the WSMQ to improve the overall quality of Web services. This includes a break down of the system into functional components and the interaction among these components. A detailed description of the features is provided in Section Scenario Point to Point Asynchronous with Response Before digging deep into WSMQ, we identify the operational scenario that WSMQ works in. We make the assumption that each Web service request message results in a response which holds the result of the execution of Web service. We further assume that the client who issues service requests will block until the result of execution is received. Figure 1 gives a good outline of the scenario. invocation as well as information required by WSMQ queue server such as username, password, client connection details, etc. Simulation library sends message object to WSMQ queue server. At the heart of WSMQ, there exists message queues that can be statically created by system administrators, a persistent data store and a message processing unit. Whenever a Web service message enters WSMQ, it will undergo several processing phases until a valid response can be sent back to the client. These processing phases include message decryption, message backup, message classification and prioritization, message queuing, message status control, message relay and message completion. Figure 3 gives a good illustration of messaging service component of the system. Figure 1. WSMQ Event Scenario 3.2. System Functionality The overall objective of WSMQ is to improve the reliability of Web services, and at the same time improve the operation of Web services in such a way that priorities can be given to Web services under several schemes. The level of security can be chosen, performance can improve under certain circumstances and some sort of intermediate management can be exerted using some administrative tools. Of these objectives, reliability and prioritization of Web services have been given the most attention. As briefly mentioned above, WSMQ consists of several components. We examine the role of the simulation of Web service invocation library first. Figure 3. WSMQ A Functional View 1. Messages enter WSMQ through the Listener, incoming messages comes in as Java objects. 2. Message Decryption: If the message is encrypted, the message would first be decrypted by the Decryptor. 3. Message Backup: Messages are then saved to the database under a fixed scheme which includes the communication detail of the client. All incoming messages would initially be assigned a status. Figure 2. Web Services Invocation Simulation Figure 2 gives a good illustration of the role of the simulation library. Its purpose is to delay the invocation of target Web services after the message has received various messaging services from WSMQ. Instead of giving the client the responsibility of invoking the service, WSMQ has now tasks of sending and receiving SOAP messages to and from target Web services. The tasks of Web service invocation simulation library are described below: Client invokes services using the simulation library. Simulation library creates message object which contains the necessary information for real Web service Figure 4. A Functional View of the Classifier Component 4. Message Classification and Prioritization: Figure 4 shows the functions of the Classifier component. The owner of the message can be authenticated upon entry the Classifier. Once authentication is completed, the status of the message would change. Then relevant information (e.g., details of the clients) would be retrieved from the message. Finally, the message would

4 be prioritized under certain scheme specified at the configuration of the system. 5. Message Queuing: After being assigned a priority in the Classifier, message is forwarded to a message queue that has the corresponding priority. Each internal message queue is associated with a priority. For example, a message with priority 5 would be queued in internal queue number 5. An algorithm is in place such that messages in higher prioritized message queues are fetched more frequently than those with lower priority. 6. Message Relay: When messages leave their queue, they are ready to be sent to the target Web services. The Message Relay component executes the Web service invocation procedure for each service request message. If the target Web service is offline or unavailable somehow, then it will look up the database and attempt to find a backup Web service that provide the same service. If found, Message Relay will transfer the message to the corresponding WSMQ that manages the link to that Web service. The corresponding WSMQ could be itself or another remote WSMQ. Either way, the status of the message will be updated, and the message will have to go through the entire process again. If no backup Web services are found, the status of the message will be updated and the message itself will be suspended. Periodically, such messages are processed again until target becomes available again or the client timeout expires. 7. Message Completion: When an appropriate result is obtained from the target Web service, the status of the message will be updated for the final time. WSMQ then retrieves the communication details of the client from the database and send back the exact result from target Web service to the client application. Although, result is sent through TCP/IP, the client will not notice it and will treat it as a typical SOAP response. 4. Design Decisions Several key design decision were made throughout the development of WSMQ, which are described next Communication between Client and WSMQ Clients communicate with WSMQ via TCP/IP while WSMQ communicate with target Web services via SOAP. The clients however are not aware of this; in fact, the clients do not know the existence of WSMQ. Whenever a client wishes to invoke a Web service, it would invoke the relevant Web service invocation call from a given library; it assumes the library function will construct the SOAP message, send it to target Web service, wait for response from target and output the results. However, instead of constructing the SOAP service request message, the simulation library will simply create a message object that contains the Web service message as well as TCP/IP details of the client, and send it to WSMQ. When sending the result back to the client, the client s TCP/IP details would be retrieved from the database, and the response message object would be sent back to the client via TCP/IP. There are several reasons why we took this approach as using the SOAP to communicate among all parties seem to be the better alternative since it allows greater interoperability. These include: Additional information for WSMQ: TCP/IP allows the transfer of objects, this means additional information such as authentication and encryption details, and message priority can be sent from the clients to WSMQ. This information is essential for services such as security and QoS. Performance: Although one would expect the performance of Web services to deteriorate since message services incur overheads, we have in fact discovered significant improvement in performance with the addition of WSMQ to the existing architecture. This improvement is due to the substantial reduction in the creation and removal of connection threads for Web services invocation by the WSMQ. It requires WSMQ to be responsible for setting up the connection for Web service invocation, and again specific information needs encapsulated in the message object sent from the client. Simplicity: Developing a simulation of any Web service invocation library is trivial. The main purpose is to deliver the exact same message to WSMQ while adding some extra information for various purposes. In our implementation, we developed a simulation for Apache Axis library. WSMQ invokes the real Apache Axis library for the actual invocation of Web services Message Status A messages is assigned different status throughout its lifecycle in WSMQ to support reliability features such as guaranteed delivery, restart mechanism and clustered service. WSMQ has five different message statuses: 1. Processing: Upon entering WSMQ (from client), messages are assigned the processing status. Such messages will be decrypted, if required first, then stored in the database. Message retains this status until the actual Web service invocation is made. 2. Completed: When a response is obtained from the target Web service and successfully sent back to the client, the corresponding service request message is assigned the completed status. 3. Clustered: Whenever a Web service invocation is unsuccessful (that is, target Web service unavailable), WSMQ would attempt find an alternative (equivalent) Web service. If such a service provider is found, the exact same message would be sent to the destination queue for that Web service. At the same time, the status of message would be updated to clustered. 4. Zombie: Whenever a Web service invocation is unsuccessful and no alternative service can be found, the message would be labelled as a zombie and temporarily suspended from any processing. Periodically such messages would be collected by WSMQ, and Web service invocation reattempted.

5 5. Dead: Web service invocation results in receiving a valid response from the Web service, however sometimes response could not be sent back to the client (e.g., timeout or erroneous connection). Such messages are called dead. When messages obtain the status of completed, clustered or dead, no further messaging services is performed on such messages Web Service Status In order to avoid repeated attempts of service invocation on unavailable Web services, each Web service is assigned a status regarding its availability. Only two status available and unavailable are used, and all services are initialized to be available upon their registration to WSMQ. Upon an unsuccessful Web service invocation, the corresponding service is deemed to be unavailable. Periodically, the status of the unavailable Web services are reset to available. During this period, any attempt to invoke such service will be suspended Queue and Web Service Target For Web services wishing to use the messaging service of WSMQ, they must register with one or more queues. The queue in this case does not represent internal message queues running in each WSMQ, it refers to an instance of WSMQ running at any location. In order for a message to reach its target Web service, it must go through the corresponding queue for the Web service. This decision does not come without cost. In the case where a target Web service is unavailable and an alternative is found, it would probably be more efficient to invoke the alternative Web service directly. However under this scheme, the message would have to be sent to the corresponding queue of the alternative Web service, the queue would treat it as a new message and repeat the process. There are reasons why this decision is made: Consistency: Each service invocation can be tracked through its request message in the corresponding queue. Fair: Does not allow single message to consume large amount of resources by repeated invocation. This reduces the probability of starvation particularly in a system where prioritization of messages exists. Efficiency: Allow implementation of load balancing Message Acknowledgement All message acknowledgements in WSMQ are done implicitly through TCP/IP and SOAP communication. From the client side, if a TCP/IP connection to WSMQ is failed, a TCP error would be obtained indicating that the WSMQ is unavailable. In this case, the client has to explicitly invoke the service at a later time to complete the service. At the WSMQ, should an invocation of Web service fails, a SOAP error would be obtained, indicating that the target Web service is unavailable. WSMQ handles this situation by suspending the processing of the current message and reattempt the service invocation at a later date. This is transparent to the client. The only difference may be a slightly longer execution period Quality of Service (QoS) In general, different services have different time constraints. Particularly in today s commercial world, most business application has time limits on tasks. Not only is this important for efficiency purposes, but the delay of the completion of certain tasks can result in great financial loss. For example, a stock price inquiry requires the result to be delivered within a fair short period of time, otherwise investors might miss out on valuable opportunities for buying or selling shares. WSMQ implements two schemes of prioritizing Web service execution: User prioritization: A user may wish to pay more to complete its usage of a service before other users; WSMQ allows this by assigning the service request message of that user with a higher priority. Messages with higher priorities are executed more frequently. Web service prioritization: Upon registration, each Web service is assigned a priority. Under this scheme, as each service request message enters the queue server, it is prioritized according to its target Web service. Highly prioritized messages are executed more frequently. The two approaches for prioritization cannot guarantee the timely completion of certain service requests. There are many reasons for this that are beyond the control of WSMQ, for example, the unavailability of Web services, overwhelming requests for certain services, etc. The prioritization mechanism does, however, greatly improve the probability of completing highly prioritized messages within a short time. Logically, the cost of this is longer processing time for messages with lower priority. In most cases, this is not an issue as long as we can avoid starvation Fault Tolerance To improve the reliability of Web services, we address the possible causes for failure under the existing architecture, for example, Web service unreachable (possibly offline), overwhelming service requests causing dropped service request messages, etc. WSMQ provides fault tolerance using three different mechanisms. These include guaranteed delivery of messages, restart mechanism and clustered Web service. Guaranteed Delivery An important feature of any messaging system is the ability to guarantee delivery of messages. If a message is not delivered, the system must be able to identify the error, and try to recover from the error and redeliver the message; otherwise error notification needs to be reported to the user. To achieve guaranteed delivery in WSMQ, the implementation of message status plays an important. When a message obtains the processed status, this implies the Web service has been successfully invoked and results sent back to the client application, hence this is the optimal

6 status. Guaranteed delivery mechanism comes into play when a message obtains the zombie status. This usually implies that the invocation of target Web services has been unsuccessful. In this case, the following steps will be taken: 1. Processing of the message suspended temporarily. 2. Periodically, zombie messages are retrieved from the database and re-queued. 3. Messages are pulled from the message queue according to priority. 4. Web service invocations are made for each message. If valid results are obtained, send result back to the client. If the client successfully receives result, message obtains processed status, otherwise messages obtains dead status. If valid results were not obtain (indicating Web service still not available), the message retains its zombie status. 5. If message retains the zombie status over a certain period of time, it also becomes a dead message. 6. The above steps are repeated. Dead messages will not be processed any further. The causes for dead messages include timeout from client application or target Web service remain unavailable for excessive amount of time. Client application has the flexibility of choosing the timeout period for its Web service invocation, obviously the longer the timeout, the greater the probability that the service will be completed. While the traditional Web service architecture requires both the Web service requester and Web service provider to be online at the same time in order for a successfully invocation of service, the guarantee delivery mechanism in WSMQ removes this constraint by persistent storage and execution of messages. Restart Mechanism In case of failure, WSMQ has the ability to recover from error and continue processing unprocessed messages without affecting the clients. Again this capability relies heavily on the altering of message status of a message throughout its lifecycle in WSMQ. The restart mechanism combined with guaranteed delivery aims to provide a robust messaging system. We now examine how they handle faults occurring at different points of error: 1. Listener: The Listener handles the connection between client and WSMQ. Since communication between client and WSMQ is implemented using TCP/IP, delivery of message is guaranteed. However, if the Listener component is down, then clients would not be able to connect to WSMQ. In this case, no messages would be received from the clients until the clients explicit reattempt connection at a later stage. 2. Classifier: The Classifier has the responsibility of authenticating user and prioritizing messages. If Classifier is down, new incoming messages would be stored to database without processing. When the Classifier is back online again, unprocessed messages would be retrieved from the database and put through the Classifier. 3. Internal Message Queue: Similar to Classifier, Internal Message Queue does not cause any loss of data in case of failure. Messages that were waiting to be processed in the queues will simply be re-queued upon reconfiguration of internal message queues. 4. Message Relay: Similar to the Classifier, failure of the Message Relay component only causes some delay completing message processing. While Message Relay is down, no messages would be retrieved from the internal message queue. 5. Web service: If a target Web service is down, Message Relay will be unable to deliver messages to the target Web services. As a result, WSMQ will suspend delivery of messages to this service for a configured amount of time. After a specified time interval has passed, the WSMQ will attempt to redeliver the message. This cycle will continue for as long as the delivery of the message is unsuccessful and the timeout has not expired. In most cases, the failure of one component of WSMQ implies that the entire system is down. Upon restarting, the restart mechanism will ensure all unprocessed messages will be reprocessed without any data loss. The only negative effect is that Web service clients would not be able to send service requests to this particular queue. Clustered Web Services Clustered service improves the probability of Web service completion by allowing equivalent Web services to form a cluster. Hence this feature requires the collaboration of Web services which are outside the control of WSMQ. What WSMQ provides is a mechanism to prevent the failure of target Web service by replacing with a backup Web service in its cluster. When registering with WSMQ, similar Web services are assigned in a same group. The following steps are taken when a target Web service is found to be unavailable: 1. Upon receiving SOAP error message for a Web service invocation, the status of that Web service is updated to be unavailable. 2. WSMQ attempts to find a backup Web service within its group/cluster. 3. If no such Web service is found, message status is updated to be zombie, and temporarily suspended. 4. If found, the queue server of that Web service is retrieved from the database. The exact same message is sent to that queue server. In its local database, the message status is updated to clustered ; Clustered messages will not be processed any further. 5. The queue server treats this message as a new message.

7 5. Evaluation and Results 5.1. Reliability Evaluation To test guaranteed delivery and the general ability of WSMQ to recover from failures, we introduce faults at the common points of failures in four different scenarios, as described below. Scenario 1 - Web services down In this scenario, we disable the target Web service so that no service can be received from it by any Web service. A Web service client then invokes the Web service as normal. Without WSMQ, the Web service invocation would simply result in a SOAP error. The client would receive this error almost immediately. With WSMQ, service request is sent to the queue server first. The queue will eventually attempt to make the actual invocation. At that point, a SOAP error would be received indicating that the target Web service is unavailable. However, WSMQ will not give up this service request at that point. It will update the state of the message and reattempt the invocation at a later time. This process will continue until a successful invocation is made or the user has timed out. This test showed that with the presence of WSMQ, the Web service client and provider do not need to be online at the same time in order for a successful invocation to occur. This adds a lot of flexibility to Web service provision particularly for those services that are not time critical. Scenario 2 - WSMQ queue server down In this scenario, we shut down WSMQ queue server after it has received the client request. The Web service provider itself is available throughout the whole time. Upon restart, the queue server continues processing the unprocessed messages and try to complete all the requests. This scenario does not affect the clients if the clients invoke target Web services directly. With WSMQ, service request is sent to a queue server first. The queue server shuts down before the actual invocation is made. After some time, the queue server will be restarted. Unprocessed message from the database will be retrieved. These messages would be re-queued. Upon the actual invocation of target Web service, a valid result should be returned and sent back to the client. This test showed the ability of WSMQ to recover from error. The only weakness of WSMQ is that during the period that the queue servers are down, no service requests can be received from client. This weakness can be addressed by adding a persistent request sending mechanism in the WSMQ Web service invocation simulation library. Scenario 3 - Client timeout In this scenario, we disable Web service provider until the client timeout has expired, which means even when a successful invocation is made by the WSMQ queue server, the client will not be able to receive the result. Without WSMQ, the Web service invocation would simply result in a SOAP error. The client would receive this error almost immediately. With WSMQ, service request is sent to a queue server first. The queue will eventually attempt to make the actual invocation. At that point, a SOAP error would be received indicating that the target Web service is unavailable. However, WSMQ will not give up this service request at that point. It will update the state of the message and reattempt the invocation at a later time. This process will continue until a successful invocation is made. However by this time, the client timeout would have expired, the attempt to send result back to client will fail. This test successfully demonstrated the timeout function of WSMQ Web service invocation simulation library. Scenario 4 - WSMQ queue server and Web service provider down In this scenario, we shut down WSMQ queue server after it has received the client request. The Web service provider itself is also kept unavailable throughout the whole time. Upon restart, the queue server is to continue process unprocessed messages, however since Web service is still unavailable, it will not be able to complete each service request until target Web services starts up again. Without WSMQ, the Web service invocation would simply result in a SOAP error since target Web service is unavailable initially. The client would receive this error almost immediately. With WSMQ, service request is sent to a queue server first. The queue server will shut down before the actual invocation is made. After some time, the queue server will be restarted. Unprocessed message from the database will be retrieved. These messages would be re-queued. Upon the actual invocation of target Web service, a SOAP error would be received; message processing will be suspended and reprocessed after a fixed time period. When target Web service starts up again, a valid result will be returned upon invocation. The result will then be sent back to the client. This test showed the WSMQ's ability of handling faults at multiple points of failure. In this case, the processing of the message was suspended at several points. However, it was able to recover and complete execution Performance Evaluation We also evaluated how the integration of WSMQ into the existing Web service architecture affected the performance of Web services invocations. In general, messaging service applications adds overhead to message delivery due to the variety of services they provide. Similarly, WSMQ adds overhead to Web service calls no matter how efficient WSMQ may be. However, this new architecture has proven to derive performance benefits under certain scenarios. We look at one such case below.

8 Testing scenario The set of results in Figure 5 was obtained by having a single Web service receiving service requests from an increasing number of clients. The vertical axis indicates the average amount of time that each client takes to invoke and receive results for 50 service calls. On the horizontal axis, we increased the number of clients sending services requests. Please note that each client sends service requests to one Web service only, therefore the Web service would not be receiving requests from all clients until the number of clients is increased to ten. For example, when we set 5 clients each sending 50 services requests to the target Web service (without using any message queues), the average amount of time that each client completes its services calls was approximately 100 seconds. Original: Direct Web services invocation Message Queuer: Web services invocation through WSMQ Response Time (50 requests) No. of Clients Original Via WSMQ Figure 5. Performance Evaluation Single Web service, Multiple clients Analysis The original (no message queuing) curve displays the worse performance. This is due to the multiple creations of service session threads by the target Web service in order to serve multiple clients simultaneously. When Web services are invoked through WSMQ, service requests are completed one at a time. This implies that only one service session thread is created by the target Web service at any given time. Surprisingly, the greater the number of session threads, the worse the performance of Web services. We need to clarify the fact that the above example is a special case in which the performance difference is magnified. In real life, services requests could be directed to thousands of Web services, in which case WSMQ may pose as a performance bottleneck. Although some smart load balancing mechanism can reduce the severity of this impact, it is still an open issue for the future developers. 6. Conclusions The final product WSMQ is a message queue application that is specifically designed to address some of the major issues relating to Web services, namely reliability, scalability, performance and security. We recognize that dealing with each of the above issues conclusively is worth a research project of its own, therefore trying to achieve all of the above in one attempt cannot be done without compromises and inconclusive features. WSMQ adds value to Web services in many respects. The reliability of Web services communication is greatly improved with features such as guaranteed delivery and recovery mechanism. Users can obtain better service (faster service completion) if they are willing to pay more. Service providers can also prioritize their services to attract users. The results so far has confirmed the merit of our system. We would like to emphasize that this work was done with a big picture in mind that is pushing Web services towards the new standard for distributed computing. Rather than attempting to develop each part of the system to perfection, we aimed to develop a complete system that could serve as a framework for future developments. Some of the possible enhancements on the existing application may include support for greater client interoperability, industry standard queue implementation, multiple threads for Web services invocation and improving the message scheduling algorithm. 7. References [1] IBM Web Services Architecture team. "Web Services architecture overview" ibm.com/developerworks/library/w-ovr/ (accessed April 2004). [2] Foster, C. Kesselman and S. Tuecke. The Anatomy of the Grid: Enabling Scalable Virtual Organizations, International Journal of Supercomputer Applications, 15(3), [3] W. Hoschek. Peer-to-Peer Grid Databases for Web Service Discovery, Concurrency Practice and Experience 2002, 00:1-7, pp [4] P. Maheshwari and M. Pang, Benchmarking messageoriented middleware TIB/RV versus SonicMQ, Concurrency and Computation: Practice and Experience, to be published in [5] S. Tai, T. Mikalsen, I. Rouvellou, S.M. Sutton Jr., Conditional Messaging: Extending Reliable Messaging with Applications Conditions, Proc. 22 nd IEEE International Conference on Distributed Computing Systems, Vienna, Austria, July 2002, pp [6] S. Ramesh, H.G. Perros, A Multilayer Client-Server Queuing Network Model with Synchronous and Asynchronous Messages, IEEE Transactions on Software Engineering, Vol. 26, No. 11, Nov [7] J. Snell and L. MacLeaod. Programming Web Applications with SOAP, O Reilly, [8] Specification: Web Services Reliable Messaging Protocol (WS-ReliableMessaging), ibm.com/developerworks/library/ws-rm/ (accessed April 2004)

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

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

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

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

Broker Clusters. Cluster Models

Broker Clusters. Cluster Models 4 CHAPTER 4 Broker Clusters Cluster Models Message Queue supports the use of broker clusters: groups of brokers working together to provide message delivery services to clients. Clusters enable a Message

More information

Announcements. me your survey: See the Announcements page. Today. Reading. Take a break around 10:15am. Ack: Some figures are from Coulouris

Announcements.  me your survey: See the Announcements page. Today. Reading. Take a break around 10:15am. Ack: Some figures are from Coulouris Announcements Email me your survey: See the Announcements page Today Conceptual overview of distributed systems System models Reading Today: Chapter 2 of Coulouris Next topic: client-side processing (HTML,

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

(9A05803) WEB SERVICES (ELECTIVE - III)

(9A05803) WEB SERVICES (ELECTIVE - III) 1 UNIT III (9A05803) WEB SERVICES (ELECTIVE - III) Web services Architecture: web services architecture and its characteristics, core building blocks of web services, standards and technologies available

More information

Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions

Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions Chapter 1: Solving Integration Problems Using Patterns 2 Introduction The Need for Integration Integration Challenges

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

DS 2009: middleware. David Evans

DS 2009: middleware. David Evans DS 2009: middleware David Evans de239@cl.cam.ac.uk What is middleware? distributed applications middleware remote calls, method invocations, messages,... OS comms. interface sockets, IP,... layer between

More information

The COLDEX Metadata Synchronisation Service (MSS) and other services

The COLDEX Metadata Synchronisation Service (MSS) and other services The COLDEX Metadata ynchronisation ervice () and other services LTC Group, UNED, October 2003 1 Technological options for the... 1 1.1 Distributed Java Objects... 1 1.2 Web ervices and OAP... 2 1.3 Messaging...

More information

MOM MESSAGE ORIENTED MIDDLEWARE OVERVIEW OF MESSAGE ORIENTED MIDDLEWARE TECHNOLOGIES AND CONCEPTS. MOM Message Oriented Middleware

MOM MESSAGE ORIENTED MIDDLEWARE OVERVIEW OF MESSAGE ORIENTED MIDDLEWARE TECHNOLOGIES AND CONCEPTS. MOM Message Oriented Middleware MOM MESSAGE ORIENTED MOM Message Oriented Middleware MIDDLEWARE OVERVIEW OF MESSAGE ORIENTED MIDDLEWARE TECHNOLOGIES AND CONCEPTS Peter R. Egli 1/25 Contents 1. Synchronous versus asynchronous interaction

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

Chapter 4 Communication

Chapter 4 Communication DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN Chapter 4 Communication Layered Protocols (1) Figure 4-1. Layers, interfaces, and protocols in the OSI

More information

Communication. Distributed Systems Santa Clara University 2016

Communication. Distributed Systems Santa Clara University 2016 Communication Distributed Systems Santa Clara University 2016 Protocol Stack Each layer has its own protocol Can make changes at one layer without changing layers above or below Use well defined interfaces

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

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

F O U N D A T I O N. OPC Unified Architecture. Specification. Part 1: Concepts. Version 1.00

F O U N D A T I O N. OPC Unified Architecture. Specification. Part 1: Concepts. Version 1.00 F O U N D A T I O N Unified Architecture Specification Part 1: Concepts Version 1.00 July 28, 2006 Unified Architecture, Part 1 iii Release 1.00 CONTENTS Page FOREWORD... vi AGREEMENT OF USE... vi 1 Scope...

More information

Software Requirement Specification

Software Requirement Specification Software Requirement Specification Publish/Subscribe System Group-03 Atul Jangra 2010CS50277 Dushyant Behl 2010CS50282 Shantanu 2010CS50295 Utkarsh 2010CS50299 1 1. Introduction Table of Content 1.1 Purpose...

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

<Insert Picture Here> WebLogic JMS Messaging Infrastructure WebLogic Server 11gR1 Labs

<Insert Picture Here> WebLogic JMS Messaging Infrastructure WebLogic Server 11gR1 Labs WebLogic JMS Messaging Infrastructure WebLogic Server 11gR1 Labs Messaging Basics Built-in Best-of-Breed Messaging (JMS) Engine Years of hardening. Strong performance.

More information

MODELS OF DISTRIBUTED SYSTEMS

MODELS OF DISTRIBUTED SYSTEMS Distributed Systems Fö 2/3-1 Distributed Systems Fö 2/3-2 MODELS OF DISTRIBUTED SYSTEMS Basic Elements 1. Architectural Models 2. Interaction Models Resources in a distributed system are shared between

More information

MODELS OF DISTRIBUTED SYSTEMS

MODELS OF DISTRIBUTED SYSTEMS Distributed Systems Fö 2/3-1 Distributed Systems Fö 2/3-2 MODELS OF DISTRIBUTED SYSTEMS Basic Elements 1. Architectural Models 2. Interaction Models Resources in a distributed system are shared between

More information

Subject: Adhoc Networks

Subject: Adhoc Networks ISSUES IN AD HOC WIRELESS NETWORKS The major issues that affect the design, deployment, & performance of an ad hoc wireless network system are: Medium Access Scheme. Transport Layer Protocol. Routing.

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

CAS 703 Software Design

CAS 703 Software Design Dr. Ridha Khedri Department of Computing and Software, McMaster University Canada L8S 4L7, Hamilton, Ontario Acknowledgments: Material based on Software by Tao et al. (Chapters 9 and 10) (SOA) 1 Interaction

More information

CHAPTER 2. Introduction to Middleware Technologies

CHAPTER 2. Introduction to Middleware Technologies CHAPTER 2. Introduction to Middleware Technologies What is Middleware? General Middleware Service Specific Middleware Client/Server Building blocks RPC Messaging Peer to Peer Java RMI. BHUSHAN JADHAV 1

More information

An Architecture For Computational Grids Based On Proxy Servers

An Architecture For Computational Grids Based On Proxy Servers An Architecture For Computational Grids Based On Proxy Servers P. V. C. Costa, S. D. Zorzo, H. C. Guardia {paulocosta,zorzo,helio}@dc.ufscar.br UFSCar Federal University of São Carlos, Brazil Abstract

More information

Web service design. every Web service can be associated with:

Web service design. every Web service can be associated with: Web Services Web services provide the potential of fulfilling SOA requirements, but they need to be intentionally designed to do so. Web services framework is flexible and adaptable. Web services can be

More information

Chapter 1 CONCEPTS AND FACILITIES. SYS-ED/ Computer Education Techniques, Inc.

Chapter 1 CONCEPTS AND FACILITIES. SYS-ED/ Computer Education Techniques, Inc. Chapter 1 CONCEPTS AND FACILITIES SYS-ED/ Computer Education Techniques, Inc. Objectives You will learn: Objects of MQ. Features and benefits. Purpose of utilities. Architecture of the MQ system. Queue

More information

Distributed systems. Distributed Systems Architectures. System types. Objectives. Distributed system characteristics.

Distributed systems. Distributed Systems Architectures. System types. Objectives. Distributed system characteristics. Distributed systems Distributed Systems Architectures Virtually all large computer-based systems are now distributed systems. Information processing is distributed over several computers rather than confined

More information

Seven Criteria for a Sound Investment in WAN Optimization

Seven Criteria for a Sound Investment in WAN Optimization Seven Criteria for a Sound Investment in WAN Optimization Introduction WAN optimization technology brings three important business benefits to IT organizations: Reduces branch office infrastructure costs

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

COMMUNICATION IN DISTRIBUTED SYSTEMS

COMMUNICATION IN DISTRIBUTED SYSTEMS Distributed Systems Fö 3-1 Distributed Systems Fö 3-2 COMMUNICATION IN DISTRIBUTED SYSTEMS Communication Models and their Layered Implementation 1. Communication System: Layered Implementation 2. Network

More information

CS 5520/ECE 5590NA: Network Architecture I Spring Lecture 13: UDP and TCP

CS 5520/ECE 5590NA: Network Architecture I Spring Lecture 13: UDP and TCP CS 5520/ECE 5590NA: Network Architecture I Spring 2008 Lecture 13: UDP and TCP Most recent lectures discussed mechanisms to make better use of the IP address space, Internet control messages, and layering

More information

TANDBERG Management Suite - Redundancy Configuration and Overview

TANDBERG Management Suite - Redundancy Configuration and Overview Management Suite - Redundancy Configuration and Overview TMS Software version 11.7 TANDBERG D50396 Rev 2.1.1 This document is not to be reproduced in whole or in part without the permission in writing

More information

Management of Protocol State

Management of Protocol State Management of Protocol State Ibrahim Matta December 2012 1 Introduction These notes highlight the main issues related to synchronizing the data at both sender and receiver of a protocol. For example, in

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

Connecting ESRI to Anything: EAI Solutions

Connecting ESRI to Anything: EAI Solutions Connecting ESRI to Anything: EAI Solutions Frank Weiss P.E., ESRI User s Conference 2002 Agenda Introduction What is EAI? Industry trends Key integration issues Point-to-point interfaces vs. Middleware

More information

RedundancyMaster PTC Inc. All Rights Reserved.

RedundancyMaster PTC Inc. All Rights Reserved. 2016 PTC Inc. All Rights Reserved. 2 Table of Contents 1 Table of Contents 2 4 Introduction 4 System Requirements 10 Accessing the Administration Menu 12 Setting Up Redundancy 12 Adding Redundancy 13 Aliasing

More information

Distributed Backup System.Net

Distributed Backup System.Net Distributed Backup System.Net world can now backup for free... AUTHORS Martina Babini Guido Angelo Ingenito vision Since disks are cheap, backup must be cheap too! Obviously backup locally your data is

More information

Data Management in Application Servers. Dean Jacobs BEA Systems

Data Management in Application Servers. Dean Jacobs BEA Systems Data Management in Application Servers Dean Jacobs BEA Systems Outline Clustered Application Servers Adding Web Services Java 2 Enterprise Edition (J2EE) The Application Server platform for Java Java Servlets

More information

Today CSCI Remote Method Invocation (RMI) Distributed Objects

Today CSCI Remote Method Invocation (RMI) Distributed Objects Today CSCI 5105 Remote Method Invocation (RMI) Message-oriented communication Stream-oriented communication Instructor: Abhishek Chandra 2 Remote Method Invocation (RMI) RPCs applied to distributed objects

More information

Last Class: RPCs and RMI. Today: Communication Issues

Last Class: RPCs and RMI. Today: Communication Issues Last Class: RPCs and RMI Case Study: Sun RPC Lightweight RPCs Remote Method Invocation (RMI) Design issues Lecture 9, page 1 Today: Communication Issues Message-oriented communication Persistence and synchronicity

More information

High Availability and Disaster Recovery Solutions for Perforce

High Availability and Disaster Recovery Solutions for Perforce High Availability and Disaster Recovery Solutions for Perforce This paper provides strategies for achieving high Perforce server availability and minimizing data loss in the event of a disaster. Perforce

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

A Framework Supporting Quality of Service for SOA-based Applications

A Framework Supporting Quality of Service for SOA-based Applications A Framework Supporting Quality of Service for SOA-based Applications Phung Huu Phu, Dae Seung Yoo, and Myeongjae Yi School of Computer Engineering and Information Technology University of Ulsan, Republic

More information

Distributed Systems Architectures. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 12 Slide 1

Distributed Systems Architectures. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 12 Slide 1 Objectives To explain the advantages and disadvantages of different distributed systems architectures

More information

DHANALAKSHMI COLLEGE OF ENGINEERING, CHENNAI

DHANALAKSHMI COLLEGE OF ENGINEERING, CHENNAI DHANALAKSHMI COLLEGE OF ENGINEERING, CHENNAI Department of Computer Science and Engineering IT6801 - SERVICE ORIENTED ARCHITECTURE Anna University 2 & 16 Mark Questions & Answers Year / Semester: IV /

More information

BUILDING A SCALABLE MOBILE GAME BACKEND IN ELIXIR. Petri Kero CTO / Ministry of Games

BUILDING A SCALABLE MOBILE GAME BACKEND IN ELIXIR. Petri Kero CTO / Ministry of Games BUILDING A SCALABLE MOBILE GAME BACKEND IN ELIXIR Petri Kero CTO / Ministry of Games MOBILE GAME BACKEND CHALLENGES Lots of concurrent users Complex interactions between players Persistent world with frequent

More information

Enterprise Backup and Restore technology and solutions

Enterprise Backup and Restore technology and solutions Enterprise Backup and Restore technology and solutions LESSON VII Veselin Petrunov Backup and Restore team / Deep Technical Support HP Bulgaria Global Delivery Hub Global Operations Center November, 2013

More information

Next Paradigm for Decentralized Apps. Table of Contents 1. Introduction 1. Color Spectrum Overview 3. Two-tier Architecture of Color Spectrum 4

Next Paradigm for Decentralized Apps. Table of Contents 1. Introduction 1. Color Spectrum Overview 3. Two-tier Architecture of Color Spectrum 4 Color Spectrum: Next Paradigm for Decentralized Apps Table of Contents Table of Contents 1 Introduction 1 Color Spectrum Overview 3 Two-tier Architecture of Color Spectrum 4 Clouds in Color Spectrum 4

More information

COMMUNICATION PROTOCOLS

COMMUNICATION PROTOCOLS COMMUNICATION PROTOCOLS Index Chapter 1. Introduction Chapter 2. Software components message exchange JMS and Tibco Rendezvous Chapter 3. Communication over the Internet Simple Object Access Protocol (SOAP)

More information

Ultra Messaging Queing Edition (Version ) Guide to Queuing

Ultra Messaging Queing Edition (Version ) Guide to Queuing Ultra Messaging Queing Edition (Version 6.10.1) Guide to Queuing 2005-2017 Contents 1 Introduction 5 1.1 UMQ Overview.............................................. 5 1.2 Architecture...............................................

More information

MULE ESB High Availability (HA) CLUSTERING

MULE ESB High Availability (HA) CLUSTERING MULE ESB High Availability (HA) CLUSTERING Availability, Reliability and Scalability Abstract: ESB offers a built-in active-active High Availability clustering capability. For applications that require

More information

A NEW MODELLING APPROACH TO ENHANCE RELIABILITY OF TRANSACTIONAL ORIENTED WEB SERVICES

A NEW MODELLING APPROACH TO ENHANCE RELIABILITY OF TRANSACTIONAL ORIENTED WEB SERVICES A NEW MODELLING APPROACH TO ENHANCE RELIABILITY OF TRANSACTIONAL ORIENTED WEB SERVICES Adil M. Hammadi 1 ), Saqib Ali ), Fei Liu 1 ) Abstract Reliability and uptime are the key indicators of business systems

More information

DISTRIBUTED COMPUTER SYSTEMS

DISTRIBUTED COMPUTER SYSTEMS DISTRIBUTED COMPUTER SYSTEMS Communication Fundamental REMOTE PROCEDURE CALL Dr. Jack Lange Computer Science Department University of Pittsburgh Fall 2015 Outline Communication Architecture Fundamentals

More information

Preliminary Research on Distributed Cluster Monitoring of G/S Model

Preliminary Research on Distributed Cluster Monitoring of G/S Model Available online at www.sciencedirect.com Physics Procedia 25 (2012 ) 860 867 2012 International Conference on Solid State Devices and Materials Science Preliminary Research on Distributed Cluster Monitoring

More information

Course Outline. Lesson 2, Azure Portals, describes the two current portals that are available for managing Azure subscriptions and services.

Course Outline. Lesson 2, Azure Portals, describes the two current portals that are available for managing Azure subscriptions and services. Course Outline Module 1: Overview of the Microsoft Azure Platform Microsoft Azure provides a collection of services that you can use as building blocks for your cloud applications. Lesson 1, Azure Services,

More information

Simple Object Access Protocol (SOAP) Reference: 1. Web Services, Gustavo Alonso et. al., Springer

Simple Object Access Protocol (SOAP) Reference: 1. Web Services, Gustavo Alonso et. al., Springer Simple Object Access Protocol (SOAP) Reference: 1. Web Services, Gustavo Alonso et. al., Springer Minimal List Common Syntax is provided by XML To allow remote sites to interact with each other: 1. A common

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

Comprehensive Guide to Evaluating Event Stream Processing Engines

Comprehensive Guide to Evaluating Event Stream Processing Engines Comprehensive Guide to Evaluating Event Stream Processing Engines i Copyright 2006 Coral8, Inc. All rights reserved worldwide. Worldwide Headquarters: Coral8, Inc. 82 Pioneer Way, Suite 106 Mountain View,

More information

MSMQ-MQSeries Bridge Configuration Guide White Paper

MSMQ-MQSeries Bridge Configuration Guide White Paper MSMQ-MQSeries Bridge Configuration Guide White Paper Published: November 2000 Table of Contents Table of Contents...1 Introduction...1 Definitions... 2 How the Bridge Works...5 MSMQ-MQSeries Bridge Installation...

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

Large Scale Computing Infrastructures

Large Scale Computing Infrastructures GC3: Grid Computing Competence Center Large Scale Computing Infrastructures Lecture 2: Cloud technologies Sergio Maffioletti GC3: Grid Computing Competence Center, University

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 COMPUTER SYSTEMS

DISTRIBUTED COMPUTER SYSTEMS DISTRIBUTED COMPUTER SYSTEMS MESSAGE ORIENTED COMMUNICATIONS Dr. Jack Lange Computer Science Department University of Pittsburgh Fall 2015 Outline Message Oriented Communication Sockets and Socket API

More information

Asynchronous and Synchronous Messaging with Web Services and XML Ronald Schmelzer Senior Analyst ZapThink, LLC

Asynchronous and Synchronous Messaging with Web Services and XML Ronald Schmelzer Senior Analyst ZapThink, LLC Asynchronous and Synchronous Messaging with Web Services and XML Ronald Schmelzer Senior Analyst ZapThink, LLC The Business Objective Automated Business Collaboration Facilitating exchange of information

More information

Chapter 5 INTRODUCTION TO MOBILE AGENT

Chapter 5 INTRODUCTION TO MOBILE AGENT Chapter 5 INTRODUCTION TO MOBILE AGENT 135 Chapter 5 Introductions to Mobile Agent 5.1 Mobile agents What is an agent? In fact a software program is containing an intelligence to help users and take action

More information

Communication. Outline

Communication. Outline COP 6611 Advanced Operating System Communication Chi Zhang czhang@cs.fiu.edu Outline Layered Protocols Remote Procedure Call (RPC) Remote Object Invocation Message-Oriented Communication 2 1 Layered Protocols

More information

Course Outline. Developing Microsoft Azure Solutions Course 20532C: 4 days Instructor Led

Course Outline. Developing Microsoft Azure Solutions Course 20532C: 4 days Instructor Led Developing Microsoft Azure Solutions Course 20532C: 4 days Instructor Led About this course This course is intended for students who have experience building ASP.NET and C# applications. Students will

More information

Developing Microsoft Azure Solutions (MS 20532)

Developing Microsoft Azure Solutions (MS 20532) Developing Microsoft Azure Solutions (MS 20532) COURSE OVERVIEW: This course is intended for students who have experience building ASP.NET and C# applications. Students will also have experience with the

More information

Product Overview. Benefits CHAPTER

Product Overview. Benefits CHAPTER CHAPTER 1 Revised July 3, 2012 The Cisco TelePresence Exchange System is an integrated video service-creation platform that enables service providers and strategic partners to offer secure cloud-based

More information

Product Guide SMS PLUS + Copyrights RouteSms Solutions Limited Page 1

Product Guide SMS PLUS + Copyrights RouteSms Solutions Limited Page 1 Product Guide SMS PLUS + Copyrights RouteSms Solutions Limited Page 1 Index Contents Page No. Overview 3-4 Gateways 5 Users 6-7 Routing 8 Administrator 9-13 Message Processing Engine 14 About Us 15 Copyrights

More information

F5 BIG-IQ Centralized Management: Local Traffic & Network. Version 5.2

F5 BIG-IQ Centralized Management: Local Traffic & Network. Version 5.2 F5 BIG-IQ Centralized Management: Local Traffic & Network Version 5.2 Table of Contents Table of Contents BIG-IQ Local Traffic & Network: Overview... 5 What is Local Traffic & Network?... 5 Understanding

More information

Distributed systems. Distributed Systems Architectures

Distributed systems. Distributed Systems Architectures Distributed systems Distributed Systems Architectures Virtually all large computer-based systems are now distributed systems. Information processing is distributed over several computers rather than confined

More information

Sentinet for Microsoft Azure SENTINET

Sentinet for Microsoft Azure SENTINET Sentinet for Microsoft Azure SENTINET Sentinet for Microsoft Azure 1 Contents Introduction... 2 Customer Benefits... 2 Deployment Topologies... 3 Cloud Deployment Model... 3 Hybrid Deployment Model...

More information

EECS 3214 Final Exam Winter 2017 April 19, 2017 Instructor: S. Datta. 3. You have 180 minutes to complete the exam. Use your time judiciously.

EECS 3214 Final Exam Winter 2017 April 19, 2017 Instructor: S. Datta. 3. You have 180 minutes to complete the exam. Use your time judiciously. EECS 3214 Final Exam Winter 2017 April 19, 2017 Instructor: S. Datta Name (LAST, FIRST): Student number: Instructions: 1. If you have not done so, put away all books, papers, and electronic communication

More information

ORACLE MESSAGEQ ORACLE DATA SHEET KEY FEATURES AND BENEFITS

ORACLE MESSAGEQ ORACLE DATA SHEET KEY FEATURES AND BENEFITS ORACLE MESSAGEQ KEY FEATURES AND BENEFITS With Oracle MessageQ, you can translate your inventory of diverse applications into a strategic advantage. FEATURES Interoperability with IBM platforms via TCP/IP

More information

Routing Protocol comparison

Routing Protocol comparison Routing Protocol comparison Introduction to routing Networks allow people to communicate, collaborate, and interact in many ways. Networks are used to access web pages, talk using IP telephones, participate

More information

On the Creation & Discovery of Topics in Distributed Publish/Subscribe systems

On the Creation & Discovery of Topics in Distributed Publish/Subscribe systems On the Creation & Discovery of Topics in Distributed Publish/Subscribe systems Shrideep Pallickara, Geoffrey Fox & Harshawardhan Gadgil Community Grids Lab, Indiana University 1 Messaging Systems Messaging

More information

A short introduction to Web Services

A short introduction to Web Services 1 di 5 17/05/2006 15.40 A short introduction to Web Services Prev Chapter Key Concepts Next A short introduction to Web Services Since Web Services are the basis for Grid Services, understanding the Web

More information

Perceptive Matching Engine

Perceptive Matching Engine Perceptive Matching Engine Advanced Design and Setup Guide Version: 1.0.x Written by: Product Development, R&D Date: January 2018 2018 Hyland Software, Inc. and its affiliates. Table of Contents Overview...

More information

Network Security and Cryptography. 2 September Marking Scheme

Network Security and Cryptography. 2 September Marking Scheme Network Security and Cryptography 2 September 2015 Marking Scheme This marking scheme has been prepared as a guide only to markers. This is not a set of model answers, or the exclusive answers to the questions,

More information

Solace JMS Broker Delivers Highest Throughput for Persistent and Non-Persistent Delivery

Solace JMS Broker Delivers Highest Throughput for Persistent and Non-Persistent Delivery Solace JMS Broker Delivers Highest Throughput for Persistent and Non-Persistent Delivery Java Message Service (JMS) is a standardized messaging interface that has become a pervasive part of the IT landscape

More information

DOE Award number: Name of recipient: Project Title: Principal investigator: Date of Report: Period covered by the report:

DOE Award number: Name of recipient: Project Title: Principal investigator: Date of Report: Period covered by the report: Progress Report DOE Award number: DE-SC0004909 Name of recipient: University of Massachusetts, Dartmouth Project Title: Coordinated Multi-layer Multi-domain Optical Network (COMMON) for Large- Scale Science

More information

Overview. Communication types and role of Middleware Remote Procedure Call (RPC) Message Oriented Communication Multicasting 2/36

Overview. Communication types and role of Middleware Remote Procedure Call (RPC) Message Oriented Communication Multicasting 2/36 Communication address calls class client communication declarations implementations interface java language littleendian machine message method multicast network object operations parameters passing procedure

More information

Service Mesh and Microservices Networking

Service Mesh and Microservices Networking Service Mesh and Microservices Networking WHITEPAPER Service mesh and microservice networking As organizations adopt cloud infrastructure, there is a concurrent change in application architectures towards

More information

Distributed Backup System.Net

Distributed Backup System.Net Distributed Backup System.Net world can now backup for free... AUTHORS Martina Babini Guido Angelo Ingenito what we have already seen... According w/ DBS.Net vision you should send your files to peers

More information

Workshop on Web of Services for Enterprise Computing

Workshop on Web of Services for Enterprise Computing Workshop on Web of Services for Enterprise Computing Fujitsu Submission v0.2 Authors: Jacques Durand Tom Rutt Hamid BenMalek Acknowledgements: Masahiko Narita Paul A. Knapp 1. The Great Divide The fundamental

More information

General comments on candidates' performance

General comments on candidates' performance BCS THE CHARTERED INSTITUTE FOR IT BCS Higher Education Qualifications BCS Level 5 Diploma in IT April 2018 Sitting EXAMINERS' REPORT Computer Networks General comments on candidates' performance For the

More information

Web Services - Concepts, Architecture and Applications Part 3: Asynchronous middleware

Web Services - Concepts, Architecture and Applications Part 3: Asynchronous middleware Web Services - Concepts, Architecture and Applications Part 3: Asynchronous middleware Gustavo Alonso and Cesare Pautasso Computer Science Department ETH Zürich alonso@inf.ethz.ch http://www.inf.ethz.ch/~alonso

More information

MTAT Enterprise System Integration. Lecture 2: Middleware & Web Services

MTAT Enterprise System Integration. Lecture 2: Middleware & Web Services MTAT.03.229 Enterprise System Integration Lecture 2: Middleware & Web Services Luciano García-Bañuelos Slides by Prof. M. Dumas Overall view 2 Enterprise Java 2 Entity classes (Data layer) 3 Enterprise

More information

BlackBerry Enterprise Server for IBM Lotus Domino Version: 5.0. Administration Guide

BlackBerry Enterprise Server for IBM Lotus Domino Version: 5.0. Administration Guide BlackBerry Enterprise Server for IBM Lotus Domino Version: 5.0 Administration Guide SWDT487521-636611-0528041049-001 Contents 1 Overview: BlackBerry Enterprise Server... 21 Getting started in your BlackBerry

More information

<Insert Picture Here> QCon: London 2009 Data Grid Design Patterns

<Insert Picture Here> QCon: London 2009 Data Grid Design Patterns QCon: London 2009 Data Grid Design Patterns Brian Oliver Global Solutions Architect brian.oliver@oracle.com Oracle Coherence Oracle Fusion Middleware Product Management Agenda Traditional

More information

Wide area networks: packet switching and congestion

Wide area networks: packet switching and congestion Wide area networks: packet switching and congestion Packet switching ATM and Frame Relay Congestion Circuit and Packet Switching Circuit switching designed for voice Resources dedicated to a particular

More information

20532D: Developing Microsoft Azure Solutions

20532D: Developing Microsoft Azure Solutions 20532D: Developing Microsoft Azure Solutions Course Details Course Code: Duration: Notes: 20532D 5 days Elements of this syllabus are subject to change. About this course This course is intended for students

More information

Distributed Transaction Management 2003

Distributed Transaction Management 2003 Distributed Transaction Management 2003 Jyrki Nummenmaa http://www.cs.uta.fi/~dtm jyrki@cs.uta.fi General information We will view this from the course web page. Motivation We will pick up some motivating

More information