CN105637842A - 用于网络通信环境中的中介的可靠消息传送的技术 - Google Patents

用于网络通信环境中的中介的可靠消息传送的技术 Download PDF

Info

Publication number
CN105637842A
CN105637842A CN201480057401.9A CN201480057401A CN105637842A CN 105637842 A CN105637842 A CN 105637842A CN 201480057401 A CN201480057401 A CN 201480057401A CN 105637842 A CN105637842 A CN 105637842A
Authority
CN
China
Prior art keywords
message
identifier
destination service
service
described message
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201480057401.9A
Other languages
English (en)
Other versions
CN105637842B (zh
Inventor
H·卡尔
M·厄普顿
U·M·乔施
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oracle International Corp
Original Assignee
Oracle International Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oracle International Corp filed Critical Oracle International Corp
Priority claimed from PCT/US2014/045813 external-priority patent/WO2015041740A1/en
Publication of CN105637842A publication Critical patent/CN105637842A/zh
Application granted granted Critical
Publication of CN105637842B publication Critical patent/CN105637842B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/23Reliability checks, e.g. acknowledgments or fault reporting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/2871Implementation details of single intermediate entities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

本公开内容一般而言涉及用于提高消息传送的可靠性的技术。在某些实施例中,描述了用于方便消息经由中介通信处理机系统在源(例如,客户端系统)和目的地(例如,目标系统)之间的可靠通信的技术。在某些实施例中,消息可以包括要被传送到用于目标服务的目的地的请求。中介通信处理机系统可以存储指示消息的输送状态的信息,以确保可靠的通信。指示消息的输送状态的信息能够与对应于该消息的唯一标识符关联地被管理。指示消息的输送状态的信息还可被用来确定是否将作为为用于消息传送的通信协议指定的可靠性参数(例如,QoS标准)的补偿重试消息的传送。

Description

用于网络通信环境中的中介的可靠消息传送的技术
对相关申请的交叉引用
本申请要求于2014年7月8日提交且标题为“TECHNIQUESFORRELIABLEMESSAGINGFORANINTERMEDIARYINANETWORKCOMMUNICATIONENVIRONMENT”的美国非临时申请No.14/325,834的优先权和利益,该申请要求以下申请的优先权和利益:
1)于2013年9月20日提交且标题为“SYSTEMFORRELIABLEMESSAGINGFORANINTERMEDIARYINAWEBSERVICEENVIRONMENT”的美国临时申请No.61/880,819;
2)于2014年5月23日提交且标题为“TECHNIQUESFORRELIABLEMESSAGINGFORANINTERMEDIARYINANETWORKCOMMUNICATIONENVIRONMENT”的美国临时申请No.62/002,635;及
3)于2014年6月25日提交且标题为“TECHNIQUESFORRELIABLEMESSAGINGFORANINTERMEDIARYINANETWORKCOMMUNICATIONENVIRONMENT”的美国临时申请No.62/017,068。
以上标识的每个专利申请的全部内容通过引用被结合于此,以用于所有意图和目的。
技术领域
本公开内容一般而言涉及管理网络通信,并且更具体而言涉及用于提高网络通信的可靠性的各种技术。
背景技术
网络通信系统使得能够经由网络(例如,互联网)在两个电子设备之间传送电子消息。这种通信系统可以利用支持联网协议和可被用来定义、定位、实现和/或启用设备彼此交互的其它协议的协议栈。消息可以经由网络通信系统利用各种协议被传送,以方便两个电子设备之间的通信。
在源(例如,客户端设备)和目的地(例如,目标服务)之间交换消息期间,对于从源传送到目的地的消息,源可以尝试确定是否接收到对该消息的确认。如果尚未接收到这种确认或者如果源确定该消息被视为丢失,则源可以考虑向目的地重新发送该消息。重新输送该消息的后续传输会受到用于发送消息的通信协议的阻碍。另外,消息的过度主动的重传会导致网络通信系统充满副本消息,这进一步阻碍消息的输送。此外,发送副本消息会导致消耗网络通信系统的不成比例的计算和存储器资源量;远远超过用于原始消息的传送所期望的。
发明内容
本公开内容一般而言涉及用于提高消息传送的可靠性的技术。在某些实施例中,描述了用于促进消息经由中介通信处理系统在源(例如,客户端系统)和目的地(例如,目标系统)之间的可靠传送的技术。消息可以被传送,以便从目的地请求目标服务。
在某些实施例中,中介通信处理机系统可以存储指示消息的输送状态的信息,以确保可靠的通信。在某些实施例中,中介通信处理机系统可以使用指示消息的输送状态的信息,以确保与QoS标准一致的可靠输送。
在某些实施例中,指示消息的输送状态的信息可以使中介通信处理机系统能够在向目的地输送消息时遇到延迟和/或错误的情况下确定何时以及执行什么动作(例如,重发消息和传送输送的结果)。例如,中介通信处理机系统可以基于被发送给目的地的对应于相同请求的先前消息的输送状态确定是否允许对应于请求(例如,对网络服务的请求)的副本消息被发送给目的地。通过维护输送状态,中介通信处理机可以可靠地处理消息的输送。中介通信处理机可以使用输送状态来阻止输送消息的重复尝试。在这样做时,中介通信处理机可以避免必须管理重新输送消息。负担可以转移到源,以确定是否要重试输送。可以与唯一标识符关联地管理指示消息的输送状态的信息。唯一标识符可以基于消息的数字签名或与目的地关联的消息标识符。在某些实施例中,唯一标识符可以与对应于消息的消息标识符关联。通过将消息标识符与唯一标识符关联,中介通信处理机可以确定和阻止输送具有与所述消息关联的消息标识符的完全相同消息的后续请求。指示消息的输送状态的信息也可以被中介通信处理机系统用来确定是否将作为为用于消息传送的通信协议指定的可靠性参数(例如,QoS标准)的补偿重试消息的传送。
在一些实施例中,中介通信处理机系统可以提供一个或多个可调用接口,这些接口使中介通信处理机系统能够在消息已被输送时接收确认。这一个或多个可调用接口可以使中介通信处理机系统能够接收消息的状态变化的通知。接口通信处理机系统可以通过管理与源和目的地之间消息传送相关的信息来减小中介服务系统(例如,企业服务总线)上的负担。另外,中介通信处理机可以促进源和目的地之间的独立性,以便使每个部件能够独立地操作,而不考虑通信环境和/或协议的限制或差别。
在某些实施例中,提供了用于促进消息从源到目的地的可靠传送的一种或多种技术。一种这样的技术可以是一种方法,该方法可以由计算系统执行,诸如包括中介通信处理器系统的计算系统。计算系统可以从源接收要发送给目标服务的消息。计算系统可以确定与该消息关联的消息标识符。计算系统可以基于消息标识符确定消息先前已被发送给目标服务。在一些实施例中,消息标识符的存在可以指示副本消息先前被发送给目标服务。计算系统可以确定消息标识符是否被存储在数据储存器中。确定消息标识符与存储在数据储存器中的标识符关联可以指示消息先前已被发送给目标服务。计算系统可以阻止消息被发送给目标服务,从而阻止副本消息被发送给目标服务。在确定消息先前没有被发送时,计算系统可以存储用于该消息的消息标识符。另外,计算系统可以响应于确定消息先前还未被发送给目标服务而执行与输送该消息相关的一个或多个动作。这一个或多个动作可以包括代表源将消息发送给目标服务。计算系统可以确定消息是否已被输送到目标服务。例如,计算系统可以检查消息的输送状态,以确定是否已接收到确认。在确定还未接收到确认时,计算系统可以执行与输送该消息相关的一个或多个动作。这种动作可以包括将消息发送给目标服务。消息可以被重新输送到目标服务,附带指示最初发送的消息的序列号和标识符的信息。在确定已接收到确认时,计算系统可以与消息标识符关联地存储消息的输送状态,并且随后通知源关于消息的输送状态。计算系统可以阻止消息被重新输送到目标服务。
在一些实施例中,在确定消息标识符不与标识符关联时,计算系统可以生成要与消息的消息标识符关联的标识符。该标识符可被存储在计算系统可访问的数据储存器中。计算系统可以利用消息的格式确定消息的序列号和标识符。格式可以基于通信协议。可以基于消息的序列号和标识符来生成与消息关联的标识符。
在一些实施例中,要被发送给目标服务的消息可以具有对应于Web服务可靠消息传送(WS-RM)协议的格式。
在上述技术中,计算系统可以经由输送状态接口从中介服务系统接收指示消息已被输送到目标服务的信息。这种信息可被用来更新消息的输送状态,该状态指示消息已被输送到目标服务。计算系统可以向源发送指示消息已被输送到目标服务的信息。
在一些实施例中,上述计算系统可以在确定消息先前未被发送给目标服务时将消息与消息标识符关联。然后,计算系统可以将消息发送给目标服务。
根据至少一个例子,可以提供用于促进消息从源到目的地的可靠传送的装置。该装置可以包括:用于由计算系统从源接收要发送给目标服务的消息的装置;用于由计算系统确定与该消息关联的消息标识符的装置;用于由计算系统基于消息标识符确定消息先前已被发送给目标服务的装置;用于由计算系统确定该消息是否已输送到目标服务的装置;用于在确定消息已被输送到目标服务时由计算系统阻止将该消息输送到目标服务的装置;以及用于在确定消息还未被输送到目标服务时执行与将该消息输送到目标服务相关的一个或多个动作的装置。在一方面,该消息具有对应于Web服务可靠消息传送(WS-RM)协议的格式。在一方面,该装置还可以包括用于确定消息标识符是否与存储在数据储存器中的标识符关联的装置,其中确定消息标识符与存储在数据储存器中的标识符关联指示消息先前已被发送给目标服务。在一方面,该装置还可以包括:在确定该消息标识符不与标识符关联时:用于生成要与该消息标识符关联的标识符的装置,其中该标识符是基于来自消息的信息生成的;以及用于在数据储存器中存储该标识符的装置。在一方面,该装置还可以包括用于利用消息的格式确定消息的序列号和标识符的装置,其中格式是基于通信协议的,并且其中与该消息关联的标识符是基于消息的序列号和标识符生成的。在一方面,执行与输送该消息相关的动作包括向目标服务发送消息。在一方面,消息被重新输送到目标服务,附带有指示消息的序列号和的标识符的信息。在一方面,该装置还包括:用于经由输送状态接口从中介服务系统接收指示消息已被输送到目标服务的信息的装置;用于利用指示消息已被输送到目标服务的信息更新该消息的输送状态的装置;以及用于向源发送指示消息已被输送到目标服务的信息的装置。在一方面,该装置还包括用于在确定消息先前还未被发送给目标服务时将消息发送给目标服务的装置。
以下详细描述连同附图一起将提供对本发明实施例的本质和优点的更好理解。
附图说明
图1示出了根据本发明实施例的通信系统。
图2示出了根据本发明实施例的通信系统。
图3是示出根据本发明实施例、用于管理源和目标服务之间的通信的过程的流程图。
图4是示出根据本发明实施例、用于管理源和目标服务之间的通信的过程的序列图。
图5绘出了用于实现其中一种实施例的分布式系统的简化图。
图6是根据本公开内容的实施例的系统环境的部件的简化框图,通过该系统环境,由实施例系统的部件提供的服务可以作为云服务被提供。
图7示出了本发明的各种实施例可以在其中实现的示例性计算机系统。
各个附图中相同的标号和指定指示相同的元件。
具体实施方式
在以下描述中,为了解释,阐述了具体的细节,以便提供对本发明实施例的透彻理解。但是,很显然,也可以在没有这些具体细节的情况下实践各种实施例。附图和描述不是意在限制性的。
在一些图中绘出的系统可以以各种配置来提供。在一些实施例中,系统能被配置为分布式系统,其中该系统的一个或多个部件跨云计算系统中的一个或多个网络分布。
本公开内容一般而言涉及用于提高消息传送的可靠性的技术。在某些实施例中,描述了用于经由中介通信处理机系统促进消息在源(例如,客户端系统)和目的地(例如,目标系统)之间的可靠传送的技术。消息可以被传送,以便从目的地请求目标服务。
在某些实施例中,中介通信处理机系统可以存储指示消息的输送状态的信息,以确保可靠的通信。在某些实施例中,中介通信处理机系统可以使用指示消息的输送状态的信息,以确保与QoS标准一致的可靠输送。
在某些实施例中,指示消息的输送状态的信息可以使中介通信处理机系统能够在向目的地输送消息时遇到延迟和/或错误的情况下确定何时以及执行什么动作(例如,重发消息和传送输送的结果)。例如,中介通信处理机系统可以基于被发送给目的地的对应于相同请求的先前消息的输送状态确定是否允许对应于请求(例如,对网络服务的请求)的副本消息被发送给目的地。通过维护输送状态,中介通信处理机可以可靠地处理消息的输送。中介通信处理机可以使用输送状态来阻止输送消息的重复尝试。在这样做时,中介通信处理机可以避免必须管理重新输送消息。负担可以转移到源,以确定是否要重试输送。可以与唯一标识符关联地管理指示消息的输送状态的信息。唯一标识符可以基于消息的数字签名或与目的地关联的消息标识符。在某些实施例中,唯一标识符可以与对应于消息的消息标识符关联。通过将消息标识符与唯一标识符关联,中介通信处理机可以确定和阻止输送具有与所述消息关联的消息标识符的完全相同消息的后续请求。指示消息的输送状态的信息也可以被中介通信处理机系统用来确定是否将作为为用于消息传送的通信协议指定的可靠性参数(例如,QoS标准)的补偿重试消息的传送。
在一些实施例中,中介通信处理机系统可以提供一个或多个可调用接口,这些接口使中介通信处理机系统能够在消息已被输送时接收确认。这一个或多个可调用接口可以使中介通信处理机系统能够接收消息的状态变化的通知。接口通信处理机系统可以通过管理与源和目的地之间消息传送相关的信息减小中介服务系统(例如,企业服务总线)上的负担。另外,中介通信处理机可以促进源和目的地之间的独立性,以便使每个部件能够独立地操作,而不考虑通信环境和/或协议的限制或差别。
图1示出了根据本发明实施例的通信系统100。如所绘出的,通信系统100包括源102、多个目标服务(例如,目标服务104和目标服务106)、以及中介通信处理机110。中介通信处理机110促进消息(例如,消息108)在源102和一个或多个目的地之间的可靠传送。每个目标服务(例如,目标服务104和目标服务106)可以是目的地。图1所示的通信系统100还包括可由中介通信处理机110访问的一个或多个数据储存器160。数据储存器160可以利用数据库(例如,文档数据库、关系数据库或其它类型的数据库)、文件存储,它们的组合或者某种其它信息储存器来实现。
应当认识到的是,可能与通信系统100不同的各种不同系统配置也是可以的。因而,图1中所示的实施例是用于实现本发明实施例的通信系统的一个例子,并且不意在进行限制。为了说明的目的,在本文中描述具体的实施例作为用于促进消息在源102和目标服务104、106之间可靠传送的技术。根据本发明的实施例,任何源(例如,源102)都可以经由中介通信处理机110与目标服务(例如,目标服务104或目标服务106)进行通信。
源102、中介通信处理机110和目标服务104、106可以在不同的计算系统中实现。在某些实施例中,通信系统100的全部或部分元件可以被包括在单个计算系统中。当在不同的计算系统上实现时,源102、中介通信处理机110和目标服务104、106可以经由一个或多个网络(未示出)彼此通信。通信网络的例子可以包括互联网、移动网络、无线网络、蜂窝网络、局域网(LAN)、广域网(WAN)、其它通信网络,或它们的组合。
源102(例如,“源”)可以包括计算系统。源102可以在硬件、固件、软件或其组合中实现。源102可以向中介通信处理机110传送消息(例如,消息108),用于输送到目标服务104、106当中一个或多个。在一些实施例中,被发送给目标服务的消息可以包括对服务的请求。源102可以包括个人数字助理(PDA)、平板计算机、膝上型计算机、台式计算机、可穿戴计算机、寻呼机,等等。源102可以包括一个或多个存储器存储设备和一个或多个处理器。存储器存储设备可以是(一个或多个)处理器可访问的并且可以包括存储在其上的指令,指令当被(一个或多个)处理器执行时,使(一个或多个)处理器实现本文公开的一个或多个操作。在各种实施例中,源102能被配置为执行和操作应用,诸如web浏览器、专用客户端应用,等等。
目标服务(例如,目标服务104和目标服务106)可以在计算系统中实现或包括在其中。目标服务可以在硬件、固件、软件或其组合中实现。目标服务可以经由中介通信处理机110与源102进行通信。例如,在源102处创建的消息(例如,消息108)可以将目标服务104、106中的一个或多个识别为消息的目的地。作为消息的目的地的目标服务可以经由中介通信处理机110接收从源102发送的消息108,并且可以向客户端源102传送一个或多个响应(例如,消息112)。消息108可以指示正在被请求的目标服务。在一些实施例中,消息108、112当中一个或多个可以是预期经由互联网在两个电子设备之间传送的web消息。
目标服务可以响应于接收到请求服务的消息而提供各种服务。服务可以包括执行应用、执行函数、检索数据、传送信息,等等。
目标服务104、106可以在计算设备中实现,诸如PDA、平板计算机、膝上型计算机、台式计算机、可穿戴计算机,寻呼机,等等。目标服务104、106可以利用一个或多个存储器存储设备和一个或多个处理器来实现。存储器存储设备可以是(一个或多个)处理器可访问的并且可以包括存储在其上的指令,指令当被(一个或多个)处理器执行时,使(一个或多个)处理器实现本文公开的一个或多个操作。在各种实施例中,目标服务104、106能被配置为执行和操作应用(例如,web浏览器、专用客户端应用,等等),以提供服务。
在一些实施例中,被传送到目标服务104的消息(例如,消息108)可以由在源102处执行的应用生成。例如,在源处执行的应用可以经由中介通信处理机110将消息108发送给目标服务106,用于该应用的操作,诸如利用目标服务106执行动作的请求。例如,源102可以是贷款应用,该应用传送消息108,以便从目标服务106请求定位客户的信用评级的服务。在另一个例子中,客户端应用可以是web浏览器,它利用简单的对象访问协议(SOAP)发送消息108,以请求由目标服务106提供的资源。在一些实施例中,源102执行向执行不同应用的目标服务传送消息108的应用。在一些实施例中,这两个应用都可以使用web服务可靠消息传送(WS-RM)协议进行通信。
中介通信处理机110可以充当源102和目标服务104、106之间的通信代理服务。不是直接与目标服务104、106通信以输送消息(例如,消息108),而是源102可以将消息传送到中介通信处理机110,以用于将消息输送到目标服务104、106。中介通信处理机110可以从源102接收要传送到目标服务104、106当中一个或多个的消息(例如,消息108)。中介通信处理机110可以从目标服务(例如,目标服务106)接收要传送到源102的一个或多个消息(例如,消息112)。由中介通信处理机110从目标服务106接收的消息(例如,消息112)可以是对由中介通信处理机110从源102接收并传送到目标服务106的消息(例如,消息108)的响应。例如,从目标服务接收的消息112可以包括指示消息108到目标服务的输送状态的信息,诸如消息108是否被目标服务接收到。作为另一个例子,消息112可以包括与在消息108中请求的服务相关的信息。
通过经由中介通信处理机110的通信,源102和目标服务104、106能够查明关于消息(例如,消息108)从源到目的地的输送状态的可靠信息。中介通信处理机110可以为源102和目标服务104、106提供指示所传送消息的输送状态的信息。在由源102或目标服务104、106使用的(一种或多种)通信协议可能无法提供确保输送消息、传输、确认等的机制的情况下,中介通信处理机110可以使得能够进行消息的可靠输送。
中介通信处理机110可以利用一个或多个计算设备(诸如服务器计算机)来实现。在一些实施例中,中介通信处理机110可以包括多个服务器计算机,诸如源服务器计算机140和目的地服务器计算机150。在某些实施例中,源服务器计算机140或目的地服务器计算机150之一或二者可以是网络通信服务器计算机。源服务器计算机140能被配置为处理从源102接收到的、要发送给目标服务的消息。消息(例如,消息108)可以根据由源102支持的协议进行处理。目的地服务器计算机150可以处理由源服务器计算机处理的消息的输送。目的地服务器计算机150能被配置为将消息输送到目的地,诸如目标服务104、106之一。在一些实施例中,源服务器计算机140或目的地服务器计算机150之一或二者可以作为应用服务器来操作,应用服务器使得应用和服务可以被提供给源102和目标服务104、106之一或二者。
中介通信处理机110可以包括一个或多个存储器存储设备和一个或多个处理器。存储器存储设备可以是(一个或多个)处理器可访问的并且可以包括存储在其上的指令,指令当被(一个或多个)处理器执行时,使(一个或多个)处理器实现本文公开的一个或多个操作。在各种实施例中,中介通信处理机110能被配置为执行和操作应用,诸如web浏览器、专用客户端应用,等等。
在一些实施例中,源102和目标服务104、106之间消息(例如,消息108)的交换可以由服务器计算机140、150当中一个或多个来促进。例如,当利用WS-RM协议将消息从源104传送到目标服务106时,源服务器计算机140能被配置为作为可靠消息传送源(RMS)操作并且目的地服务器计算机150能被配置为作为可靠消息传送目的地(RMD)操作,以根据WS-RM协议促进消息108的交换。源服务器计算机140可以与目的地服务器计算机150通信,以管理消息的传送。管理消息的传送可以包括维护要被输送的消息的通信序列。在一种实施例中,可以为消息输送定义QoS参数(例如,由协议本身定义、由系统管理员定义,等等)。在这种实施例中,源服务器计算机140和目的地服务器计算机150能被配置为确保消息根据并符合消息传送协议(例如,WS-RM协议)的QoS参数的输送。
在一些实施例中,中介通信处理机110可以包括中介服务系统120,以促进源102和目标服务104、106中的一个或多个之间消息的交换。例如,中介服务系统120可以包括或实现企业服务总线。一个或多个不同的计算系统(诸如源102和目标服务104、106)可以通过中介服务系统120通信连接。中介服务系统120可以监视并控制源102和目标服务104、106之间消息的路由。中介服务系统120可以控制对目标服务104、106的访问,包括用于与目标服务通信的多个源之间的争用解决。中介服务体系120可以执行事件处理、用于被传送的消息的数据转换、以及消息协议转换。
除其它的之外,中介服务系统120还可以支持各种不同的通信协议,包括SOAP、超文本传输协议(HTTP)、Java消息传送服务(JMS)协议、经互联网ORB协议的Java远程方法调用接口(RMI-IIOP)、电子邮件通信协议(例如,简单邮件传输协议)、文件传输协议(FTP)、WS-RM协议,其中任何一个都可以由源102和/或目标服务104、106实现以便进行通信。在某些实施例中,对于源自源并针对特定目标的消息,用于源和中介通信处理机110之间的通信的通信协议可以不同于用于中介通信处理机110和特定目标之间的通信的通信协议。在这种场景下,由中介通信处理程序110从源102接收的、用于输送到目的地(目标服务104、106)的消息108可以根据第一通信协议以第一格式由中介通信处理机110接收。然后,中介通信处理机110可以将接收到的消息转换成与第一格式不同的第二格式并且将转换后的消息根据由目的地支持的第二通信协议传送到预期的目的地,其中第二通信协议与第一通信协议不同。
中介通信处理机110可以包括被配置为管理源102和目标服务104、106中的一个或多个之间通信的状态的通信管理器130。在一种实施例中,对于经由中介通信处理机110传送的每个不同消息(例如,消息108或消息112),信息可以被存储在与该消息相关的一个或多个数据储存器(例如,数据储存器160)中。所存储的信息可以包括用于每个唯一消息的唯一消息标识符162或关于消息的状态的其它信息。消息的消息标识符可以被用作唯一消息标识符162,或者可以与用作唯一标识符162的另一标识符关联。通过存储消息的消息标识符,中介通信处理机110可以确定任何新的消息是否是是输送过程中的消息的副本。副本消息可以具有与之前的消息完全相同的消息标识符。传入消息的消息标识符可以与唯一标识符162或者和唯一标识符162关联的消息标识符进行比较,以确定是否发现匹配。与消息标识符关联的唯一标识符162的存在可以指示副本消息。另外,通过在数据储存器中存储与该消息相关的信息,本发明的某些实施例可以在诸如集群计算环境的计算环境中实现,以便使得能够在群集的所有节点中存储消息状态。例如,数据储存器(例如数据储存器160)可以促进或启用在被传送的过程中的消息的系统恢复。
对于每个消息标识符,关联的所存储信息还可以包括指示对应于消息标识符的消息到消息的预期目的地的输送状态的信息。例如,对于由中介通信处理机110从源102接收到的消息108,中介通信处理机110可以存储用于消息108的消息标识符并且还存储关于消息108到其预期目的地的输送状态的信息。这种输送状态信息可以在中介通信处理机110接收到关于输送状态变化(例如,从“通信未决”到“消息被目标接收”)的信息时被更新。在某些实施例中,可以由目的地服务器计算机150与消息标识符或者和消息到目的地的输送关联的其它标识符关联地存储单独的消息标识符。用于目的地服务器计算机150的消息标识符可以被目的地的资源管理器用来管理用于对应于消息标识符的消息的输送的重试。由目的地服务器计算机150使用的消息标识符可以与消息的输送状态关联地存储。
可以使用各种不同技术来生成用于消息的消息标识符。在一种实施例中,用于消息的消息标识符可以基于消息的内容的部分来生成。例如,消息的一部分可被选择并且消息标识符可以通过对所选择的部分应用函数来生成。另一个例子,消息标识符可以对应于已包含在接收到的消息中的信息。在另一实施例中,序列号方案可以被用来生成消息标识符。在一种这样的实施例中,中介通信处理机110可以对源和目标服务之间的通信序列保持跟踪并且基于该通信序列中消息的次序向消息指派消息标识符。
消息标识符可被中介通信处理机110用于各种不同目的。例如,在一种实施例中,通信管理器130可以使用消息标识符来识别副本消息。通信管理器130可以在数据储存器160中搜索消息标识符,以确定消息标识符是否已被存储。消息标识符的存在可以指示接收到了用于输送与该消息标识符关联的消息的请求。在一些实施例中,该消息标识符可以与从源服务器计算机140接收的消息的消息标识符关联地存储。与消息标识符的关联的存在对于使中介通信处理机110能够确定新请求的消息是否是副本而言是有用的。消息是原始消息还是副本消息的确定可以触发与由中介通信处理机110输送消息相关的一个或多个不同动作。例如,如果消息被确定为是副本,则中介通信处理机110可以确定与原始消息关联的输送状态,并且基于该输送状态确定是否允许副本消息的传送。
通信管理器130可以存储在源102和目标服务104、106之间传送的消息(例如,消息108或消息112)的输送状态164。输送状态164可以与消息标识符162关联地被存储。在一些实施例中,输送状态164可以与对应于目的地服务器计算机150的另一消息标识符关联地被存储。目的地服务器计算机150可以基于与用于目的地服务器计算机150的消息标识符关联的输送状态确定是否重试消息的输送。输送状态164可以指示消息是否已被输送(例如,已接收到输送的确认)、消息是否已被发送、在消息输送期间是否遇到错误、或者与消息的输送关联的其它状态。通信管理器130可以包括使源服务器计算机140、目的地服务器计算机150、中介服务系统120或它们的组合能够通知通信管理器130关于消息的输送状态变化的接口。
通信管理器130可以基于用于消息的消息标识符162确定输送状态164。输送状态164可以被通信管理器130用来确定消息是否是先前消息的副本。通信管理器130可以使用输送状态164来确定是否副本消息已被发送给目标服务104、106当中一个或多个。通信管理器130可以确定副本消息是否应当被传送到目标服务106,并且如果不应当就阻止副本消息被传送到目标服务106。用于消息的传送状态(例如,消息的输送状态)可以使通信管理器130能够管理通信系统100中的通信。例如,通信管理器130可以通过重新发送消息来尝试重试消息到目标服务104、106之一的输送。
在下面参照图2-图4进一步描述中介通信处理器110。图2示出了根据本发明实施例的通信系统200。通信系统200可以包括由相同标号和指定表示的图1的相同元件。通信系统200可以包括一个或多个源(例如,源102)、一个或多个目标服务(例如,目标服务104或目标服务106)、中介通信处理机110,以及数据储存器160。通信系统200可以促进源102和目标服务104、106之间消息(例如,web消息)的可靠传送。
中介服务系统120可以将一个或多个源(例如,源102)与一个或多个目标服务(例如,目标服务104和目标服务106)通信上连接。中介服务系统120可以包括或实现一个或多个接口,以促进源102和目标服务104、106之间消息的交换。中介服务系统120可以通知源服务器计算机140和/或目标服务器计算机150关于消息的输送状态。
中介服务系统120可被实现为一个或多个功能块或模块,功能块或模块被配置为执行用于源(例如,源102)和目的地(例如,目标服务104或目标服务106)之间消息传送的各种操作。中介服务系统120可以包括输入接口222和输出接口224。中介服务系统120可以异步地处理消息,并利用由每个消息可以被输送到其的目的地支持的协议输送消息。例如,输入接口222可以从源102接收消息(例如,消息108)并且可以经由输出接口224向目标服务106输送消息。
在某些实施例中,输入接口222可以提供可被源102调用的可调用接口(例如,应用编程接口),以便使中介服务系统120能够从源102接收消息以用于传送到目标服务104、106。输入接口222可以按与由消息的发送方(例如,源102、目标服务104或目标服务106)支持的一种或多种消息传送协议一致的格式接收消息。在接收到消息时,输入接口222可以将消息放在源服务器计算机140的通信协议栈上,用于特定于消息协议的处理。在某些实施例中,输入接口222可以将该消息放在目的地服务器计算机150的通信协议栈上,用于出站输送到消息的目的地。
输出接口224可以提供可被调用以用于将消息输送的到目的地的可调用输出接口。在某些实施例中,输出接口224可以被中介通信处理机110的web服务器(例如,目的地服务器计算机150)调用,以便将消息发送给目的地(例如,目标服务104或目标服务106)。输出接口224可以按与由消息要被输送到的目的地支持的一种或多种消息传送协议一致的格式发送消息。
源服务器计算机140可以根据由消息的发送方支持的协议处理接收到的消息。在某些实施例中,可以在请求中介服务系统120处理该消息用于输送到目的地之前处理消息。源服务器计算机140可以实现通信协议栈,通过该通信协议栈,可以从源(例如,源)接收的入站消息可以被管理和处理。通信协议栈可以支持通信协议,诸如服务传输协议(例如,HTTP、SMTP和FTP)、SOAP协议或WS-RM消息传送协议。为了请求消息的输送,源服务器计算机140可以发起对中介服务系统120的请求,以调度消息向目的地的输送。源服务器计算机140可以提供指示异常或以其它方式通知源关于消息的输送状态的功能。源服务器计算机140可以从通信管理器130请求关于消息的输送状态的信息。在某些实施例中,源服务器计算机140可以向中介服务系统120传送附加的请求,以尝试基于输送状态输送消息。
在某些实施例中,源服务器计算机140可以向目的地服务器计算机150发送请求,以便在请求消息的输送之前发起源(例如,源102)和目的地(例如,目标服务104)之间的通信序列。在某些实施例中,该请求可以经由中介服务系统120被传送。目的地服务器计算机150可以确定要指派给源服务器计算机140和中介通信处理程序110之间的通信的序列标识符。创建通信序列的请求可以为源102和目标服务(例如,目标服务106)之间通信序列中的第一消息发起。传送到目的地的消息(例如,消息108)的标识符可以指派有序列号。序列号和标识符可以与传送到目标服务的消息关联。在消息由中介通信处理机110和目标服务104、106传送期间,源服务器计算机140可以询问目的地服务器计算机150对应于通信的序列标识符。
目的地服务器计算机150可以处理消息,以便发送给目的地。在某些实施例中,消息可以根据由目的地支持的协议被处理。在一些实施例中,目的地web服务器150可以从中介服务系统120接收请求,以处理要输送的消息。消息可以在中介服务体系120接收到向目的地发送该消息的请求之前被处理。目的地服务器计算机150可以实现用于管理待输送到目的地的消息的通信协议栈。该通信协议栈可以支持通信协议,诸如服务传输协议(例如,HTTP、SMTP和FTP)、SOAP协议或WS-RM消息传送协议。
在某些实施例中,为了管理消息的输送,目的地服务器计算机150可以将事务与消息关联。在接收到要输送的不同消息时,目的地服务器计算机150可以创建用于要输送的消息的事务。目的地服务器计算机150可以基于对应于消息的事务的状态(例如,提交或回滚)管理用于消息的输送的处理状态。在确定消息被输送时,目的地服务器计算机150可以尝试提交与该消息关联的事务,以完成用于输送的事务。在确定消息无法输送时,与该消息关联的事务可以回滚,以指示该消息未被输送。
基于输送状态,目的地服务器计算机150可以确定是否执行与消息或任何副本消息的输送相关的任何附加动作。在一些实施例中,目的地服务器计算机150可以从通信管理器130获得状态,以确定是否尝试请求消息的输送。该状态可被用来确定如何管理副本消息的输送。在某些实施例中,目的地服务器计算机150可以向中介服务系统120传送附加请求,以基于输送状态尝试重新输送消息。在某些实施例中,目的地服务器计算机150可以经由中介服务系统120与源服务器计算机140通信,以提供消息的输送状态。目的地服务器计算机150可以将从目的地接收到的响应传送到通信管理器130,用于管理关于消息的输送的信息。
通信管理器130可以管理关于输送消息的请求的信息(例如,输送状态)。通信管理器130可以被实现为一个或多个功能块或模块,该功能块或模块被配置为执行用于源和目的地之间消息传送的各种操作。通信管理器130可以包括输送状态接口模块232、消息管理器236、以及状态确定器238。通信管理器130可以经由该通信管理器130的一个或多个功能块或模块来调用。
消息管理器236可以在数据存储160中管理关于消息的信息(例如,消息标识符162)及其状态(例如,输送状态164)。消息管理器236可以为每个要被发送给目的地的不同消息生成消息标识符。在某些实施例中,消息管理器236可以生成用于不同消息的消息标识符。在一些实施例中,对于源服务器计算机140和目的地服务器计算机150之间的通信序列,消息标识符可以基于序列标识符或从源服务器计算机140接收的消息的标识符之一或二者。
消息管理器236可以在数据储存器160中管理用于消息的输送状态164。输送状态164可以与消息标识符162关联地被维护。例如,消息的输送状态164可以包括指示以下项的信息:消息是否被接受进行输送、消息是否已输送、目的地是否确认了对消息的接收、或者是否已尝试重新输送消息。输送状态使通信管理器130能够确定消息是否已真正输送到目的地。由于事务与消息的关联,消息的输送状态可以被维护并且是准确的。通过这样做,源服务器计算机140能够将成功的输送状态传送到中介服务系统120。另外,当消息的实际输送发生时,中介服务系统120可以得到输送状态的通知,使得对应于消息的事务可以被提交。
状态确定器238可以确定关于消息的传送状态的信息。基于消息的消息标识符,状态确定器238可以从数据储存器160中识别并检索与消息关联的输送状态164。
输送状态接口模块232可以包括一个或多个可调用接口234(例如,应用编程接口),可调用接口在被调用时,可以向通信管理器130提供关于消息的输送状态的信息。输送状态接口模块232可以执行通信管理器130的一个或多个模块和/或可以实现在可调用接口234被调用时被执行的一个或多个功能。例如,当可调用接口234被调用时,消息管理器236可以被执行,以存储用于由可调用接口134识别出的消息的输送状态。可调用接口234可以接受指定指示输送状态的信息的参数(例如,真值或假值)。参数可以包括关于输送状态的信息,诸如是否已接收到输送的确认、输送是否已失败、或者输送消息的多次尝试。
在一些实施例中,为了与特定消息关联,可以创建可调用接口234的实例。可调用接口234的实例可以利用指示消息的状态的参数来调用,使得通信管理器130可以被通知关于消息的状态。在一些实施例中,对于与消息关联的事务,可调用接口234可以被调用,使得经由可调用接口234提供的状态可以与对应于该事务的消息关联。例如,源服务器计算机140可以创建可调用接口234的实例,它可以被传递到中介服务系统120。当从目的地服务器计算机150接收到关于用于消息的输送状态的通知时,中介服务系统120可以调用可调用接口234。在一些实施例中,可调用接口234的实例可以被传递到目的地服务器计算机150并且被目的地服务器计算机150调用,以便向以通信管理器130提供关于消息的状态的信息。
图1和2中所示的中介通信处理机110可以使源(例如,源102)和目的地(例如,目标服务106)能够更可靠地交换通信。通过实现可以与中介服务系统(例如,中介服务系统120)和一个或多个服务器计算机(例如,服务器计算机140、150)通信的通信管理器(例如,通信管理器130),消息的输送状态可以被有效地进行管理。输送状态可以使副本消息能够被检测到,使得过度传输和/或通信泛滥就算不能阻止也可降低。可调用接口使得各方能够促进源和目标服务之间的通信,以便能够可靠地确定消息的输送状态,以确定是否需要重传。通过将消息的输送与和消息标识符和通信序列关联的标识符关联,中介通信处理机110可以为输送的可靠性提供进一步的保证。通过具有当消息被接受和输送时使中介通信处理机110能够保持被通知的接口,中介可以通过将用于消息输送的通信的源序列与通信的目的地序列链接来确保消息的传送的可靠性。
现在将描述可以由中介通信处理机实现的过程的例子。图3示出了根据本发明实施例、用于管理源和一个或多个目标服务之间的通信的过程300的流程图。
过程300可以通过从源接收要发送给目标服务的消息在方框305开始。例如,中介通信处理机可以从客户端设备接收要发送给目标服务的消息。在客户端设备上操作的贷款应用的例子中,贷款应用可以将消息发送给中介通信处理机,以便发送给目的地(例如,由应用提供的贷款服务)。该消息可以指示对由贷款服务提供的服务(例如,贷款计算)的请求。由源传送的消息可以根据与由源支持的消息传送协议(例如,WS-RM协议)一致的格式进行配置。该消息传送协议可以与由目的地支持的消息传送协议相似或不同。在一些实施例中,消息可以指示由源支持的消息传送协议所支持的服务参数的质量。
在方框310,过程300可以确定与消息关联的消息标识符。例如,当所接收的消息是根据WS-RM协议格式化的时候,中介通信处理机可以确定用于该消息的消息标识符。消息标识符可以基于消息的消息序列号和/或标识符来确定,其组合可以唯一地向目标服务识别消息。在另一个例子中,中介通信处理机可以基于唯一地识别消息的消息的数字签名来确定用于消息的消息标识符。在一些实施例中,数字签名可以被用来区分一个唯一的消息与另一个,同时允许基于具有匹配的签名而检测副本消息。
在方框315,在接收到消息时,过程300可以确定消息是否先前已被发送给目标服务。例如,过程300可以确定该消息是否是由中介通信处理机接收的先前消息的副本。在一些实施例中,与所确定的消息标识符关联地存储在可由中介通信处理机访问的储存器中的标识符的存在可以指示之前接收到副本消息并且指示中介通信处理机之前已尝试将该消息发送给目标服务。在确定该消息先前没有被发送给目标服务时,过程300前进到方框320,以执行与将消息输送到目标服务相关的一个或多个动作。在确定消息先前已被发送时,过程300前进到方框330,以确定消息到目标服务的输送状态。
在方框320,过程300执行与将消息输送到目标服务相关的一个或多个动作。例如,动作可以包括代表源将消息发送给目标服务。在方框325,过程300可以存储用于消息的消息标识符。例如,中介通信处理机可以利用消息的格式确定消息的序列号和标识符。格式是基于通信协议的。要与消息标识符关联的标识符可以基于消息的序列号和/或标识符来生成。该标识符可以存储在数据储存器中。在一些实施例中,该标识符可以与消息的输送状态关联地存储。与消息的消息标识符关联的标识符的存在可以被用来确定消息已被发送,用于输送到目标服务。
在方框330,过程300确定关于消息到目标服务的输送的消息的输送状态。例如,中介通信处理机可以定位并检索与和用于消息的消息标识符关联地存储的标识符关联的信息,诸如输送状态。在某些实施例中,过程300可以周期性地或间歇性地确定消息的输送状态。过程300可以在发送消息之后立即或者在发送消息之后的一段时间周期性地确定状态。
在方框335,过程300可以使用消息的状态来确定是否已接收到对消息输送的确认。在发送消息之后的一段时间后,过程300可以使用该状态来确定是否已从目标服务接收到确认。在一些实施例中,从目标服务接收到确认可以指示消息的输送。
在确定已接收到确认时,过程300可以前进到方框345,以便与所生成的标识符关联地存储输送状态。在确定还未接收到确认时,过程300可以前进到方框340,在那里它可以执行与将消息输送到目标服务相关的一个或多个动作。例如,与消息的输送相关的动作可以包括通过向目标服务重新发送消息来尝试重试消息到目标服务的输送。在一些实施例中,中介通信处理机可以将输送状态传送到用于目标服务的包括在中介通信处理机中或由其实现的网络通信的服务器。网络通信服务器可以使用输送状态,以便基于与由目标服务支持的通信协议关联的服务质量确定消息的进一步通信的方式。在方框340执行过程300之后,过程300可以在方框355结束。
返回到方框345,在存储用于消息的输送状态之后,过程300可以前进到方框350,以通知源关于消息的输送状态。例如,中介通信处理机可以向源发送信息(例如,确认消息),以指示消息已被输送。过程300可以在方框355结束。
在某些实施例中,过程300可以由图1的中介通信处理机110的某些实施例实现。在从源102接收到消息时,中介通信处理程序110可移确定接收到的消息是否先前已被发送给目标服务。通信管理器130可以确定是否有标识符与接收到的消息的消息标识符关联。通信管理器130可以基于用于该消息的标识符是否在数据储存器160中存在来确定消息是否先前已被发送。在确定消息先前未被发送时,通信管理器130可以经由中介服务系统120将消息发送给目标服务106。如果先前还未发送,则通信管理器130可以存储消息的消息标识符,以指示该消息已被发送。
在如果其先前未被发送的话确保消息被发送之后,中介通信处理机110可以周期性地或响应于来自源102的请求(例如,“ACK”请求消息)确定用于消息的输送状态。在确定还未接收到确认时,中介通信处理机110可以执行与将消息输送到目标服务106相关的一个或多个动作。否则,如果已接收到用于消息输送的确认,则中介通信处理机110可以存储输送状态并将输送状态通知源。
对从源接收到的每个消息,过程300可以以迭代的方式执行。作为替代或者附加地,方框330-355可以在消息已被发送之后的一段时间内执行。特别地,方框335可以被周期性地或间歇性地执行,直到确定事实上还未接收到确认为止。在一些实施例中,关于是否接收到确认的确定可以基于是否就到目标服务的输送状态通知中介通信处理机来确定。在一些实施例中,输送状态可以基于在一段时间后是否从目标服务接收到响应来确定。缺乏响应可以指示还未接收到确认。基于关于对消息输送的确认的确定,中介通信处理机可以确定要采取什么动作(例如,确定是否继续等待消息的输送、重试输送、或者停止等待消息的输送)。
可以认识到,过程300是说明性的并且变化和修改是可能的。对过程300描述为顺序的动作或操作可以并行地执行和/或操作次序可以改变,并且操作可以被修改、组合、添加或省略。
图4示出了根据本发明实施例、用于管理源490(例如,源102)和服务470(例如,目标服务106)之间的通信的过程400的序列图。在某些实施例中,处理400可以由中介通信处理程序110来实现。
中介通信处理机110可以利用可以为中介通信处理机110提供关于消息的输送状态的信息的一个或多个可调用接口和/或中介服务系统来为源490提供关于要被输送到服务470的消息(例如,消息108)的输送状态的可靠信息。输送状态可以被中介通信处理机110用来确定是否应当执行附加动作(例如,重试输送)或者是否应当就消息输送的输送状态通知源。输送状态还使中介通信处理机110能够管理和阻止副本消息到目的地的传送。输送状态可以使目的地服务器计算机能够确定与由服务470支持的通信协议关联的QoS参数是否被满足。
为了说明的目的,图4中给出的例子是关于利用通信协议(例如WS-RM协议)在源490和服务470之间的消息传送来描述的。源490可以充当可靠的消息传送源(RMS)。服务470可以充当可靠的消息传送目的地(RMD)(例如,Web服务可靠消息传送目的地)。客户端资源管理器(例如,“C/RM”)455可以作为源服务器计算机(例如,源服务器计算机140)操作。目的地资源管理器(例如,“S/RM”)405可以作为目的地服务器计算机(例如,目的地服务器计算机150)操作。消息(例如,消息402)从RMS490到RMD470的传送可以经由中介服务系统(例如企业服务总线(ESB)480)发生。过程400在下面描述并且提供关于消息从RMS490到RMD470的传送的进一步的细节。
在某些实施例中,诸如WS-RM协议的通信协议可以支持定义用于可靠消息传送的服务质量(QoS)参数的一个或多个参数。QoS参数可以包括以下中的一个或多个:
·至少一次(“AtLeastOnce”)——每个消息被输送到目的地至少一次。如果消息不能被输送,则可以由RMS和/或RMD提出错误。消息可以被输送到目的地多于一次(即,目的地可以接收副本消息)。
·最多一次(“AtMostOnce”)——每个消息将最多一次被输送到目的地。目的地不能接收副本消息。
·恰好一次(“ExactlyOnce)——每个消息将被输送到目的地恰好一次。如果消息不能被输送,则可以由RMS和/或RMD提出错误。目的地不能接收副本消息。
按次序(“InOrder”)——消息将按它们从源到RMS发送的次序从RMD被输送到目的地。这种保证可以与上述保证中的任一个组合。
过程400可以通过由S/RM405从源490接收用于由服务470提供的服务的消息402开始。可以经由中介服务系统(例如企业服务总线(ESB)480)接收消息402。ESB480可以包括在中介服务系统120中或者由其实现。在发送消息402之前,源490可以请求S/RM405创建序列(例如,“CREATE_SEQUENCE”)。创建该序列是为了确保源490和S/RM405之间的可靠通信。S/RM405可以为源490和S/RM405之间的通信序列指派序列号。消息402利用利用由S/RM405创建的序列号被发送。在一些实施例中,源490可以确定用于与消息402关联的唯一标识符。序列号和唯一标识符可以利用消息402传送。
在接收到消息402时,过程400可以请求404要执行的事务函数410。事务函数(TX)410可以由S/RM405执行。对于请求404,可以创建将与消息402关联的事务。该事务可被用于管理服务470到源490的输送。在一些实施例中,可以为对应于对服务470的请求的每个唯一消息(例如,消息402)创建事务。事务的上下文可被用来管理消息402的输送,以确保源490在提交与消息关联的事务之前不接收确认。
在创建事务之后,S/RM405可以请求406关于消息402的信息被存储在数据储存器415中。在某些实施例中,S/RM405可以请求图1的通信管理器130(图4中未示出)在数据储存器160中存储与消息402相关的元数据(例如,消息标识符)。消息标识符可以包括区分消息402与由源490传送的其它消息的唯一标识符。元数据可以被存储,以便使通信管理器130能够阻止副本消息被传送到服务470。在某些实施例中,数据储存器415可以在与由C/RM450使用的数据储存器460不同的数据储存器中存储数据。数据储存器415和数据储存器460可以在一个或多个数据储存器(诸如数据储存器160)中实现或包括在其中。
在执行了存储用于消息402的信息的函数之后,过程400可以包括S/RM405发送请求408,以创建要生成的输送状态接口模块232的可调用接口(例如,可调用接口234)。在某些实施例中,可调用接口234可以包括入站接受接口420。入站接受接口420可以包括指定指示消息402是否已被接受的状态的参数。在一些实施例中,消息被接受的状态还可以指示消息已被输送。入站接受接口420的实例在被调用时可以发起输送状态接口模块232的执行,其可以执行入站接受例程以存储关于由入站接受接口420的参数指示的消息402的状态的信息。
过程400可以包括S/RM405向ESB480的请求函数425(例如,提供请求函数)发送请求411。请求411可以在用于消息402的相同事务上下文中被调用。用于消息402的事务上下文可以被用来确保S/RM405不接收关于对应于该事务的消息402的输送的通知。请求函数425可以被调用,以发起ESB480执行要发送给服务470的消息402的处理。请求411可以包括入站接受接口420的实例。入站接受接口420可以在当ESB480已被通知关于消息402的输送状态时的晚些时间被调用。
响应于接收到请求411,过程400可以包括在ESB480向ESB480的处理管线435发送将要传送到C/RM450的消息402排队供进一步处理的请求412。在确定消息402可以从管线435取出供进一步处理时,过程400可以包括ESB480经由调度请求函数445将请求416传送到C/RM455。调度请求函数445把消息(例如,消息402)放在C/RM455的出站处理链的开头。
在一些实施例中,在调用调度请求函数之前,过程400可以包括ESB480传送创建输送状态接口模块232的可调用接口(例如,可调用接口234)的实例的请求414。在这种实施例中,可调用接口234可以包括出站输送接口440。出站输送接口440可以包括指示消息402到服务470的“出站”输送是否被确认的状态的参数。出站输送接口440的实例在被调用时可以发起输送状态接口模块232的执行,以执行可以存储关于由出站输送接口420的参数指示的消息402的状态的出站输送例程。具体而言,该状态可以指示消息402是否已被输送。该状态可以基于从服务470接收到指示消息402的输送的确认响应。
在某些实施例中,出站输送接口440的实例可以包括在到调度请求函数445的请求416中。调度请求函数445可以向C/RM455提供出站输送接口440的实例。C/RM455可以调用出站输送接口440来存储用于通信管理器130的消息402的出站输送的状态。在一些实施例中,当出站输送接口440先前对于是消息402的副本的消息被调用时,出站输送接口440的实例不能被创建。
过程400可以包括C/RM455响应于对调度请求函数445的请求416而接收请求418。C/RM455可以在继续尝试消息402到服务470的输送之前执行对消息402的进一步处理。C/RM455可以通过调用419获得本地ID例程485来确定消息402的唯一消息标识符。该消息标识符可以被C/RM455用来避免向服务470发送副本。在其中源490具有Web服务可靠消息传送支持的一些实施例中,获得本地ID例程485可以使用序列号作为消息标识符。在一些实施例中,获得本地ID例程485可以由ESB480实现。获得本地ID例程485可以基于消息402的数字签名确定消息标识符。该消息标识符也可以由通信管理器130用来对与消息标识符关联的消息的输送状态保持跟踪。通信管理器130可以基于获得本地ID例程从消息确定的消息标识符识别尝试输送到服务470的副本消息。
C/RM455可以确定要与消息402关联的另一消息标识符,以对消息402的输送状态保持跟踪。过程400可以包括C/RM455向服务470的RMD发送在C/RM455与RMD470之间创建新序列(例如,“CREATE_SEQUENCE”)的请求422。C/RM455可以基于序列号确定标识符。服务470可以为消息指派序列号并将该序列号返回到C/RM455。消息402可以利用该序列号被发送给服务470。C/RM455可以维护用于消息402的标识符,以管理到服务470的输送的重试。与源490和S/RM405之间的通信关联的序列可被链接到与C/RM455和RMD470之间的通信关联的序列,使得如果从C/RM445到RMD470的序列失败,则源490和S/RM405之间的可靠性序列可能也会失败。
过程400可以包括C/RM455与通信管理器130通信,以请求421关于要在数据储存器460中被管理的消息402的信息。通信管理器130可以存储其被用来对与消息402关联的消息标识符保持跟踪的消息标识符。当服务470使用序列号和消息标识符用于其协议时,由通信管理器130生成的消息标识符可以与用于消息402的序列号和/或消息标识符关联。与消息402的序列号和/或消息标识符关联地存储所生成的消息标识符可以使消息的输送状态能够被跟踪,以确定是否先前已发送副本消息。消息标识符的存在可以指示消息402是先前发送的消息的副本。在一些实施例中,通信管理器130可以被请求421搜索数据储存器460,以识别与消息标识符(例如,消息标识符162)关联地存储的信息。可以利用消息402的唯一数字签名或识别消息的其它信息来搜索数据储存器460,以确定是否为消息402存储了消息标识符。如果没有发现消息标识符,则通信管理器130可以被请求424在数据储存器460中存储消息标识符,否则就使用在数据储存器460中找到的与消息402关联的消息标识符。
过程400可以包括C/RM455经由运输例程465向服务470发送请求426。运输例程465可以作为ESB480的接口(例如,输出接口224)来提供。在一些实施例中,运输例程465可以包括在输出接口224中或由其实现。然后,过程400可以包括运输例程465响应于接收到请求426而向服务470发送请求428。运输例程465可以向服务470输送消息402。过程400可以包括C/RM455向服务470发送尝试重新输送消息402的后续请求426。C/RM455可以使用与消息402关联的先前消息标识符,以便与消息402的输送状态关联。
C/RM455可以等待,直到从运输例程465接收到响应431。响应431可以指示尝试输送消息402的结果。响应431可以包括响应数据和指示消息402被输送到目标服务的确认(例如,“ACK”消息”)或指示没有接收到确认的元数据。过程400可以包括C/RM455与通信管理器130通信,以请求433响应431中的信息(诸如结果)被存储在数据储存器460中。
在确定请求428的输送失败时,过程400可以包括服务470向C/RM455发送指示输送消息402的请求428失败的响应431。在一些实施例中,服务470可以不发送指示输送失败的结果。C/RM455可以在一段时间后尝试经由运输例程465向服务470发送另一个请求426。在某些实施例中,C/RM455可以基于用于重试输送的一个或多个标准重试消息402的输送。用于输送的一个或多个标准可以基于用于由服务470支持的通信协议的QoS参数。这一个或多个标准可以指示重试输送的尝试次数和重试输送的超时时间。在一些实施例中,运输例程465可以包括指示请求426是否要被重试的参数。出站输送接口440可以利用指示消息402到服务470的出站输送未作出的状态(例如,未输送)的参数被调用。
在确定请求426将不被重试并且因此将被输送时,过程400可以包括C/RM455请求432出站输送接口440的实例被调用。在确定响应431指示用于消息402的输送的确认时,过程400可以包括C/RM455请求432出站输送接口440的实例利用指示消息402的出站输送已作出的状态(例如,已输送)的参数被调用。
过程400可以包括当ESB480已被通知消息402的输送状态时调用入站接受接口420的请求434。例如,响应于出站输送接口440被调用,提供给ESB480的入站接受接口420可以对于与消息402关联的相同事务上下文被ESB480调用。入站接受接口420的实例可以对用于消息402的相同事务上下文被调用,以调用调度请求445来确保输送状态与消息402关联而不与任何其它消息关联。入站接受接口420可以利用指示消息402的输送状态的参数被调用。被指定为入站接受接口420的参数的消息402的输送状态可以基于由出站输送接口440指示的输送状态。例如,基于由出站输送接口440指示的输送状态,提供给入站接受接口420的状态可以指示消息402被输送或者消息402未被输送。
响应于入站接受接口420被调用,过程400可以包括通信管理器130的输送响应接口模块232被调用,以基于由入站接受接口420的参数指示的状态确定输送状态。过程400可以包括输送状态接口管理器232将用于消息402的输送状态提供给消息管理器236,以更新数据储存器415(例如,数据储存器160)中的输送状态164。在一些实施例中,过程400可以包括通信管理器130在数据储存器460(例如,数据储存器160)中存储输送状态,该数据储存器460可以为C/RM455维护。
在某些实施例中,通过调用指示消息已被输送(例如,“InboundAccepted=TRUE”)的入站输送接口420,与消息402关联的事务可以被提交。通过调用指示消息还未被输送(例如,“InboundAccepted=FALSE”)的入站输送接口420,与消息402关联的事务可以回滚。
在基于接收到确认而确定输送状态指示消息402已被输送时,过程400可以包括通信管理器130请求438数据储存器415被更新,以指示消息402已被输送。过程400可以包括如果接收到对消息402的输送的确认,通信管理器130请求436与消息402关联的事务被提交。通过提交事务,消息402已被输送。在一些实施例中,如果提交成功,则过程400可以包括通信管理器130在数据储存器415中存储信息,以指示事务完成(例如,已提交)和/或消息402已被输送(例如,已确认)。如果提交不成功,则过程400可以包括通信管理器130更新数据储存器415,以指示消息402不能被提交。在一些实施例中,当与消息402关联的事务上下文处于活动状态并且对该事务其它操作正被执行时,事务无法提交。
在确定输送状态指示消息402无法被输送并且因此未接收到对消息402的输送的确认时,过程400可以包括通信管理器130请求438数据储存器415被更新,以指示消息402还未被输送。过程400可以包括通信管理器130请求436用于消息402的事务被回滚。通过回滚事务,消息402的输送状态可以是未输送。在一些实施例中,过程400可以包括入站接受接口420请求数据储存器415中的信息,以指示事务还未被执行(例如,回滚)并且指示消息402无法被输送。
在入站接受接口420已响应于请求434而执行处理之后,过程400可以包括入站接受接口420向出站输送接口440传送对ESB响应例程430的请求434的结果442。在一些实施例中,入站接受接口420可以请求结果442被提供给出站输送接口440。
过程400可以包括通信管理器130基于结果442确定是否结束用于消息402的通信。在确定结果442指示消息402被输送并且指示用于消息402的事务被提交时,过程400可以包括出站输送接口440请求444调度请求函数445终止S/RM405和C/RM455之间对消息402的通信(例如,终止通信序列)。通过终止通信,通信管理器130可以删除关于消息402的信息,包括与消息402关联存储的消息标识符。其结果是,消息402的输送状态可能不再与消息402关联地被维护。
但是,在确定结果442指示消息402未被输送和/或指示用于消息402的事务未被提交时,过程400可以包括出站输送接口440阻止S/RM405和C/RM455之间通信的终止。当S/RM405和C/RM455之间的通信没有终止时,关于消息的信息(包括消息标识符402)可以保持存储在数据储存器460中,使得消息402的输送状态保持与消息标识符关联。通过在数据储存器460中维护消息标识符,C/RM455可以请求通信管理器130确定消息402的输送状态。当S/RM405和C/RM460之间的通信序列已终止时,由通信管理器130生成的用于管理消息402的输送状态的消息标识符可以从数据储存器460、415中被除去。在某些实施例中,在通信序列存在一段时间后,与消息402关联的消息标识符可以从储存器中被除去。在一些实施例中,消息标识符可以与用于S/RM455和C/RM405之间通信序列的终止的时间段关联地被存储。在QoS标准已被超出使得通信序列将终止的情况下,消息标识符可以被除去。
过程400可以包括C/RM455向ESB480的处理管线435发送传送来自结果431的响应数据的请求446。ESB480的处理管线435可以请求448ESB响应例程430向S/RM405输送用于输送到源490的响应数据。消息的输送状态可以包括在请求448中。S/RM405可以传送来自结果431的响应数据到源402的请求452。
在图4所示的过程400的例子中,与消息标识符(例如,消息的序列号和标识符)关联管理的输送状态可以被用来管理输送消息。中介通信处理机中通信管理器的实现可以使通信系统的各种部件(例如,C/RM、S/RM、目标服务RMD和ESB)能够在输送状态改变时经由可调用接口共享输送状态。各种部件可以保持被中介通信处理机通知,使得发送方(例如,源)可以保持就输送得到通知并且使得对输送的重试尝试可以被适当地管理。在一些实施例中,通过利用消息的相同序号和标识符发送副本消息供输送,支持目标服务的服务器计算机可以根据对消息402支持的协议维持服务参数的质量。
图5绘出了用于实现其中一种实施例的分布式系统500的简化图。分布式系统500可以实现图1的通信系统100和/或图2的通信系统200。分布式系统500可以实现图3的过程300和/或图4的过程400。在所示出的实施例中,分布式系统500包括一个或多个客户端计算设备502、504、506和508,这些客户端计算设备配置为经一个或多个网络510执行操作诸如web浏览器、专属客户端(例如,OracleForms)等的客户端应用。在某些实施例中,一个或多个客户端计算设备502-508可以包括图1的源102和/或图1的目标服务104、106。服务器512可以经由网络510与远程客户端计算设备502、504、506和508通信上耦合。服务器512可以包括图1的源服务器计算机140和/或图1的目的地服务器计算机150。
在各种实施例中,服务器512可以适于运行由系统的一个或多个部件提供的一个或多个服务或软件应用。服务或软件应用可以包括非虚拟环境和虚拟环境。虚拟环境可以包括用于虚拟的事件、展示(tradeshow)、模拟器、教室、购物交流和企业的那些环境,无论是二维还是三维(3D)表示、基于页面的逻辑环境、或其它。在一些实施例中,这些服务可以作为基于web的或云服务或者依据软件即服务(SaaS)模型向客户计算设备502、504、506和/或508的用户提供。操作客户端计算设备502、504、506和/或508的用户又可以利用一个或多个客户端应用与服务器512交互,以利用由这些部件提供的服务。
在图5中所绘出的配置中,系统500的软件部件518、520和522被示为在服务器512上实现。在其它实施例中,系统500的一个或多个部件和/或由这些部件提供的服务也可以由客户端计算设备502、504、506和/或508中的一个或多个实现。然后,操作客户端计算设备的用户可以利用一个或多个客户端应用来使用由这些部件提供的服务。这些部件可以在硬件、固件、软件或其组合中实现。但应当认识到的是,各种不同的系统配置是可能的,这些配置可以与分布式系统500不同。因此,图5中所示的实施例是用于实现实施例系统的分布式系统的一个例子并且不是要限制。
客户端计算设备502、504、506和/或508可以是便携式手持设备(例如,蜂窝电话、计算平板、个人数字助理(PDA))或可穿戴设备(例如,Google头戴式显示器),运行诸如MicrosoftWindows的软件,和/或诸如iOS、WindowsPhone、Android、BlackBerry10、PalmOS等各种移动操作系统,并且启用互联网、电子邮件、短消息服务(SMS)、或其它通信协议。客户端计算设备可以是通用个人计算机,作为例子包括运行各种版本的MicrosoftApple和/或Linux操作系统的个人计算机和/或便携式计算机。客户端计算设备可以是运行各种市售或类UNIX操作系统当中任意一种的工作站计算机,这种操作系统包括但不限于各种GNU/Linux操作系统,诸如像GoogleChromeOS。作为替代或附加地,客户端计算设备502、504、506和508可以是任何其它电子设备,诸如能够经(一个或多个)网络510通信的瘦客户端计算机、启用互联网的游戏系统(例如,具有或不具有手势输入设备的MicrosoftXbox游戏控制台)、和/或个人消息传送设备。
虽然示例性分布式系统500被示为具有四个客户端计算设备,但可以支持任何数量的客户端计算设备。其它设备(诸如具有传感器的设备等)可以与服务器512交互。
分布式系统500中的(一个或多个)网络510可以是本领域技术人员熟悉的、可以利用各种市售协议当中任意一种支持数据通信的任何类型的网络,其中协议包括但不限于TCP/IP(传输控制协议/网际协议)、SNA(系统网络体系结构)、IPX(互联网数据包交换)、AppleTalk,等等。仅仅作为例子,(一个或多个)网络510可以是局域网(LAN),诸如基于以太网、令牌环等的LAN。(一个或多个)网络510可以是广域网和互联网。它可以包括虚拟网络(包括但不限于虚拟专用网(VPN))、内联网、外联网、公共交换电话网(PSTN)、红外网络、无线网络(例如,依据电气和电子学研究所(IEEE)802.11协议套件、和/或任何其它无线协议当中任意一种进行操作的网络)、和/或这些和/或其它网络的任意组合。
服务器512可以包括一个或多个通用计算机、专用服务器计算机(作为例子,包括PC(个人计算机)服务器、服务器、中档服务器、大型计算机、机架式服务器,等等)、服务器群(serverfarm)、服务器集群、或者任何其它适当的布置和/或组合。服务器512可以包括运行虚拟操作系统的一个或多个虚拟机,或涉及虚拟化的其它计算体系架构。逻辑存储设备的一个或多个灵活池可以被虚拟化,以维护用于服务器的虚拟存储设备。虚拟网络可以由服务器512利用软件定义的联网来控制。在各种实施例中,服务器512可以适于运行在前面公开内容中所描述的一个或多个服务或软件应用。例如,服务器512可以对应于用于执行上面根据本公开内容的实施例所描述的处理的服务器。
服务器512可以运行包括上面讨论的操作系统当中任意一种在内的操作系统,以及任何市售的服务器操作系统。服务器512还可以运行各种附加的服务器应用和/或中间层应用当中任意一种,包括HTTP服务器、FTP服务器、CGI(公共网关接口)服务器、服务器、数据库服务器,等等。示例性数据库服务器包括但不限于从Oracle、Microsoft、Sybase、IBM(国际商业机器)等等可商购的那些。
在一些实现中,服务器512可以包括一个或多个应用,以分析和整合从客户端计算设备502、504、506和508的用户接收的数据馈送和/或事件更新。作为例子,数据馈送和/或事件更新可以包括但不限于馈送、更新或者从一个或多个第三方信息源接收到的实时更新和连续数据流,其可以包括与传感器数据应用、金融报价机、网络性能测量工具(例如,网络监视和流量管理应用)、点击流分析工具、汽车交通监视等相关的实时事件。服务器512还可以包括一个或多个应用,以经由客户端计算设备502、504、506和508的一个或多个显示设备显示数据馈送和/或实时事件。
分布式系统500还可以包括一个或多个数据库514和516。数据库514和516可以驻留在各个位置。作为例子,数据库514和516中的一个或多个可以驻留在服务器512本地的非临时性存储介质上(和/或驻留在服务器512中)。作为替代,数据库514和516可以远离服务器512并且经基于网络的连接或专用的连接与服务器512通信。在一组实施例中,数据库514和516可以驻留在储存器域网络(SAN)中。类似地,用于执行服务器512所具有的功能的任何必要的文件都可以适当地本地存储在服务器512上和/或远程存储。在一组实施例中,数据库514和516可以包括适于响应于SQL格式的命令而存储、更新和检索数据的关系数据库,诸如由Oracle提供的数据库。图1的数据储存器160可以包括在一个或多个数据库514和516中。
图6是根据本公开内容的实施例的系统环境600的一个或多个部件的简化框图,通过该系统环境,由实施例系统的一个或多个组件提供的服务可以作为云服务被提供。系统环境600可以包括或实现图1的通信系统100和/或图2的通信系统200。系统环境600可以实现图3的过程300和/或图4的过程400。在所示出的实施例中,系统环境600包括可以被用户用来与提供云服务的云基础设施系统602交互的一个或多个客户端计算设备604、606和608。客户端计算设备可以被配置为操作客户端应用,诸如web浏览器、专用客户端应用(例如,OracleForms)或某种其它应用,客户端应用可以被客户端计算设备的用户用来与基础设施系统602交互,以使用由云基础设施系统602提供的服务。
应当理解,图6中所绘出的云基础设施系统602可以具有除绘出的那些之外的其它部件。另外,图6中所绘出的实施例中只是可以结合本发明的实施例的云基础设施系统的一个例子。例如,云基础设施系统602可以包括或实现通信系统100和/或通信系统200的一个或多个元件。在另一个例子中,目标服务104、106可以被云基础设施系统602包括或实现。在一些其它的实施例中,云基础设施系统602可以具有比图6中所示更多或更少的部件、可以组合两个或更多个部件、或者可以具有部件的不同配置或布置。
客户端计算设备604、606和608可以是类似于上述针对502、504、506和508所描述的设备。
虽然示例性系统环境600被示为具有三个客户端计算设备,但是可以支持任何数量的客户端计算设备。诸如具有传感器的设备等的其它设备可以与云基础设施系统602交互。
(一个或多个)网络610可以促进客户端604、606和608与云基础设施系统602之间的通信和数据交换。每个网络可以是对本领域技术人员熟悉的、可以支持利用各种商业协议(包括上述用于(一个或多个)网络510的那些)中的任一种的数据通信的任何类型的网络。
云基础设施系统602可以包括一个或多个计算机和/或服务器,这可以包括上述针对服务器512描述的那些。
在某些实施例中,由云基础设施系统提供的服务可以包括可以让云基础设施系统的用户按需使用的托管的服务,诸如在线数据存储和备份解决方案、基于web的电子邮件服务、托管的办公套件和文档协作服务、数据库处理、管理的技术支持服务等。由云基础设施系统提供的服务可以动态地扩展,以满足其用户的需求。由云基础设施系统提供的服务的具体实例在本文中称作为“服务实例”。一般地,来自云服务提供商系统的、经由诸如互联网的通信网络对用户可用的任何服务被称为“云服务”。通常,在公共云环境中,构成云服务提供商的系统的服务器和系统与客户自己的办公场所服务器和系统不同。例如,云服务提供商的系统可以托管应用,并且用户可以经由诸如互联网的通信网络按需订购和使用该应用。
在一些例子中,在计算机网络云基础设施中的服务可以包括对由云供应商提供给用户的存储、托管数据库、托管web服务器、软件应用或其它服务的受保护的计算机网络访问,或者如以其它方式在本领域中已知的。例如,服务可以包括通过互联网对云上远程存储的密码保护的访问。作为另一个例子,服务可以包括用于被联网开发人员私人使用的基于web服务的托管关系数据库和脚本语言中间件引擎。作为另一个例子,服务可以包括对在云供应商的网站上托管的电子邮件软件应用的访问。
在某些实施例中,云基础设施系统602可以包括以自助服务、基于订购、弹性可扩展、可靠、高可用性并且安全的方式交付给客户的一套应用、中间件和数据库服务产品。这种云基础设施系统的例子是由本受让人提供的OraclePublicCloud。
大容量数据(有时被称为大数据)可以在许多层面上和在不同规模由基础设施系统托管和/或操纵。这种数据可以包括如此大且复杂以至于难以利用通常的数据库管理工具或传统的数据处理应用来处理的数据集。例如,可能难以利用个人计算机或其基于机架的对等体来存储、检索和处理百万兆字节的数据。利用最当前的关系数据库管理系统和桌面统计以及可视化包对这种尺寸的数据可能不起作用。这种数据会要求超出常用软件工具的结构的运行几千台服务器计算机的大规模并行处理软件,以便在可容忍的经过时间内捕获、安排(curate)、管理和处理该数据。
极其大的数据集可以由分析师和研究人员存储并操纵,以可视化大量数据、检测趋势、和/或以其它方式与数据进行交互。数十、数百或数千并行链接的处理器可以对这些数据采取行动,以便呈现它或模拟对数据的外力或这些数据代表什么。这些数据集可以涉及结构化数据(诸如在数据库中或根据结构化模型以其它方式组织的结构化数据)和/或非结构化数据(例如,电子邮件、图像、数据blob(二进制大对象)、网页、复杂事件处理)。通过充分利用实施例相对快速地将更多(或更少)计算资源聚焦到目标上的能力,云基础设施系统可以更好地可用于基于来自企业、政府机构、研究机构、私营个体、意见相同的个人或组织、或其它实体的需求对大数据集执行任务。
在各种实施例中,云基础设施系统602可以适于自动供给、管理和跟踪客户对由云基础设施系统602提供的服务的订购。云基础设施系统602可以经由不同的部署模型提供云服务。例如,服务可以根据公共云模型来提供,在公共云模型中,云基础设施系统602由销售云服务的组织拥有(例如,被Oracle拥有),并且服务对一般公众和不同行业的企业可用。作为另一个例子,服务可以根据私有云模型来提供,在私有云模型中,云基础设施系统602只为单个组织运营并且可以为该组织内的一个或多个实体提供服务。云服务也可以根据社区云模型来提供,在社区云模型中,云基础设施系统602和由云基础设施系统602提供的服务被相关社区中的若干个组织共享。云服务也可以根据混合云模型来提供,混合云模型是两种或更多种不同模型的组合。
在一些实施例中,由云基础设施系统602提供的服务可以包括根据软件即服务(SaaS)类别、平台即服务(PaaS)类别、基础设施即服务(IaaS)类别、或包括混合服务在内的其它服务类别提供的一个或多个服务。客户可以经由订购订单订购由云基础设施系统602提供的一个或多个服务。云基础设施体系602然后执行处理,以提供在客户的订购订单中的服务。
在一些实施例中,由云基础设施系统602提供的服务可以包括但不限于应用服务、平台服务和基础设施服务。在一些实例中,应用服务可以经由SaaS平台由云基础设施系统提供。SaaS平台可以被配置为提供属于SaaS类别的云服务。例如,SaaS平台可以提供在集成开发和部署平台上构建和交付一套按需应用的能力。SaaS平台可以管理和控制用于提供SaaS服务的底层软件和基础设施。通过利用由SaaS平台提供的服务,客户可以利用在云基础设施系统上执行的应用。客户可以获取应用服务,而无需客户购买单独的许可和支持。可以提供各种不同的SaaS服务。例子包括但不限于提供用于大型企业的销售绩效管理、企业整合和业务灵活性的解决方案的服务。
在一些实施例中,平台服务可以经由PaaS平台由云基础设施系统提供。PaaS平台可以被配置为提供属于PaaS类别的云服务。平台服务的例子可以包括但不限于使组织(诸如Oracle)能够在共享、公共的体系架构上整合现有应用以及利用由平台提供的共享服务构建新应用的能力的服务。PaaS平台可以管理和控制用于提供PaaS服务的底层软件和基础设施。客户可以获得由云基础设施系统提供的PaaS服务,而无需客户购买单独的许可和支持。平台服务的例子包括但不限于OracleJava云服务(OracleJavaCloudService,JCS)、Oracle数据库云服务(OracleDatabaseCloudService,DBCS)以及其它服务。
通过利用由PaaS平台提供的服务,客户可以采用由云基础设施系统支持的编程语言和工具并且也可以控制所部署的服务。在一些实施例中,由云基础设施系统提供的平台服务可以包括数据库云服务、中间件云服务(例如,OracleFusionMiddleware服务)和Java云服务。在一种实施例中,数据库云服务可以支持使组织能够集中数据库资源并且以数据库云的形式为客户提供数据库即服务的共享服务部署模型。中间件云服务可以为客户提供开发和部署各种商业应用的平台,并且Java云服务可以为客户提供在云基础设施系统中部署Java应用的平台。
可以由IaaS平台在云基础设施系统中提供各种不同的基础设施服务。基础设施服务促进对诸如存储、网络和其它基本计算资源的底层计算资源的管理和控制,以便让客户利用由SaaS平台和PaaS平台提供的服务。
在某些实施例中,云基础设施系统602也可以包括用于提供用来向云基础设施系统的客户提供各种服务的资源的基础设施资源630。在一种实施例中,基础设施资源630可以包括诸如服务器、存储和网络资源的硬件的预先集成和优化组合,以便执行由PaaS平台和SaaS平台提供的服务。
在一些实施例中,在云基础设施系统602中的资源可以被多个用户共享并且按需动态地重新分配。此外,资源可以被分配给在不同时区的用户。例如,云基础设施系统630可以使在第一时区的第一组用户能够利用云基础设施系统的资源持续指定的小时数,并且然后使相同资源重新分配给位于不同时区的另一组用户,从而最大化资源的利用率。
在某些实施例中,可以提供由云基础设施系统602的不同组件或模块以及由云基础设施系统602提供的服务共享的多个内部共享服务632。这些内部共享服务可以包括但不限于安全和身份服务、集成服务、企业信息库服务、企业管理服务、病毒扫描和白名单服务、高可用性备份和恢复服务、用于启用云支持的服务、电子邮件服务、通知服务、文件传输服务,等等。
在某些实施例中,云基础设施系统602可以提供在云基础设施系统中的云服务(例如,SaaS、PaaS和IaaS服务)的综合管理。在一种实施例中,云管理功能可以包括用于供给、管理和跟踪由云基础设施系统602接收到客户的订购等能力。
在一种实施例中,如在图6中所绘出的,云管理功能可以由一个或多个模块提供,诸如订单管理模块620、订单编制模块622、订单供给模块624、订单管理和监视模块626、以及身份管理模块628。这些模块可以包括一个或多个计算机和/或服务器或者利用一个或多个计算机和/或服务器来提供,该一个或多个计算机和/或服务器可以是通用计算机、专用服务器计算机、服务器群、服务器集群、或任何其它适当的布置和/或组合。
在示例性操作634中,利用客户端设备(诸如客户端设备604、606或608)的客户可以通过请求由云基础设施系统602提供的一个或多个服务并且为由云基础设施系统602提供的一个或多个服务下订购单来与云基础设施系统602交互。在某些实施例中,客户可以访问云用户界面(UI)、云UI612、云UI614和/或云UI616,并且经由这些UI下订购单。响应于客户下订单而被云基础设施系统602接收到的订单信息可以包括识别客户和客户想要订购的由云基础设施系统602提供的一个或多个服务的信息。
在客户下订单之后,经由云UI612、614和/或616接收订单信息。
在操作636,订单被存储在订单数据库618中。订单数据库618可以是由云基础设施系统618操作并且结合其它系统元件一起操作的若干个数据库之一。
在操作638,订单信息被转发到订单管理模块620。在一些情况下,订单管理模块620可以被配置为执行与订单相关的计费和记帐功能,诸如验证订单以及在验证后接纳(book)订单。
在操作640,关于订单的信息被传送到订单编制模块622。订单编制模块622可以利用订单信息来编制用于由客户所下订单的服务和资源的供给。在一些情况下,订单编制模块622可以编制资源的供给,以利用订单供给模块624的服务支持订购的服务。
在某些实施例中,订单编制模块622使得能够管理与每个订单相关联的业务流程并且应用业务逻辑以确定订单是否应该继续供给。在操作642,当接收到新订购的订单时,订单编制模块622发送请求到订单供给模块624,以分配资源和配置履行订购订单所需的那些资源。订单供给模块624使得能够向客户订购的服务分配资源。订单供给模块624在由云基础设施系统600提供的云服务和用于为了提供所请求的服务而供给资源的物理实现层之间提供一层抽象。订单编制模块622可以因此与实现细节隔离,诸如服务和资源是实际上实时被供给还是预先被供给并且只在请求时被分配/指派。
在操作644,一旦服务和资源被供给,所提供的服务的通知就可以通过云基础设施系统602的订单供给模块624发送给在客户端设备604、606和/或608上的客户。
在操作646,客户的订购订单可以被订单管理和监视模块626管理和跟踪。在一些情况下,订单管理和监视模块626可以被配置为收集订购订单中的服务的使用统计数据,诸如使用的存储量、传送的数据量、用户的数量、以及系统上线时间和系统停机时间的量。
在某些实施例中,云基础设施系统600可以包括身份管理模块628。身份管理模块628可以被配置为提供身份服务,诸如在云基础设施系统600中的访问管理和授权服务。在一些实施例中,身份管理模块628可以控制关于希望利用由云基础设施系统602提供的服务的客户的信息。这种信息可以包括验证这种客户的身份的信息和描述这些客户被授权相对于各种系统资源(例如,文件、目录、应用、通信端口、存储器段、等等)执行哪些行为的信息。身份管理模块628也可以包括关于每个客户的描述性信息和关于描述性信息可以如何以及由谁来访问和修改的管理。
图7示出了示例性计算机系统700,在该计算机系统700可以实现本发明的各种实施例。系统700可以被用来实现上述计算机系统中的任一种。例如,图1的通信系统100和图2的通信系统200的全部或一些元件可以包括在系统700中或在其中实现。系统700可以实现图3的过程300或图4的过程400之一或二者。如在图7中所示出的,计算机系统700包括经由总线子系统702与多个外围子系统通信的处理单元704。这些外围子系统可以包括处理加速单元706、I/O子系统708、存储子系统718和通信子系统724。存储子系统718包括有形计算机可读存储介质722和系统存储器710。
总线子系统702提供了用于让计算机系统700的各种组件和子系统按意图彼此通信的机制。虽然总线子系统702被示意性地示为单条总线,但是总线子系统的备选实施例可以利用多条总线。总线子系统702可以是利用各种总线体系结构中的任一种的若干种类型的总线结构中的任何一种,包括存储器总线或存储器控制器、外围总线、以及局部总线。例如,这种体系结构可以包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线和外围组件互连(PCI)总线,其可以被实现为按IEEEP1386.1标准制造的Mezzanine总线。
可以被实现为一个或多个集成电路(例如,常规微处理器或微控制器)的处理单元704控制计算机系统700的操作。一个或多个处理器可以被包括在处理单元704中。这些处理器可以包括单核或多核处理器。在某些实施例中,处理单元704可以被实现为一个或多个独立的处理单元732和/或734,其中在每个处理单元中包括单核或多核处理器。在其它实施例中,处理单元704也可以被实现为通过将两个双核处理器集成到单个芯片中形成的四核处理单元。
在各种实施例,处理单元704可以响应于程序代码执行各种程序并且可以维护多个并发执行的程序或进程。在任何给定时间,要被执行的程序代码中的一些或全部代码可以驻留在(一个或多个)处理器704中和/或存储子系统718中。通过适当的编程,(一个或多个)处理器704可以提供上述各种功能。计算机系统700可以附加地包括处理加速单元706,其可以包括数字信号处理器(DSP)、专用处理器,等等。
I/O子系统708可以包括用户接口输入设备和用户接口输出设备。用户接口输入设备可以包括键盘、诸如鼠标或轨迹球的定点设备、结合到显示器中的触摸板或触摸屏、滚动轮、点击轮、拨盘、按钮、开关、小键盘、具有语音命令识别系统的音频输入设备、麦克风以及其它类型的输入设备。用户接口输入设备可以包括例如运动感测和/或手势识别设备,诸如Microsoft运动传感器,其使得用户能够通过利用手势和语音命令的自然用户接口控制诸如的Microsoft360游戏控制器的输入设备并与之交互。用户接口输入设备也可以包括眼睛姿势识别设备,诸如从用户检测眼睛活动(例如,当拍拍摄照片和/或做出菜单选择时的“眨眼”)并且将眼睛姿势转换为到输入设备(例如,Google)中的输入的Google眨眼检测器。此外,用户接口输入设备可以包括使用户能够通过语音命令与语音识别系统(例如,导航器)交互的语音识别感测设备。
用户接口输入设备也可以包括但不限于三维(3D)鼠标、操纵杆或指向棒、游戏面板和绘图板,以及音频/视频设备,诸如扬声器、数码相机、数码摄像机、便携式媒体播放器、网络摄像头、图像扫描仪、指纹扫描仪、条形码阅读器3D扫描仪、3D打印机、激光测距仪和视线跟踪设备。此外,用户接口输入设备可以包括例如医学成像输入设备,诸如计算机断层扫描、磁共振成像、正电子发射断层摄影术(positionemissiontomagraphy)、医疗超声设备。用户接口输入设备也可以包括例如诸如MIDI键盘、数字乐器等的音频输入设备。
用户接口输出设备可以包括显示子系统、指示灯、或者诸如音频输出设备的非视觉显示器,等等。显示子系统可以是阴极射线管(CRT)、诸如利用液晶显示器(LCD)或等离子显示器的平板设备、投影设备、触摸屏,等等。一般而言,术语“输出设备”的使用意在包括用于从计算机系统700向用户或其它计算机输出信息的所有可能类型的设备和机制。例如,用户接口输出设备可以包括但不限于在视觉上传达文字、图形和音频/视频信息的各种显示设备,诸如监视器、打印机、扬声器、耳机、汽车导航系统、绘图仪、语音输出设备、以及调制解调器。
计算机系统700可以包括包含软件元件、被示为当前位于系统存储器710中的存储子系统718。系统存储器710可以存储可加载并且可在处理单元704上执行的程序指令以及在这些程序执行期间所产生的数据。
依赖于计算机系统700的配置和类型,系统存储器710可以是易失性的(诸如随机存取存储器(RAM))和/或非易失性的(诸如只读存储器(ROM)、闪存存储器,等等)。RAM通常包含可被处理单元704立即访问和/或目前正被处理单元704操作和执行的数据和/或程序模块。在一些实现中,系统存储器710可以包括多种不同类型的存储器,例如静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)。在一些实现中,包含有助于诸如在启动期间在计算机系统700的元件之间传送信息的基本例程的基本输入/输出系统(BIOS)通常可以被存储在ROM中。作为例子但不是限制,系统存储器710也示出了应用程序712、程序数据714、以及操作系统716,其中应用程序712可以包括客户端应用、web浏览器、中间层应用、关系数据库管理系统(RDBMS)等。作为例子,操作系统716可以包括各种版本的MicrosoftApple和/或Linux操作系统,各种商用或类UNIX操作系统(包括但不限于各种GNU/Linux操作系统、Google操作系统,等等),和/或诸如iOS、Phone、OS、10OS和OS操作系统的移动操作系统。
存储子系统718也可以提供用于存储提供一些实施例的功能的基本编程和数据结构的有形计算机可读存储介质。当被处理器执行时提供上述功能的软件(程序、代码模块、指令)可以被存储在存储子系统718中。这些软件模块或指令可以被处理单元704执行。存储子系统718也可以提供用于存储根据本发明被使用的数据的储存库。
存储子系统700也可以包括可被进一步连接到计算机可读存储介质722的计算机可读存储介质读取器720。与系统存储器710一起并且可选地与其相结合,计算机可读存储介质722可以全面地表示用于临时和/或更持久地包含、存储、发送和检索计算机可读信息的远程、本地、固定和/或可移动存储设备加存储介质。
包含代码或代码的部分的计算机可读存储介质722也可以包括本领域已知或使用的任何适当的介质,包括存储介质和通信介质,诸如但不限于以用于信息的存储和/或传输的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。这可以包括有形的、非临时性计算机可读存储介质,诸如RAM、ROM、电可擦除可编程ROM(EEPROM)、闪存存储器或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学储存器、磁带盒、磁带、磁盘储存器或其它磁存储设备、或者其它有形的计算机可读介质。当被指定时,这也可以包括非有形的、临时性计算机可读介质,诸如数据信号、数据传输、或者可以被用来发送期望信息并且可以被计算系统700访问的任何其它介质。
作为例子,计算机可读存储介质722可以包括从不可移动的非易失性磁介质读取或向其写入的硬盘驱动器、从可移动的非易失性磁盘读取或向其写入的磁盘驱动器、以及从可移动的非易失性光盘(诸如CDROM、DVD和盘或其它光学介质)读取或向其写入的光盘驱动器。计算机可读存储介质722可以包括但不限于驱动器、闪存卡、通用串行总线(USB)闪存驱动器、安全数字(SD)卡、DVD盘、数字音频带,等等。计算机可读存储介质722也可以包括基于非易失性存储器的固态驱动器(SSD),诸如基于闪存存储器的SSD、企业闪存驱动器、固态ROM等,基于易失性存储器的SSD,诸如固态RAM、动态RAM、静态RAM,基于DRAM的SSD,磁阻RAM(MRAM)SSD,以及使用基于DRAM的SSD和基于闪存存储器的SSD的组合的混合SSD。盘驱动器及其相关联的计算机可读介质可以为计算机系统700提供计算机可读指令、数据结构、程序模块及其它数据的非易失性存储。
通信子系统724提供到其它计算机系统和网络的接口。通信子系统724用作用于从其它系统接收数据和从计算机系统700向其它系统发送数据的接口。例如,通信子系统724可以使计算机系统700能够经由互联网连接到一个或多个设备。在一些实施例中,通信子系统724可以包括用于访问无线语音和/或数据网络的射频(RF)收发器组件(例如,利用蜂窝电话技术,诸如3G、4G或EDGE(用于全球演进的增强型数据速率)的先进数据网络技术,Wi-Fi(IEEE802.11系列标准),或其它移动通信技术,或其任意组合)、全球定位系统(GPS)接收器组件和/或其它组件。在一些实施例中,作为无线接口的附加或者替代,通信子系统724可以提供有线网络连接(例如,以太网)。
在一些实施例中,通信子系统724也可以代表可以使用计算机系统700的一个或多个用户接收结构化和/或非结构化数据馈送726、事件流728、事件更新730等形式的输入通信。
作为例子,通信子系统724可以被配置为实时地从社交媒体网络和/或其它通信服务的用户接收数据馈送726,诸如馈送、更新、诸如丰富站点摘要(RSS)馈送的web馈送和/或来自一个或多个第三方信息源的实时更新。
此外,通信子系统724也可以被配置为接收连续数据流形式的数据,这可以包括本质上可以是连续的或无界的没有明确终止的实时事件的事件流728和/或事件更新730。产生连续数据的应用的例子可以包括例如传感器数据应用、金融报价机、网络性能测量工具(例如,网络监视和流量管理应用)、点击流分析工具、汽车流量监视,等等。
通信子系统724也可以被配置为向一个或多个数据库输出结构化和/或非结构化数据馈送726、事件流728、事件更新730,等等,这一个或多个数据库可以与耦合到计算机系统700的一个或多个流式数据源计算机通信。
计算机系统700可以是各种类型之一,包括手持便携式设备(例如,蜂窝电话、计算平板、PDA)、可穿戴设备(例如,Google头戴式显示器)、PC、工作站、大型机、信息站,服务器机架、或任何其它数据处理系统。
由于计算机和网络的不断变化的本质,在图7中绘出的计算机系统700的描述仅仅要作为具体的例子。具有比图7中绘出的系统更多或更少组件的许多其它配置是可能的。例如,定制的硬件也可以被使用,和/或特定的元素可以用硬件、固件、软件(包括applets)或它们的组合来实现。另外,也可以采用到诸如网络输入/输出设备之类的其它计算设备的连接。基于本文提供的公开内容和示教,本领域普通技术人员将认识到实现各种实施例的其它方式和/或方法。
在前述的说明书中,本发明的各方面参照其具体实施例进行了描述,但本领域技术人员将认识到,本发明不限于此。上述发明的各个特征和各方面可以被单独或联合使用。另外,在不背离本说明书的更广泛精神和范围的情况下,实施例可以在除本文所述的那些之外的任何数目的环境和应用中被使用。因此,本说明书和附图应当被认为是说明性而不是限制性的。

