CN101695070B - Java遗留系统的服务封装方法及系统 - Google Patents

Java遗留系统的服务封装方法及系统 Download PDF

Info

Publication number
CN101695070B
CN101695070B CN2009102353079A CN200910235307A CN101695070B CN 101695070 B CN101695070 B CN 101695070B CN 2009102353079 A CN2009102353079 A CN 2009102353079A CN 200910235307 A CN200910235307 A CN 200910235307A CN 101695070 B CN101695070 B CN 101695070B
Authority
CN
China
Prior art keywords
class
service
java
information
legacy system
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.)
Active
Application number
CN2009102353079A
Other languages
English (en)
Other versions
CN101695070A (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.)
North China Electric Power Research Institute Co Ltd
Original Assignee
Beihang University
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 Beihang University filed Critical Beihang University
Priority to CN2009102353079A priority Critical patent/CN101695070B/zh
Publication of CN101695070A publication Critical patent/CN101695070A/zh
Application granted granted Critical
Publication of CN101695070B publication Critical patent/CN101695070B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明涉及一种Java遗留系统的服务封装方法及系统,方法包括:获取Java遗留系统的位置信息、服务封装所需被封装成Web服务的类和方法的信息、以及与类相关联的类的信息;根据位置信息、类、相关联的类和方法的信息创建服务描述文件,将服务描述文件和类以Web服务容器支持的格式打包生成Web服务包;根据类、相关联的类和方法的信息创建访问Web服务包的客户端代理类,用客户端代理类替换Java遗留系统中对应的同名文件。本发明只需要获取Java遗留系统的位置信息和服务封装的相关信息,就可以完成Web服务的封装以及相应的客户端的生成工作,采用了新式的封装和创建Web服务的方法,缩短了将Java遗留系统封装成Web服务并正常运行所需要的时间。

Description

