首页> 中国专利> 把传统应用程序合并到分布式数据处理环境中的方法和系统

把传统应用程序合并到分布式数据处理环境中的方法和系统

摘要

通过把每个传统应用程序封装到附有企业JavaBean(EJB)接口规范的新应用程序中,把现有或传统软件应用程序合并到分布式数据处理环境中的系统和方法。含有EJB接口的新应用程序允许在诸如因特网之类的分布式处理环境或诸如内联网之类的虚拟专用网中使用应用程序。

著录项

  • 公开/公告号CN1526094A

    专利类型发明专利

  • 公开/公告日2004-09-01

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN02804892.X

  • 发明设计人 畠中岩;

    申请日2002-01-16

  • 分类号G06F9/44;G06F9/46;

  • 代理机构北京市柳沈律师事务所;

  • 代理人郭定辉

  • 地址 美国纽约州

  • 入库时间 2023-12-17 15:30:37

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2011-03-30

    未缴年费专利权终止 IPC(主分类):G06F9/44 授权公告日:20060531 终止日期:20100220 申请日:20020116

    专利权的终止

  • 2006-05-31

    授权

    授权

  • 2004-11-10

    实质审查的生效

    实质审查的生效

  • 2004-09-01

    公开

    公开

说明书

本发明涉及如下专利:(i)由C.Bialik等人在2000年1月26日提出的、名称为“用于供供应链管理之用的数据库管理的方法和系统(Method andSystem for Data Management for Supply Chain Management)”并转让给本发明的受让人的待审美国专利申请第09/491,834号(摘要CHA9-99-014);和(ii)同时由Iwao Hatanaka提出的、名称为“分布式客户机-服务器环境下自动对话资源清理的方法和系统(Method and System for AutomatedSession Resource Clean-up in a Distributed Client-ServerEnvironment)”的美国专利申请第x(待指定)号(摘要CHA9-99-015)。

技术领域

本发明涉及把一个或多个传统软件应用程序合并到像可以在客户机-服务器环境中找到的那样的分布式数据处理系统中的系统和方法。

背景技术

许多大型机构都已经处理了收集的和用于运行源自集中式数据处理设施的机构的数据,在这种集中式数据处理设施中,至少一台主计算机配有应用程序和数据库和生成运行源自集中式设备的机构所需的信息。这种数据处理牵涉到在大型、局部计算机系统上运行的大型、往往定制的软件程序的使用。这样的系统往往被称为企业计算或主机世界。

但是,近年来,许多因素都已经发展成要把数据处理从大型应用程序在单个主机上运行的主机世界改变成其中应用程序和数据库位于各个不同地方和把数据处理网络用于互连数个(更多个,但较小和较廉价)数据处理系统,在这些数个数据处理系统中进行处理的分布式数据处理系统或称为客户机-服务器环境的那一种。

在客户机-服务器环境下,为了处理分布式环境下的信息,将局部终端(有时称为客户机)与服务器相连接。时常,客户机本身就是与服务器通信的数据处理系统,与客户机相比,一般说来,服务器是资源增加了的数据处理系统,它包括在客户机所在地得不到的应用程序和数据。Cessna等人在1999年9月30日提出的、名称为“基于多维特性的动态分层分组和计算的框架(Framework for Dynamic Hierarchical Grouping and Calculation basedon Multidimensional Characteristics)”的待审美国专利申请第09/409,345号(摘要CHA9-1999-0004)相当详细地描述了这样的系统。

客户机往往位于远离服务器的地方,并且,利用例如单独或与诸如卫星或微波通信之类的其它通信系统结合在一起、包括硬件和在像利用电活线提供的那样的电话服务上运行的软件的电信设施与服务器通信。

将数据处理从集中式或企业计算改变成分布式或客户机-服务器计算所带来的问题是,还没有开发出用一套完备的应用程序取代已经与集中式或企业计算相联系的那些应用程序的新系统,并且,还没有便利的方式把企业或集中定位的单个应用程序(有时也称为“传统”应用程序)移植成在数据处理网络上使用分布式处理的客户机-服务器应用程序。

客户机-服务器或分布式应用程序就它与数据传输网络和与其它应用程序的接口而言,必须遵从一套相当严格的规则或方针。传统应用程序并不那么受此限制,并且,事实上,由于它仅仅必须是内部一致的,所以,对于主机应用程序来说,一些传统应用程序采纳了良好的编程技术(譬如,建议的文件编制和接口信息),而其它传统应用程序则没有。重写传统应用程序,使它们与新的计算环境相适应要花费大量的时间和资源,这样的时间和资源非常昂贵,并且,会把错误带进来。

