CN101840334A - 一种软件构件服务化封装方法 - Google Patents
一种软件构件服务化封装方法 Download PDFInfo
- Publication number
- CN101840334A CN101840334A CN 201010150396 CN201010150396A CN101840334A CN 101840334 A CN101840334 A CN 101840334A CN 201010150396 CN201010150396 CN 201010150396 CN 201010150396 A CN201010150396 A CN 201010150396A CN 101840334 A CN101840334 A CN 101840334A
- Authority
- CN
- China
- Prior art keywords
- service
- file
- interface
- java
- make
- 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
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开一种软件构件服务化封装方法,首先将原动态库中的元信息提取出来;再以此为基础,利用现有的java调用C或C++语言技术和工具,以转调的java代码作为Web服务的具体实现部分,实现java对遗产***的转调;最后将服务类文件部署到特定的Web服务运行环境中,根据用户的选择配置产生符合各自平台规定的部署描述文件,并将其和已生成的服务实现类文件部署在各自的运行环境中,发布为相应的Web服务。本发明规范了服务接口模型,使得构件封装为服务后,对外提供的接口形式在任何服务运行平台中都保持一致,提高了封装后服务的互操作性,实现了以构件为基础的遗留***与未来采用SOA技术体制的新***的交互能力。
Description
技术领域
本发明属于***软件集成领域,具体涉及一种将软件构件自动化封装成Web服务的技术,是一种实现以构件为基础的遗留***与未来采用SOA技术体制的新***综合集成的手段。
背景技术
新研***与遗留***一体化设计与综合集成技术是软件开发领域中重要的关键技术。当前随着信息技术的发展,软件***构建朝网络化、服务化方向转型。遗留***软件服务化技术是实现***服务化,实现面向服务新研***与遗留***一体化和综合集成的关键。
当前实现遗留***软件服务化的方法主要有两个,一是依据业务需求,为相关的软件模块重新设计服务化接口和服务实现,通过软件重构实现服务化。这种方法与新研***的一体化整合程度好,服务接口规范。但是需要重新开发功能相近的服务化模块,原有的代码无法复用,软件开发量大,集成时间长。二是直接对已有软件模块进行服务化封装,通常的做法是在.NET平台上将非托管动态库文件封装成C#语言形式的Web服务。这种方法充分复用已有代码,对原有的软件改动小。但是整个过程目前只提供手工方法,当面对复杂的动态库时,封装的工作量大。
在文献“基于Web服务的企业应用集成研究”中,提出了采用J2EE平台基于Web服务的企业应用集成框架,其核心思想是使用自底向上的方法,为企业遗留***(如CRM、ERP、SCM)中的功能构件设计符合Web服务标准的接口描述文件和服务具体实现,通过创建适配器使这些新服务之间以及和原有的遗留***间能够进行信息交互。这种方法本质上是将原有***中需要服务化的功能重新进行面向服务的设计和开发,在遗留***和新服务之间通过代理机制实现交互。主要存在的问题是,在面对大型遗留***时,由于应用自身逻辑和功能复杂,使得对***功能的服务化设计、开发工作量增大,整个***集成时间增长,并且易出错。
在文献“基于DCOM组件的PDMS的Web服务封装”中,使用的方法是针对原动态库暴露的接口进行薄层封装,即利用.NET的运行时交互功能(runtimeinterop facilities)P/Invoke,将C风格的动态库中接口或非托管(unmanaged)C++类封装成C#语言的托管代码,并将其发布为Web服务。这种方法改动量小,基本继承了原有的软件功能,但是因为整个过程是完全人工实现,对封装人员的技术水平要求高,同时当面对复杂的动态库时,封装的工作量大。另外其并没有给出统一的描述软件构件Web服务元信息的模型,来规范服务外部接口文件(WSDL)的生成。
发明内容
发明目的:本发明的目的是针对现有技术的不足,提供一种能够对软件构件高效规范封装的服务化封装方法,。
技术方案:为实现上述目的,本发明所述的软件构件服务化封装方法,首先将原动态库中的元信息提取出来;再以此为基础,利用现有的java调用C或C++语言技术和工具,以转调的java代码作为Web服务的具体实现部分,实现java对遗产***的转调;最后将服务类文件部署到特定的Web服务运行环境中(目前支持三种服务运行环境,包含:Axis2、MULE、SCA),根据用户的选择配置产生符合各自平台规定的部署描述文件,并将其和已生成的服务实现类文件部署在各自的运行环境中,发布为相应的Web服务。
该方法具体包括如下步骤:
(1)根据用户从界面设置的服务描述信息,以及原始动态库的头文件,采集出服务的元数据信息,并存储在统一的Web服务接口模型中,为配置文件生成以及代码转调提供了所需的信息支持;
(2)以步骤(1)采集到的元数据信息为基础,利用Java调用C/C++语言工具SWIG生成java转调代码和cxx临时文件;;
(3)利用自动生成的make文件,调用make命令将cxx临时文件、lib文件和原始头文件产生包装的dll文件;
(4)动态构建抽象语法树,并以此来解析java中间代码,将获得的接口信息存入接口函数数据模型中,用其填充显示界面中的接口提示信息;根据用户选择暴露的接口信息,包装一个接口的java文件和一个实现接口的java文件,实现的java文件中加载包装后的DLL;
(5)根据用户的选择配置产生符合各自服务运行环境规定的部署描述文件;
(6)并将步骤(5)产生的部署描述文件和已生成的服务实现类文件部署在服务运行环境中,发布为相应的Web服务。
所述Web服务接口是通过用户提示的方法,支持根据用户选择暴露的原动态库中的接口自动生成。
所述自动生成make文件为:首先建立make文件结构模型,从逻辑的角度对make文件参数进行了分类,在此基础上构建参数模板,包括:依赖于具体源码工程的工程参数模板以及与编译平台紧密相关的平台参数模板;生成方法为:首先按照规定的格式生成工程参数模板并保存到特定路径,接着解析该模板并按照解析结果从平台相关参数模板中读入所需数据,最后生成所需的make文件。
有益效果:本发明与现有技术相比,其有益效果为:1、本发明规范了服务接口模型,使得构件封装为服务后,对外提供的接口形式在任何服务运行平台中都保持一致,提高了封装后服务的互操作性,实现了以构件为基础的遗留***与未来采用SOA技术体制的新***的交互能力;2、在本发明支持下能够将多种形式的软件构件(如C动态库、C++动态库和java代码段)封装为服务,并且也支持根据用户配置动态地发布为多种类型的Web服务实现,有效的支撑了各种形态的构件服务化以及各种异构的SOA实现技术的集成;3、本发明还提出了统一的构件服务化封装方法和软件实现,基于该流程编码实现的自动化服务封装工具能够大大提高遗产***服务化的效率;该封装流程还具有很高的灵活性,它能根据需要扩展其中的代码转调功能,以支持不同形式的遗留构件的服务化封装,从而使其应用范围更加广泛。
附图说明
图1为软件构件服务化封装方法的原理图;
图2为本发明提出的服务封装流程图;
图3为头文件元数据信息自动抽取流程图;
图4为服务接口描述信息模型图;
图5为make文件生成器原理图;
图6为中间代码编译make文件结构图;
图7为make文件生成器模型图;
图8为平台相关参数模板图;
图9为make文件生成序列图;
图10为使用make文件构建流程图。
具体实施方式
下面结合附图,对最佳实施例进行详细说明,但是本发明的保护范围不局限于所述实施例。
图1所示为软件构件服务化封装方法的原理图,它依据创建的服务接口模型,通过规范的服务封装流程和自动化服务封装工具,将C/C++语言的动态库形式的遗留***软件自动封装为Web服务。本发明提出一种通用的***软件服务封装的方法,它首先定义了一个统一的Web服务接口模型,以描述服务的基本元信息,从而规范服务外部接口文件(WSDL)的生成;其次利用多语言转调工具,通过自动生成的配置文件实现编程语言间的互操作;在封装过程中,使用服务接口自动生成技术,支持用户可选择地暴露原动态库的接口;最后在部署过程中,提出了多Web服务实现适配技术,通过自动生成的,符合不同服务运行环境(Axis2、MULE、SCA)规定的部署描述文件将封装后的服务进行发布。
图2为本发明提出的服务封装流程图,首先用户将需要服务化的业务模块从原有的遗产***中提取出来,并按照封装要求规范化导出函数出\入参的数据类型,并判断待封装遗产***的语言类型,如果是C\C++代码则继续步骤(1),否则直接跳到步骤(5);
步骤(1)根据用户从界面设置的服务描述信息(如服务的中英文名称、服务功能描述、服务地址、服务关键字、服务类型信息等),以及原始动态库的头文件(.h文件),采集出服务的元数据信息,并存储在一个设计合理的自定义内存数据结构中(该数据结构模型在技术方案中已明确定义),为配置文件生成以及代码转调提供了所需的信息支持;
步骤(2)主要是用户确定服务名,.h,.dll和lib文件,以后所有生成的文件命名都根据服务名确定,建立工作目录和服务展示目录,.h和lib文件拷贝到工作目录,.dll拷贝到服务展示目录;
步骤(3)完成java代码转调功能,以步骤(1)获取的服务接口描述信息为基础构造.i文件,即SWIG接口文件,利用SWIG工具的命令产生出Java中间代码和cxx临时文件,在工作目录创建目录(包的目录),并将生成的java文件和cxx临时文件拷贝进去;
步骤(4)根据步骤(3)中产生的cxx文件,使用编译器自带的Make工具编译链接cxx临时文件,原始头文件和lib,生成可被Java加载调用的DLL。在生成make文件过程中,首先按照规定的格式生成工程信息文件并保存到特定路径,接着生成器解析工程信息并按照解析结果从平台相关参数模板中读入所需数据,最后生成客户程序所需的Make文件;
步骤(5)以java中间代码作为输入,动态构建抽象语法树,并以此来解析java中间代码,将获得的接口信息存入接口函数数据模型中,用其填充显示界面中的接口提示信息。根据用户选择暴露的接口信息,包装一个接口的java文件和一个实现接口的java文件,实现的java文件中加载包装后的DLL;
步骤(6)据用户的选择配置产生符合各自服务运行环境(Axis2、MULE、SCA)规定的部署描述文件;
步骤(7)编译所有java文件,打包成jar包;将步骤(4)产出的dll文件和产生的jar包文件复制到服务展示目录和相应的工作目录,并将其和已生成的服务实现类文件部署在服务运行环境中,发布为相应的Web服务。
本发明所采用的技术包括:构件元信息提取技术、多语言代码转调技术、Web服务接口自动生成技术和多Web服务实现适配技术。
(A)构件元信息提取技术
构件元信息提取是根据输入的构件获取能为配置文件生成以及代码转调提供所需支持的元数据信息的过程。
(a)本发明定义了一个统一的Web服务接口模型,用来规范化封装后Web服务的自描述文件(WSDL),以及获取的服务元数据信息。它由服务属性描述信息模型和服务接口描述信息模型组成。服务的元信息是指描述服务自身信息的数据,现做如下定义:
其中:
name表示服务的中英文名称,func表示服务功能描述,address表示服务地址,key表示服务关键字,type表示服务类型信息。
其中protol表示服务接口传输协议,access表示访问协议,name表示接口中英文名称,desc表示接口的基本描述信息。
其中provider表示服务提供者,category表示服务分类信息,其中按软件类型分为公共服务、专用服务。
服务接口描述信息即遗产程序的对外访问接口的完整描述信息。该信息实质上将遗产程序的接口概念从原始的遗产程序中抽离,从而为后续的代码转调提供信息支持。
这些信息都会在服务描述语言(WSDL)中定义,是对服务本身的描述说明,是区别于其他Web服务的标识,同时也为后面配置文件的生成提供信息支持。
在获取服务元数据时,服务属性描述信息可以通过用户输入的方式得到,而接口的描述信息如果采用传统的通过用户输入的方法不仅使得移植过程的自动化程度大大降低,并且对***用户的专业性要求过高,使得程序的易用性降低。基于这些问题,本发明提出了通过解析描述动态链接库输出接口的头文件来获取所需元数据的方法。该方法的流程如图3所示,首先头文件解析器分析头文件后输出自定义格式的XML中间文件,然后由特定的XML解析器抽取接口描述元信息。
(b)本发明充分借鉴了Java及.Net的反射机制建立了一套简单实用而且能够充分表达服务接口描述信息的数据模型。实现了在获取服务接口描述信息后合理地存储这些信息以便后续阶段能够方便的访问这些信息。
图4为服务接口描述信息模型图。此模型对服务接口定义所需的各种信息进行了抽象,又借鉴了面向对象的设计思想,形成了一套相对完整的对象体系。整个模型以可访问对象类为基类,派生出接口定义的其它组成部分,这样既重用了公共信息又减少了对象的数量。
服务接口描述信息模型主要从三个方面对关于接口描述信息进行建模。一是对接口元素描述数据的建模,二是对接口元素之间关系的建模,三是对接口描述信息访问接口的支持。
可访问对象类,是整个接口描述信息模型的基类,它抽象和包含了在接口描述体系中各个元素的基本元数据,例如元素的名称、所有者等,它也是接口描述信息数据结构的数据基础,元素之间的关系则通过建立一组和面向对象编译语言相对应的类型来确定;类是对类型的抽象,它与C++中类的概念非常接近,它定义了类的基础要素:数据成员、成员方法、构造/析构方法;函数类表达接口描述信息中函数的概念,是构件对外所提供的方法,它由返回值、参数列表等要素组成;变量类则表述了服务接口的数据成员,描述了各种类型的变量,是成员变量,全局变量的元类;参数类是参数的抽象,是变量类的一种特例,注解类是对预编译头,注释等与代码有关信息的抽象,负责存储这类信息。在上述的每个类中还提供了各种不同的操作,它们不仅为元数据获取阶段提供构建接口元数据的操作,也提供了后续阶段访问元数据的方法。
(B)多语言代码转调技术
多语言代码转调是指能够实现用不同语言编写的代码之间的互相调用,是将不同的构件编程语言形成Java服务构件的重要手段。这里利用SWIG这种Java调用C/C++语言的工具,实现Java对遗产***的转调。
主要步骤包括:
(a)依据原始动态库生成服务构件的中间文件。首先构造多语言代码转调工具需要的头文件,通过服务接口描述信息构造.i文件,即SWIG接口文件,接着利用SWIG工具的命令产生出Java中间代码作为原始动态库的代理,和对原动态库封装的临时文件。
(b)自动生成编译服务构件需要的Make文件。本发明提出了一种自动化生成Make文件的方法,图5说明了Make文件生成器原理。
自动生成Make文件的最大障碍来源于编译参数的复杂性。本发明首先为其建立了如图6概念模型。该模型从逻辑的角度对Make文件参数进行了分类,定义如下:
其中,cto是编译器所需的程序编译和链接参数,file则给出了待编译源代码文件的列表,这一部分的划分使得源码文件与编译器和平台相关的那些复杂的参数分离,从而更易于实现模块化。
irule是编译所需的固有规则,brule是编译链接规则包括指定目标代码的生成目录,删除中间文件等。
compile则指定了中间文件生成所需的各种依赖文件。但仅仅拥有Make文件的逻辑结构还远远不够,大量的编译参数以及这些参数与平台的相关性使得这部分程序设计非常困难,所以必须设计一个非常灵活的Make文件生成器模型,才能应对动态需求的变化。Python是一种动态的解释性脚本语言,选择python实现Make文件生成器模型,正是充分利用python的这些特点,基于以上的思想设计出如图7所示的Make文件生成器模型。
本发明利用数据驱动的原理为各种经常变动的参数按照这些参数之间的关系设计相应的模板文件,通过修改参数模板来改变参数。变化的编译参数分为以下两类:依赖于具体源码工程的各工程参数以及与编译平台紧密相关的平台参数。在所图7所示的模型中,工程配置对象和可选项模板对象就分别代表存放这两类参数的模板文件。而生成器则是这两类模板文件的处理器,它将这两种类型的文件作为输入,内置对象用于保存最终生成的Make文件参数。而编译器配置派生自生成器并具备了处理特定编译平台参数的能力。
在生成源代码后,根据当前源代码生成与之相关的模板文件供后面生成Make文件使用。与编译平台、***平台相关的信息存放于如图8所示结构的XML文件之中。它以编译器类型为基础元素分类保存配置参数,而编译器的配置参数又分为两类:通用参数类型的特定编译器值、工程类型配置参数模板。其中工程类型配置参数模板={动态库,控制台,应用程序};控制台模板包含了为建立一个控制台程序所需要的Make文件涵盖的参数信息;应用程序模板包含了为建立一个应用程序所需要的Make文件涵盖的参数信息;动态库模板包含了为建立动态链接库所需要的Make文件涵盖的参数信息;动态库模板={C编译器选项,C++编译器选项,Lex文法分析器参数…}。
整个make文件自动化生成序列图如图9所示。使用者首先按照规定的格式生成工程信息文件保存到特定路径,然后通知生成器;接着生成器解析工程信息并按照解析结果从平台相关参数模板中读入所需数据;最后生成使用者所需的Make文件。
(c)Make工具根据Make文件其所定义的规则,调用编译器编译相应的源代码,得到目标文件,最后由链接器将目标链接成新DLL。这一过程是针对Java转调实现而言,在一般的构建过程中产生何种形式的对象可由Make文件中的规则指定。
图10是使用Make工具构建java服务构件的过程,其中的Make工具、编译器,链接器都是由某种特定的编译器所提供,主流的编译器都包含这些工具。
(C)Web服务接口自动生成技术
自动生成Web服务接口是指为了体现选择服务接口功能,需要解析出Java接口供用户选择裁剪,并最终确定为服务的接口。
本发明提出了基于接口提示信息的Web服务接口自动生成技术,首先通过用户提示的方法,根据用户选择暴露的接口信息,包装一个接口的java文件和一个实现接口的java文件,实现中加载包装后的DLL,最终编译所有java文件,产生服务类文件。在生成接口提示信息的过程中,根据已产生的java中间代码,生成接口函数数据模型。动态构建抽象语法树,并以此来解析java中间代码,将获得的接口信息存入接口函数数据模型中,最终用其填充显示界面中的接口提示信息。
动态构建抽象语法树的算法实施步骤如下:
第一步根据java中间代码的特点,定义关键字表{dataType,Token,exp},其中,dataType表示java的基本数据类型(int、double、float等),Token表示”class”,”{”,”}”
第二步根据关键字表递归下降地匹配输入的java中间代码,假设有一个在输入中保存当前下一个记号的token变量,如果匹配成功则前移,并将匹配结果挂入语法树的相关节点上。匹配的原则是将一个非终结符A的规则看作将识别A的一个过程的定义。文法规则包括:
factor2◆Type exp(B);
重复第二步,直到输入结束。
至此,动态构建抽象语法树的的过程结束。
(D)多Web服务实现适配技术
多Web服务实现适配是指能够根据需要,将已生成的服务接口和服务实现类文件发布为不同类型的Web服务(如Axis2,SCA,MULE),这里通过生成的配置文件来灵活地定制Web服务,配置文件将定义服务名称、服务的实现类、服务发布的方式,利用已有的遗产程序转调代码作为服务实现,完成功能上迁移,再配置相应的部署描述文件,部署在各自的服务运行环境中,从而发布为相应的Web服务。
生成配置文件时需要根据不同服务运行平台的部署描述文件规范,为用户提供向导信息,根据用户选择配置产生符合各自平台规定的部署描述文件。
熟知本领域的人士将理解,虽然这里为了便于解释已描述了具体实施例,但是可在不背离本发明精神和范围的情况下作出各种改变。因此,除了所附权利要求之外,不能用于限制本发明。
Claims (4)
1.一种软件构件服务化封装方法,其特征在于:首先将原动态库中的元信息提取出来;再以此为基础,利用java调用C或C++语言技术,以转调的java代码作为Web服务的具体实现部分,实现java对遗产***的转调;最后将服务类文件部署到特定的Web服务运行环境中,根据用户的选择配置产生符合各自平台规定的部署描述文件,并将其和已生成的服务实现类文件部署在各自的运行环境中,发布为相应的Web服务。
2.根据权利要求1所述的软件构件服务化封装方法,其特征在于该方法具体包括如下步骤:
(1)根据用户从界面设置的服务描述信息,以及原始动态库的头文件,采集出服务的元数据信息,并存储在统一的Web服务接口模型中,为配置文件生成以及代码转调提供了所需的信息支持;
(2)以步骤(1)采集到的元数据信息为基础,利用Java调用C或C++语言工具SWIG生成java转调代码和cxx临时文件;
(3)利用自动生成的make文件,调用make命令将cxx临时文件、lib文件和原始头文件产生包装的dll文件;
(4)动态构建抽象语法树,并以此来解析java中间代码,将获得的接口信息存入接口函数数据模型中,用其填充显示界面中的接口提示信息;根据用户选择暴露的接口信息,包装一个接口的java文件和一个实现接口的java文件,实现的java文件中加载包装后的DLL;
(5)根据用户的选择配置产生符合各自服务运行环境规定的部署描述文件;
(6)并将步骤(5)产生的部署描述文件和已生成的服务实现类文件部署在服务运行环境中,发布为相应的Web服务。
3.根据权利要求2所述的软件构件服务化封装方法,其特征在于:所述Web服务接口是通过用户提示的方法,支持根据用户选择暴露的原动态库中的接口自动生成。
4.根据权利要求2所述的软件构件服务化封装方法,其特征在于所述自动生成make文件为:首先建立make文件结构模型,从逻辑的角度对make文件参数进行了分类,在此基础上构建参数模板,包括:依赖于具体源码工程的工程参数模板以及与编译平台紧密相关的平台参数模板;生成方法为:首先按照规定的格式生成工程参数模板并保存到特定路径,接着解析该模板并按照解析结果从平台相关参数模板中读入所需数据,最后生成所需的make文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010150396 CN101840334B (zh) | 2010-04-16 | 2010-04-16 | 一种软件构件服务化封装方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010150396 CN101840334B (zh) | 2010-04-16 | 2010-04-16 | 一种软件构件服务化封装方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101840334A true CN101840334A (zh) | 2010-09-22 |
CN101840334B CN101840334B (zh) | 2013-04-17 |
Family
ID=42743721
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010150396 Active CN101840334B (zh) | 2010-04-16 | 2010-04-16 | 一种软件构件服务化封装方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101840334B (zh) |
Cited By (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101968740A (zh) * | 2010-09-28 | 2011-02-09 | 中国工商银行股份有限公司 | 一种基于java class编译的业务数据动态调整服务器及*** |
CN102281152A (zh) * | 2011-06-08 | 2011-12-14 | 烽火通信科技股份有限公司 | 分布式通信***、实现方法及远程api的编组和解组方法 |
CN102739979A (zh) * | 2011-09-01 | 2012-10-17 | 新奥特(北京)视频技术有限公司 | 一种字幕模板的通用打包方法及*** |
CN102811257A (zh) * | 2012-07-27 | 2012-12-05 | 南京邮电大学 | 一种网络服务自动发布和组合方法 |
CN103399734A (zh) * | 2013-07-10 | 2013-11-20 | 北京慧点科技股份有限公司 | 生成rest服务和rest实现的方法及对应的设备 |
CN104020992A (zh) * | 2014-05-28 | 2014-09-03 | 北京航空航天大学 | 由C/C++生成Java Web服务的方法及装置 |
CN104317575A (zh) * | 2014-09-30 | 2015-01-28 | 珠海格力电器股份有限公司 | 空调器组件的代码文件的封装方法和装置 |
CN106155892A (zh) * | 2015-04-03 | 2016-11-23 | 腾讯科技(深圳)有限公司 | 判断应用程序测试覆盖范围的方法及程序测试设备 |
CN106201744A (zh) * | 2016-07-07 | 2016-12-07 | 普元信息技术股份有限公司 | 构件化***中实现调用RESTful服务的方法 |
CN106354612A (zh) * | 2016-08-25 | 2017-01-25 | 中国人民解放军***72465部队 | 云诊断资源的服务化封装方法及*** |
CN106971007A (zh) * | 2017-04-28 | 2017-07-21 | 成都优易数据有限公司 | 一种利用数据结构控制的数据处理与数据分析框架 |
CN107133036A (zh) * | 2017-04-26 | 2017-09-05 | 武汉斗鱼网络科技有限公司 | 一种模块的管理方法及装置 |
CN108200080A (zh) * | 2018-01-19 | 2018-06-22 | 深圳神州数码云科数据技术有限公司 | 一种远程服务通信方法 |
CN108234167A (zh) * | 2016-12-15 | 2018-06-29 | 中国电子科技集团公司电子科学研究院 | 网管北向接口适配中间件自动生成方法及装置 |
CN108845805A (zh) * | 2012-06-29 | 2018-11-20 | 吴东辉 | 一种软件连接的方法 |
CN109299785A (zh) * | 2018-09-17 | 2019-02-01 | 浪潮软件集团有限公司 | 一种机器学习模型的实现方法及装置 |
CN109614188A (zh) * | 2018-12-01 | 2019-04-12 | 广东鸿正软件技术有限公司 | 一种页面在线帮助方法、装置、计算机设备及存储介质 |
CN110058864A (zh) * | 2019-04-18 | 2019-07-26 | 成都四方伟业软件股份有限公司 | 微服务的部署方法及装置 |
CN110069253A (zh) * | 2019-03-21 | 2019-07-30 | 平安普惠企业管理有限公司 | 配置服务的方法、装置、计算机设备和存储介质 |
CN110597503A (zh) * | 2019-09-19 | 2019-12-20 | 湖南长城医疗科技有限公司 | 基于C#语言的自动构建web服务工具包的方法 |
CN110941246A (zh) * | 2019-10-22 | 2020-03-31 | 杭州电子科技大学 | 一种hmi消息分流调度方法、存储介质及装置 |
CN111061459A (zh) * | 2019-12-11 | 2020-04-24 | 智器云南京信息科技有限公司 | 一种图计算库的封装方法、***、存储介质及电子设备 |
CN111258567A (zh) * | 2018-12-01 | 2020-06-09 | 阿里巴巴集团控股有限公司 | 服务代码开发处理方法及装置 |
CN111459489A (zh) * | 2020-02-27 | 2020-07-28 | 湖南大学 | 一种动态库自动服务化封装方法、***及应用 |
CN111506357A (zh) * | 2020-02-27 | 2020-08-07 | 湖南大学 | 一种动态库自动加载方法、***及应用 |
CN111562951A (zh) * | 2020-05-11 | 2020-08-21 | 电子科技大学 | 一种雷达应用组件服务化实现方法 |
CN111596898A (zh) * | 2020-05-08 | 2020-08-28 | 湖南智领通信科技有限公司 | 一种基于corba组件的sca组件及服务器 |
CN111666074A (zh) * | 2019-03-05 | 2020-09-15 | 华为技术有限公司 | 一种web应用定制的方法、相关装置及*** |
CN112114790A (zh) * | 2020-08-28 | 2020-12-22 | 山东浪潮通软信息科技有限公司 | 一种基于概念数据模型的领域代码生成方法及装置 |
CN112379920A (zh) * | 2020-11-17 | 2021-02-19 | 金蝶云科技有限公司 | Erp***中集成软件的兼容方法、集成平台和存储介质 |
CN113220309A (zh) * | 2021-04-13 | 2021-08-06 | 三峡大学 | 多语言的Modelica组件批量生成***和方法 |
CN113407362A (zh) * | 2021-06-16 | 2021-09-17 | 武汉光庭信息技术股份有限公司 | 基于车载Android***SOA架构SOMEIP通信中间层实现方法及*** |
CN113448545A (zh) * | 2021-06-23 | 2021-09-28 | 北京百度网讯科技有限公司 | 机器学习模型服务化的方法、设备、存储介质及程序产品 |
CN113467931A (zh) * | 2021-06-04 | 2021-10-01 | 中国联合网络通信集团有限公司 | 算力任务的处理方法、装置及*** |
CN113721928A (zh) * | 2021-11-02 | 2021-11-30 | 成都无糖信息技术有限公司 | 一种基于二进制分析的动态库裁剪方法 |
CN113901377A (zh) * | 2021-12-10 | 2022-01-07 | 天聚地合(苏州)数据股份有限公司 | 遗留***的服务调用方法、装置、存储介质及设备 |
CN114020693A (zh) * | 2021-10-19 | 2022-02-08 | 北京五八信息技术有限公司 | 一种头文件地址的获取方法、装置、电子设备及存储介质 |
CN114064150A (zh) * | 2021-11-23 | 2022-02-18 | 上海致景信息科技有限公司 | 一种基于kubernetes平台的本地服务运行方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004348435A (ja) * | 2003-05-22 | 2004-12-09 | Nippon Telegr & Teleph Corp <Ntt> | 統合Webサービス方法、装置、プログラムおよび記録媒体 |
CN1832478A (zh) * | 2005-03-08 | 2006-09-13 | 微软公司 | 用于传统组件的动态服务生成 |
CN1916842A (zh) * | 2006-09-06 | 2007-02-21 | 上海科泰世纪科技有限公司 | 构件化软件***中实现反射机制的构件封装方法 |
-
2010
- 2010-04-16 CN CN 201010150396 patent/CN101840334B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004348435A (ja) * | 2003-05-22 | 2004-12-09 | Nippon Telegr & Teleph Corp <Ntt> | 統合Webサービス方法、装置、プログラムおよび記録媒体 |
CN1832478A (zh) * | 2005-03-08 | 2006-09-13 | 微软公司 | 用于传统组件的动态服务生成 |
CN1916842A (zh) * | 2006-09-06 | 2007-02-21 | 上海科泰世纪科技有限公司 | 构件化软件***中实现反射机制的构件封装方法 |
Cited By (62)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101968740B (zh) * | 2010-09-28 | 2013-05-08 | 中国工商银行股份有限公司 | 一种基于java class编译的业务数据动态调整服务器及*** |
CN101968740A (zh) * | 2010-09-28 | 2011-02-09 | 中国工商银行股份有限公司 | 一种基于java class编译的业务数据动态调整服务器及*** |
CN102281152A (zh) * | 2011-06-08 | 2011-12-14 | 烽火通信科技股份有限公司 | 分布式通信***、实现方法及远程api的编组和解组方法 |
CN102281152B (zh) * | 2011-06-08 | 2014-10-29 | 烽火通信科技股份有限公司 | 分布式通信***、实现方法及远程api的编组和解组方法 |
CN102739979A (zh) * | 2011-09-01 | 2012-10-17 | 新奥特(北京)视频技术有限公司 | 一种字幕模板的通用打包方法及*** |
CN102739979B (zh) * | 2011-09-01 | 2017-11-10 | 新奥特(北京)视频技术有限公司 | 一种字幕模板的通用打包方法及*** |
CN108845805B (zh) * | 2012-06-29 | 2021-09-14 | 江苏特力威信息***有限公司 | 一种软件连接的方法 |
CN108845805A (zh) * | 2012-06-29 | 2018-11-20 | 吴东辉 | 一种软件连接的方法 |
CN102811257A (zh) * | 2012-07-27 | 2012-12-05 | 南京邮电大学 | 一种网络服务自动发布和组合方法 |
CN102811257B (zh) * | 2012-07-27 | 2015-06-17 | 南京邮电大学 | 一种网络服务自动发布和组合方法 |
CN103399734A (zh) * | 2013-07-10 | 2013-11-20 | 北京慧点科技股份有限公司 | 生成rest服务和rest实现的方法及对应的设备 |
CN103399734B (zh) * | 2013-07-10 | 2017-02-08 | 北京慧点科技有限公司 | 生成rest服务和rest实现的方法及对应的设备 |
CN104020992B (zh) * | 2014-05-28 | 2017-06-06 | 北京航空航天大学 | 由C/C++生成Java Web服务的方法及装置 |
CN104020992A (zh) * | 2014-05-28 | 2014-09-03 | 北京航空航天大学 | 由C/C++生成Java Web服务的方法及装置 |
CN104317575A (zh) * | 2014-09-30 | 2015-01-28 | 珠海格力电器股份有限公司 | 空调器组件的代码文件的封装方法和装置 |
CN104317575B (zh) * | 2014-09-30 | 2018-04-13 | 珠海格力电器股份有限公司 | 空调器组件的代码文件的封装方法和装置 |
CN106155892A (zh) * | 2015-04-03 | 2016-11-23 | 腾讯科技(深圳)有限公司 | 判断应用程序测试覆盖范围的方法及程序测试设备 |
CN106201744A (zh) * | 2016-07-07 | 2016-12-07 | 普元信息技术股份有限公司 | 构件化***中实现调用RESTful服务的方法 |
CN106201744B (zh) * | 2016-07-07 | 2019-08-27 | 普元信息技术股份有限公司 | 构件化***中实现调用RESTful服务的方法 |
CN106354612A (zh) * | 2016-08-25 | 2017-01-25 | 中国人民解放军***72465部队 | 云诊断资源的服务化封装方法及*** |
CN108234167A (zh) * | 2016-12-15 | 2018-06-29 | 中国电子科技集团公司电子科学研究院 | 网管北向接口适配中间件自动生成方法及装置 |
CN108234167B (zh) * | 2016-12-15 | 2021-03-16 | 中国电子科技集团公司电子科学研究院 | 网管北向接口适配中间件自动生成方法及装置 |
CN107133036A (zh) * | 2017-04-26 | 2017-09-05 | 武汉斗鱼网络科技有限公司 | 一种模块的管理方法及装置 |
CN107133036B (zh) * | 2017-04-26 | 2020-10-16 | 武汉斗鱼网络科技有限公司 | 一种模块的管理方法及装置 |
CN106971007B (zh) * | 2017-04-28 | 2021-05-28 | 成都优易数据有限公司 | 一种利用数据结构控制的数据处理与数据分析框架 |
CN106971007A (zh) * | 2017-04-28 | 2017-07-21 | 成都优易数据有限公司 | 一种利用数据结构控制的数据处理与数据分析框架 |
CN108200080A (zh) * | 2018-01-19 | 2018-06-22 | 深圳神州数码云科数据技术有限公司 | 一种远程服务通信方法 |
CN108200080B (zh) * | 2018-01-19 | 2021-03-16 | 深圳神州数码云科数据技术有限公司 | 一种远程服务通信方法 |
CN109299785B (zh) * | 2018-09-17 | 2022-04-26 | 浪潮软件股份有限公司 | 一种机器学习模型的实现方法及装置 |
CN109299785A (zh) * | 2018-09-17 | 2019-02-01 | 浪潮软件集团有限公司 | 一种机器学习模型的实现方法及装置 |
CN111258567B (zh) * | 2018-12-01 | 2023-06-16 | 阿里巴巴集团控股有限公司 | 服务代码开发处理方法及装置 |
CN111258567A (zh) * | 2018-12-01 | 2020-06-09 | 阿里巴巴集团控股有限公司 | 服务代码开发处理方法及装置 |
CN109614188A (zh) * | 2018-12-01 | 2019-04-12 | 广东鸿正软件技术有限公司 | 一种页面在线帮助方法、装置、计算机设备及存储介质 |
CN111666074B (zh) * | 2019-03-05 | 2024-04-09 | 华为技术有限公司 | 一种web应用定制的方法、相关装置及*** |
CN111666074A (zh) * | 2019-03-05 | 2020-09-15 | 华为技术有限公司 | 一种web应用定制的方法、相关装置及*** |
CN110069253A (zh) * | 2019-03-21 | 2019-07-30 | 平安普惠企业管理有限公司 | 配置服务的方法、装置、计算机设备和存储介质 |
CN110058864B (zh) * | 2019-04-18 | 2023-08-22 | 成都四方伟业软件股份有限公司 | 微服务的部署方法及装置 |
CN110058864A (zh) * | 2019-04-18 | 2019-07-26 | 成都四方伟业软件股份有限公司 | 微服务的部署方法及装置 |
CN110597503A (zh) * | 2019-09-19 | 2019-12-20 | 湖南长城医疗科技有限公司 | 基于C#语言的自动构建web服务工具包的方法 |
CN110941246A (zh) * | 2019-10-22 | 2020-03-31 | 杭州电子科技大学 | 一种hmi消息分流调度方法、存储介质及装置 |
CN110941246B (zh) * | 2019-10-22 | 2021-03-16 | 杭州电子科技大学 | 一种hmi消息分流调度方法、存储介质及装置 |
CN111061459A (zh) * | 2019-12-11 | 2020-04-24 | 智器云南京信息科技有限公司 | 一种图计算库的封装方法、***、存储介质及电子设备 |
CN111459489A (zh) * | 2020-02-27 | 2020-07-28 | 湖南大学 | 一种动态库自动服务化封装方法、***及应用 |
CN111459489B (zh) * | 2020-02-27 | 2023-09-26 | 湖南大学 | 一种动态库自动服务化封装方法、***及应用 |
CN111506357A (zh) * | 2020-02-27 | 2020-08-07 | 湖南大学 | 一种动态库自动加载方法、***及应用 |
CN111596898A (zh) * | 2020-05-08 | 2020-08-28 | 湖南智领通信科技有限公司 | 一种基于corba组件的sca组件及服务器 |
CN111596898B (zh) * | 2020-05-08 | 2024-01-30 | 湖南智领通信科技有限公司 | 一种基于corba组件的sca组件及服务器 |
CN111562951A (zh) * | 2020-05-11 | 2020-08-21 | 电子科技大学 | 一种雷达应用组件服务化实现方法 |
CN111562951B (zh) * | 2020-05-11 | 2022-05-03 | 电子科技大学 | 一种雷达应用组件服务化实现方法 |
CN112114790A (zh) * | 2020-08-28 | 2020-12-22 | 山东浪潮通软信息科技有限公司 | 一种基于概念数据模型的领域代码生成方法及装置 |
CN112379920A (zh) * | 2020-11-17 | 2021-02-19 | 金蝶云科技有限公司 | Erp***中集成软件的兼容方法、集成平台和存储介质 |
CN113220309A (zh) * | 2021-04-13 | 2021-08-06 | 三峡大学 | 多语言的Modelica组件批量生成***和方法 |
CN113467931A (zh) * | 2021-06-04 | 2021-10-01 | 中国联合网络通信集团有限公司 | 算力任务的处理方法、装置及*** |
CN113467931B (zh) * | 2021-06-04 | 2023-12-22 | 中国联合网络通信集团有限公司 | 算力任务的处理方法、装置及*** |
CN113407362A (zh) * | 2021-06-16 | 2021-09-17 | 武汉光庭信息技术股份有限公司 | 基于车载Android***SOA架构SOMEIP通信中间层实现方法及*** |
CN113448545B (zh) * | 2021-06-23 | 2023-08-08 | 北京百度网讯科技有限公司 | 机器学习模型服务化的方法、设备、存储介质及程序产品 |
CN113448545A (zh) * | 2021-06-23 | 2021-09-28 | 北京百度网讯科技有限公司 | 机器学习模型服务化的方法、设备、存储介质及程序产品 |
CN114020693A (zh) * | 2021-10-19 | 2022-02-08 | 北京五八信息技术有限公司 | 一种头文件地址的获取方法、装置、电子设备及存储介质 |
CN113721928A (zh) * | 2021-11-02 | 2021-11-30 | 成都无糖信息技术有限公司 | 一种基于二进制分析的动态库裁剪方法 |
CN114064150A (zh) * | 2021-11-23 | 2022-02-18 | 上海致景信息科技有限公司 | 一种基于kubernetes平台的本地服务运行方法 |
CN113901377B (zh) * | 2021-12-10 | 2022-03-25 | 天聚地合(苏州)数据股份有限公司 | 遗留***的服务调用方法、装置、存储介质及设备 |
CN113901377A (zh) * | 2021-12-10 | 2022-01-07 | 天聚地合(苏州)数据股份有限公司 | 遗留***的服务调用方法、装置、存储介质及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN101840334B (zh) | 2013-04-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101840334B (zh) | 一种软件构件服务化封装方法 | |
CN102968306B (zh) | 一种基于数据模型驱动的代码自动生成方法和*** | |
CN109597661B (zh) | 一种业务功能配置方法及装置 | |
CN1811702B (zh) | 用于向门户服务器应用环境自动部署门户应用的***和方法 | |
CN103970737B (zh) | 一种数据构造方法和装置 | |
CN101334728B (zh) | 一种基于xml文档描述的界面生成方法和装置 | |
CN101339500B (zh) | 基于xml模式的数据绑定应用程序接口生成方法 | |
CN101777004B (zh) | 面向服务环境中基于模板实现bpel子流程复用的方法及*** | |
CN101958987B (zh) | 电信业务数据动态转换的方法及其*** | |
CN100557609C (zh) | 一种持久层生成方法及装置 | |
CN102314358B (zh) | 一种在云平台上以soa的方式部署常规应用的方法 | |
CN101192141B (zh) | 一种将uoml封装成应用程序编程接口的方法 | |
CN109597814A (zh) | 一种后台管理信息***的在线快速交付*** | |
Pescador et al. | Pattern-based development of domain-specific modelling languages | |
CN106095792A (zh) | 生成数据库操作代码的方法和装置 | |
CN100561476C (zh) | 一种基于asn类型对象的代码生成方法 | |
CN104020994B (zh) | 基于流***的流过程定义装置和流过程定义方法 | |
CN102566984B (zh) | 一种配置参数的方法及装置 | |
CN101146281A (zh) | 一种面向移动终端的创建图形用户界面模型 | |
CN104424265A (zh) | 数字资源管理方法及*** | |
CN103645908A (zh) | 网构软件全生命周期开发实现*** | |
CN109116828A (zh) | 一种控制器中模型代码配置方法和装置 | |
CN105630500A (zh) | 一种用于数据处理的cim对象模型及其编程框架 | |
Kritikos et al. | Towards the modelling of hybrid cloud applications | |
CN105893591B (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 |