Java遗留系统的服务封装方法及系统
技术领域
本发明涉及网络通信领域,特别是一种Java遗留系统的服务封装方法及系统。
背景技术
现在基于Java技术开发的系统数量十分巨大,随着应用环境的改变,许多以非网络服务(Web Services,简称Web服务)形态存在的系统需要进行Web服务封装,以修改成以Web服务形态存在的系统,即把系统中部分本地调用的关系修改成使用Web服务调用,利用Web服务来实现程序间通信。
现有技术中的Java2WSDL工具可以根据Java类来生成该Java类的Web服务描述语言(Web Service Description Language,简称WSDL)文件。但是,该Java2WSDL工具只能生成Java类的WSDL文件,不提供Java类的服务封装,以及访问服务的客户端生成,需要手动调用另一个WSDL2Java工具来实现。该WSDL2Java工具也无法自动的把原有的Java遗留系统中相应的部分修改成利用客户端访问封装好的服务。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:为了达到将Java遗留系统封装成服务的目的,使用者仅依靠Java2WSDL工具无法实现,还需要利用WSDL2JAVA工具,以及大量的手工的程序编写,操作复杂,而且将Java遗留系统封装成服务并正常运行所需要的时间比较长。
发明内容
本发明实施例提供一种Java遗留系统的服务封装方法及系统,能够自动地完成Java遗留系统的服务封装,操作简单,缩短将Java遗留系统封装成Web服务并正常运行所需要的时间。
本发明实施例提供了一种Java遗留系统的服务封装方法,包括:
获取Java遗留系统的位置信息、服务封装所需被封装成网络服务的类和方法的信息、以及与所述类相关联的类的信息;
根据所述位置信息、以及所述类、与所述类相关联的类和方法的信息创建服务描述文件,并将所述服务描述文件和所述类以网络服务容器支持的格式打包生成网络服务包;
根据所述类、与所述类相关联的类和方法的信息创建访问所述网络服务包的客户端代理类,并用所述客户端代理类替换所述Java遗留系统中对应的同名文件。
本发明实施例还提供了一种Java遗留系统的服务封装系统,包括:
封装管理模块,用于获取Java遗留系统的位置信息、服务封装所需被封装成网络服务的类和方法的信息、以及与所述类相关联的类的信息;
服务封装模块,用于根据所述位置信息、以及所述类、与所述类相关联的类和方法的信息创建服务描述文件,并将所述服务描述文件和所述类以网络服务容器支持的格式打包生成网络服务包;
服务代理生成模块,用于根据所述类、与所述类相关联的类和方法的信息创建访问所述网络服务包的客户端代理类,并用所述客户端代理类替换所述Java遗留系统中对应的同名文件。
由上述技术方案可知,本发明实施例只需要获取Java遗留系统的位置信息和服务封装的相关信息,就可以自动完成Web服务的封装以及相应的访问Web服务的客户端的生成工作。本发明实施例的输出结果是被封装好的Web服务包和以原Java系统形式存在的用于访问Web服务包的客户端部分,通过部署封装好的web服务包,并利用所生成的客户端部分替代原来的Java遗留系统,即可完成Java遗留系统的服务封装工作。本发明实施例所采用的上述新式的封装和创建Web服务的方法,操作简单,极大地方便了用户,缩短了将Java遗留系统封装成Web服务并正常运行所需要的时间。
下面结合附图对本发明的具体实施例作进一步详细的说明。
附图说明
图1为本发明Java遗留系统的服务封装方法的第一实施例的流程示意图;
图2为本发明Java遗留系统的服务封装方法的第二实施例的流程示意图;
图3为本发明Java遗留系统的服务封装方法的第三实施例的流程示意图;
图4为本发明Java遗留系统的服务封装系统的第一实施例的结构示意图;
图5为本发明Java遗留系统的服务封装系统的第二实施例的结构示意图。
具体实施方式
图1为本发明Java遗留系统的服务封装方法的第一实施例的流程示意图,如图1所示,本实施例可以包括以下步骤:
步骤101、获取Java遗留系统的位置信息、服务封装所需被封装成Web服务的类和方法的信息、以及与上述类相关联的类的信息;
步骤102、根据上述位置信息、以及上述类和方法的信息创建服务描述文件,并将上述服务描述文件和上述类以Web服务容器支持的格式打包生成Web服务包;
步骤103、根据上述类和方法的信息创建访问上述Web服务包的客户端代理类,并用上述客户端代理类替换上述Java遗留系统中对应的同名文件。
本实施例中,只需要获取Java遗留系统的位置信息和服务封装的相关信息,就可以自动完成Web服务的封装以及相应的访问Web服务的客户端的生成工作。本发明实施例的输出结果是被封装好的Web服务包和以原Java系统形式存在的用于访问Web服务包的客户端部分,通过部署封装好的web服务包,并利用所生成的客户端部分替代原来的Java遗留系统,即可完成Java遗留系统的服务封装工作。本实施例所采用的上述新式的封装和创建Web服务的方法,操作简单,极大地方便了用户,同时缩短了将Java遗留系统封装成Web服务并正常运行所需要的时间。
图2为本发明Java遗留系统的服务封装方法的第二实施例的流程示意图,如图2所示,本实施例可以包括以下步骤:
步骤201、封装管理模块获取用户输入的Java遗留系统的位置信息、服务封装所需被封装成Web服务的类和方法的信息、以及与上述类相关联的类的信息;
步骤202、服务封装模块根据封装管理模块所获取的上述位置信息、以及需要被封装成Web服务的类、与上述类相关联的类和方法的信息创建服务描述文件,并且把服务描述文件和要打包的类一起以Web服务容器支持的格式打包生成Web服务包;
步骤203、封装管理模块创建一份Java遗留系统的拷贝,存到临时文件夹中,以确保本系统所做改变不会影响原有系统。
其中的创建拷贝的功能不只是简单地拷贝Java遗留系统中的文件,对于Java遗留系统中以“.class”后缀名命名的文件直接复制到临时文件夹的同名目录,对于Java遗留系统中以jar包格式保存的字节码文件把jar包中的内容解压缩到临时文件夹;
步骤204、封装管理模块利用Java2WSDL工具生成Web服务包里每个类的WSDL文件;
步骤205、桩生成模块通过服务管理模块获取服务封装模块所生成的Web服务包的信息,并利用上述Web服务包的信息和Web服务包里的每个类的WSDL文件生成相应的桩文件;
步骤206、桩生成模块动态编译上述桩文件,并将编译后的字节码文件对应地插入被封装成Web服务的那些类文件在Java遗留系统中的位置;
步骤207、服务代理生成模块根据封装管理模块所获取的需要被封装成Web服务的类、与上述类相关联的类和方法的信息利用字节码技术创建访问上述Web服务包的客户端代理类,并利用新创建的同名Java类文件即客户端代理类替换Java遗留系统中对应的Java类文件;
步骤208、封装管理模块将修改后的Java遗留系统的拷贝按Java遗留系统的格式重新格式化。
上述格式化是指将修改后的存有Java遗留系统拷贝的临时文件夹中的内容组织成原来Java遗留系统的格式,主要是将已经解压缩的部分重新压缩成Java的jar包格式。
本实施例的流程处理过后,会产生两个结果文件夹,其中一个保存着打包好的Web服务包,另一个生成的是访问这个Web服务包的客户端,这两部分中包括着原来Java遗留系统中的全部功能逻辑,使得原有的Java遗留系统在功能上没有改变,只是使用形式发生改变。
图3为本发明Java遗留系统的服务封装方法的第三实施例的流程示意图,如图3所示,与上一实施例相比,本实施例中步骤207可以具体包括以下步骤:
步骤301、封装管理模块将需要被封装成Web服务的类、与上述类相关联的类和方法的信息传送给服务代理生成模块;
步骤302、服务代理生成模块分别创建需要被封装成Web服务的每个类的同名字节码文件;
步骤303、服务代理生成模块分别创建每个字节码文件中的需要被封装成Web服务的方法,方法名和参数类型与要封装成Web服务的类中的方法相一致;
步骤304、服务代理生成模块分别创建每个方法的方法体,以供利用相应的桩文件访问生成的Web服务包,此方法实现将获得的参数传给Web服务包中的相应服务,并接受Web服务包返回的结果作为返回值;
步骤305、服务代理生成模块利用生成的字节码文件覆盖临时文件夹中的Java遗留系统的同名文件。
例如:在原有的遗留系统中有类A调用了类B中的方法实现中,本实施例可以利用字节码技术生成一个B1类,这个类B1与类B具有相同的名字,而且B1类也拥有被A使用到的那个方法,并且方法名、参数和返回值皆与类B中的方法一样,只不过类B1中的方法实现的是将接收到的参数传给被打包成服务的类B,并将类B处理后的结果作为返回值返回。这样,在遗留系统中,类A调用的是类B,被此发明中的系统处理后,类A调用的是类B1,而类B1利用Web服务来与类B通信,一次调用变成了两次调用,而这些,对于类A透明,也就是说并不会影响Java遗留系统的原有功能逻辑,而又实现了从本地调用到Web服务调用的转变。
可替换地,将上述本发明Java遗留系统的服务封装方法的第二实施例和第三实施例中有关桩的部分替换成所创建的一个服务端代理类,即在服务端再增加一个代理。具体来说,步骤207中所创建的代理类包括客户端和服务端两部分,客户端不再利用桩,而是采用另一种客户端的形式,编写的代码直接与服务端的代理通信,服务端的代理负责信息格式转换,它作为服务的一部分,与真正客户端要调用的程序相交互。
图4为本发明Java遗留系统的服务封装系统的第一实施例的结构示意图,如图4所示,本实施例可以包括封装管理模块41、服务封装模块42和服务代理生成模块43。封装管理模块41用于获取Java遗留系统的位置信息、服务封装所需被封装成网络服务的类和方法的信息、以及与所述类相关联的类的信息;服务封装模块42用于根据所述位置信息、以及所述类、与所述类相关联的类和方法的信息创建服务描述文件,并将所述服务描述文件和所述类以网络服务容器支持的格式打包生成网络服务包;服务代理生成模块43用于根据所述类、与所述类相关联的类和方法的信息创建访问所述网络服务包的客户端代理类,并用所述客户端代理类替换所述Java遗留系统中对应的同名文件。
本实施例中,只需要封装管理模块获取Java遗留系统的位置信息和服务封装的相关信息,服务封装模块就可以自动完成Web服务的封装以及服务代理生成模块就可以自动完成相应的访问Web服务的客户端的生成工作。本发明实施例的输出结果是被封装好的Web服务包和以原Java系统形式存在的用于访问Web服务包的客户端部分,通过部署封装好的web服务包,并利用所生成的客户端部分替代原来的Java遗留系统,即可完成Java遗留系统的服务封装工作,操作简单,极大地方便了用户,缩短了将Java遗留系统封装成Web服务并正常运行所需要的时间。
图5为本发明Java遗留系统的服务封装系统的第二实施例的结构示意图,如图5所示,与上一实施例相比,本实施例还可以包括桩生成模块44,用于根据所述网络服务包生成所述类的网络服务描述语言文件,以及根据所述网络服务包的信息和所述网络服务描述语言文件生成所述类的桩文件,并将所述桩文件插入到所述Java遗留系统中的对应位置。桩生成模块44可以通过封装管理模块41获取服务封装模块42所生成的网络服务包的信息。
可替换地,本实施例也可以不包括桩生成模块44,代替他的则是本实施例中服务代理生成模块43还可以用于根据所述类、与所述类相关联的类和方法的信息创建访问所述网络服务包的服务端代理类。服务代理生成模块43所创建的代理类包括客户端和服务端两部分,客户端不再利用桩,而是采用另一种客户端的形式,编写的代码直接与服务端的代理通信,服务端的代理负责信息格式转换,它作为服务的一部分,与真正客户端要调用的程序相交互。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (7)

