CN101483666B - 管理j2ee和.net交互操作应用的方法和系统 - Google Patents

管理j2ee和.net交互操作应用的方法和系统 Download PDF

Info

Publication number
CN101483666B
CN101483666B CN2009100017321A CN200910001732A CN101483666B CN 101483666 B CN101483666 B CN 101483666B CN 2009100017321 A CN2009100017321 A CN 2009100017321A CN 200910001732 A CN200910001732 A CN 200910001732A CN 101483666 B CN101483666 B CN 101483666B
Authority
CN
China
Prior art keywords
token
professional
sub
handle
professional handle
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.)
Expired - Fee Related
Application number
CN2009100017321A
Other languages
English (en)
Other versions
CN101483666A (zh
Inventor
徐进
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101483666A publication Critical patent/CN101483666A/zh
Application granted granted Critical
Publication of CN101483666B publication Critical patent/CN101483666B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • G06F9/548Object oriented; Remote method invocation [RMI]
    • 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/14Session management
    • H04L67/142Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

提供了用于管理服务客户端和服务供应商之间的业务的计算机实现的方法、系统和计算机可用的程序代码。接收来自网络服务客户端应用的请求。从请求中提取相关令牌和与相关令牌相关联的专有业务句柄,形成提取的相关令牌和提取的业务句柄。使用提取的相关令牌作为母相关令牌来生成子相关令牌。生成与子相关令牌相关联的专有业务句柄。启动与专有业务句柄和子相关令牌相关联的计时器。停止与专有业务句柄相关联的计时器。将提取的业务句柄插入对于请求的响应中。将具有提取的业务句柄的响应传送到网络服务客户端应用。

Description

管理J2EE和.NET交互操作应用的方法和系统
技术领域
本发明总体上涉及数据处理领域,并且更具体地,涉及用于在诸如面向服务的体系结构(SOA)环境的共存环境中管理.NET和J2EE业务(transaction)的计算机实现的方法、系统和计算机可使用的程序代码。 
背景技术
面向服务的体系结构(SOA)是松散地耦合的环球网中可用服务的集合。随着多年的发展,现在基本上所有主要的系统卖方都具有用于提供综合解决方案/专业服务、产品组合(product portfolios)和合作方提供的SOA策略。SOA的性质(即异类的、分布式的、动态的和开放的)意味着SOA的实现方式将是在异类卖方平台上运行的综合的商业处理,包括网络服务的调用。 
事实是,.NET和J2EE平台共同存在于大部分SOA实现方式中。结果,.NET和J2EE之间的有效并强健的交互操作性是大企业的IT体系结构中的关键要素。J2EE和.Net卖方都提供它们各自平台的管理解决方案。 
然而,尽管在SOA实现的区域中已经取得了显著进步,但仍然存在改进的空间。目前,不存在用于追踪跨越服务器/平台边界的业务的方法。申请人认识到追踪跨越服务器/平台边界的业务将增加交互操作性和效率。 
因此,存在对于在诸如面向服务的体系结构环境的共存环境中管理.NET和J2EE业务的机制的需要。 
发明内容
示例实施例提供了用于管理服务客户端和服务供应商(provider)之间的业务的计算机实现的方法、系统和计算机可用的程序代码。接收来自网络服务客户端应用的请求。从请求中提取相关令牌(correlation token)和与相关令牌相关联的专有业务句柄,形成提取的相关令牌和提取的业务句柄。使用提取的相关令牌作为母相关令牌来生成子相关令牌。生成与子相关令牌相关联的专有业务句柄。启动与专有业务句柄和子相关令牌相关联的计时器。停止与专有业务句柄相关联的计时器。将提取的业务句柄插入对于请求的响应中。将具有提取的业务句柄的响应传送到网络服务客户端应用。
本发明的另一方面提供一种用于管理服务客户端和服务供应商之间的业务的计算机实现的系统,所述计算机实现的系统包括:用于从网服务客户端应用接收请求的装置,其中所述请求是SOAP请求;用于从所述请求中提取相关令牌和与所述相关令牌相关联的业务句柄,形成提取的相关令牌和提取的业务句柄的装置;用于使用所述提取的相关令牌作为母相关令牌来生成子相关令牌的装置;用于生成与所述子相关令牌相关联的业务句柄的装置;用于启动与生成的业务句柄和子相关令牌相关联的计时器的装置;用于执行所述请求的装置;用于停止与生成的业务句柄相关联的计时器的装置;用于将所述提取的业务句柄插入对于所述请求的响应中的装置;以及用于将具有所述提取的业务句柄的响应传送到所述网服务客户端应用的装置,所述系统还包括:用于定义SOAP消息头部格式的装置,该SOAP消息头部格式允许在所述服务客户端和所述服务供应商之间交换相关令牌,其中所述服务客户端和所述服务供应商存在于不同的平台上,其中所述不同的平台是企业版本的.NET平台和J2EE平台。 
附图说明
在所附权利要求中阐述了本发明的特性带来的新颖特征。然而,当结合附图阅读时,将通过参考图示实施例的以下详细描述最佳理解本发明本身以及使用的优选模式、其进一步的目标和优势,附图中: 
图1绘出了可以实现示例实施例的数据处理系统的网络的绘图表示; 
图2是可以实现示例实施例的数据处理系统的方框图; 
图3是示意性图示基本的面向服务的体系结构(SOA)以帮助说明示例实施例的方框图; 
图4是示意性图示根据示例实施例从.NET平台流到J2EE平台的业务追踪的方框图; 
图5是示意性图示根据示例实施例从J2EE平台流到.NET平台的业务追踪的方框图; 
图6是示意性图示根据示例实施例使用.NET SOAP扩展模块来访问原始(raw)XML SOAP消息的图; 
图7是图示根据示例实施例从.NET平台到J2EE平台的业务流的拓扑图; 
图8是图示根据示例实施例从.NET平台到J2EE平台(下钻,Drill down)的业务流的拓扑图; 
图9是图示根据示例实施例从J2EE平台到.NET平台的业务流的拓扑图; 
图10是图示根据示例实施例从J2EE平台到.NET平台(下钻)的业务流的拓扑图; 
图11是图示根据示例实施例用于追踪从.NET平台流到J2EE平台的业务的方法的流程图;以及 
图12是图示根据示例实施例追踪从J2EE平台流到.NET平台的业务的流程图。 
具体实施方式
现在参考附图并具体地参考图1-2,提供了可以实现示例实施例的数据处理环境的示例图。应该认识到,图1-2仅仅是示例性的,并非要断言或暗示对于可以实现不同实施例的环境的限制。可以做出对于所绘环境的很多修改。 
图1绘出了可以实现示例实施例的数据处理系统的网络的绘图表示。网络数据处理系统100是可以实现图示实施例的计算机的网络。网络数据处理系统100包含网络102,网络102是用于在网络数据处理系统100内连接在一起的各种设备和计算机之间提供通信链接的介质。网络102可以包括诸如有线、无线通信链接、或者光纤光缆的连接。 
在所绘例子中,服务器104和服务器106与存储单元108一起连接到网络102。另外,客户端110、112和114连接到网络102。客户端110、112和114可以是例如个人计算机或网络计算机。在所绘例子中,服务器104向客户端110、112和114提供诸如引导文件、操作系统映像和应用的数据。在此例子中,客户端110、112和114是服务器104的客户端。网络数据处理系统100可以包括另外的服务器、客户端和未示出的其他设备。 
在所绘例子中,网络数据处理系统100是具有代表全世界的网络集合的网络102和使用传输控制协议/因特网协议(TCP/IP)协议套装以彼此通信的网关的因特网。在因特网的中心有在主节点或主机计算机之间的高速数据通信线的主链路,由路由数据和消息的数千个商业的、政府的、教育的或其他计算机系统组成。当然,网络数据处理系统100还可以被实现为多个不同类型的网络,比如内部网、局域网(LAN)或者广域网(WAN)。图1是要作为例子,而非对不同的示例实施例的体系结构限制。 
现在参考图2,示出了可以实现示例实施例的数据处理系统的方框图。对于示例实施例,数据处理系统200是其中可以分配实现处理的计算机可用程序代码或指令的计算机的例子,比如图1中的服务器104或客户端110。 
在所绘例子中,数据处理系统200采用包括接口和存储器控制器集线器(接口/MCH)202以及接口和输入/输出(I/O)控制器集线器(接口/ICH)204的集线器体系结构。处理单元206、主存储器208和图形处理器210耦接到接口和存储器控制器集线器202。处理单元206可以包含一个或多个处理器,甚至可以使用一个或多个异类的处理器系统来实现。图形处理器210可以通过例如加速图形端口(AGP)耦接到接口/MCH。 
在所绘例子中,局域网(LAN)适配器212耦接到接口和I/O控制器集线器204以及音频适配器216,键盘和鼠标适配器220、调制解调器222、只读存储器(ROM)224、通用串行总线(USB)和其他端口232、以及PCT/PCIe 设备234通过总线238耦接到接口和I/O控制器集线器204,并且硬盘驱动器(HDD)226和CD-ROM 230通过总线240耦接到接口和I/O控制器集线器204。PCT/PCIe设备可以包括例如以太网适配器、附加卡和用于笔记本计算机的PC卡。PCI使用卡总线控制器,而PCIe不使用。ROM 224可以是例如快闪二进制输入/输出系统(BIOS)。HDD226和CD-ROM 230可以使用例如集成驱动电子器件(IDE)或者串行高级技术附件(SATA)接口。超级I/O(SIO)设备236可以耦接到接口和I/O控制器集线器204。 
操作系统运行在处理单元206上,并且调整并提供图2的数据处理系统内的各种组件的控制。操作系统可以是诸如 Windows VistaTM(Microsoft和Windows Vista是美国、其他国家或其两者的微软公司的商标)的商业可用操作系统。诸如JAVATM编程系统的面向对象的编程系统可以与操作系统一起运行,并且从在数据处理系统200上执行的JAVATM程序或应用提供对于操作系统的调用。JAVATM和所有基于JAVATM的商标都是美国、其他国家或者两者的Sun Microsystems公司的商标。 
用于操作系统、面向对象的编程系统和应用或程序的指令位于存储设备上,比如硬盘驱动器226,并且可以被加载到主存储器208中用于由处理单元206执行。示例实施例的处理可以由处理单元206使用计算机实现的指令来进行,该计算机实现的指令可以位于诸如例如主存储器208、只读存储器224的存储器中,或者位于一个或多个外设中。 
图1和图2中的硬件可以根据实现方式而变化。除了或者替换图1和图2中所会出的硬件,可以使用诸如闪存、等效非易失性存储器或者光盘驱动器等的其他内部硬件或外设。而且,示例实施例的处理可以应用于多处理器数据处理系统。 
在一些图示例子中,数据处理系统200可以是个人数字助理(PDA),其一般用闪存来配置以提供用于存储操作系统文件和/或用户生成的数据的非易失性存储器。总线系统可以包括一个或多个总线,比如系统总线、I/O总线和PCI总线。当然,可以使用提供附连于通信构造或体系结构的不同组件或设备之间的数据传送的任何类型的通信构造或体系结构来实现总线系统。通信单元可以包括用于传输和接收数据的一个或多个设备,比如调制解调器或网络适配器。存储器可以是例如主存储器208或者诸如在接口和存储器控制器集线器202中发现的高速缓存。处理单元可以包括一个或多个处理器或 CPU。图1和图2中所绘的例子以及上述例子并非要暗示对体系结构的限制。例如,数据处理系统200还可以是除了采取PDA形式之外的桌上型计算机、膝上型计算机或者电话设备。 
示例实施例提供了用于在诸如面向服务的体系结构(SOA)环境的共存环境中管理.NET和J2EE业务的计算机实现的方法、系统和计算机可使用的程序代码。 
图3是示意性图示基本的面向服务的体系结构(SOA)以帮助说明示例实施例的方框图。总体上由参考标记300表示SOA,并且其包括服务客户端310和服务供应商320和330。服务客户端310可以被实现为例如图1中的客户端110、112和114之一;并且服务供应商320和330可以被实现为图1中的服务器104和106。在图3所示的示例实施例中,服务客户端310将服务请求发送到服务供应商320和330,并且接收该请求的服务供应商将响应消息返回到服务客户端310。 
如图3所示,SOA 300还可以包括提供服务的目录或登记的服务登记340。诸如服务客户端310的服务客户端可以通过检查服务登记340而发现正在提供的服务。 
通常经由基于XML(可扩展标记语言)的简单对象访问协议(SOAP)来进行SOA中的消息交换。示例实施例基于SOAP/XML标准管理共存的.NET/J2EE环境,但是应当理解为示例实施例不限于使用SOAP/XML标准。 
根据示例实施例,SOAP头部(header)被定义为使得能够在.NET和J2EE平台之间交换相关令牌。使用ILogicalThreadAffirmative接口和CallContext(调用上下文)对象,经过.NET应用域传递这些相关令牌。提供模块以通过操纵消息流量中的SOAP头部而将相关令牌传递到和传递出.NET平台。通过.NET平台动态加载该模块作为全局SOAP扩展。该模块还可以被用于提供诸如响应时间管理、基于上下文的路由、服务级别协定(SLA)管理等的管理功能性。 
根据另一个示例实施例,可以使用JAX-RPC或者JAX-WS处理机机制设计类似的模块用于J2EE平台。JAX-RPC是用于基于XML的RPC(远程进程调用)的JAVATM API(应用编程接口),其使得JAVATM技术开发者能够根据SOAP建立并入了基于XML的RPC功能性的网应用和网服务。JAX-WS代表用于基于XML的网服务的JAVATM API。JAX-WS是JAX-RPC的替换。 JAX-RPC版本2.0被重新命名为JAX-WS版本2.0。 
图4是示意性图示根据示例实施例追踪从.NET平台流到J2EE平台的业务的方框图。更具体地,图4图示了根据示例实施例.NET网服务客户端调用来自J2EE服务供应商J2EE的网(Web)服务的情景。.NET网服务客户端可以被实现为例如图3中的服务客户端310,并且J2EE服务供应商可以被实现为例如图3中的服务供应商320和330之一。 
服务客户端的.NET平台总体上由参考标记410表示,并且服务供应商的J2EE平台(服务器)总体上由参考标记420表示。.NET平台410包括网服务客户端应用412和.NET SOAP扩展模块414。服务供应商的J2EE平台420包括网服务服务器应用422和JAX-RPC处理机424。JAX-RPC处理机424可以被实现为JAX-RPC处理机或者JAX-WS处理机。 
在操作中,当网服务客户端应用412调用对于来自J2EE服务供应商的J2EE网服务的SOAP请求432时,.NET SOAP扩展模块414翻译来自网服务客户端应用412的SOAP请求432,并在消息到达J2EE平台420之前将相关令牌附于SOAP头部中。在J2EE平台420处,在请求到达网服务服务器应用422之前,由JAX-RPC处理机424提取相关令牌。在将来自网服务服务器应用422的SOAP响应434返回到.NET平台410之前,由JAX-RPC处理机424翻译该响应。 
图5是示意性图示根据示例实施例追踪从J2EE平台流到.NET平台的业务的方框图。在图5中,J2EE平台510中的JAX-RPC处理机514翻译来自网服务客户端应用512的SOAP请求532,并且在消息到达.NET服务器平台520之前,将相关令牌附于SOAP头部中。在.NET服务器平台520处,在请求到达网服务服务器应用522之前,由.NET SOAP扩展模块524提取相关令牌。在将SOAP响应534返回到J2EE平台510之前,由JAX-RPC处理机514翻译该SOAP响应534。JAX-RPC处理机514可以被实现为JAX-RPC处理机或JAX-WS处理机。 
分别使用图4和图5中的.NET SOAP扩展模块414或524,这允许访问进入.NET框架和离开.NET框架的新的XML SOAP消息。图6是示意性图示根据示例实施例使用.NET SOAP扩展模块访问原始XML SOAP消息的图。一般而言,使用相关令牌追踪经过边界的业务涉及四(4)个阶段。阶段1和4发生在业务的客户端侧,并且阶段2和3发生在业务的服务器侧。 
一般而言,在.NET客户端侧610,从网服务客户端应用612离开的SOAP请求632在其被串行化之后由.NET SOAP扩展模块614处理。到来的SOAP响应634在其被解串行化之前由.NET SOAP扩展模块614处理(阶段4)。在.NET服务器侧620,在消息被解串行化之前由.NET SOAP扩展模块624处理到来的SOAP请求642(阶段2),并且在消息被串行化之后处理离开的SOAP响应644(阶段3)。 
仍然参考图6,以.NET扩展模块访问原始XML SOAP消息更具体描述如下: 
在.NET框架中的.NET客户端侧610,.NET SOAP扩展模块614(阶段1): 
a)从Call Context Object(调用上下文对象)中提取母相关令牌(CO),并创建子相关令牌(C1); 
b)启动对于离开的请求SOAP头部中的当前业务的业务计时器(创建专有业务句柄H1并将其与C1相关联);以及 
c)将业务相关令牌(C1)和业务句柄(H1)添加到离开的请求SOAP头部中。 
当响应回到客户端并且在响应被解串行化之前,.NET SOAP扩展模块614进行以下(阶段4): 
d)从SOAP消息头部中提取业务句柄(H1);以及 
e)利用句柄(H1)停止业务计时器。 
在.NET框架中的.NET服务器侧620,在将SOAP请求解串行化之前,.NET SOAP扩展模块624进行以下(阶段2): 
a)提取来自客户端侧的最后的相关令牌(C1); 
b)使用相关令牌C1作为母令牌来创建新的相关令牌(C2); 
c)启动对当前业务(具有业务句柄H2的C2)的计时器; 
d)将当前相关令牌(C2)和句柄(H2)添加到调用上下文(Call Context); 
e)当完成步骤b、c和d时,对于所有下游服务器侧业务重复步骤b、c和d;以及 
f)当完成步骤b、c和d时,停止对于下游服务器侧业务的计时器; 
在串行化SOAP响应后,.NET SOAP扩展模块624进行以下(阶段3): 
g)停止对于C2(具有句柄H2)的计时器;以及 
h)保留离开的SOAP响应头部中的业务句柄(H1),并将业务句柄(H1) 传递回客户端。 
为了使用JAX-RPC或者JAX-WS处理机来提交(instrument)JAX-RPC或者JAX-WS网服务,所有的JAX-RPC或者JAX-WS处理机实现JAVAx.xml.rpc.handler.处理机接口。存在三种方法用于分别处理SOAP请求、响应和故障: 
boolean(布尔)handleRequest(MessageContext上下文) 
boolean handleResponse(MessageContext上下文) 
boolean handleFault(MessageContext上下文) 
对于向用于单个网服务调用的客户端或者服务器登记的每个JAX-RPC或者JAX-WS处理机,总是调用handleRequest。然而,基于调用的结果来调用(call)handleResponse或者handleFault方法。对于J2EE网服务的步骤与对于.NET中所使用的步骤是类似的,具有一些较小的差别如下: 
在J2EE网服务客户端侧,在阶段1期间,handleRequest而不是SOAP扩展启动对于客户端网服务请求(相关令牌C1和专有业务句柄H1)的计时器。而且,handleRequest方法而不是SOAP扩展经由SOAP请求头部传递相关令牌(C1)和业务句柄(H1)。 
当响应回到客户端并且在响应被解串行化之前(阶段4),handleResponse或者handleFault方法而不是SOAP扩展提取业务句柄,并且停止对于客户端网服务请求的计时器。 
在J2EE网服务服务器侧,在阶段2期间,handleRequest方法启动对于服务器侧网服务业务的计时器。而且,handleRequest方法传递JAVA线程本地存储装置(JAVA Thread Local Storage)中的相关令牌。 
在J2EE网服务服务器侧,在阶段3期间,在响应被送回客户端之前,handleResponse或者handleFault方法停止对于服务器侧网服务业务的计时器。另外,handleResponse或者handleFault方法将客户端的业务句柄(H1)置于SOAP响应头部中,并将其传递回客户端。 
可期望的是,为相关令牌和用在SOAP中表示相关令牌的方式定义公知的、可识别的格式。示例SOAP头部如下,其中在<interop:correlatorxmins:interop=”http://tivoli.ibm.com”>和</interop:correlator>之间的文本表示相关令牌 
<soapenv:Header> 
    <interop:correlatorxmins:interop=”http://tivoli.ibm.com”> 