于是,现有系统存在着非人所愿的缺点和局限性。

发明内容

本发明试图通过提供把传统应用程序合并到分布式客户机-服务器环境中的系统和方法,克服现有系统的一些或全部局限性和缺点。根据本发明的一个方面,提供了把传统应用程序合并到分布式数据处理环境中的方法,该方法的步骤包括:分析传统应用程序,将它的功能分解成部件(component);把这些部件分配给不同服务器;把便携式机器无关接口提供给每个部件;和把索引提供给部件和接口。在本发明的优选方法中,便携式机器无关(portable machine independent)接口是企业JavaBean(EJB)接口。

根据本发明的第二方面,提供了把传统应用程序合并到分布式数据处理环境中的系统,该系统包括:位于与网络耦合的服务器上的传统应用程序;围绕传统应用程序周围的便携式机器无关包裹(wrapper),该包裹包括考虑到网络上应用程序的分布式处理的接口,从而,该接口考虑到分布式处理和传统应用程序保留它的常规处理。最好,便携式机器无关包裹是企业JavaBean(EJB)包裹。

考虑到与来自客户机的远程调用一起要用在分布式数据处理环境中的传统应用程序,本发明具有既简单又易于实现的优点。并且,本发明考虑到要修改的和用在分布式数据处理环境中的传统应用程序。

本发明牵涉到设立一套在所有应用程序上统一使用的公用变量。

本系统牵涉到接受传统应用程序,和把使用企业JavaBean(EJB)接口规范和把现有传统应用程序功能封装到可分配部件中的基于部件的前端或接口提供给它。然后,这种接口使用术语的公用词典,使它与其它应用程序(尤其在分布式处理环境中的那些应用程序)交接。

本系统还考虑到标识应用程序中的变量的表格,从而考虑到那些变量的统一使用。本发明还考虑到要传送给应用程序的变量的预定次序的建立,从而,考虑到客户机和服务器之间的更有效通信。

通过结合附图,对本发明的优选实施例进行如下详细描述,本发明的上面和其它目的和优点对于本领域的普通技术人员来说,将显而易见。

附图说明

图1描绘了现有技术的数据处理系统,其中,把大型的传统数据处理应用程序安装在为机构处理数据的单个计算机中;

图2描绘了代表本发明的优选实施例的通信系统,其中,数个较小的分布式数据处理系统与数据传输网络耦合;

图3是用在图2中描绘的分布式系统中的应用程序的图示;

图4是本发明的优选实施例的流程图;

图5是利用本发明的应用程序的图示;和

图6是使用对象代理命名服务来使用本发明的过程的图形。

具体实施方式

在如下优选实施例的详述中,将相当详细地描述目前为本发明人所知的、实际应用本发明的最佳实施方式。但是,这种描述意在以具体实施例的方式广义、一般性地阐明本发明的概念,而不是打算把本发明限制在这个实施例所示的那个内容上,尤其是本领域的普通技术人员认识到可以对参照这些图形所示和所述的特定结构和操作进行许许多多改进和改变之后。

图1显示了用于企业的数据处理系统的一种形式,其中,中央计算机或数据处理系统110包括必要的数据处理应用程序和诸如数据库之类的相关信息。如图1所示,在单个中央计算机或数据处理系统110上显示了4个应用程序(其它应用程序部件)和2个数据库。

如图1所示的数据处理系统常常被称为主机或企业系统或集中式处理器。一般说来,用于这样的系统的应用程序主要通过诸如COBOL(面向商业的通用语言)之类的高级计算机语言和接口,如果兼容的话,还有由同一组编程人员写成的和在同一台计算机上或在相互靠得很近和配置类似的计算机系统上运行的其它应用程序写成。虽然用于这样的企业数据处理系统的这些应用程序的一些有时由不同组织写成,但是,在许多情况下,它们出自单个组织,并且,可以是为安装了程序的特定客户定制的。一些大型组织甚至利用个性化(roll-your-own)系统,创建它们自己的应用程序,并且,可以长年定制和修改那个系统,从而使它是真正独特的和适合使用它的单个客户的具体数据处理需要。这样的系统往往存在于大型公司的数据处理操作过程中,并且,从这样的系统包括活动地板和玻璃墙的前几年开始,有时被称为“玻璃房”数据处理系统和应用程序。这样的系统往往由中央数据处理或信息技术工作人员以集中方式运行,其中,把所有数据发送到单个地方,进行处理,然后,以最终报告的形式使其返回到使用地。