1.一种Java遗留系统的服务封装方法,其特征在于包括:
获取Java遗留系统的位置信息、服务封装所需被封装成网络服务的类和方法的信息、以及与所述类相关联的类的信息;
根据所述位置信息、以及所述类、与所述类相关联的类和方法的信息创建服务描述文件,并将所述服务描述文件和所述类以网络服务容器支持的格式打包生成网络服务包;
根据所述类、与所述类相关联的类和方法的信息创建访问所述网络服务包的客户端代理类,并用所述客户端代理类替换所述Java遗留系统中对应的同名文件。
2.根据权利要求1所述的方法,其特征在于所述根据所述类、与所述类相关联的类和方法的信息创建访问所述网络服务包的客户端代理类之前还包括:
根据所述网络服务包生成所述类的网络服务描述语言文件;
根据所述网络服务包的信息和所述网络服务描述语言文件生成所述类的桩文件;
将所述桩文件插入到所述Java遗留系统中的对应位置。
3.根据权利要求2所述的方法,其特征在于所述根据所述类、与所述类相关联的类和方法的信息创建访问所述网络服务包的客户端代理类,并用所述客户端代理类替换所述Java遗留系统中对应的同名文件具体包括:
根据所述类的信息创建与所述类同名的类的字节码文件;
根据所述类、与所述类相关联的类和方法的信息在所述字节码文件中创建与所述与所述类相关联的方法同名并接受相同参数的方法;
将根据所述类、与所述类相关联的类和方法的信息创建的字节码文件修改成利用所述桩文件访问所述网络服务包的客户端代理类;
利用修改后的字节码文件替换所述Java遗留系统中对应的字节码文件。
4.根据权利要求1至3任一权利要求所述的方法,其特征在于所述方法还包括:创建所述Java遗留系统的拷贝,以供进行服务封装。
5.一种Java遗留系统的服务封装系统,其特征在于包括:
封装管理模块,用于获取Java遗留系统的位置信息、服务封装所需被封 装成网络服务的类和方法的信息、以及与所述类相关联的类的信息;
服务封装模块,用于根据所述位置信息、以及所述类、与所述类相关联的类和方法的信息创建服务描述文件,并将所述服务描述文件和所述类以网络服务容器支持的格式打包生成网络服务包;
服务代理生成模块,用于根据所述类、与所述类相关联的类和方法的信息创建访问所述网络服务包的客户端代理类,并用所述客户端代理类替换所述Java遗留系统中对应的同名文件。
6.根据权利要求5所述的系统,其特征在于所述系统还包括:桩生成模块,用于根据所述网络服务包生成所述类的网络服务描述语言文件,以及根据所述网络服务包的信息和所述网络服务描述语言文件生成所述类的桩文件,并将所述桩文件插入到所述Java遗留系统中的对应位置。
7.根据权利要求5所述的系统,其特征在于所述服务代理生成模块还用于根据所述类、与所述类相关联的类和方法的信息创建访问所述网络服务包的服务端代理类。 
CN2009102353079A 2009-09-30 2009-09-30 Java遗留系统的服务封装方法及系统 Active CN101695070B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009102353079A CN101695070B (zh) 2009-09-30 2009-09-30 Java遗留系统的服务封装方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009102353079A CN101695070B (zh) 2009-09-30 2009-09-30 Java遗留系统的服务封装方法及系统