0072CCA00300500000000000000000111111111111111100000000000000000000 
9B00005A4DBE593A327E1BCF05728834392F780D4000000004489C2400000F 
E500000000000000B00000000DBE593A327E1BCF05728834392F780D400000 
0004489CE2400000FE5000000000000009B00000000000009B000041510000 
    </interop:correlator> 
<soapenv:Header> 
CallContext被设计用于保持随单个应用域内的执行代码路径而流动的一组命名的对象。通过利用相关令牌对象显露ILogical Thread Affinitive(线程相关)接口,可以将相关令牌传递到应用域外部(甚至到远程.NET主机中)。以下是样例代码,在C#中: 
namespace TransactionHandlerLib 
  [serializable] 
  public class Correlation Token; 
  ILogicalThreadAffinitive 
  { 
    private stack<TransactionData>correlatorStack; 
    …… 
  } 
Java线程本地存储装装置(Java Thread Local Storage)、JMX消息上下文(Message Context)和HTTP头部可以用于传递J2EE应用服务器中的相关令牌。WebSphere请求度量(Request Metrics)具有J2EE业务相关性的实现方式。Websphere是J2EE平台的例子。示例实施例针对于.NET和J2EE之间的相关性以及.NET平台内的相关性。 
图7到10是图示根据示例实施例的业务流的样例拓扑图。根据示例实施例和交互操作测试环境生成拓扑图,该交互操作测试环境包括调用J2EE网服务的.NET网服务客户端以及调用.NET网服务的J2EE网服务客户端。 
图7是图示根据示例实施例从.NET平台到J2EE平台的业务流的拓扑图。图8是图示根据示例实施例从.NET平台到J2EE平台(下钻,Drill down)的 业务流的拓扑图。图9是图示根据示例实施例从J2EE平台到.NET平台的的业务流的拓扑图。图10是图示根据示例实施例从J2EE平台到.NET平台(下钻)的业务流的拓扑图。 
图11是图示根据示例实施例用于追踪从.NET平台流到J2EE平台的业务的方法的流程图。该方法总体上由参考标记1100表示,并且由从网服务客户端应用所调用的SOAP请求开始(步骤1102)。在已将SOAP请求串行化之后,由.NET平台上的.NET SOAP扩展模块翻译SOAP请求(步骤1104)。.NETSOAP扩展模块提取相关令牌并在SOAP头部中建立子相关令牌(步骤1106)。 
启动对于当前业务的业务计时器(步骤1108),这使得生成与业务计时器和子相关令牌相关联的专有业务句柄(步骤1109)。用于当前业务的子相关令牌和业务句柄被添加到SOAP头部(步骤1110)。然后具有该SOAP头部的消息被传递到J2EE服务器(步骤1112)。在J2EE服务器处接收SOAP请求(步骤1114)。 
提取来自客户端的子相关令牌(步骤1116)。使用客户端侧子相关令牌作为母相关令牌来生成新的子相关令牌(步骤1118)。启动用于服务器侧J2EE平台业务的计时器(步骤1120),这使得生成与计时器和新的子相关令牌相关联的专有业务句柄(步骤1122)。在JAVA线程本地存储装置中传递新的子相关令牌和业务句柄(步骤1124)。处理请求(步骤1126)。确定是否还有更多的下游服务器侧业务(步骤1128)。 
如果还有更多的下游服务器侧业务(步骤1128的“是”输出),则操作返回到步骤1118。如果再没有下游服务器侧业务(步骤1128的“否”输出),则在响应被返回到.NET客户端之前,停止对于服务器侧网服务业务的计时器(步骤1130)。客户端的业务句柄被置于SOAP响应头部中(步骤1132),并且SOAP响应被传递到客户端(步骤1134)。 
客户端接收SOAP响应(步骤1136),并且从SOAP消息头部提取业务句柄(步骤1138),并且停止与所提取的业务句柄相关联的业务计时器(步骤1140),并且方法结束。由于业务句柄是用相关令牌和特定的业务计时器唯一地识别的,因此业务句柄就是识别适当的业务和业务计时器以便停止该计时器所需要的全部。 
图12是图示根据示例实施例追踪从J2EE平台流到.NET平台的业务的流程图。该方法总体上由参考标记1200表示,并且由从网服务客户端应用调用 SOAP请求开始(步骤1202)。J2EE平台中的JAX-RPC或者JAX-WS处理机提取母相关令牌,并创建子相关令牌(步骤1204),启动对于该请求的计时器(步骤1206),这使得生成与计时器和该子相关令牌相关联的专有业务句柄(步骤1208),并且经由SOAP请求头部将该子相关令牌和业务句柄传递到.NET服务器(步骤1210)。 
.NET服务器接收该请求(步骤1212),并且SOAP扩展模块从SOAP请求头部中提取来自客户端侧的子相关令牌(步骤1214)。使用该客户端侧子相关令牌C1作为母相关令牌来建立新的子相关令牌(步骤1216)。启动对于当前业务的计时器(步骤1218),这使得生成与计时器和新的子相关令牌相关联的专有业务句柄(步骤1220)。新的子相关令牌和业务句柄被添加到调用上下文(Call Context)(步骤1222)。 
确定是否还有更多的下游服务器侧业务(步骤1224)。如果确定还有更多的下游服务器侧业务(步骤1224的“是”输出),则方法返回到步骤1216。如果确定不再有下游服务器业务(步骤1224的“否”输出),则当完成所有下游服务器侧业务时,停止对于所有下游服务器侧业务的计时器(步骤1226)。然后,停止具有新的子相关令牌和相关联的专有业务句柄的业务的计时器(步骤1228)。与客户端侧子相关令牌相关联的业务句柄被留在离开的SOAP响应头部中,并且该业务句柄被传递到客户端(步骤1230)。 
在客户端接收响应(步骤1232),并且从SOAP消息头部中提取业务句柄(步骤1234),并且停止与所提取的业务句柄相关联的计时器(步骤1236),并且方法结束。由于以相关令牌和特定的业务计时器唯一地识别业务句柄,因此业务句柄就是识别适当的业务和业务计时器以便停止该计时器所需要的全部。 
因此示例实施例提供了用于管理服务客户端和服务供应商之间的业务的计算机实现的方法、系统和计算机可使用的程序代码。根据示例实施例,定义SOAP头部以使得能够在.NET和J2EE平台之间交换相关令牌。使用ILogicalThreadAffimitive接口和调用上下文对象经过.NET应用域来传递这些相关令牌。提供模块以通过操纵消息流量中的SOAP头部将相关令牌传递到和传递出.NET平台。由.NET平台动态地加载该模块作为全局SOAP扩展。该模块还可以用于提供诸如响应时间管理、基于上下文的路由、服务级别协定(SLA)管理等的管理功能性。 
本发明可以采取全部硬件实施例、全部软件实施例或者包含硬件和软件元素两者的实施例的形式。在优选实施例中,以软件实现本发明,其包括但不限于固件、驻件、微代码等。 
此外,本发明可以采取可从提供用于由计算机或者任何指令执行系统使用或与其结合使用的计算机可使用或者计算机可读介质访问的计算机程序制品的形式。为了描述的目的,计算机可使用或计算机可读介质可以是可以包含、存储、通信、传播或传输用于由指令执行系统、装置或设备使用或与其结合使用的程序的任意实际装置。 
本发明还可以采取计算机程序制品的形式,该计算机程序制品已经经过网络从一个设备下载到另一设备用于在另一设备中使用。例如,可以经过网络将存储在服务器数据处理系统的计算机可读存储介质中的程序代码从服务器下载到远程数据处理系统,比如客户端或者另一服务器。相反,可以通过网络间存储在客户端数据处理系统的计算机可读存储介质中的程序代码从客户端下载到远程数据处理系统,比如服务器或者另一客户端。 
介质可以是电子的、磁的、光的、电磁的、红外的或者半导体系统(或装置或设备),或者传播介质。计算机可读介质的例子包括半导体或固态存储器、磁带、可移除计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、刚性磁盘和光盘。光盘的当前例子包括紧致盘-只读存储器(CD-ROM)、紧致盘读/写(CD-R/W)和DVD。 
此外,计算机存储介质可以包含或存储计算机可读程序代码,使得当在计算机上执行计算机可读程序代码时,该计算机可读程序代码的执行使得计算机经由通信链接传输另一计算机可读程序代码。该通信链接可以使用作为例如(非限制性的)物理的或无线的介质。 
适合于存储和/或执行程序代码的数据处理系统将包括直接或通过系统总线间接地耦接到存储器元件的至少一个处理器。存储器元件可以包括在程序代码的实际执行期间所采用的本地存储器、大容量存储器和高速缓冲存储器,其提供至少一些程序代码的临时存储,以便降低在执行期间必须从大容量存储器取回代码的次数。 
输入/生成或者I/O设备(包括但不限于键盘、显示器、定点设备等)可以被直接或者通过居间I/O控制器间接地耦接到系统。 
网络适配器也可以被耦接到系统,以使得数据处理系统能够变成通过居 间的私有或公共网络耦接到其他数据处理系统或者远程打印机或者存储设备。调制解调器、电缆调制解调器和以太网卡仅仅是一些当前可用类型的网络适配器。 
已经为了说明和描述的目的呈现了本发明的描述,并且该描述并非意要穷尽或者将本发明限制为所公开的形式。很多修改和变更对本领域技术人员而言是显而易见的。选择并描述了实施例以便最佳地说明本发明的原理、实际应用,并且使得本领域其他普通技术人员能够理解适合于具体的预期使用的具有各种修改的各种实施例的本发明。 

