Applications running on different network computers often share information. For example, an application running at one computer may feed stock market data to applications at remote computers. To share information, applications often use a messaging system. A messaging system handles a wide variety of tasks associated with application and network communication. These systems often ease application development by shielding programmers from the details of message handling.
One type of messaging system is known as “message-oriented middleware.” Essentially, message-oriented middleware systems receive messages from one application and store these messages until retrieved by another application. This scheme can free applications to perform other operations until they choose to receive a message.
Some messages do not require reliable transmission. For example, the loss of a message containing a stock quote may not be of particular concern if other messages with the quote quickly follow. More critical data exchanges, however, may require greater reliability. Thus, many messaging systems support “guaranteed messages” that the messaging system promises not to lose. Typically, after receiving a guaranteed message, message-oriented middleware systems transmit an acknowledgment message to the sending application indicating that from then on, the system will not lose the message. To provide this guarantee, many messaging systems save guaranteed messages in persistent storage such as a hard disk or other non-volatile storage medium. Thus, even in the event of a messaging system problem, such as a system crash, the system can still access and deliver the guaranteed messages when the system resumes operation.
In general, in one aspect, the disclosure describes a method of handling messages received at a messaging system server. The method includes storing, in non-persistent storage, messages received from at least one client, removing delivered messages from the non-persistent storage, and saving messages stored in the non-persistent storage to persistent storage after a delay interval.
Embodiments many include one or more of the following features. The storing, removing, and saving may occur concurrently. Storing in non-persistent storage may include storing in a log queue. The messages may be guaranteed messages. The messaging system may be a message-oriented middleware system.
The method may further include transmitting an acknowledgement message that indicates that the received message will not be lost by the server in the case of server failure. Transmitting may include transmitting the acknowledgment message to the client for a delivered message or storage of the message in persistent storage.
The method may further include determining the delay interval. For example, such determining may occur by determining at least one metric based on messages handled by the server and determining the delay interval based on the at least one metric. The metric may include a metric based on a number of sending clients using the server to deliver messages. Determining the interval delay may include dynamically determining the delay.
In general, in another aspect, the disclosure describes a method of handling guaranteed messages received at a message-orient middleware server over a network. The method includes storing, in a log queue in non-persistent storage, guaranteed messages received from at least one client as the guaranteed messages are received. The method also includes removing guaranteed messages from the non-persistent storage as the guaranteed messages are delivered, dynamically determining a delay time period, and storing guaranteed messages stored in the non-persistent storage in persistent storage after the determined delay period. The method also includes transmitting a guarantee acknowledgement message to a client that sent a received message indicating that the message will not be lost by the server.
Embodiments may include one or more of the following features. Transmitting the guarantee acknowledgement message may include transmitting the guarantee acknowledgement message for a delivered guaranteed message if the guaranteed message is not persistently stored, the guarantee acknowledgement message otherwise being transmitted when the message is persistently stored.
In general, in another aspect, the disclosure describes a computer program product, disposed on a computer readable medium, for handling messages received at a server. The computer program includes instructions for causing a server processor to store, in a non-persistent storage, messages received from at least one client as the messages are received, remove messages from the non-persistent storage as the messages are delivered, and save messages stored in the non-persistent storage to persistent storage after a delay period.
In general, in another aspect, the disclosure describes a message oriented middleware server. The server includes non-persistent storage, persistent storage, at least one processor, and instructions. The instructions cause the server processor to store, in the non-persistent storage, messages received from at least one client as the messages are received, remove messages from the non-persistent storage as the messages are delivered, and save messages stored in the non-persistent storage to persistent storage after a delay interval.
Advantages of the techniques described herein will become apparent in view of the following description, including the figures.
To improve message handling, for example, of guaranteed messages, the system 100 shown can balance the performance cost of storing messages in persistent storage 106 with the protection offered by doing so. For example, in the case of guaranteed messages, the messaging server 100 can add the messages to a queue 104, known as a log queue, in non-persistent storage 102. The system 100 continually removes messages from the log queue 104 as the server 100 delivers the messages. After a delay interval, the system 100 begins saving undelivered guaranteed messages to persistent storage 106. Since the system 100 will often deliver many guaranteed messages before expiration of the delay interval, the system 100 can avoid saving a large number guaranteed message to persistent storage 106. Storing fewer messages in persistent storage 106 can increase the message handling speed of the system 100 and can reduce the amount of persistent storage 106 needed. For guaranteed messages that remain undelivered beyond an expiration of a delay interval, however, the system 100 still provides the reliability of persistent storage.
To guarantee a message, the system 100 transmits a guarantee acknowledgement message to a message sender after message delivery or persistent storage of the message. Until the system 100 transmits a guarantee acknowledgement message, the system 100 has not guaranteed that the system 100 will not lose the sender's message. Thus, in the event the system 100 crashes before delivery or persistent storage of a message, the server 100 will not transmit an acknowledgement message guaranteeing the sender's message.
In greater detail,
As shown, two different clients, application A 108 and application B 110, send messages 116, 118 to the messaging system server 100. The messages 116, 118 may be designated as guaranteed messages, for example, by information included in the messages 116, 118. Though client applications 108, 110 may refrain from sending additional messages until receiving an acknowledgement of a guaranteed message from the server 100, the server 100 awaits either delivery or persistent storage of the message before transmitting the guarantee acknowledgement.
As shown in
The server 100 may feature other queues (not shown). For example, in JMS (Java Messaging Service), a standard design for message-oriented middleware, senders and receivers communicate via queues. For instance, a sending application may send a message specifying a queue. A receiving application requests a message from the same queue. The messaging system 100 may handle communication by such queuing or use a wide variety of other communication techniques such as topic-based message handling using publish/subscribe, and so forth. Regardless of the technique, however, the server 100 can maintain the log queue 104 described herein.
As shown in
As shown in
As shown in
The server 100 can retrieve persistently stored messages in the event of a problem such as a system 100 crash. For example, the server 100 can retrieve the persistently stored messages and replace them on an appropriate JMS queue. However, when the server 100 finally delivers messages retrieved from persistent storage 106, the server 100 may not send another guarantee acknowledgement message since the server 100 did so when storing the message in persistent storage 106.
Though
In greater detail,
In practice, a variable delay can enhance overall message throughput as the messaging environment changes. For example, a variable delay can improve performance when the number of messaging clients changes over time. That is, at low client counts, a persistent storage sub-system 106 may be fast enough to satisfy message requests. Thus, in such environments, immediately storing messages in persistent storage 106 and sending a guarantee acknowledgment message enables a sending client awaiting acknowledgment to proceed sooner than a deferred delivery of the acknowledgment message might allow. Thus, where few clients are sending and/or receiving messages, a small delay may improve overall system performance.
When a system 100 handles messages for a large number of senders and receivers, reducing the overhead of accessing persistent storage for the increased number of messages 106 can improve system 100 performance. Thus, a longer delay can increase message delivery speed by allowing more time for delivery of messages before saving them to persistent storage 106.
An appropriate amount of delay, however, may also depend on the current messaging environment (e.g., number of clients, average message size) of the server 100 and attributes of the storage system (e.g., the speed of access to persistent 106 and non-persistent storage 102, and the amount of persistent 106 and non-persistent storage 102 available).
In some embodiments, a server 100 determines 222 a variable delay based on one or more metrics, such as metrics based on message traffic handled by the server 100. For example, a metric may correspond to the number of different clients sending and/or receiving messages. For instance, in the case of a metric based on the number of clients sending messages, a process can determine a sender identifier of messages received, for example, as received messages are added to the log queue 104. The server 100 adds the identifier to a list such as an array of configurable length or a linked list. Because the list may hold a limited number of entries, the oldest entry may be discarded as the new entry is added. The server 100 may use the list to determine the number of sending clients for a given set of messages in the log queue 104. Based on the number of different sending clients, the server 100 can select a delay interval varying between zero for a single client and a maximum value when the entire list contains unique entries. The upper and lower bounds of the delay value may be configured. Additionally, the delay value may vary linearly or non-linearly, relative to the client metric.
The server 100 can determine a wide variety of other metrics. For example, the server 100 may determine a metric based on the average message size for messages currently added to the log queue 104. For a metric indicating a larger average message size, the server 100 may reduce the delay interval. Additionally, yet another metric may reflect the speed of persistent storage.
After, potentially, determining a delay interval 222, the thread 220 can suspend or otherwise wait 224 for the delay interval to expire. When the interval expires, the thread 220 can begin saving log-queued messages to persistent storage 106. In some embodiments, before the thread 220 begins saving messages to persistent storage 106, the thread 220 can identify the last position of the log queue. The thread 220 can be configured to not save messages after this position. Thus, although additional messages may be added to the log queue, the thread 220 will save those messages placed in the log-queue before the delay interval expired. Thus, messages received during the save operation may remain on the log-queue, if not delivered, until expiration of the next interval.
For messages in the queue requiring persistent storage (e.g., guaranteed messages) 226, the thread 220 can store 228 the messages in persistent storage and transmit 230 guarantee acknowledgement messages to the respective message senders. After handling the messages in the log-queue 104, the thread 220 (if so configured) can again determine a new delay interval and suspend operation as newly received messages accumulate in the log queue 104 before resumption of the thread 220 after the determined interval.
The techniques described herein are not limited to any particular hardware or software configuration; they may find applicability in any computing or processing environment. The techniques may be implemented in hardware or software, or a combination of the two. Preferably, the techniques are implemented in computer programs executing on programmable computers that each include a processor, a storage medium readable by the processor (including volatile and non-volatile memory and/or storage elements), at least one input device, and one or more output devices.
The program(s) may be implemented in high level procedural or object oriented programming language to communicate with a computer system. However, the programs can be implemented in assembly or machine language, if desired. In any case the language may be compiled or interpreted language.
The computer program(s) may be stored on a storage medium or device (e.g., CD-ROM, hard disk, or magnetic disk) that is readable by a general or special purpose programmable computer for configuring and operating the computer when the storage medium or device is read by the computer to perform the procedures described herein. The system may also be considered to be implemented as a computer-readable storage medium, configured with a computer program, where the storage medium so configured causes a computer to operate in a specific and predefined manner.
Other embodiments are within the scope of the following claims.
This application claims priority to U.S. Provisional Application Ser. No. 60/257,313, filed Dec. 20, 2000, entitled “Message Handling”.
Number | Name | Date | Kind |
---|---|---|---|
5245616 | Olson | Sep 1993 | A |
5392398 | Meyer | Feb 1995 | A |
5596720 | Hamada et al. | Jan 1997 | A |
5758354 | Huang et al. | May 1998 | A |
5765033 | Miloslavsky | Jun 1998 | A |
5805825 | Danneels et al. | Sep 1998 | A |
5822526 | Waskiewicz | Oct 1998 | A |
5850525 | Kalkunte et al. | Dec 1998 | A |
5857201 | Wright, Jr. et al. | Jan 1999 | A |
5870605 | Bracho et al. | Feb 1999 | A |
5870761 | Demers et al. | Feb 1999 | A |
5878056 | Black et al. | Mar 1999 | A |
5951648 | Kailash | Sep 1999 | A |
6016515 | Shaw et al. | Jan 2000 | A |
6061559 | Eriksson et al. | May 2000 | A |
6091724 | Chandra et al. | Jul 2000 | A |
6112323 | Meizlik et al. | Aug 2000 | A |
6128646 | Miloslavsky | Oct 2000 | A |
6145781 | Kawabe et al. | Nov 2000 | A |
6167445 | Gai et al. | Dec 2000 | A |
6289212 | Stein et al. | Sep 2001 | B1 |
6298455 | Knapman et al. | Oct 2001 | B1 |
6336119 | Banavar et al. | Jan 2002 | B1 |
6359635 | Perttunen | Mar 2002 | B1 |
6397352 | Chandrasekaran et al. | May 2002 | B1 |
6452934 | Nakata | Sep 2002 | B1 |
6453346 | Garg et al. | Sep 2002 | B1 |
6484198 | Milovanovic et al. | Nov 2002 | B1 |
6513154 | Porterfield | Jan 2003 | B1 |
6597774 | Jennings et al. | Jul 2003 | B1 |
6643682 | Todd et al. | Nov 2003 | B1 |
6647544 | Ryman et al. | Nov 2003 | B1 |
6728715 | Astley et al. | Apr 2004 | B1 |
6732175 | Abjanic | May 2004 | B1 |
6782386 | Gebauer | Aug 2004 | B1 |
6792460 | Oulu et al. | Sep 2004 | B2 |
6801604 | Maes et al. | Oct 2004 | B2 |
6807636 | Hartman et al. | Oct 2004 | B2 |
6816898 | Scarpelli et al. | Nov 2004 | B1 |
6854088 | Massengale et al. | Feb 2005 | B2 |
6868498 | Katsikas | Mar 2005 | B1 |
6898556 | Smocha et al. | May 2005 | B2 |
6901447 | Koo et al. | May 2005 | B2 |
6944662 | Devine et al. | Sep 2005 | B2 |
6970945 | Berkman et al. | Nov 2005 | B1 |
6983479 | Salas et al. | Jan 2006 | B1 |
7007278 | Gungabeesoon | Feb 2006 | B2 |
7026089 | Law et al. | Apr 2006 | B2 |
7039701 | Wesley | May 2006 | B2 |
7096263 | Leighton et al. | Aug 2006 | B2 |
7103054 | Novaes | Sep 2006 | B2 |
7110406 | Ennis et al. | Sep 2006 | B1 |
7171628 | Perttunen | Jan 2007 | B1 |
7177929 | Burbeck et al. | Feb 2007 | B2 |
7251689 | Wesley | Jul 2007 | B2 |
7287097 | Friend et al. | Oct 2007 | B1 |
7302634 | Lucovsky et al. | Nov 2007 | B2 |
7334022 | Nishimura et al. | Feb 2008 | B2 |
7349980 | Darugar et al. | Mar 2008 | B1 |
7359919 | Cohen et al. | Apr 2008 | B2 |
7379971 | Miller et al. | May 2008 | B2 |
7386630 | Liong et al. | Jun 2008 | B2 |
7395349 | Szabo et al. | Jul 2008 | B1 |
7406440 | Napier et al. | Jul 2008 | B2 |
7406537 | Cullen | Jul 2008 | B2 |
7418501 | Davis et al. | Aug 2008 | B2 |
7433835 | Frederick et al. | Oct 2008 | B2 |
7464154 | Dick et al. | Dec 2008 | B2 |
7467196 | Di Luoffo et al. | Dec 2008 | B2 |
7487510 | Carr | Feb 2009 | B1 |
7496637 | Han et al. | Feb 2009 | B2 |
7512957 | Cohen et al. | Mar 2009 | B2 |
7516191 | Brouk et al. | Apr 2009 | B2 |
7533172 | Traversat et al. | May 2009 | B2 |
7539656 | Fratkina et al. | May 2009 | B2 |
7543280 | Rosenthal et al. | Jun 2009 | B2 |
7603358 | Anderson et al. | Oct 2009 | B1 |
7702636 | Sholtis et al. | Apr 2010 | B1 |
7747980 | Illowsky et al. | Jun 2010 | B2 |
7752604 | Genkin et al. | Jul 2010 | B2 |
7761847 | Kornerup et al. | Jul 2010 | B2 |
7801946 | Bearman | Sep 2010 | B2 |
7801976 | Hodges et al. | Sep 2010 | B2 |
7802229 | Kornerup et al. | Sep 2010 | B2 |
7881992 | Seaman et al. | Feb 2011 | B1 |
7887511 | Mernoe et al. | Feb 2011 | B2 |
7895262 | Nielsen et al. | Feb 2011 | B2 |
7941542 | Broda et al. | May 2011 | B2 |
7992102 | De Angelo | Aug 2011 | B1 |
8001232 | Saulpaugh et al. | Aug 2011 | B1 |
8060553 | Mamou et al. | Nov 2011 | B2 |
20010007993 | Wu | Jul 2001 | A1 |
20020010781 | Tuatini | Jan 2002 | A1 |
20020026473 | Gourraud | Feb 2002 | A1 |
20020107992 | Osbourne et al. | Aug 2002 | A1 |
20020161826 | Arteaga et al. | Oct 2002 | A1 |
20020165745 | Greene et al. | Nov 2002 | A1 |
20030005174 | Coffman et al. | Jan 2003 | A1 |
20030014733 | Ringseth et al. | Jan 2003 | A1 |
20030041178 | Brouk et al. | Feb 2003 | A1 |
20030055920 | Kakadia et al. | Mar 2003 | A1 |
20030061404 | Atwal et al. | Mar 2003 | A1 |
20030074579 | Della-Libera et al. | Apr 2003 | A1 |
20030093500 | Khodabakchian et al. | May 2003 | A1 |
20030101210 | Goodman et al. | May 2003 | A1 |
20030106039 | Rosnow et al. | Jun 2003 | A1 |
20030115317 | Hickson et al. | Jun 2003 | A1 |
20030120665 | Fox et al. | Jun 2003 | A1 |
20030135556 | Holdsworth | Jul 2003 | A1 |
20030145281 | Thames et al. | Jul 2003 | A1 |
20030172368 | Alumbaugh et al. | Sep 2003 | A1 |
20030188198 | Holdsworth et al. | Oct 2003 | A1 |
20030204644 | Vincent | Oct 2003 | A1 |
20040027995 | Miller et al. | Feb 2004 | A1 |
20040030947 | Aghili et al. | Feb 2004 | A1 |
20040034664 | Jain et al. | Feb 2004 | A1 |
20040054770 | Touboul | Mar 2004 | A1 |
20040078440 | Potter et al. | Apr 2004 | A1 |
20040088140 | O'Konski et al. | May 2004 | A1 |
20040133633 | Fearnley et al. | Jul 2004 | A1 |
20040186817 | Thames et al. | Sep 2004 | A1 |
20040193703 | Loewy et al. | Sep 2004 | A1 |
20040216127 | Datta et al. | Oct 2004 | A1 |
20040225724 | Pavlik et al. | Nov 2004 | A1 |
20050027853 | Martin et al. | Feb 2005 | A1 |
20050038708 | Wu | Feb 2005 | A1 |
20050097480 | Care | May 2005 | A1 |
20050289508 | Illowsky et al. | Dec 2005 | A1 |
20060031303 | Pang | Feb 2006 | A1 |
20060031481 | Patrick et al. | Feb 2006 | A1 |
20060041461 | Vucina et al. | Feb 2006 | A1 |
20060041859 | Vrancic et al. | Feb 2006 | A1 |
20060069603 | Williams et al. | Mar 2006 | A1 |
20060074732 | Shukla et al. | Apr 2006 | A1 |
20060173985 | Moore | Aug 2006 | A1 |
20060195819 | Chory et al. | Aug 2006 | A1 |
20060206440 | Anderson et al. | Sep 2006 | A1 |
20060224702 | Schmidt et al. | Oct 2006 | A1 |
20060224750 | Davies et al. | Oct 2006 | A1 |
20060230432 | Lee et al. | Oct 2006 | A1 |
20060294499 | Shim | Dec 2006 | A1 |
20070174393 | Bosschaert et al. | Jul 2007 | A1 |
20070192678 | Tang et al. | Aug 2007 | A1 |
20070268300 | Janet et al. | Nov 2007 | A1 |
20080046861 | Grieser | Feb 2008 | A1 |
20080059220 | Roth et al. | Mar 2008 | A1 |
20080120574 | Heredia et al. | May 2008 | A1 |
20080120593 | Keren et al. | May 2008 | A1 |
20080126932 | Elad et al. | May 2008 | A1 |
20080127052 | Rostoker | May 2008 | A1 |
20080141237 | Elad et al. | Jun 2008 | A1 |
20080148346 | Gill et al. | Jun 2008 | A1 |
20080163164 | Chowdhary et al. | Jul 2008 | A1 |
20080172270 | Eckenroth | Jul 2008 | A1 |
20080307369 | Liu et al. | Dec 2008 | A1 |
20090262131 | Suntinger et al. | Oct 2009 | A1 |
20090276771 | Nickolov et al. | Nov 2009 | A1 |
20090319832 | Zhang et al. | Dec 2009 | A1 |
20090326997 | Becker et al. | Dec 2009 | A1 |
20100017853 | Readshaw | Jan 2010 | A1 |
20100030718 | Anderson et al. | Feb 2010 | A1 |
20100304992 | An et al. | Dec 2010 | A1 |
Entry |
---|
“A powerful new tool to help validated error-handling code,” Nov. 2004, pp. 1-4, Compuware Corporation. |
“Agitator,” online retrieved on Feb. 15, 2005) Retrieved from the internet ,URL:http://www.agitar.com/products/000024.html., pp. 1-5, Agitar Software, Inc. |
“AmberPoint Express”, (online, retrieved on Dec. 23, 2004), Retrieved from the internet ,URL:http://www.amberpoint.com/solutions/express—print.html., pp. 1-2, AmberPoint Solutions. |
“Extensible Markup Language (XML) 1.0 (Second Edition)”, Oct. 6, 2000 (online, retrieved on Aug. 3, 2006), Retrieved from the internet <URL:htt;://www.w3.org/TR/2000/REC-xml-20001006>, pp. 1-43, W3C. |
“Interoperability: The Key to Quality Web Services,” Mar. 2004 (online) retrieved on Nov. 17, 2004; Retrived from the Internet <URL:http:://www.mindreef.com/products.whitepapers/whitepaper-2html>, pp. 1-9, Mindreef, Inc., (no longer available on the internet). |
“ProactiveNet 6.0 Optimize Application Performance to Meet Business Objectives” 2004, pp. 1-4, ProactiveNet, Inc., CA. |
Abbreviated Examination Report, GB0517847.0, Dec. 1, 2005 (1 page). |
Barton, J.J. et al., “SOAP Messages with Attachments,” World Wide Web Consortium, W3C Note, Dec. 11, 2000, retrieved online on Jul. 24, 2003, from <URL:http://www.w3.org/TR/SOAP-attachments> (8 pages). |
Bilorusets et al.; Web Services Reliable Messaging Protocol (WS-ReliableMessaging); Feb. 2005; http://msdn.microsoft.com/library/en-us/dnglobspec/html/WS-ReliableMessaging.pdf (40 pages). |
Biron P.V. et al., “XML Schema Part 2: Datatypes,” World Wide Web Consortium, W3C Recommendation, May 2, 2001, retrieved online Jul. 11, 2003, retrieved from <URL:http://www.w3.org/TR/xmischema-2> (116 pages). |
Box, D. et al., “Simple Object Access Protocol (SOAP) 1. 1,” World Wide Web Consortium, W3C Note, May 8, 2000, retrieved online on Jul. 23, 2003, retrieved from <URL:http://www.w3.org.TR/2000/NOTE-SOAP-20000508/> (28 pages). |
Bray, T. et al.. Extensible Markup Language (XML) 1.0 (Second Edition), World Wide Web Consortium, W3c Recommendation, Oct. 6, 2001, retrieved online on Jul. 11, 2003, retrieved from RL:http://www.w3.org/TR/REC-xml> (44 pages). |
Christensen, E. et al., “Web Services Description Language (WSDL) 1.1,” World Wide Web Consortium, W3C Note, Mar. 15, 2001, retrieved online on Jul. 11, 2003, retrieved from <URL:http://www.w3.org.TR/wsdl> (40 pages). |
Clark, J. et al., “XML Path Language (Xpath),” World Wide Web Consortium, W3C Recommendation, Nov. 16, 1999, retrieved online on Jul. 11, 2003, retrieved from <URL:http://www.w3.org/TR/xpath> (119 pages). |
Clark, J., “XSL Transformations (XSLT) Version 1.0,” World Wide Consortium W3C Recommendation, Nov. 16, 1999, retrieved online on Jul. 11, 2003, retrieved from <URL:http://www.w3.org/TRxsit> (28 pages). |
Copyright Co OASIS, 2001, “Oasis/ebXML Registry Information Model v1.0 DRAFT, OASIS/ebXML Registry Technical Committee,” retrieved online on Jun. 27, 2001, retrieved from <URL:http://www.oasis-open.org/committees/regrap/documents/rimv1.0.doc> (43 pages). |
Copyright © UN/CEFACT and OASIS, 2001, “Message Service Specification, ebXML Transport, Routing & Packaging, Version 1.0,” retrieved online on May 11, 2001, retrieved from <URL:http://www.ebxml.org/specs/ebMS.pdf> (75 pages). |
Corba Messaging 22: Common Object Request Broker Architecture (CORBA), v3.0.3; Mar. 2004: http://www.omg.org/docs/formal/04-03-12.pdf (p. 85, total: 100 pages). |
Fallside, D.C., “XML Schema Part 0: Primer,” World Wide Web Consortium, W3C Recommendation, May 2, 2001, retrieved on Jul. 11, 2003, retrieved from <URL:http://www.w3.org/TR/xmischema-0> (57 pages). |
Final Office Action dated Oct. 18, 2005 from U.S. Appl. No. 10/015,502 (29 pages). |
International Search Report issued for PCT/USO4/03674, dated Oct. 13, 2004 (1 page). |
International Search Report/Written Opinion issued for PCT/US08/52928 dated Jul. 25, 2008 (8 pages). |
International Search Report/Written Opinion issued for PCT/US08/52928, dated Jul. 25, 2008 (8 pages). |
Martin, B. “Build distributed applications with Java and XML,” Feb. 2000, (online, retrieved on Jun. 10, 2005), Retrieved from the intemet ,URL: http://www.javaworld.com/javaworld/jw-02-2000/JW-02-ssj-xml—phtml>, pp. 103 Java World. |
Merrick, P. et al., “Web Interface Definition Language (WIDL),” World Wide Web Consortium, Submitted to W3C Sep. 22, 1997, ® 1997, webMethods, Inc., retrieved online on Aug. 11, 2003, retrieved from <URL•http://www.w3.org/TR/NOTE-widl> (16 pages). |
Mitchko, J. “Mindreef SOAPscope 1.0”, (online, retrieved on Sep. 27, 2004), retrieved from the internet <URL:http://www.sys-con.com/webservices/articleprint.cfm?id+597., pp. 1-3, SYS-CON Media, Inc. |
Notification Service Specification; Object Management Group; Version 1.1 formal/Apr. 10, 2013; Oct. 2004; http://www.omg.org/docs/formal/04-10-13.pdf (118 pages). |
Office Action dated Aug. 5, 2005 from U.S. Appl. No. 10/015,501 (8 pages). |
Office Action dated Mar. 28, 2005, issued in U.S. Appl. No. 10/015,502 (26 pages). |
Progress Software, Apama Event Modeler v2.0 Professional Edition & Client Edition, Published Apr. 1, 2005 (selected pages, United Kingdom of Great Britain (13 pages). |
Schaffner, Brian, “Debug SOAP apps with Apache TCP Tunnel/Monitor”, Jan. 30, 2003 (online, retrieved on Dec. 23, 2004), Retrieved from the internet ,URL:hhtp://www.builder.com.com/5102-6389-1049605.html., pp. 1-2, CNET Networks, Inc. |
Thompson, H.S. et al., “XML Schema Part 1: Structures,” World Wide Web Consortium, W3C Recommendation, May 2, 2001, retrieved on Jul. 11, 2003, retrieved from <URL:http://www.w3.org/TR/xmischema-1> (151 pages). |
Transmission Control Protocol; Darpa Internet Program Protocol Specification; Sep. 1981; http://www.ietf.org/rfc/rfc0793.txt?number=793 (84 pages). |
Web Services Reliable Messaging TC WS-Reliability 1.1; OASIS Open 2003-2004; Oasis Standard , Nov. 15, 2004; http://docs.oasis-open.org/wsrm/ws-reliability/v1.1/wsrm-ws—reliability-1.1-spec-os.pdf (74 pages). |
Number | Date | Country | |
---|---|---|---|
20020078132 A1 | Jun 2002 | US |
Number | Date | Country | |
---|---|---|---|
60257313 | Dec 2000 | US |