Publications (2)

Publication Number Publication Date
CN101695070A CN101695070A (zh) 2010-04-14
CN101695070B true CN101695070B (zh) 2012-07-04

Family

ID=42094010

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009102353079A Active CN101695070B (zh) 2009-09-30 2009-09-30 Java遗留系统的服务封装方法及系统

Country Status (1)

Country Link
CN (1) CN101695070B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104217271B (zh) * 2013-06-04 2018-05-15 广州中国科学院软件应用技术研究所 一种使遗留系统具备工作流处理能力的方法及系统
CN113901377B (zh) * 2021-12-10 2022-03-25 天聚地合(苏州)数据股份有限公司 遗留系统的服务调用方法、装置、存储介质及设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1791037A (zh) * 2005-12-26 2006-06-21 北京航空航天大学 一种实现Web服务自动化测试的方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1791037A (zh) * 2005-12-26 2006-06-21 北京航空航天大学 一种实现Web服务自动化测试的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HAI-YUN FANG等.CORBNJAVA TECHNOLOGY BASED LEGACY SYSTEMS REUSABILITY RESEARCH AND DESIGN.《Machine Learning and Cybernetics》.2003,第481-485页. *
吴家菊.基于WEBSERVICES的面向服务应用集成研究.《中国工程物理研究院学位论文》.2007, *