Claims (17)

1.一种用于管理服务客户端和服务供应商之间的业务的计算机实现的方法,所述计算机实现的方法包括:
从网服务客户端应用接收请求;
从所述请求中提取相关令牌和与所述相关令牌相关联的业务句柄,形成提取的相关令牌和提取的业务句柄;
使用所述提取的相关令牌作为母相关令牌来生成子相关令牌;
生成与所述子相关令牌相关联的业务句柄;
启动与生成的业务句柄和子相关令牌相关联的计时器;
执行所述请求;
停止与生成的业务句柄相关联的计时器;
将所述提取的业务句柄插入对于所述请求的响应中;以及
将具有所述提取的业务句柄的响应传送到所述网服务客户端应用,
其中所述请求是SOAP请求,
所述方法还包括:
定义SOAP消息头部格式,该SOAP消息头部格式允许在所述服务客户端和所述服务供应商之间交换相关令牌,其中所述服务客户端和所述服务供应商存在于不同的平台上,
其中所述不同的平台是企业版本的.NET平台和J2EE平台。
2.根据权利要求1的计算机实现的方法,还包括:
使用ILogicalThreadAffinative线程相关接口和CallContext调用上下文对象经过在相同平台上的应用来传递子相关令牌。
3.根据权利要求1的计算机实现的方法,还包括:
生成要被发送到远程数据处理系统的请求;
从所述请求中提取母相关令牌;
建立第一子相关令牌;
生成与所述子相关令牌相关联的第一业务句柄;
启动与所述第一业务句柄和所述第一子相关令牌相关联的计时器;
将所述第一子相关令牌和所述第一业务句柄插入所述请求中;以及
将所述请求发送到所述远程数据处理系统。
4.根据权利要求3的计算机实现的方法,还包括:
接收所述响应;
从所述响应中提取所述提取的业务句柄,其中所述提取的业务句柄是所述第一业务句柄;以及
停止与所述第一业务句柄相关联的计时器。
5.根据权利要求4的计算机实现的方法,还包括:
提供模块,其中所述模块操纵所述请求的头部和所述响应的头部,以便提取或插入相关令牌和业务句柄。
6.根据权利要求5的计算机实现的方法,其中所述模块提供管理功能性。
7.根据权利要求5的计算机实现的方法,其中所述模块被加载为全局SOAP扩展模块。
8.根据权利要求5的计算机实现的方法,其中所述模块是用于基于可扩展标记语言XML的远程进程调用的JAVA应用编程接口API,或者用于基于XML的网服务处理机模块的JAVA API。
9.一种用于管理服务客户端和服务供应商之间的业务的计算机实现的系统,所述计算机实现的系统包括:
用于从网服务客户端应用接收请求的装置,其中所述请求是SOAP请求;
用于从所述请求中提取相关令牌和与所述相关令牌相关联的业务句柄,形成提取的相关令牌和提取的业务句柄的装置;
用于使用所述提取的相关令牌作为母相关令牌来生成子相关令牌的装置;
用于生成与所述子相关令牌相关联的业务句柄的装置;
用于启动与生成的业务句柄和子相关令牌相关联的计时器的装置;
用于执行所述请求的装置;
用于停止与生成的业务句柄相关联的计时器的装置;
用于将所述提取的业务句柄插入对于所述请求的响应中的装置;以及
用于将具有所述提取的业务句柄的响应传送到所述网服务客户端应用的装置,
所述系统还包括:
用于定义SOAP消息头部格式的装置,该SOAP消息头部格式允许在所述服务客户端和所述服务供应商之间交换相关令牌,其中所述服务客户端和所述服务供应商存在于不同的平台上,其中所述不同的平台是企业版本的.NET平台和J2EE平台。
10.根据权利要求9的计算机实现的系统,还包括:
用于使用ILogicalThreadAffinative线程相关接口和CallContext调用上下文对象经过在相同平台上的应用来传递子相关令牌的装置。
11.根据权利要求9的计算机实现的系统,还包括:
用于生成要被发送到远程数据处理系统的请求的装置;
用于从所述请求中提取母相关令牌的装置;
用于建立第一子相关令牌的装置;
用于生成与所述子相关令牌相关联的第一业务句柄的装置;
用于启动与所述第一业务句柄和所述第一子相关令牌相关联的计时器的装置;
用于将所述第一子相关令牌和所述第一业务句柄插入所述请求中的装置;以及
用于将所述请求发送到所述远程数据处理系统的装置。
12.根据权利要求11的计算机实现的系统,还包括:
用于接收所述响应的装置;
用于从所述响应中提取所述提取的业务句柄,其中所述提取的业务句柄是所述第一业务句柄的装置;以及
用于停止与所述第一业务句柄相关联的计时器的装置。
13.根据权利要求12的计算机实现的系统,还包括:
用于提供模块的装置,其中所述模块操纵所述请求的头部和所述响应的头部,以便提取或插入相关令牌和业务句柄。
14.根据权利要求13的计算机实现的系统,其中所述模块提供管理功能性。
15.根据权利要求13的计算机实现的系统,其中所述模块被加载为全局SOAP扩展模块。
16.根据权利要求13的计算机实现的系统,其中所述模块是用于基于可扩展标记语言XML的远程进程调用的JAVA应用编程接口API,或者用于基于XML的网服务处理机模块的JAVAAPI。
17.一种计算机实现的方法,用于管理服务客户端和服务供应商之间的业务,所述计算机实现的方法包括:
从网服务客户端应用接收请求;
从所述请求中提取相关令牌和与所述相关令牌相关联的业务句柄,形成提取的相关令牌和提取的业务句柄;
使用所述提取的相关令牌作为母相关令牌来生成子相关令牌;
生成与所述子相关令牌相关联的业务句柄;
启动与生成的业务句柄和子相关令牌相关联的计时器;
执行所述请求;
响应于确定存在要执行的下游业务,对于每个下游业务,使用所述提取的相关令牌作为母相关令牌来生成新的子相关令牌以及与所述新的子相关令牌相关联的新的业务句柄;
响应于使用所述提取的相关令牌作为母相关令牌而生成新的子相关令牌和与所述新的子相关令牌相关联的新的业务句柄,启动对于每个下游业务的计时器,其中每个计时器与所述新的业务句柄和相关联的新的子相关令牌相关联;
响应于启动与所述新的业务句柄和相关联的新的子相关令牌相关联的计时器,执行每个下游业务;
响应于执行每个下游业务,停止与所述新的业务句柄相关联的计时器;
停止与生成的业务句柄相关联的计时器;
将所述提取的业务句柄插入对于所述请求的响应中;以及
将具有所述提取的业务句柄的响应传送到网服务客户端应用,
其中所述请求是SOAP请求,
所述方法还包括:
定义SOAP消息头部格式,该SOAP消息头部格式允许在所述服务客户端和所述服务供应商之间交换相关令牌,其中所述服务客户端和所述服务供应商存在于不同的平台上,
其中所述不同的平台是企业版本的.NET平台和J2EE平台。
CN2009100017321A 2008-01-10 2009-01-06 管理j2ee和.net交互操作应用的方法和系统 Expired - Fee Related CN101483666B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/972,030 US20090182816A1 (en) 2008-01-10 2008-01-10 Method and system for managing j2ee and .net interoperating applications
US11/972,030 2008-01-10

