CN1832478A - 用于传统组件的动态服务生成 - Google Patents

用于传统组件的动态服务生成 Download PDF

Info

Publication number
CN1832478A
CN1832478A CNA2006100085128A CN200610008512A CN1832478A CN 1832478 A CN1832478 A CN 1832478A CN A2006100085128 A CNA2006100085128 A CN A2006100085128A CN 200610008512 A CN200610008512 A CN 200610008512A CN 1832478 A CN1832478 A CN 1832478A
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.)
Granted
Application number
CNA2006100085128A
Other languages
English (en)
Other versions
CN1832478B (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 (20)

1.一种在分布式计算系统中的服务计算设备处的方法,所述方法通过允许管理事件在传统应用程序组件的初始化期间导致动态web服务的生成,为不被开发成在web服务环境内通信的传统应用程序组件生成动态web服务,所述方法包括以下动作:
接收初始化应用程序的请求,所述应用程序包括不被开发成与web服务应用程序通信的一个或多个传统组件;
标识指示要在初始化所述应用程序之后为所述一个或多个传统组件生成动态web服务的管理配置设置;
基于所述管理配置设置,访问描述用于与所述一个或多个传统组件通信的接口的元数据;以及
使用所述元数据来自动生成与所述接口描述相一致的动态web服务,以允许web服务客户机通过转换过程与所述一个或多个传统组件进行通信。
2.如权利要求1所述的方法,还包括以下动作:
从所述web服务客户机接收web服务请求消息,所述web服务请求消息包括用于请求由所述一个或多个传统组件提供的服务的一个或多个操作;以及
基于所述一个或多个操作,使用所述动态web服务来对所述一个或多个传统组件作出一个或多个传统调用。
3.如权利要求2所述的方法,其特征在于,所述web服务请求消息还包括一个或多个参数,所述方法还包括以下动作:
将所述一个或多个参数传递到所述一个或多个传统组件的一个或多个以供进一步的处理。
4.如权利要求2所述的方法,其特征在于,还包括以下动作:
基于所述接口描述,标识用于所述一个或多个传统组件的消息交换模式需要对所述web服务客户机的响应;
从所述一个或多个传统组件接收一个或多个返回值;
使用所述动态web服务以将所述一个或多个返回值格式化成web服务响应消息;以及
将所述web服务响应消息发送到所述web服务客户机以供进一步的处理。
5.如权利要求4所述的方法,其特征在于,所述web服务请求和web服务响应消息是XML文档。
6.如权利要求1所述的方法,其特征在于,所述接口描述描述了调用操作、参数、参数排序、或用于与所述一个或多个传统组件通信的消息交换模式中的一个或多个。
7.如权利要求1所述的方法,其特征在于,所述元数据用于首先生成web服务描述,所述web服务描述然后用于生成所述动态web服务。
8.如权利要求7所述的方法,其特征在于,所述web服务描述是WSDL文档。
9.如权利要求7所述的方法,其特征在于,还包括以下动作:
接收停止所述应用程序的请求;
基于停止所述应用程序的请求,自动停止所述动态web服务;以及
删除所述web服务描述,使得在下一次初始化所述应用程序时将生成新的动态web服务和新的web服务描述。
10.如权利要求1所述的方法,其特征在于,所述初始化应用程序的请求是响应于来自所述web服务客户机的web服务请求消息而接收的。
11.如权利要求1所述的方法,其特征在于,所述初始化应用程序的请求是响应于来自所述服务计算设备处的用户界面的输入而接收的。
12.一种在分布式系统中的服务计算设备处的方法,所述方法通过允许管理事件在传统应用程序组件的初始化期间导致动态web服务的生成,为不被开发成在web服务环境中通信的传统应用程序组件生成动态web服务,所述方法包括:
接收初始化应用程序的请求的动作,所述应用程序包括不被开发成与述web服务应用程序通信的一个或多个传统组件;
基于所述请求,用于动态地生成与描述用于与所述一个或多个传统组件通信的接口的元数据相一致的动态web服务的步骤,所述动态web服务用于允许web服务客户机通过转换过程与所述一个或多个传统组件通信。
13.如权利要求12所述的方法,其特征在于,所述元数据用于首先生成web服务描述,所述web服务描述然后用于生成所述动态web服务。
14.如权利要求13所述的方法,其特征在于,还包括以下动作:
接收停止所述应用程序的请求;
基于停止所述应用程序的请求,自动停止所述动态web服务;以及
删除所述web服务描述,使得当下一次初始化所述应用程序时,将生成新的动态web服务和新的web服务描述。
15.如权利要求12所述的方法,其特征在于,所述初始化应用程序的请求是响应于来自所述web服务客户机的web服务请求消息而接收的。
16.一种在分布式系统中的服务计算设备处的计算机程序产品,所述计算机程序产品用于实现一种方法,所述方法通过允许管理事件在传统应用程序组件的初始化期间导致动态web服务的生成,为不被开发成在web服务环境中通信的传统应用程序组件生成动态web服务,所述计算机程序产品包括其上储存有计算机可执行指令的一个或多个计算机可读介质,当由处理器执行所述指令时,可使所述分布式计算系统执行以下动作:
接收初始化应用程序的请求,所述应用程序包括不被开发成与web服务应用程序通信的一个或多个传统组件;
标识管理配置设置,所述管理配置设置指示要在初始化所述应用程序之后为所述一个或多个传统组件生成动态web服务;
基于所述管理配置设置,访问描述用于与所述一个或多个传统组件通信的接口的元数据;以及
使用所述元数据自动生成与所述接口描述相一致的动态web服务,以允许web客户机通过转换过程与所述一个或多个传统组件通信。
17.如权利要求16所述的计算机程序产品,其特征在于,还包括可使得所述分布式系统执行以下动作的计算机可执行指令:
从所述web服务客户机接收web服务请求消息,所述web服务请求消息包括用于请求由所述一个或多个传统组件提供的服务的一个或多个操作;以及
基于所述一个或多个操作,使用所述动态web服务来对所述一个或多个传统组件作出一个或多个传统调用。
18.如权利要求17所述的计算机程序产品,其特征在于,所述web服务请求消息还包括一个或多个参数,所述计算机程序产品还包括可使所述分布式计算系统执行以下动作的计算机可执行指令:
将所述一个或多个参数传递到所述一个或多个传统组件的一个或多个以供进一步的处理。
19.如权利要求17所述的计算机程序产品,其特征在于,还包括可使所述分布式计算系统执行以下动作的计算机可执行指令:
基于所述接口描述,标识用于所述一个或多个传统组件的消息交换模式需要对所述web服务客户机的响应;
从所述一个或多个传统组件接收一个或多个返回值;
使用所述动态web服务以将所述一个或多个返回值格式化成web服务响应消息;以及
将所述web服务响应消息发送到所述web服务客户机以供进一步的处理。
20.如权利要求16所述的计算机程序产品,其特征在于,所述接口描述描述了调用操作、参数、或用于与所述一个或多个传统组件通信的消息交换模式中的一个或多个。
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 US7590988B2 (en) 2005-03-08 2005-03-08 Dynamic service generation for legacy components
US11/075,417 2005-03-08

Publications (2)

Publication Number Publication Date
CN1832478A true CN1832478A (zh) 2006-09-13
CN1832478B 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)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101807204A (zh) * 2010-03-05 2010-08-18 武汉大学 一种遥感图像处理Web服务动态生成方法
CN101840334A (zh) * 2010-04-16 2010-09-22 中国电子科技集团公司第二十八研究所 一种软件构件服务化封装方法
CN101933000A (zh) * 2008-01-30 2010-12-29 微软公司 管理服务应用程序中的组件程序
CN102202078A (zh) * 2010-02-23 2011-09-28 微软公司 用于远程呈现会话服务器场的集中式管理工具

