Patent application number | Description | Published |
20090328054 | ADAPTING MESSAGE DELIVERY ASSIGNMENTS WITH HASHING AND MAPPING TECHNIQUES - A system for efficiently distributing messages to a server farm uses a hashing function and a map-based function, or combinations thereof, to distribute messages associated with a processing request. In one implementation, for example, the hashing function has inputs of an identifier for each message in a processing request, and a list of available servers. Upon identifying that any of the servers is unavailable, or will soon be unavailable, the load balancing server uses an alternate map-based assignment function for new requests, and inputs each assignment into a server map. The load balancing server can then use the map or the hashing function, as appropriate, to direct messages to an operating server. Upon receiving an updated list of available servers, the load balancing server can switch back to the hashing function after the map is depleted, and use the updated server list as an argument. | 12-31-2009 |
20100058451 | LOAD BALANCING FOR SERVICES - The present invention extends to methods, systems, and computer program products for load balancing for services. Embodiments of the invention facilitate load balancing between instances of a service based on affinitization of messages, based on content of the message. For example, messages in the same session can be dispatched to the same service instance. A sequence or series of related messages associated with long running and/or stateful services are more likely to be dispatched to the same instance of the service. Thus, if the service instance has persisted client state, there is an increased likely of utilizing the persisted client state and not having another service instance recreate the client state. | 03-04-2010 |
20100162264 | SERVICE VIRTUALIZATION CONTAINER - Service virtualization containers to aggregate service functionality from a plurality of services into an apparent service exhibiting the aggregated functionality. A plurality of service implementations is assigned to a service virtualization container. The container selects some of the service operations from the service implementations. One or more message characteristics are assigned to the service operations in one or more routing tables. A message is received at a service endpoint different from the service endpoints of any of the service implementations. A determination is made of one or more message characteristics. The one or more routing tables are consulted to select a determined service operation based on the message characteristics. The message is routed to the selected service implementation. Embodiments may also include functionality for aggregating metadata from service implementations and providing metadata based on the aggregated metadata to clients requesting metadata from a service virtualization container. | 06-24-2010 |
20100318654 | ROUTING OF POOLED MESSAGES VIA AN INTERMEDIARY - Message intermediation for multiple service instances, while allowing the service instance to control whether messages are processed under a transaction. The message intermediator chooses to dispatch messages among different backend service instances based on any routing rules. The message intermediator performs a peek-lock of message from a forward-end queue, and assigns the message to a service instance. The message is provided into a backward-end queue specific to the assigned service instance. The service instance may then process the message, perhaps under a transaction created at the service instance. Upon completion of processing, the message is deleted in the back-end queue, which causes the forward-end queue to delete the message under the same transaction created by the service instance. Whether or not this deletion at the forward-end is committed or rolled back depends on whether the transaction created at the service instance is committed or rolled back. | 12-16-2010 |
20100325642 | AUTOMATICALLY RE-STARTING SERVICES - The present invention extends to methods, systems, and computer program products for automatically re-starting services. Embodiments of the invention can be used to re-start a service when it is determined that the service stopped during the processing pending work. A container manager durably tracks a service's status (busy/idle and alive/dead) and tracks transitions between statuses. Accordingly, when a busy service is deemed dead (due to any event), the container manager can automatically re-start the service. Upon re-start the service can check for pending work and start executing its pending work. | 12-23-2010 |
20110161392 | MESSAGE REDIRECTION WITHIN A MESSAGING INFRASTRUCTURE - The present invention extends to methods, systems, and computer program products for redirecting client messages between hosts within a messaging infrastructure. When a host receives a client message, it can refer to lock information in a shared database to determine if it is the correct host to receive the client message. The lock information includes a redirect endpoint. The redirect endpoint identifies an endpoint where client messages can be sent for delivery to the appropriate workflow instance. The redirect endpoint can be included in a redirect fault message, that is returned to a host when a host attempts to process a client message that is already locked to another workflow instance. Using the redirect endpoint, a host receiving a redirect fault message can use the redirect endpoint to send a client message to the correct host. | 06-30-2011 |
20110179303 | PERSISTENT APPLICATION ACTIVATION AND TIMER NOTIFICATIONS - The present invention extends to methods, systems, and computer program products for persistent application activation and timer notifications. A durable instance manager, instance execution hosts, and an instance store interoperate to transition instances between executing and persisted states. System properties are associated with an instance. System properties can define re-activation conditions, that when satisfied, indicate that an instance is to be re-activated for execution. System properties can define timers as well as indications that instances are in a persisted but ready to run state. | 07-21-2011 |
20120030169 | APPLICATION INSTANCE AND QUERY STORES - An instance persistence command for an update to a state of an instance of an application can be issued. In response to the persistence command, a transaction with an instance store can be initiated. As part of the transaction, a first representation of the update can be stored in the instance store and a second representation of the update can be stored in a queue. The transaction can be committed after storing the first and second representations. After the transaction is committed, the second representation can be processed to store a third representation of the update in a query store. Application instance state information in the query store can be updated and queried without locking the instance store so that such operations in the query store can be performed asynchronously with operations in the instance store. | 02-02-2012 |
20120102355 | CONSISTENT MESSAGING WITH REPLICATION - A messaging entity configured in a memory of first node of a plurality communicatively coupled nodes is disclosed. The nodes are included in a distributed computing system. The messaging entity is configured to operate as a secondary messaging entity in a messaging server for the plurality communicatively coupled nodes. The messaging entity is communicatively couple to a primary messaging entity configured in a memory of a second node of the plurality of nodes. The primary messaging entity is configured to store a message; store a copy of the message. Also, the messaging entity is configured to be promoted to a new primary messaging entity in the event of failure of the primary messaging entity. | 04-26-2012 |
20120159246 | SCALING OUT A MESSAGING SYSTEM - A messaging system may operate on multiple processor partitions in several configurations to provide queuing and topic subscription services on a large scale. A queue service may receive messages from a multiple transmitting services and distribute the messages to a single service. A topic subscription service may receive messages from multiple transmitting services, but distribute the messages to multiple recipients, often with a filter applied to each recipient where the filter defines which messages may be transmitted by the recipient. Large queues or topic subscriptions may be divided across multiple processor partitions with separate sets of recipients for each partition in some cases, or with duplicate sets of recipients in other cases. | 06-21-2012 |
20130046877 | ROUTING OF POOLED MESSAGES VIA AN INTERMEDIARY - Message intermediation for multiple service instances, while allowing the service instance to control whether messages are processed under a transaction. The message intermediator chooses to dispatch messages among different backend service instances based on any routing rules. The message intermediator performs a peek-lock of message from a forward-end queue, and assigns the message to a service instance. The message is provided into a backward-end queue specific to the assigned service instance. The service instance may then process the message, perhaps under a transaction created at the service instance. Upon completion of processing, the message is deleted in the back-end queue, which causes the forward-end queue to delete the message under the same transaction created by the service instance. Whether or not this deletion at the forward-end is committed or rolled back depends on whether the transaction created at the service instance is committed or rolled back. | 02-21-2013 |
20130060834 | DISTRIBUTED MESSAGING SYSTEM CONNECTIVITY AND RESOURCE MANAGEMENT - A distributed messaging system includes a gateway having an interface to receive client messages and having access to a gateway database and to a messaging host that supports multiple partitions that are executed on processors of a cluster of processors. Each of the partitions supports execution of at least one message broker. The gateway database includes a mapping between each of the message brokers and one of the multiple partitions. An admin agent may periodically scan the gateway database to check if the message brokers reach a capacity threshold. The admin agent may create new message brokers and add the new message brokers to a pool of message brokers to allow new queues to be associated with the new message brokers. | 03-07-2013 |
20130066977 | MESSAGE QUEUE BEHAVIOR OPTIMIZATIONS - Network and storage calls are reduced by batching messages. Messages are collected from a client and sent to the gateway or backend application in one round trip. Alternatively, the messages are collected for different entities, and the batched messages are durably stored. Related messages, which may have the same sessionID, are grouped into a logical unit or session. This session may be locked to a single message consumer. A session may be associated with an application processing state as an atomic unit of work while other operations are performed on the messages in the session. Acknowledgements are accumulated by a broker on a message server, but the messages are not immediately deleted. Instead, multiple messages in a selected range are periodically truncated from a message store in a single operation. Expired messages for active sessions are proactive cleaned up to prevent sessions from reaching a quota or limit. | 03-14-2013 |
20130204934 | EFFICIENTLY RECEIVING MESSAGES ACROSS A LARGE NUMBER OF MESSAGING ENTITIES - A messaging service is described that facilitates the efficient receipt of messages by a client from across a large number of messaging entities hosted by different messaging hosts within a distributed messaging system. A gateway in the distributed messaging system forwards a request for an available message or set of related messages from the client to each of the messaging hosts. Each messaging host provides a response to a request if a messaging entity hosted thereby includes at least one available message or set of related messages. The messaging host manages the order in which responses from different messaging entities are provided to ensure fairness. The gateway forwards a selected one of the responses to the consumer, while caching the other responses to service future requests from the consumer. | 08-08-2013 |
20130246561 | HIGH DENSITY HOSTING FOR MESSAGING SERVICE - Aspects of the subject matter described herein relate migrating message for a messaging service. In aspects, a determination is made that messages need to be migrated based on a threshold being crossed. In response, an agent is instructed to migrate data associated with the messages to another location. The agent uses various factors to determine one or more queues to migrate. While a queue is being migrated, during a first portion of the migration, messages may be added to and removed from the queue as senders send new messages and receivers consume messages. During a second portion of the migration, the queue is frozen to disallow the queue to be used for receiving new messages and delivering queued messages. The migration may be orchestrated to attempt to achieve certain goals. | 09-19-2013 |
20130304826 | SCHEDULED MESSAGES IN A SCALABLE MESSAGING SYSTEM - Techniques are provided for scheduled and non-scheduled delivery of messages. A message directed to at least one consumer is received at a message entity. The message is determined to include a scheduled delivery time. The received message is stored in a scheduled sub-queue of the message entity. Activation metadata is retrieved and stored for any messages stored in the scheduled sub-queue that include a scheduled delivery time within a predetermined upcoming time period. If when the message is received, the scheduled delivery time of the message is within a current activation window, the activation metadata for the message may be extracted and stored immediately. The stored activation metadata is analyzed to determine a batch of messages in the scheduled sub-queue ready for delivery. The determined batch of messages is stored in an active sub-queue of the message entity, to be ready for delivery at the request of a consumer. | 11-14-2013 |
20140082085 | CONSISTENT MESSAGING WITH REPLICATION - A messaging entity configured in a memory of first node of a plurality communicatively coupled nodes is disclosed. The nodes are included in a distributed computing system. The messaging entity is configured to operate as a secondary messaging entity in a messaging server for the plurality communicatively coupled nodes. The messaging entity is communicatively couple to a primary messaging entity configured in a memory of a second node of the plurality of nodes. The primary messaging entity is configured to store a message; store a copy of the message. | 03-20-2014 |
20140108523 | CONNECTION SHARING ACROSS ENTITIES IN A DISTRIBUTED MESSAGING SYSTEM - A method of creating a link of a connection to a messaging system includes receiving a protocol command message directed to a message entity of the messaging system. The protocol command message is communicated over the connection. The method includes determining that the protocol command message includes a link identifier that is unrecognized by the messaging system and in response to receiving the protocol command message and determining that the protocol command message includes the link identifier that is unrecognized by the messaging system, creating the link for the connection, the link corresponding to the link identifier. | 04-17-2014 |