Publications (2)

Publication Number Publication Date
CN101483666A CN101483666A (zh) 2009-07-15
CN101483666B true CN101483666B (zh) 2012-12-26

Family

ID=40851613

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009100017321A Expired - Fee Related CN101483666B (zh) 2008-01-10 2009-01-06 管理j2ee和.net交互操作应用的方法和系统

Country Status (2)

Country Link
US (1) US20090182816A1 (zh)
CN (1) CN101483666B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8732709B2 (en) * 2008-02-05 2014-05-20 Red Hat, Inc. Transaction management in a web service messaging environment
EP2588960A4 (en) * 2010-06-30 2017-03-29 Hewlett-Packard Enterprise Development LP Tracking a server request
CN102014028A (zh) * 2010-12-22 2011-04-13 浪潮(北京)电子信息产业有限公司 一种集群监控方法及系统
US8650151B2 (en) 2011-01-24 2014-02-11 International Business Machines Corporation Transactional service pipeline
US8775904B2 (en) 2011-12-07 2014-07-08 International Business Machines Corporation Efficient storage of meta-bits within a system memory
US10402549B1 (en) * 2015-12-17 2019-09-03 Symantec Corporation Systems and methods for creating validated identities for dependent users
CN112583879B (zh) * 2019-09-30 2022-10-04 北京国双科技有限公司 请求的处理方法、装置及系统、存储介质和电子设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1770776A (zh) * 2004-09-17 2006-05-10 株式会社理光 传送设备及其控制方法、分布式处理系统、程序和记录介质

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030172135A1 (en) * 2000-09-01 2003-09-11 Mark Bobick System, method, and data structure for packaging assets for processing and distribution on multi-tiered networks
US7051029B1 (en) * 2001-01-05 2006-05-23 Revenue Science, Inc. Identifying and reporting on frequent sequences of events in usage data
US7249195B2 (en) * 2001-03-30 2007-07-24 Minor Ventures, Llc Apparatus and methods for correlating messages sent between services
WO2002101510A2 (en) * 2001-06-13 2002-12-19 Caminus Corporation System architecture and method for energy industry trading and transaction management
US7203948B2 (en) * 2001-09-29 2007-04-10 Siebel Systems, Inc. Method, apparatus, and system for implementing caching of view custom options in a framework to support web-based applications
US7698230B1 (en) * 2002-02-15 2010-04-13 ContractPal, Inc. Transaction architecture utilizing transaction policy statements
US7047243B2 (en) * 2002-08-05 2006-05-16 Microsoft Corporation Coordinating transactional web services
US7426642B2 (en) * 2002-11-14 2008-09-16 International Business Machines Corporation Integrating legacy application/data access with single sign-on in a distributed computing environment
US7912938B2 (en) * 2003-04-11 2011-03-22 Hewlett-Packard Development Company, L.P. Correlation of web service interactions in composite web services
US7457872B2 (en) * 2003-10-15 2008-11-25 Microsoft Corporation On-line service/application monitoring and reporting system
US7739351B2 (en) * 2004-03-23 2010-06-15 Salesforce.Com, Inc. Synchronous interface to asynchronous processes
US7424720B2 (en) * 2004-03-25 2008-09-09 International Business Machines Corporation Process and implementation for dynamically determining probe enablement using out of process correlating token
JP4061288B2 (ja) * 2004-04-08 2008-03-12 インターナショナル・ビジネス・マシーンズ・コーポレーション Webサービス・システム、リクエスタ、soapメッセージ用中間処理装置、リクエスタのリクエスト用soapメッセージ処理方法、リクエスタのレスポンス用soapメッセージ処理方法、soapメッセージ用中間処理装置のリクエスト用soapメッセージ処理方法、soapメッセージ用中間処理装置のレスポンス用soapメッセージ処理方法、及びプログラム
US7788716B2 (en) * 2004-05-21 2010-08-31 Bea Systems, Inc. Token handler API
US20060168268A1 (en) * 2004-12-02 2006-07-27 International Business Machines Corporation Specific method of setting transport-specific properties from transport-agnostic clients
US7461400B2 (en) * 2004-12-22 2008-12-02 At&T Intellectual Property, I,L.P. Methods, systems, and computer program products for providing authentication in a computer environment
US20060277248A1 (en) * 2005-05-12 2006-12-07 Baxter Eugene E Configuration-based application architecture using XML/XSLT
US7814060B2 (en) * 2005-12-30 2010-10-12 Sap Ag Apparatus and method for web service client deployment
US8281026B2 (en) * 2006-03-18 2012-10-02 Metafluent, Llc System and method for integration of streaming and static data
US7992198B2 (en) * 2007-04-13 2011-08-02 Microsoft Corporation Unified authentication for web method platforms
US8560372B2 (en) * 2007-12-22 2013-10-15 Sap Ag Compiling workflows into instructions for a state correlation engine

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1770776A (zh) * 2004-09-17 2006-05-10 株式会社理光 传送设备及其控制方法、分布式处理系统、程序和记录介质