Families Citing this family (21)

* 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サービス実行方法及び情報処理装置
US7971183B2 (en) * 2007-02-23 2011-06-28 Accenture Global Services Limited Tool for converting legacy applications to web services
US7971184B2 (en) * 2007-02-23 2011-06-28 Accenture Global Services Limited GUI-based application to web services conversion system
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 株式会社リコー 情報処理装置、サービス制御方法及びサービス制御プログラム
JP5084537B2 (ja) * 2008-02-05 2012-11-28 三菱電機株式会社 サーバ装置及びプログラム
EP2271984A4 (en) 2008-04-28 2012-01-18 Salesforce Com Inc OBJECT-BASED SYSTEM FOR CREATING AND MANAGING WEB SITES AND THEIR CONTENT
US8060586B2 (en) * 2009-02-03 2011-11-15 Microsoft Corporation Dynamic web service deployment and integration
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

Family Cites Families (19)

* 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
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
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
GB2377784B (en) * 2001-02-12 2003-11-05 Altio Ltd A presentation server which enables a client device to run a network based application
US20020152210A1 (en) * 2001-04-03 2002-10-17 Venetica Corporation System for providing access to multiple disparate content repositories with a single consistent interface
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
US20030097345A1 (en) * 2001-10-18 2003-05-22 Mitch Upton System and method for invoking business functionality for a workflow
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
US20040128345A1 (en) * 2002-12-27 2004-07-01 Robinson Scott H. Dynamic service registry
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

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101933000A (zh) * 2008-01-30 2010-12-29 微软公司 管理服务应用程序中的组件程序
CN101933000B (zh) * 2008-01-30 2014-03-05 微软公司 管理服务应用程序中的组件程序
CN102202078A (zh) * 2010-02-23 2011-09-28 微软公司 用于远程呈现会话服务器场的集中式管理工具
CN102202078B (zh) * 2010-02-23 2015-11-25 微软技术许可有限责任公司 一种用于配置服务器场的多个异类角色的方法和系统
CN101807204A (zh) * 2010-03-05 2010-08-18 武汉大学 一种遥感图像处理Web服务动态生成方法
CN101807204B (zh) * 2010-03-05 2012-02-15 武汉大学 一种遥感图像处理Web服务动态生成方法
CN101840334A (zh) * 2010-04-16 2010-09-22 中国电子科技集团公司第二十八研究所 一种软件构件服务化封装方法
CN101840334B (zh) * 2010-04-16 2013-04-17 中国电子科技集团公司第二十八研究所 一种软件构件服务化封装方法

