CN1832478B - 用于传统组件的动态服务生成的方法和设备 - Google Patents

用于传统组件的动态服务生成的方法和设备 Download PDF

Info

Publication number
CN1832478B
CN1832478B CN2006100085128A CN200610008512A CN1832478B CN 1832478 B CN1832478 B CN 1832478B CN 2006100085128 A CN2006100085128 A CN 2006100085128A CN 200610008512 A CN200610008512 A CN 200610008512A CN 1832478 B CN1832478 B CN 1832478B
Authority
CN
China
Prior art keywords
web service
traditional components
application program
dynamic
service
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
CN2006100085128A
Other languages
English (en)
Other versions
CN1832478A (zh
Inventor
A·D·米尔利甘
D·F·鲍克斯
H·赛德
M·A·范戈尔德
S·阿布拉汉姆
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN1832478A publication Critical patent/CN1832478A/zh
Application granted granted Critical
Publication of CN1832478B publication Critical patent/CN1832478B/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/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99939Privileged access

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明提供了一种允许管理事件在传统应用程序的初始化期间触发或导致动态web服务的生成的机制。类似于其它类型的静态工具安装方法,此处所支持的动态方法使用描述用于与传统组件通信的接口的可用元数据。然而,并非在一次性或偶然的基础上通过工具安装来生成和表现web服务,而是在示例实施例中,由作为应用程序初始化的一个标准部件的支持基础结构来生成web服务。在停止应用程序之后,提供停止对应的动态web服务并删除用于生成该动态web服务的web服务描述的终止序列。因此,每次当启动应用程序时,都需要参考可用元数据且可在进行中构建一致的服务。

Description

用于传统组件的动态服务生成的方法和设备
技术领域
本发明一般涉及web服务。更具体而言,本发明能够为不被开发成在web服务环境内通信的传统应用程序组件生成动态web服务。 
背景技术
计算机系统和相关技术影响着社会的许多方面。实际上,计算机系统处理信息的能力已经改变了人们生活和工作的方式。计算机系统现在通常执行在计算机系统的出现之前手动执行的大量任务(例如,文字处理、调度、数据库管理等)。近来,计算机系统被彼此耦合以形成计算机网络,通过计算机网络,计算机系统可电子地通信以共享数据。web服务已成为了推进计算机系统之间的这一通信的驱动力,且正在彻底转变人们构建和使用软件的方式。 
web服务让应用程序能够共享数据,且更强有力地调用来自其它应用程序的能力而无需关注这些应用程序是如何构建的、它们运行在什么操作系统或平台上、以及使用什么设备来访问它们。web服务是通过包括SOAP(简单开放访问协议)、XML(可扩展标记语言)、UDDI(通用描述发现集成)、WSDL(web服务描述语言)等行业标准协议在因特网上调用的。尽管web服务保持彼此独立,但是它们可将其自身松散地耦合到执行特定任务的协作组中。 
通常,web服务网络上的电子通信包括请求对服务器计算机系统(后文称为“服务器”、“服务”或“web服务”)处的网络服务(例如,web服务)的访问的客户机计算机系统(后文称为“客户机”)。因此,客户机向服务发送对其系统资源的特定访问的请求,其中,如果客户机被授权和确认,则服务用提供期望信息的响应消息来响应。当然,客户机和服务之间的其它消息通信模式是可用的,且包括简单的单消息以及更复杂的多消息交换,如通知、请求—响应、发布—订阅模式、轮询、踢—推(kick-push)、排队以及其它。此外,这些类型的通信是由客户机和服务在用于分布式系统(例如,web服务)的契约中定义的各种要求和能力来支配的。 
契约是服务(或客户机)行为的可见方面的表达。契约是由机器可读和人类语言的混合来表示的。除显然的机会可能有额外的精确度之外,机器可读语言使得能用工具构造部分服务实现、自动化服务部署、监察/确认所交换的消息、管理服务、以及启用大量其它的网络相关功能。然而,由于机器可读语言的表达能力的局限,人类可读语言仍是契约的一个重要组成部分,它主要用于描述消息和消息交换模式语义。 
网络协议描述语言(例如,WSDL)提供了用于以公共或标准语言描述契约(例如,web服务契约)的总体包装或规范。这一规范使得开发者和开发者工具易于创建和解释契约。这些网络协议描述语言(后文称为“NPDL”)具有广泛的工具套件,这很大一部分考虑到其普及性。 
在web服务的出现之前,多年以来,大量分布式应用程序是使用来自各销售商的基于传统组件的体系结构(例如,COM(组件对象模型)、DCOM(分布式组件对象模型)、CORBA(公共对象请求代理体系结构))来编写的。然而,随着基于标准的web服务的到来和前进,所关注的是将来自传统组件的业务逻辑展示为web服务。作为一个实例,且不管后续的方法是什么,意图通常是采用诸如支持以下接口的应用程序组件: 
Interface IStockSystem:IDispatch{ 
 HRESULT GetProductDescription( 
      [in]BSTR ProductID, 
      [out,retval]BSTR*ProdDesc); 
 HRESULT GetProductInventory( 
      [in]BSTR ProductID, 
      [out,retval]short*ProdCount); 
}; 
并且从该组件定义中产生具有在以下列WSDL片段示出的若干操作的对应的web服务层: 
<wsdl:portType name=“StockSystem”> 
     <wsdl:operation name=“GetProductDescription”> 
                       <wsdl:input message=“tns:GetProductDescriptionIn”/> 
                       <wsdl:output message=“tns:GetProductDescriptionOut”/> 
     </wsdl:operation> 
               <wsdl:operation name=“GetProductInventory”> 
          <wsdl:input message=“tns:GetProductInventoryIn”/> 
          <wsdl:output message=“tns:GetProductInventoryOut”/> 
     </wsdl:operation> 
</wsdl:portType> 
至今为止,仅遵循了几个主要模式或方法以在web服务环境内转换或使用传统组件。一种方法是迁移或修改,这要求开发者修改组件源代码以添加web服务支持。当编译和执行应用程序时,应用程序将以适当的web服务支持启动,而仍允许传统客户机连接到底层应用程序。 
另一方法是工具安装和元数据驱动方法,这产生静态包装服务。并非要求组件源代码修改,而是该方法使用了一种更外部的方法来检查组件的现有的已注册元数据来确定该组件应当提供的服务。这产生了对底层的未修改组件外部的,但至少最初与其相一致的静态web服务包装。 
尽管上述修改和静态方法使得传统组件的业务逻辑能够在web服务环境中访问,然而仍存在与这两个方法相关联的若干缺点和问题。例如,由于修改方法要求源代码修改,即使在不需要改变业务逻辑时也是如此,因此这是一项开发任务而非简单的管理过程。因此,这一任务超出了传统管理员角色的范围,且要求附加的技能组。另外,使用原始的编码环境可能无法使启用web服务的开发修改可供使用。例如,在修改使用不再支持的传统语言编写的组件的情况下,该组件首先必须移植到当前语言。因此,最初看上去像向方法添加属性的修改实际上是迁移到不同的语言、运行库和开发环境。 
在静态工具安装方法中,当修改底层组件或部署新版本时存在问题。在这一情况下,在重新生成包装服务之前,改变不会自动在该服务中得到反映。另外,对于web服务操作,在服务和底层组件之间存在明确的依赖性。因此,必须小心地确保组件的生存期和web服务是同步的(即,包装服务要求组件是活动的,且组件要求包装是活动的)。此外,取决于包装的环境和外部特性,通常存在要部署和管理的一个附加组件。换言之,如果组件被移至另一机器,则也必须相应地标识和移动包装组件。 
至少为以上原因,需要提供一种用于传统组件的web服务和业务逻辑,而无需开发者修改底层组件源代码,从而允许组件修改或版本确定,以及支持服务和底层组件之间明确的依赖性。 
发明内容
在web服务环境中为传统组件提供服务和业务逻辑的系统的上述缺陷和不足通过本发明的示例性实施例得以克服。例如,本发明能够通过允许管理事件在传统 应用程序组件的初始化期间导致动态web服务的生成,为不被开发成在web服务环境中通信的传统应用程序组件生成动态web服务。 
示例性实施例能够接收初始化应用程序的请求。该应用程序包括不被开发成与web服务应用程序通信的一个或多个传统组件。在初始化之后,标识管理配置设置,它指示了在应用程序的初始化之后要为一个或多个传统组件生成动态web服务。基于该管理配置设置,访问描述用于与一个或多个传统组件通信的接口。该元数据然后可用于自动生成与接口描述相一致的动态web服务,以允许web服务客户机通过转换过程与一个或多个传统组件通信。 
本发明的其它特征和优点将在以下描述中陈述,且部分将从该描述中变得明显,或可通过对本发明的实践而学到。本发明的特征和优点可通过所附权利要求书中特别指出的装置和组合来实现和获得。本发明的这些和其它特征可从以下描述和所附权利要求书中变得完全明白,或者可通过如下所述的对本发明的实践而学到。 
附图说明
为描述可获得本发明的上述和其它优点和特征的方式,将参考附图中示出的其特定实施例来呈现以上简要描述的本发明的更具体描述。要理解,这些附图仅描绘了本发明的典型实施例,且因此并不被认为是限制其范围,本发明将通过使用附图以附加的特殊性和细节来描述和解释,附图中: 
图1示出了依照本发明的示例实施例被配置成创建动态web服务的分布式系统; 
图2示出了依照本发明的示例实施例为传统应用程序组件生成动态web服务的方法的流程图; 
图3示出了为本发明提供合适的操作环境的示例系统。 
具体实施方式
本发明提供了用于为不被开发成在web服务环境内通信的传统应用程序组件生成动态web服务的方法、系统和计算机程序产品。本发明的实施例可包括包含如下更详细讨论的各种计算机硬件组件或模块的专用或通用计算机。 
本发明提供了一种允许管理事件在传统应用程序组件的初始化期间触发或导致动态web服务的生成的机制。类似于其它静态工具安装方法,如此处所支持的动态方法使用了描述用于与传统组件通信的接口的可用元数据。并非在一次性或偶 然的基础上通过工具安装来生成和表现web服务,而是在示例性实施例中,由作为应用程序初始化的一个标准部件的支持基础结构来生成web服务。在停止应用程序之后,提供停止对应的动态web服务并删除用于生成该动态web服务的web服务描述的终止序列。因此,每次当启动应用程序时,需要参考可用的元数据,并且将在进行中构建一致的服务。 
用于生成web服务的动态方法具有优于现有技术系统的若干优点。例如,由于对原始的组件没有任何修改,因此该动态方法通过管理操作启用web服务。该管理操作可以是在启动应用程序之后即启用web服务的简单配置实用程序。通过允许基于配置设置来生成web服务,管理员可促使动态web服务的创建,而不需要较高的开发者技能组。此外,由于不需要任何代码级迁移工作,因此用于传统组件的支持基础结构允许它保留在对应的传统语言中。 
另外,依照示例实施例所描述的动态方法具有优于静态工具安装方法的以下优点。首先,不管何时修改底层组件或开发新版本,将总是产生与组件定义相一致的web服务。因此,不与web服务同步的组件将不再有运行的机会。另外,服务的生存期可被容易地紧密耦合到传统组件的生存期,因为动态web服务启动(和生成)现在是组件启动的一部分。另一优点是,没有附加的包装组件要部署和管理。这是由于这样的事实,如下文更详细描述的,当应用程序不再运行时,没有服务的表现。因此,将按需生成动态web服务,使得可保证它总是在适当的位置。换言之,当在机器之间转移时,无需对web服务组件和传统组件进行变换。 
图1示出了如上所述的各种示例性实施例。如图所示,提供了支持web服务客户机145和传统客户机105两者的分布式系统100,由此允许对面向服务110的应用程序125进行访问。更具体地,向服务110提供了包括传统组件135的应用程序125。示例实施例允许管理员(未示出)设置管理配置设置155,它指示了应当在启动应用程序125之后即生成动态web服务175。因此,基于管理配置设置155,在应用程序125启动之后(以及可能服从从应用程序专用配置文件中拉出的其它配置),web服务初始化器180将访问来自目录数据库165的元数据160。注意,示例实施例允许用于应用程序125(以及对应的动态web服务175)的初始化的若干种方式。例如,对应用程序125的初始化的请求可通过来自管理员用户界面的输入来接收。在其它示例实施例中,在接收到对访问由应用程序125提供的服务的请求140(或其它类似类型的请求)之后即自动初始化应用程序125。当然,初始化应用程序125的其它公知的方式也可用于本发明。因此,用于初始化应用程序125 的任何具体方式或过程仅用于说明性目的,并不意味着限制或缩小本发明的范围,除非明确地要求保护。 
无论应用程序125是如何初始化的,如上所述,在初始化之后,即访问描述组件接口160的元数据。该元数据160是关于动态web服务175要如何与传统组件135通信的信息。换言之,元数据160特别地指示了以下的一个或多个:传统组件135需要什么调用115;要将什么参数115传递给传统组件135;应当以什么顺序传入参数115;以及消息交换模式,它指示,例如是否要从传统组件135接收返回值120。注意,所有的调用都包括参数。例如,FormatAllAvailableDisks()(格式化所有可用的磁盘)操作和其它调用不需要任何参数。因此,元数据160可以有或没有关于要传递到传统组件135的参数115的细节,这当然取决于要作出的调用的类型。 
在任何情况下,在访问元数据160之后,web服务初始化器180即可生成web服务描述150或契约(例如,WSDL文档)。另外,web服务初始化器180将在运行时期间使用web服务描述150来启动动态web服务175。另外,可能有必要使用web服务描述150来创建与其相一致的web服务客户机145。注意,尽管所生成的web服务描述150用于创建动态web服务175,这一事件对于本发明并不是重要的。换言之,web服务初始化器180在访问了元数据160之后,即可自动生成动态web服务175,而无需使用web服务描述150。因此,使用web服务描述150来生成动态web服务175仅用于说明性的目的,并不意味着限制或缩小本发明的范围,除非明确地要求保护。 
一旦创建了动态web服务175且传统组件135是活动的,则web服务客户机145可作出对访问由传统组件135提供的服务的请求140。请求140可包括诸如用于请求由传统组件135提供的服务的操作,和/或传统组件135需要的参数115(如果有)之类的内容。在接收到请求140之后,且基于该请求内的操作,动态web服务175检查请求140的内容并用适当的参数(如果有)向传统组件135作出适当的调用115。换言之,动态web服务175担当公共web服务请求消息140(例如,XML文档)和用于与传统组件135通信的适当调用和所需参数115(如果有)之间的转换器。 
如上所述,除适当的调用和所需的参数115(如果有)之外,动态web服务175应当被配置成知道用于传统组件135的适当消息交换模式。因此,如果需要返回值120,则动态web服务175期望这一返回。该返回值120然后可在适当的web 服务响应130中被格式化,该响应是由动态web服务175生成的。注意,尽管用于该示例的消息交换模式是请求—响应,但是其它消息交换模式也可用于本发明。因此,如此处所描述的对任何特定类型的消息交换模式的使用仅用于说明性目的,并不意味着限制或缩小本发明的范围,除非明确地要求保护。 
其它示例实施例为应用程序125提供了终止序列。当传统应用程序125被关闭或停止时,示例性实施例能够终止动态web服务175,并例如通过将其发送到回收站170来删除web服务描述150。因此,由于web服务描述150不被持久保存和/或重用,如果修改了传统组件175或提供了更新的版本,则不会有任何不一致性。 
注意,本发明也支持传统客户机105。因此,传统客户机105可用适当的参数115(如果有)直接向传统应用程序125作出适当的调用。返回值120(如果有)也可从传统应用程序125直接传递到传统客户机105。 
本发明也可按照包括功能步骤和/或非功能动作的方法来描述。以下是可在实施本发明时执行的动作和步骤的描述。通常,功能步骤按照所实现的结果来描述本发明,而非功能动作描述了用于实现特定结果的更具体的行动。尽管可以安特定的顺序描述或要求保护功能步骤或非功能动作,然而本发明不限于任何特定的顺序或动作和/或步骤的组合。此外,在权利要求书的叙述以及以下图2的流程图的描述中对步骤和/或动作的使用用于指示对这些术语的期望的特定使用。 
图2示出了用于本发明的各示例性实施例的流程图。以下图2的描述将偶然会参考来自图1的对应的元素。尽管可参考来自该图的特定元素,然而这些元素仅用于说明性目的,并非限制或缩小本发明的范围,除非明确地要求保护。 
图2示出了为不被开发、设计或编码成在web服务环境中通信的传统应用程序组件生成动态web服务的方法200的流程图。这些实施例允许管理事件在传统应用程序组件的初始化期间触发动态web服务的生成。方法200包括接收初始化应用程序的请求的动作205。例如,服务110可接收初始化应用程序125的请求。应用程序125将包括不被开发成与web服务应用程序,如web服务客户机145通信的传统组件135。该初始化应用程序的请求可响应于来自web服务客户机145的web服务请求消息140而接收,或者可以响应于来自服务110的计算设备处的用户界面的输入而接收。 
方法200还包括用于自动生成动态web服务的步骤225。步骤225包括标识管理配置设置指示要为传统组件生成动态web服务的动作210。例如,web服务初 始化器180可访问用于标识要在初始化应用程序125之后为传统组件135生成动态web服务175的管理配置设置155。 
基于管理配置设置155,步骤225还包括访问描述用于与传统组件通信的接口的元数据的动作215。例如,基于管理设置155,web服务初始化器180可访问来自目录数据库165的描述组件接口160的元数据。元数据160应当描述诸如适当的调用115、参数115、以及动态web服务125将用于与传统组件135通信的参数115的排序等内容。组件接口160的描述也可包括诸如用于传统组件135的消息交换模式等信息。 
最后,步骤225包括使用元数据来自动创建动态web服务的动作220。换言之,web服务初始化器180可创建web服务描述150,它可用于创建动态web服务175。在这一实施例中,web服务描述可以是WSDL文档。 
其它示例实施例能够从web服务客户机145接收web服务请求消息140。web服务请求消息140可包括用于请求由传统组件135提供的服务的各种参数和操作。使用web服务请求消息140内的信息,动态web服务175可作出对传统组件135的调用,并将适当的参数115(如果有)传递到传统组件135以供进一步的处理。 
在其它一些实施例中,基于接口描述160,可为传统组件135标识消息交换模式,其中对web服务客户机145需要响应130。之后,动态web服务175可从传统组件135接收返回值120,其中动态web服务175将返回值120格式化成web服务响应消息130。因此,响应消息130然后可被发送到web服务客户机145以供进一步的处理。注意,请求140和响应130通常是XML文档。 
在又一些其它实施例中,接收停止应用程序125的请求。基于停止应用程序125的请求,动态web服务175也被自动停止。另外,删除web服务描述150,使得在下一次初始化应用程序125之后将生成新的动态web服务175和新的web服务描述150。 
本发明的范围内的实施例也包括用于携带或在其上储存计算机指令或数据结构的计算机可读介质。这类计算机可读介质可以是可由通用或专用计算机访问的任一可用介质。作为示例而非局限,这类计算机可读介质可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、或其它可用来以计算机可执行指令或数据结构的形式携带或储存所期望的的程序代码装置并可由通用或专用计算机访问的任一介质。当通过网络或另一通信连接(或者硬布线、或者无线、或硬布线和无线的组合)向计算机传输或提供信息时,计算机适当地将 该连接视为计算机可读介质。由此,任一这类连接适当地称为计算机可读介质。上述的组合也应当包括在计算机可读介质的范围内。计算机可执行指令包括,如,促使通用计算机、专用计算机或专用处理设备执行特定的一个或一组功能的指令和数据。 
图3及以下讨论旨在提供对适于在其中实现本发明的计算环境的简要概括描述。尽管并非所需,但本发明将在诸如程序模块等由网络环境中的计算机执行的计算机可执行指令的一般上下文环境中描述。一般而言,程序模块包括例程、程序、对象、组件、数据结构等等,它们执行特定的任务或实现特定的抽象数据类型。计算机可执行指令、相关联的数据结构以及程序模块表示了用于执行这里揭示的方法的步骤的程序代码装置的示例。这一可执行指令或相关联数据结构的特定顺序表示了用于实现在这类步骤中所描述的功能的相应动作的示例。 
本领域的技术人员可以理解,本发明可以在具有多种类型计算机系统配置的网络计算环境中实践,包括个人计算机、手持式设备、多处理器系统、基于微处理器或可编程消费者电子设备、网络PC、小型机、大型机等等。本发明也可以在分布式计算环境中实践,其中,任务由通过通信网络连接(或者通过硬布线链路、或者通过无线链路、或通过硬布线或无线链路的组合)的本地和远程处理设备来执行。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。 
参考图3,用于实现本发明的示例性系统包括常规计算机320形式的通用计算设备,包括处理单元321、系统存储器322以及将包括系统存储器322的各类系统组件耦合至处理单元321的系统总线323。系统总线323可以是若干种总线结构类型的任一种,包括存储器总线或存储器控制器、外围总线以及使用各类总线体系结构的局部总线。系统存储器包括只读存储器(ROM)324和随机存取存储器(RAM)325。基本输入/输出系统(BIOS)326包含如在启动时协助在计算机320内的元件之间传输信息的基本例程,可储存在ROM 324中。 
计算机320也可包括用于对磁硬盘339进行读写的磁硬盘驱动器327、用于对可移动磁盘329进行读写的磁盘驱动器328以及用于对可移动光盘331,如CD-ROM或其它光介质进行读写的光盘驱动器330。磁硬盘驱动器327、磁盘驱动器328以及光盘驱动器330分别通过硬盘驱动器接口332、磁盘驱动器接口333和光盘驱动器接口333连接至系统总线323。驱动器及其相关联的计算机可读介质为计算机320提供了计算机可执行指令、数据结构、程序模块和其它数据的非易失性存储。尽管这里描述的示例环境采用了磁硬盘339、可移动磁盘329以及可移动光 盘331,然而也可以使用用于储存数据的其它类型的计算机可读介质,包括盒式磁带、闪存卡、数字多功能盘、Bernoulli盒式磁盘、RAM、ROM等等。 
包括一个或多个程序模块的程序代码装置可储存在硬盘339、磁盘329、光盘331、ROM 324或RAM 325中,包括操作系统335、一个或多个应用程序336、其它程序模块337以及程序数据338。用户可以通过键盘340、定点设备342或其它输入设备(未示出),如麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等等向计算机320输入命令和信息。这些和其它输入设备通常通过耦合至系统总线323的串行端口接口346连接到处理单元321。可选地,输入设备也可以通过其它接口连接,如并行端口、游戏端口或通用串行总线(USB)。监视器347或另一显示设备也通过接口,如视频适配器348连接到系统总线323。除监视器之外,个人计算机通常包括其它外围输出设备(未示出),如扬声器和打印机。 
计算机320可以使用到一个或多个远程计算机,如远程计算机349a和349b的逻辑连接在网络化环境中操作。远程计算机349a和349b的每一个可以是另一个人计算机、服务器、路由器、网络PC、对等设备或其它常见的网络节点,并通常包括许多或所有相对于计算机320所描述的元件,尽管在图3中仅示出了存储器存储设备350a和350b及其关联的应用程序336a和336b。图3描述的逻辑连接包括局域网(LAN)351和广域网(WAN)352,这里示出作为示例而非局限。这类网络环境常见于办公室范围或企业范围计算机网络、内联网以及因特网。 
当在LAN网络环境中使用时,计算机320通过网络接口或适配器353连接至局域网351。当在WAN网络环境中使用时,计算机320可包括调制解调器353或用于通过广域网352,如因特网建立通信的其它装置。调制解调器353可以是内置或外置的,它通过串行端口接口336连接至系统总线323。在网络化环境中,相对于计算机320所描述的程序模块或其部分可储存在远程存储器存储设备中。可以理解,示出的网络连接是示例性的,也可以使用通过广域网352建立通信的其它装置。 
本发明可以用其它特定形式来实施,而不脱离其精神或本质特征。所描述的实施例被认为在所有方面都仅是说明性而非限制性的。因此,本发明的范围由所附权利要求书而非以上描述来指示。落入所附权利要求书的等效技术方案的意义和范围之内的所有改变都包含在其范围之内。 

Claims (18)

1.在分布式计算系统中的服务计算设备处,一种通过允许管理事件在传统应用程序组件的初始化期间导致动态web服务的生成,为不被开发成在web服务环境内通信的传统应用程序组件生成动态web服务的方法,所述方法包括以下动作:
接收初始化应用程序的请求,所述应用程序包括不被开发成与web服务应用程序通信的一个或多个传统组件;
标识指示要在初始化所述应用程序之后为所述一个或多个传统组件生成动态web服务的管理配置设置;
基于所述管理配置设置,访问描述用于与所述一个或多个传统组件通信的接口的元数据;
使用所述元数据来自动生成与所述接口描述相一致的动态web服务,以允许web服务客户机通过转换过程与所述一个或多个传统组件进行通信;
从所述web服务客户机接收web服务请求消息,所述web服务请求消息包括用于请求由所述一个或多个传统组件提供的服务的一个或多个操作;以及
基于所述一个或多个操作,使用所述动态web服务来对所述一个或多个传统组件作出一个或多个传统调用;
所述方法还包括:
当所述应用程序被关闭或停止时,自动终止所述动态web服务,使得在下一次初始化所述应用程序之后生成新的动态web服务,并且当修改了所述一个或多个传统组件或提供了所述一个或多个传统组件的已更新版本时,在所述新的动态web服务和所述一个或多个传统组件的定义之间没有任何不一致。
2.如权利要求1所述的方法,其特征在于,所述web服务请求消息还包括一个或多个参数,所述方法还包括以下动作:
将所述一个或多个参数传递到所述一个或多个传统组件的一个或多个以供进一步的处理。
3.如权利要求1所述的方法,其特征在于,还包括以下动作:
基于所述接口描述,标识用于所述一个或多个传统组件的消息交换模式需要对所述web服务客户机的响应;
从所述一个或多个传统组件接收一个或多个返回值;
使用所述动态web服务以将所述一个或多个返回值格式化成web服务响应消息;以及
将所述web服务响应消息发送到所述web服务客户机以供进一步的处理。
4.如权利要求3所述的方法,其特征在于,所述web服务请求和web服务响应消息是XML文档。
5.如权利要求1所述的方法,其特征在于,所述接口描述描述了调用操作、参数、参数排序、或用于与所述一个或多个传统组件通信的消息交换模式中的一个或多个。
6.如权利要求1所述的方法,其特征在于,所述元数据用于首先生成web服务描述,所述web服务描述然后用于生成所述动态web服务。
7.如权利要求6所述的方法,其特征在于,所述web服务描述是WSDL文档。
8.如权利要求6所述的方法,其特征在于,还包括以下动作:
当所述应用程序被关闭或停止时,删除所述web服务描述,使得在下一次初始化所述应用程序时还将生成新的web服务描述。
9.如权利要求1所述的方法,其特征在于,所述初始化应用程序的请求是响应于来自所述web服务客户机的web服务请求消息而接收的。
10.如权利要求1所述的方法,其特征在于,所述初始化应用程序的请求是响应于来自所述服务计算设备处的用户界面的输入而接收的。
11.在分布式系统中的服务计算设备处,一种通过允许管理事件在传统应用程序组件的初始化期间导致动态web服务的生成,为不被开发成在web服务环境中通信的传统应用程序组件生成动态web服务的方法,所述方法包括:
接收初始化应用程序的请求的动作,所述应用程序包括不被开发成与述web服务应用程序通信的一个或多个传统组件;
基于所述请求,用于动态地生成与描述用于与所述一个或多个传统组件通信的接口的元数据相一致的动态web服务的步骤,所述动态web服务用于允许web服务客户机通过转换过程与所述一个或多个传统组件通信;
从所述web服务客户机接收web服务请求消息的动作,所述web服务请求消息包括用于请求由所述一个或多个传统组件提供的服务的一个或多个操作;以及
基于所述一个或多个操作,使用所述动态web服务来对所述一个或多个传统组件作出一个或多个传统调用的动作;
所述方法还包括:
当所述应用程序被关闭或停止时,自动终止所述动态web服务,使得在下一次初始化所述应用程序之后生成新的动态web服务,并且当修改了所述一个或多个传统组件或提供了所述一个或多个传统组件的已更新版本时,在所述新的动态web服务和所述一个或多个传统组件的定义之间没有任何不一致。
12.如权利要求11所述的方法,其特征在于,所述元数据用于首先生成web服务描述,所述web服务描述然后用于生成所述动态web服务。
13.如权利要求12所述的方法,其特征在于,还包括以下动作:
当所述应用程序被关闭或停止时,删除所述web服务描述,使得当下一次初始化所述应用程序时,还将生成新的web服务描述。
14.如权利要求11所述的方法,其特征在于,所述初始化应用程序的请求是响应于来自所述web服务客户机的web服务请求消息而接收的。
15.在分布式系统中的服务计算设备处的,一种通过允许管理事件在传统应用程序组件的初始化期间导致动态web服务的生成,为不被开发成在web服务环境中通信的传统应用程序组件生成动态web服务的设备,所述设备包括:
用于接收初始化应用程序的请求的装置,所述应用程序包括不被开发成与web服务应用程序通信的一个或多个传统组件;
用于标识管理配置设置的装置,所述管理配置设置指示要在初始化所述应用程序之后为所述一个或多个传统组件生成动态web服务;
用于基于所述管理配置设置,访问描述用于与所述一个或多个传统组件通信的接口的元数据的装置;
用于使用所述元数据自动生成与所述接口描述相一致的动态web服务,以允许web客户机通过转换过程与所述一个或多个传统组件通信的装置;
用于从所述web服务客户机接收web服务请求消息的装置,所述web服务请求消息包括用于请求由所述一个或多个传统组件提供的服务的一个或多个操作;以及
用于基于所述一个或多个操作,使用所述动态web服务来对所述一个或多个传统组件作出一个或多个传统调用的装置;
所述设备还包括:
用于当所述应用程序被关闭或停止时,自动终止所述动态web服务,使得在下一次初始化所述应用程序之后生成新的动态web服务,并且当修改了所述一个或多个传统组件或提供了所述一个或多个传统组件的已更新版本时,在所述新的动态web服务和所述一个或多个传统组件的定义之间没有任何不一致的装置。
16.如权利要求15所述的设备,其特征在于,所述web服务请求消息还包括一个或多个参数,所述设备还包括:
用于将所述一个或多个参数传递到所述一个或多个传统组件的一个或多个以供进一步的处理的设备。
17.如权利要求15所述的设备,其特征在于,还包括:
用于基于所述接口描述,标识用于所述一个或多个传统组件的消息交换模式需要对所述web服务客户机的响应的装置;
用于从所述一个或多个传统组件接收一个或多个返回值的装置;
用于使用所述动态web服务以将所述一个或多个返回值格式化成web服务响应消息的装置;以及
用于将所述web服务响应消息发送到所述web服务客户机以供进一步的处理的装置。
18.如权利要求15所述的设备,其特征在于,所述接口描述描述了调用操作、参数、或用于与所述一个或多个传统组件通信的消息交换模式中的一个或多个。
CN2006100085128A 2005-03-08 2006-02-10 用于传统组件的动态服务生成的方法和设备 Expired - Fee Related CN1832478B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/075,417 2005-03-08
US11/075,417 US7590988B2 (en) 2005-03-08 2005-03-08 Dynamic service generation for legacy components

Publications (2)

Publication Number Publication Date
CN1832478A CN1832478A (zh) 2006-09-13
CN1832478B true CN1832478B (zh) 2012-05-02

Family

ID=36282650

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006100085128A Expired - Fee Related CN1832478B (zh) 2005-03-08 2006-02-10 用于传统组件的动态服务生成的方法和设备

Country Status (5)

Country Link
US (1) US7590988B2 (zh)
EP (1) EP1701261A1 (zh)
JP (1) JP5259924B2 (zh)
KR (1) KR20060099392A (zh)
CN (1) CN1832478B (zh)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7593994B2 (en) * 2005-03-08 2009-09-22 Microsoft Corporation Generating a dynamic web service and dynamic service surrogate for legacy application components
CA2527447C (en) * 2005-11-18 2015-05-05 Allen Vi Cuong Chan Message oriented construction of web services
US8914770B2 (en) * 2006-01-26 2014-12-16 International Business Machines Corporation Generating compatible partner processes in BPEL
JP4958481B2 (ja) * 2006-06-01 2012-06-20 キヤノン株式会社 Webサービス実行方法及び情報処理装置
US7971184B2 (en) * 2007-02-23 2011-06-28 Accenture Global Services Limited GUI-based application to web services conversion system
US7971183B2 (en) * 2007-02-23 2011-06-28 Accenture Global Services Limited Tool for converting legacy applications to web services
US7865535B2 (en) * 2007-05-18 2011-01-04 International Business Machines Corporation Apparatus, system, and method for a data server-managed web services runtime
US8122444B2 (en) * 2007-08-02 2012-02-21 Accenture Global Services Limited Legacy application decommissioning framework
US8005788B2 (en) * 2008-01-28 2011-08-23 International Business Machines Corporation System and method for legacy system component incremental migration
JP5078726B2 (ja) * 2008-01-29 2012-11-21 株式会社リコー 情報処理装置、サービス制御方法及びサービス制御プログラム
US8112771B2 (en) * 2008-01-30 2012-02-07 Microsoft Corporation Managing component programs within a service application
JP5084537B2 (ja) * 2008-02-05 2012-11-28 三菱電機株式会社 サーバ装置及びプログラム
US8762938B2 (en) 2008-04-28 2014-06-24 Salesforce.Com, Inc. Object-oriented system for creating and managing websites and their content
US8060586B2 (en) * 2009-02-03 2011-11-15 Microsoft Corporation Dynamic web service deployment and integration
US8495193B2 (en) * 2010-02-23 2013-07-23 Microsoft Corporation Centralized management tool for remote presentation session server farms
CN101807204B (zh) * 2010-03-05 2012-02-15 武汉大学 一种遥感图像处理Web服务动态生成方法
CN101840334B (zh) * 2010-04-16 2013-04-17 中国电子科技集团公司第二十八研究所 一种软件构件服务化封装方法
CN102262527B (zh) 2010-05-31 2015-12-09 国际商业机器公司 生成网络服务的方法和系统
US9223892B2 (en) 2010-09-30 2015-12-29 Salesforce.Com, Inc. Device abstraction for page generation
US8935360B2 (en) 2010-12-03 2015-01-13 Salesforce.Com, Inc. Techniques for metadata-driven dynamic content serving
US9286037B2 (en) 2010-12-29 2016-03-15 Microsoft Technology Licensing, Llc Platform for distributed applications
CN102622211B (zh) * 2011-01-27 2016-05-25 腾讯科技(深圳)有限公司 一种应用程序开发的方法和装置
US9569274B2 (en) 2012-10-16 2017-02-14 Microsoft Technology Licensing, Llc Distributed application optimization using service groups
CN105404502A (zh) * 2015-10-20 2016-03-16 浪潮软件集团有限公司 一种方便手机app九宫格、列表开发的js组件
US10979516B1 (en) 2020-03-27 2021-04-13 Mastercard International Incorporated Monitoring and managing services in legacy systems using cloud native monitoring and managing tools
WO2022252068A1 (zh) * 2021-05-31 2022-12-08 西门子股份公司 应用程序构建方法、执行方法、计算设备以及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020152210A1 (en) * 2001-04-03 2002-10-17 Venetica Corporation System for providing access to multiple disparate content repositories with a single consistent interface
CN1512389A (zh) * 2002-12-27 2004-07-14 ض� 动态服务注册表
US6792605B1 (en) * 1999-06-10 2004-09-14 Bow Street Software, Inc. Method and apparatus for providing web based services using an XML Runtime model to store state session data

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6049719A (en) * 1994-11-12 2000-04-11 U.S. Philips Corporation Communication system with automatic call diversion or forwarding
JPH11224226A (ja) * 1997-11-21 1999-08-17 Fuji Xerox Co Ltd クライアント・サーバ間のゲートウェイにおけるインタフェース及びクライアント・サーバ間のプロトコルマッピング方法
GB2332288A (en) * 1997-12-10 1999-06-16 Northern Telecom Ltd agent enabling technology
JP2000172653A (ja) * 1998-12-03 2000-06-23 Oki Electric Ind Co Ltd 分散システム
US6381737B1 (en) * 1999-04-23 2002-04-30 Sun Microsystems, Inc. Automatic adapter/stub generator
JP2001297067A (ja) * 2000-04-13 2001-10-26 Skill Informations Co Ltd ネットワークサービスシステム
US20020116454A1 (en) * 2000-12-21 2002-08-22 William Dyla System and method for providing communication among legacy systems using web objects for legacy functions
US6993585B1 (en) * 2000-12-22 2006-01-31 Unisys Corporation Method and system for handling transaction requests from workstations to OLTP enterprise server systems utilizing a common gateway
WO2002065278A2 (en) * 2001-02-12 2002-08-22 Lto Limited A presentation server which enables a client device to run a network based application
CA2348706A1 (en) * 2001-05-25 2002-11-25 Ibm Canada Limited-Ibm Canada Limitee Converting user interface source code of a legacy application to web pages
US7340714B2 (en) * 2001-10-18 2008-03-04 Bea Systems, Inc. System and method for using web services with an enterprise system
US7188163B2 (en) * 2001-11-26 2007-03-06 Sun Microsystems, Inc. Dynamic reconfiguration of applications on a server
US7284039B2 (en) * 2002-12-17 2007-10-16 International Business Machines Corporation Apparatus and method for flexible web service deployment
US7805713B2 (en) * 2003-10-27 2010-09-28 Hewlett-Packard Development Company, L.P. Transaction processing architecture
US7266550B2 (en) * 2004-01-29 2007-09-04 Sap Aktiengesellschaft Managing application status information for a computer application
US7593994B2 (en) * 2005-03-08 2009-09-22 Microsoft Corporation Generating a dynamic web service and dynamic service surrogate for legacy application components

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6792605B1 (en) * 1999-06-10 2004-09-14 Bow Street Software, Inc. Method and apparatus for providing web based services using an XML Runtime model to store state session data
US20020152210A1 (en) * 2001-04-03 2002-10-17 Venetica Corporation System for providing access to multiple disparate content repositories with a single consistent interface
CN1512389A (zh) * 2002-12-27 2004-07-14 ض� 动态服务注册表

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Hoang PHAM HUY,TakahiroKAWAMURA,TetsuoHASEGAWA.Web Service Gateway - a step forward to e-business.Proceedings of the IEEE International Conference on Web Services.2004,648-655.
Hoang PHAM HUY,TakahiroKAWAMURA,TetsuoHASEGAWA.Web Service Gateway- a step forward to e-business.Proceedings of the IEEE International Conference on Web Services.2004,648-655. *

Also Published As

Publication number Publication date
JP2006252536A (ja) 2006-09-21
EP1701261A1 (en) 2006-09-13
CN1832478A (zh) 2006-09-13
US20060206599A1 (en) 2006-09-14
US7590988B2 (en) 2009-09-15
JP5259924B2 (ja) 2013-08-07
KR20060099392A (ko) 2006-09-19

Similar Documents

Publication Publication Date Title
CN1832478B (zh) 用于传统组件的动态服务生成的方法和设备
CN1832476B (zh) 动态服务代理方法与系统
US7552443B2 (en) System and method for implementing an event adapter
KR101219875B1 (ko) 메타데이터 구동 비즈니스 로직 프로세싱을 위한 방법 및장치
CA2511912A1 (en) System and method for building and execution of platform-neutral generic services&#39; client applications
CN108829467B (zh) 第三方平台对接实现方法、装置、设备及存储介质
EP1444609A1 (en) Application view component for system integration
CN101257494B (zh) 用于访问在计算机网络中实现的资源的方法和系统
EP1506478B1 (en) Exchange infrastructure system and method
CN101521592B (zh) 一种建立打印机snmp代理的方法及装置
CN114546410A (zh) 一种基于设计模式的代码优化方法及相关设备
US20070143770A1 (en) Mapping between anonymous modules in a network environment
Serain Client/server: Why? What? How?
Cao et al. Marshaling and unmarshaling models using the entity-relationship model
Kinny A framework for multi-agent systems development
Stan et al. A PROPOSED APPROACH FOR PLATFORM INTEROPERABILITY.
Loureiro Monetary cost-efficient query distribution in ISDN-connected heterogeneous databases
Costagliola et al. A Framework for the Support of the SCORM Run-Time Environment
Zhou et al. An Open Source Toolkit for Grid Resources Scheduling in Digital Library
Leach Object Technology Standards—an OMG Progress Report
Rodrigues et al. A Mobile Systems Interface Protocol
Cano et al. OSGi services design using Model Driven Architecture
JP2000172653A (ja) 分散システム
AU2002347920A1 (en) Application view component for system integration
JP2005346595A (ja) リモートバックアップシステム

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
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150422

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150422

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120502

Termination date: 20210210

CF01 Termination of patent right due to non-payment of annual fee