Also Published As

Publication number Publication date
US20090182816A1 (en) 2009-07-16
CN101483666A (zh) 2009-07-15

Similar Documents

Publication Publication Date Title
CN101483666B (zh) 管理j2ee和.net交互操作应用的方法和系统
Srinivasan et al. An overview of service-oriented architecture, web services and grid computing
Patni Pro RESTful APIs
US8438544B2 (en) Open systems developer portal and managing software development projects
KR101622815B1 (ko) 소프트웨어 애플리케이션의 최종사용자에 대한 지원제공 방법
EP3103023B1 (en) Private cloud connected device cluster architecture
Dooley et al. The Agave Platform: An open, science-as-a-service platform for digital science
TW200820075A (en) Method and apparatus for on-demand composition and teardown of service infrastructure
TW200814608A (en) Method and apparatus for policy-based change management in a service delivery environment
US20070124344A1 (en) Method, apparatus and program storage device for providing web services-based data replication for Heterogeneous storage systems
JP2010009520A (ja) フロー処理装置及びメッセージ変換方法
Bussler The role of Semantic Web technology in enterprise application integration.
EP1999699A1 (en) Edi instance based transaction set definition
US20200004530A1 (en) Melding of mediation flow service component architecture (sca) components
TW200818009A (en) Computer-implemented method, system, and program product for optimizing a distributed application
US8966047B2 (en) Managing service specifications and the discovery of associated services
US9563781B2 (en) Directional optimization for policy evaluation
WO2009018234A2 (en) Framework to integrate web services with on-premise software
US9170779B2 (en) Managing an application development environment
US8156509B2 (en) Exchanging data using data transformation
JP4786568B2 (ja) 情報処理装置、通信制御処理関数追加方法、及び、通信制御処理関数追加プログラム
Basu et al. Control plane integration for cloud services
US20190387075A1 (en) Methods for exposing mainframe data as a web service and devices thereof
JP2004361993A (ja) ウェブサービスシステム、フロー展開支援装置、フロー展開支援プログラムおよびフロー展開支援方法
Fernando Designing Microservices Platforms with NATS: A modern approach to designing and implementing scalable microservices platforms with NATS messaging

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20121226

Termination date: 20190106