如图1所示,这样的集中式系统110可以包括由数字112表示的第1应用程序(或应用程序部件)APPLN1、由数字114表示的第2应用程序APPLN2、由数字116表示的第3应用程序APPLN3、由数字118表示的第4应用程序APPLN4、由标号120表示的第1数据库DB1和由标号122表示的第2数据库DB2。如图所示,数据处理系统用于供应链管理和库存管理,并且,第1应用程序APPLN1是库存应用程序,第2应用程序APPLN2是推销应用程序,第3应用程序APPLN3是销售应用程序,而第4应用程序APPLN4是定购应用程序。第1数据库DB1包含手头货物的细节,和第2数据库DB2包含仓库销售历史,或者过去已经销售了什么仓库中的什么货物的细节。

这些各种各样的应用程序连同相关数据库,可以是单个一体化应用程序的组成部分,或者可以将它们写成在如图1的集中式处理环境所示的单个处理器110上运行的独立应用程序模块。

但是,最近,由于可用系统、增加的网络容量和较小的处理器的改变,分布式处理系统使出现了,并且,随着速度的增加和相对价格的降低,变成许多数据处理系统的吸引模式。随着数据处理类型的改变,导致了包括诸如C++和Ada之类的面向对象编程语言类型在内的数据处理语言类型的改变。这样的编程语言使用了考虑到数据通过确定接口的交换的接口规范。不幸的是,这样的分布式数据处理环境和新编程语言的到来既不意味着已经写出了利用分布式数据处理的所有应用程序,也不意味着存在接受为集中式或企业服务器而写的和安装在集中式或企业服务器的应用程序和把它变成适合于分布式数据处理环境中的处理的应用程序的简便方法。

图2显示了在分布式数据处理系统中看到的那种类型的数据处理系统的部件。如图2所示,许多分立处理器与数据传输网络202耦合,在分布式或客户机-服务器环境下进行各种各样的操作。如图2所示,为了便于说明,6个处理器与网络202耦合,称它们为PROCESSOR1 203、PROCESSOR2 204、PROCESSOR3 205、PROCESSOR4 206、PROCESSOR5 207和PROCESSOR6 208。PROCESSOR1 203包括第1应用程序AP1 212,而PROCESSOR2 204包括第2应用程序AP2 214。PROCESSOR3 205包括2个应用程序AP3 216和AP4 218。PROCESSOR4 206含有第1数据库DB1 220和PROCESSOR5 207含有安装在它上面的第2数据库DB2 222。这些应用程序的每一个通过本文件中如后所述的变换可能与图1的相关应用程序有关,以便接受企业或集中式应用程序和利用客户机-服务器数据处理将其转换成适合于用在本发明的分布式数据处理环境中的应用程序。

图3概念性显示了用在图2的分布式数据处理系统中的图1的转换应用程序。传统应用程序由标号310表示,以及基于部件的前端或接口320遵从已经加入,使传统应用程序310可以与箭头330所示的分布式数据处理系统通信的EJB接口规范。

图4显示了将应用程序(或应用程序的部件)从图1的传统应用程序转换成图2的系统的流程图。该方法的步骤包括如下步骤:在方块402,分析应用程序和将应用程序的功能分组成逻辑部件。在方块404,创建具有适当属性的企业JavaBean(EJB)和物理表示逻辑部件的方法。创建用于每个部件的企业JavaBean,以创建称为部件远程接口(CRI)的接口,并且,用接口定义语言(IDL)定义它。

在方块406,把部件本地接口(CHI)构造成附有EJB规范,以便提供创建部件远程接口(CRI)的标准方法。然后,在方块408,把部件本地接口(CHI)登记到标准命名服务(NS)中,以便分布式应用程序可以获得到部件本地接口(CHI)的参考点。部件本地接口(CHI)是用接口定义语言(IDL)定义的。

接着,在方块410,创建和存储部件结构序列CSS,以便与“按引用”传送相反,可以“按值”传送用于应用程序的数据。这使得无需利用应用程序之间的多次调用,按照有序序列就可以使数据得到传送。部件结构序列CSS是用IDL定义的。

此后,在方块412,创建用于部件本地接口CHI、部件远程接口CRI和部件结构序列CSS的Java实现文件。这个过程将结果图5的例子作进一步说明。

在方块414,编译IDL文件,生成新应用程序的相应Java代码,并且,在方块416,Java本机接口(Java命令)用于生成合并到传统应用程序中的Java本机接口首标文件(JNI首标)。