Also Published As

Publication number Publication date
CN101695070A (zh) 2010-04-14

Similar Documents

Publication Publication Date Title
CN107943950B (zh) 一种区块链中数据智能合约生成的方法及系统
US7694284B2 (en) Shareable, bidirectional mechanism for conversion between object model and XML
AU2011258098B2 (en) Schema contracts for data integration
US8458467B2 (en) Method and apparatus for adaptive application message payload content transformation in a network infrastructure element
US20040111533A1 (en) Transformations as web services
CN109634657A (zh) 一种微服务打包部署方法及系统
CN109783071B (zh) 基于Drools规则引擎的政务规则设计方法及系统
CN105677302A (zh) 一种应用程序模块化开发方法以及装置
CN104346184A (zh) 应用打包装置及方法
Sneed et al. Creating web services from legacy host programs
CN109710260A (zh) 一种基于多平台的小程序代码转换系统及转换方法
CN108897291A (zh) 一种智能家电的控制方法、移动端以及控制系统
CN107168695A (zh) 一种excel数据解析方法及系统
CN107450993A (zh) 一种分布式iec61850通信组件的数据交互方法
CN101997643B (zh) 一种电子文件封装的方法及系统
CN115344318A (zh) 一种单据数据处理服务的可视化配置方法及系统
US20150113506A1 (en) Method and system for adaptive loading of application
WO2015057928A2 (en) Method and system for encapsulation of application
CN101695070B (zh) Java遗留系统的服务封装方法及系统
CN101751258B (zh) 智能卡与智能卡应用的开发方法、开发系统及部署方法
CN100470472C (zh) 一种基于解释器和解析器实现地理信息服务的系统及方法
WO2019043462A1 (en) SYSTEMS AND METHODS FOR CREATING AUTOMATED INTERFACE TRANSMISSION BETWEEN HETEROGENEOUS SYSTEMS IN A BUSINESS ECOSYSTEM
CN101719069A (zh) Java系统的Web服务化方法与装置
US7912984B2 (en) System and method for generating a wireless application from a web service definition
CN111736844A (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: NORTH CHINA POWER SCIENCE RESEARCH INST., CO., LTD

Free format text: FORMER OWNER: BEIHANG UNIVERSITY

Effective date: 20131231

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 100191 HAIDIAN, BEIJING TO: 100045 XICHENG, BEIJING

TR01 Transfer of patent right

Effective date of registration: 20131231

Address after: 100045 Beijing city Xicheng District Fuxingmenwai No. 1 Nan Xiang Di Zang an

Patentee after: North China Electrical Power Research Institute LLC

Address before: 100191 Haidian District, Xueyuan Road, No. 37,

Patentee before: Beihang University