Also Published As

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

Similar Documents

Publication Publication Date Title
CN1832478A (zh) 用于传统组件的动态服务生成
CN1298151C (zh) 用于获取网格中的状态信息的方法和设备
CN1832476B (zh) 动态服务代理方法与系统
US7080092B2 (en) Application view component for system integration
CN1816050A (zh) 利用抽象描述来生成、交换和配置服务和客户机运行库
CN1809068A (zh) Web应用程序架构
CA2511912A1 (en) System and method for building and execution of platform-neutral generic services&#39; client applications
CN1577242A (zh) 用于自动配置的系统和方法
CN1592291A (zh) 管理服务状态数据的方法和系统
CN1609789A (zh) 模块化对象串行化体系结构
CN1658609A (zh) 定制应用内容供应的系统和方法
CN1820254A (zh) 分布计算域内的应用服务器对象级安全性
CN1816049A (zh) 分布式应用程序的面向对象和面向服务的表示之间的映射
CN101056429A (zh) 通用业务系统及其实现方法
CN101043379A (zh) 网络管理装置与网络管理方法
EP1444609A1 (en) Application view component for system integration
CN1625179A (zh) 按可定制的、基于标签协议中的引用发送
CN108153919A (zh) Dbf数据导出平台及其导出方法
CN113835693A (zh) 代码生成方法、装置、电子设备、存储介质
Schuchardt et al. Ecce—a problem‐solving environment's evolution toward Grid services and a Web architecture
US20060023688A1 (en) Mobile exchange infrastructure
CN1945527A (zh) 可实现代码复用的server版代码生成系统
CN1991752A (zh) 用于向可作为模板的解决方案中集成应用的方法和系统
CN1956445A (zh) 一种面向Web服务的门户组件的实现方法
CN1870512A (zh) 一种实现信息管理的方法及实现事件路由的装置

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120502

Termination date: 20210210