然后,在方块418,把新JNI方法名称加入传统共享库的输出表中。在方块420,创建在现有传统应用程序的语言下的部件豆(component bean)文件,它包括上面在方块416中创建的生成JNI首标文件。然后,编译部件豆文件,将其与含有输出表的共享库链接。

在方块422,更新服务器代码,利用命名服务登记部件本地接口CHI,向分布式应用程序声明它的可用性。

在方块424,更新客户机代码,获得到部件本地接口的参考点和创建部件远程接口实例,以利用它的属性和封装传统功能的方法。

图5结合传统应用程序的例子,在这种情况下,称为Makoro的用于库存管理的应用程序-许多年来都可从IBM购买到的程序,说明了本发明的原理,尤其是图4所示的方法步骤。如图5所示,应用程序包括基本部分510,包括来自mp.ejb.user.server的UserComponent HomeImpl,并且向上连接到部分520,然后连接到部分530,而向下连接到部分540的接口。在这个图中显示了存在于每个部分中的部件和它们的来源。

图6显示了可用在实际应用本发明中的系统的一些部件。正如这里所示的,在图的中央,显示了标为610、612、614、616、618、620、622和624的数个部件。每一个都包括企业JavaBean和代表可在分布式处理环境下通信的传统应用程序的一个部件。每个部件(例如,610)与EJB服务器630(它与用作系统的命名服务的服务器进程632耦合)耦合,和与共享库libstd.a636耦合,共享库libstd.a 636又与文件部件豆637和输出表libstd.exp 638耦合。EJB服务器630是把每个部件本地接口(CHI)登记到命名服务进程632的Java应用程序服务器。传统应用程序数据资源670和其它传统进程662和664通过共享库libstd.a 636来访问。

独立Makoro商品计划程序客户机MMP客户机640利用IBM Java对象资源代理650a,通过与分布式处理网络的连接,与各个部件耦合。MMP客户机640还与包括命名服务功能和使用Java ORB 650的服务器进程632耦合。当MMP客户机640调用有关部件(610、612、614、616、618、620、622或624)之一上的实例的方法时,通过共享库libstd.a 636中的JNI到文件部件豆637处理请求,并且,将其路由到相应的传统进程/资源。因此,与MMP客户机640直接访问共享库libstd.a 636中的非标准应用程序编程接口(API)不同,MMP客户机640可以通过标准EJB部件接口利用传统应用程序的服务。

本发明可以用硬件、软件或硬件和软件组合的形式来实现。根据本发明的数据处理工具可以在一个计算机系统中,以集中方式来实现,也可以以不同单元分散在几个互连计算机系统上的分布方式来实现。任何类型的计算机系统-或适合于实现本文所述的方法的其它设备-都是适宜的。硬件和软件的典型组合是含有计算机程序的通用计算机系统,当这样的计算机程序得到装载和执行时,它控制计算机系统,以便实现本文所述的方法。本发明也可以被嵌在计算机程序产品中,这样的计算机程序产品包括使本文所述的方法能够得以实现的所有特征,并且,当被装入计算机系统中时,它能够实现这些方法。

在当前背景下的“计算机程序装置”或“计算机程序”指的是旨在使具有信息处理能力的系统可以直接或在如下步骤之一或二者之后执行特定功能的一套指令在任何语言、代码或符号下的任何表示:a)转换成另一种语言、代码或符号;b)以不同的实质形式再现。

虽然在提供资源管理的设备和方法的背景下对本发明作了描述,但是,也可以以信息的收集、保持和处理在远离服务器的地方进行,和在服务器需要的时候传送信息的服务的形式实现本发明。

当然,就上面结合附图,对优选实施例的描述而言,本发明的许多修改对于本领域的普通技术人员来说,是显而易见的。例如,为了便于描述,使用了接口与Java和企业JavaBean(Java豆)结合在一起的描述,但是,事实上,生成和使用分布式编程部件之间的公用接口的其它系统可以用于提升本发明。另外,为对话保持的信息的位置和类型可以被修改成适合于应用程序。分布式数据处理系统的数量、类型和位置和连接它们的网络受用户设计和实现准则制约,并且,不是本发明的主要部分。文件的名称也是设计选择和系统考虑的问题。另外,无需相应使用本发明的其它特征,就可以使用本发明的一些特征,这不偏离本发明的精神。例如,按值传送变量,而不是按引用传送变量的使用避免了不必要的调用,并且一般说来是众望所归,但是,一个系统可以使用本发明的概念,而不使用数据的按值传送。于是,前面对优选实施例的描述应该被认为是仅仅说明本发明的原理,而不是限制本发明的原理。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号