Claims (21)

1.一种方法,包括:
由计算系统从源接收要发送给目标服务的消息;
由所述计算系统确定与所述消息关联的消息标识符;
由所述计算系统基于所述消息标识符确定所述消息先前已被发送给所述目标服务;
由所述计算系统确定所述消息是否已被输送到所述目标服务;
在确定所述消息已被输送到所述目标服务时,由所述计算系统阻止将所述消息输送到所述目标服务;及
在确定所述消息还未被输送到所述目标服务时,执行与将所述消息输送到所述目标服务相关的一个或多个动作。
2.如权利要求1所述的方法,其中所述消息具有对应于web服务可靠消息传送(WS-RM)协议的格式。
3.如权利要求1所述的方法,还包括:
确定所述消息标识符是否与存储在数据储存器中的标识符关联,其中确定所述消息标识符与存储在所述数据储存器中的标识符关联指示所述消息先前已被发送给所述目标服务。
4.如权利要求3所述的方法,还包括:
在确定所述消息标识符不与标识符关联时:
生成要与所述消息标识符关联的标识符,其中该标识符是基于来自所述消息的信息生成的;及
将所述标识符存储在所述数据储存器中。
5.如权利要求4所述的方法,还包括:
利用所述消息的格式确定所述消息的序列号和标识符,其中所述格式是基于通信协议的,并且其中与所述消息关联的标识符是基于所述消息的序列号和标识符生成的。
6.如权利要求4所述的方法,其中执行与输送所述消息相关的动作包括向所述目标服务发送所述消息,并且其中所述消息被重新输送到所述目标服务,附带有指示所述消息的序列号和标识符的信息。
7.如权利要求1所述的方法,还包括:
经由输送状态接口,从中介服务系统接收指示所述消息已被输送到所述目标服务的信息;
利用指示所述消息已被输送到所述目标服务的信息来更新所述消息的输送状态;及
向所述源发送指示所述消息已被输送到所述目标服务的信息。
8.如权利要求1所述的方法,还包括:
在确定所述消息先前未被发送给所述目标服务时:
将所述消息发送给所述目标服务。
9.一种系统,包括:
存储器;及
耦合到所述存储器的一个或多个处理器,其中所述一个或多个处理器能配置为:
从源接收要发送给目标服务的消息;
确定与所述消息关联的消息标识符;
基于所述消息标识符确定所述消息先前是否已被发送给所述目标服务;
确定所述消息是否已被输送到所述目标服务;
在确定所述消息已被输送到所述目标服务时,阻止将所述消息输送到所述目标服务;及
在确定所述消息还未被输送到所述目标服务时,执行与将所述消息输送到所述目标服务相关的一个或多个动作。
10.如权利要求9所述的系统,其中所述一个或多个处理器能配置为:
确定所述消息标识符是否与存储在数据储存器中的标识符关联,其中确定所述消息标识符与存储在所述数据储存器中的标识符关联指示所述消息先前已被发送给所述目标服务。
11.如权利要求9所述的系统,其中所述一个或多个处理器还能配置为:
利用所述消息的格式确定所述消息的序列号和标识符,其中所述格式是基于通信协议的;及
在确定所述消息标识符不与标识符关联时:
生成要与所述消息标识符关联的标识符,其中该标识符是基于所述消息的序列号和标识符生成的;及
将所述标识符存储在所述数据储存器中。
12.如权利要求9所述的系统,其中执行与输送所述消息相关的动作包括向所述目标服务发送所述消息,并且其中所述消息被发送给所述目标服务,附带有指示所述消息的序列号和标识符的信息。
13.如权利要求9所述的系统,其中所述一个或多个处理器还能配置为:
经由输送状态接口,从中介服务系统接收指示所述消息已被输送到所述目标服务的信息;
利用指示所述消息已被输送到所述目标服务的信息来更新所述消息的输送状态;及
向所述源发送指示所述消息已被输送到所述目标服务的信息。
14.如权利要求9所述的系统,其中所述一个或多个处理器还能配置为:
在确定所述消息先前未被发送给所述目标服务时:
将所述消息发送给所述目标服务。
15.一种存储指令集的计算机可读存储器,所述指令集在被一个或多个处理器执行时,使所述一个或多个处理器执行以下操作:
从源接收要发送给目标服务的消息;
确定与所述消息关联的消息标识符;
基于所述消息标识符确定所述消息先前已被发送给所述目标服务;
确定所述消息是否已被输送到所述目标服务;
在确定所述消息已被输送到所述目标服务时,阻止将所述消息输送到所述目标服务;及
在确定所述消息还未被输送到所述目标服务时,执行与将所述消息输送到所述目标服务相关的一个或多个动作。
16.如权利要求15所述的计算机可读存储器,其中,所述指令集在被所述一个或多个处理器执行时,还使所述一个或多个处理器执行以下操作:
在确定所述消息先前未被发送给所述目标服务时:
将所述消息发送给所述目标服务。
17.如权利要求15所述的计算机可读存储器,其中,所述指令集在被所述一个或多个处理器执行时,还使所述一个或多个处理器执行以下操作:
确定所述消息标识符是否与存储在数据储存器中的标识符关联,其中确定所识别的消息存储在所述数据储存器中指示所述消息先前已被发送给所述目标服务。
18.如权利要求15所述的计算机可读存储器,其中,所述指令集在被所述一个或多个处理器执行时,还使所述一个或多个处理器执行以下操作:
经由输送状态接口,从中介服务系统接收指示所述消息已被输送到所述目标服务的信息;
利用指示所述消息已被输送到所述目标服务的信息来更新所述消息的输送状态;及
向所述源发送指示所述消息已被输送到所述目标服务的信息。
19.如权利要求15所述的计算机可读存储器,其中执行与输送所述消息相关的动作包括向所述目标服务发送所述消息,并且其中所述消息被重新输送到所述目标服务,附带有指示所述消息的序列号和标识符的信息。
20.如权利要求15所述的计算机可读存储器,其中,所述指令集在被所述一个或多个处理器执行时,还使所述一个或多个处理器执行以下操作:
利用所述消息的格式确定所述消息的序列号和标识符,其中所述格式是基于通信协议的;及
在确定所述消息标识符不与标识符关联时:
生成要与所述消息标识符关联的标识符,其中该标识符是基于所述消息的序列号和标识符生成的;及
将所述标识符存储在所述数据储存器中。
21.一种系统,包括:
用于由计算系统从源接收要发送给目标服务的消息的装置;
用于由所述计算系统确定与所述消息关联的消息标识符的装置;
用于由所述计算系统基于所述消息标识符确定所述消息先前已被发送给所述目标服务的装置;
用于由所述计算系统确定所述消息是否已被输送到所述目标服务的装置;
用于在确定所述消息已被输送到所述目标服务时由所述计算系统阻止将所述消息输送到所述目标服务的装置;及
用于在确定所述消息还未被输送到所述目标服务时执行与将所述消息输送到所述目标服务相关的一个或多个动作的装置。
CN201480057401.9A 2013-09-20 2014-07-08 用于网络通信环境中的中介的可靠消息传送的方法 Active CN105637842B (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201361880819P 2013-09-20 2013-09-20
US61/880,819 2013-09-20
US201462002635P 2014-05-23 2014-05-23
US62/002,635 2014-05-23
US201462017068P 2014-06-25 2014-06-25
US62/017,068 2014-06-25
PCT/US2014/045813 WO2015041740A1 (en) 2013-09-20 2014-07-08 Techniques for reliable messaging for an intermediary in a network communication environment

Publications (2)

Publication Number Publication Date
CN105637842A true CN105637842A (zh) 2016-06-01
CN105637842B CN105637842B (zh) 2019-05-17

Family

ID=56050772

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480057401.9A Active CN105637842B (zh) 2013-09-20 2014-07-08 用于网络通信环境中的中介的可靠消息传送的方法

Country Status (2)

Country Link
EP (1) EP3047630B1 (zh)
CN (1) CN105637842B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109062848A (zh) * 2018-08-01 2018-12-21 武汉索雅信息技术有限公司 基于esb总线平台的采购管理方法、装置及总线平台
CN110463277A (zh) * 2017-03-31 2019-11-15 高通股份有限公司 系统信息的可靠传送
CN111149120A (zh) * 2017-07-31 2020-05-12 史密斯探测-沃特福特有限公司 用于运输设施的安全系统

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015041740A1 (en) 2013-09-20 2015-03-26 Oracle International Corporation Techniques for reliable messaging for an intermediary in a network communication environment
WO2022271185A1 (en) * 2021-06-25 2022-12-29 Nokia Technologies Oy Reliability in a communication system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030187996A1 (en) * 2001-11-16 2003-10-02 Cardina Donald M. Methods and systems for routing messages through a communications network based on message content
US20060129650A1 (en) * 2004-12-10 2006-06-15 Ricky Ho Guaranteed delivery of application layer messages by a network element
US20100274857A1 (en) * 2009-04-27 2010-10-28 International Business Machines Corporation Automated duplicate message content detection
CN102598730A (zh) * 2009-10-27 2012-07-18 诺基亚公司 用于激活服务的方法和装置
CN102804646A (zh) * 2009-06-10 2012-11-28 泰科电子海底通信有限责任公司 使用电压信号检测和特征分析与光学通信系统中的部件通信

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030187996A1 (en) * 2001-11-16 2003-10-02 Cardina Donald M. Methods and systems for routing messages through a communications network based on message content
US20060129650A1 (en) * 2004-12-10 2006-06-15 Ricky Ho Guaranteed delivery of application layer messages by a network element
US20100274857A1 (en) * 2009-04-27 2010-10-28 International Business Machines Corporation Automated duplicate message content detection
CN102804646A (zh) * 2009-06-10 2012-11-28 泰科电子海底通信有限责任公司 使用电压信号检测和特征分析与光学通信系统中的部件通信
CN102598730A (zh) * 2009-10-27 2012-07-18 诺基亚公司 用于激活服务的方法和装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110463277A (zh) * 2017-03-31 2019-11-15 高通股份有限公司 系统信息的可靠传送
CN110463277B (zh) * 2017-03-31 2021-12-03 高通股份有限公司 系统信息的可靠传送
CN111149120A (zh) * 2017-07-31 2020-05-12 史密斯探测-沃特福特有限公司 用于运输设施的安全系统
CN109062848A (zh) * 2018-08-01 2018-12-21 武汉索雅信息技术有限公司 基于esb总线平台的采购管理方法、装置及总线平台
CN109062848B (zh) * 2018-08-01 2021-01-26 武汉索雅信息技术有限公司 基于esb总线平台的采购管理方法、装置及总线平台

Also Published As

Publication number Publication date
CN105637842B (zh) 2019-05-17
EP3047630A1 (en) 2016-07-27
EP3047630B1 (en) 2019-02-20

Similar Documents

Publication Publication Date Title
US10397165B2 (en) Techniques for reliable messaging for an intermediary in a network communication environment
JP7228668B2 (ja) インターネットクラウドでホストされる自然言語による対話型メッセージングシステムサーバ連携
US10979318B2 (en) Enhancing resource allocation for application deployment
US10142174B2 (en) Service deployment infrastructure request provisioning
KR102295830B1 (ko) 기업 시스템내 디바이스들에 대한 변화 이벤트들 관리
US10244070B2 (en) In-memory message sequencing
US10803048B2 (en) Change data capture processing and analysis
US20180332138A1 (en) Dynamic weighting for cloud-based provisioning systems
US11068964B2 (en) Method and device for processing service request
CN109478266A (zh) 对于数据库供应的资源分配
CN109076010B (zh) 互联网云托管的自然语言交互式消息传送系统用户解析器
CN106462577A (zh) 用于移动设备和移动云服务的同步的基础设施
CN105917627A (zh) 云服务定制执行环境
JP2020520594A (ja) 自己学習型適応ルーティングシステム
CN105637842A (zh) 用于网络通信环境中的中介的可靠消息传送的技术
CN107533680A (zh) 代理指派的多维方法
US20170250993A1 (en) System, apparatus and method for access and authorization control
CN114827280A (zh) 请求处理方法、装置、设备、介质
US11681666B2 (en) “Bouncing” IO pattern for replication protocols
US11949735B2 (en) Centralized approach for managing cross-service data of cloud resources
US9430319B2 (en) Traffic capacity based optimization of SOA fault recovery using linear programming model
CN110020959A (zh) 一种数据检验的方法及相关装置
CN114285743B (zh) 更新配置信息的方法、装置、电子设备及存储介质
US20240152504A1 (en) Data interaction method, apparatus, and electronic device
US11880835B2 (en) Prevention of duplicate transactions across multiple transaction entities in database systems

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant