CN103714035B - 一种用于集成环境的多层软件总线结构 - Google Patents
一种用于集成环境的多层软件总线结构 Download PDFInfo
- Publication number
- CN103714035B CN103714035B CN201310751618.7A CN201310751618A CN103714035B CN 103714035 B CN103714035 B CN 103714035B CN 201310751618 A CN201310751618 A CN 201310751618A CN 103714035 B CN103714035 B CN 103714035B
- Authority
- CN
- China
- Prior art keywords
- bus
- plug
- unit
- data
- type
- 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
Links
Landscapes
- Stored Programmes (AREA)
- Bus Control (AREA)
Abstract
一种用于集成环境的多层软件总线结构,所述结构包括多层总线和插件;多层总线由若干处于不同层次的总线组成,这些总线按照树的拓扑结构组织在一起:最底层有且只有一条总线,称为全局总线,其他各层次的总线都称为局部总线,以全局总线为树根,形成多层的树状结构;插件是集成环境中被集成的软件的封装,以服务的形式将被集成软件的功能加入集成环境中。本发明所提出的多层总线结构实现了总线协议的可扩展性,能够通过增加新的局部总线,对总线协议进行扩展,以针对新类型工具进行更加高效、紧密的集成。
Description
技术领域
本发明涉及一种软件体系结构,该体系结构采用了多层总线的设计,底层的总线为插件集成提供基本的动态加载、数据访问支持,上层的总线则针对特定类型的插件提供相应的数据类型支持和运行控制支持。这一体系结构,既能够保证工具集成系统的可扩展性,又简化了系统实现的难度,有效地解决了各类软件工具的集成问题。
背景技术
计算机软件工具已被广泛应用于各种产品研制流程中,一个产品研制流程中往往可能使用若干不同的软件工具,这些工具之间的数据和控制交互需要人工完成,这引入了较大的工作量和潜在的质量问题,因此有必要将这些工具进行集成,实现自动化的工具间数据和控制交互。软件总线技术是一种被广泛使用的工具集成技术,不同的工具按照统一的规范连接到同一软件总线上,实现数据的统一管理和工具的自动调用,提高产品研制的效率。
然而,在产品研制流程中使用的软件可能来源不同、功能不同、操作方式不同、所使用的数据抽象层次和描述方式不同,定义统一的总线规范来对这些不同的工具进行统一的操作,并对工具的输入输出数据进行统一的描述,是非常困难的。为解决这一问题,本发明提出了一种多层总线的结构,底层总线提供基本的工具集成支持,上层总线则针对不同类型的工具提供专门的支持,通过这种方式解决上述问题。
目前工业界已发布并实现了若干用于软件工具集成的软件总线,例如IBM的Websphere、Oracle的Oracle Service Bus,其目的主要是将各自企业提供的软件以Web服务的形式开放,以便企业自身开发人员以及第三方开发人员能够方便的使用企业提供的软件功能,构建、定制客户所需的系统。这些软件总线具有一定的可扩展性,通过统一的协议将不同工具集成在一起。但这些软件总线都是基于Web服务的,工具间的通信效率较低,适用于分布式的工具集成,而不适用于软件开发平台、建模平台、图形处理平台这类对响应速度和数据传输速度要求较高的情境;这些总线只支持工具的扩展,而不支持协议的扩展,而为了能够支持不同种类工具的扩展,制定了复杂的通信协议(或互操作规范),也使得开发人员的学习成本较高。
另一类广泛应用的工具集成技术是插件技术。插件是实现原系统平台不具备的功能的程序,其只能运行在程序规定的系统平台下,而不能脱离指定的平台单独运行,因为插件需要调用原系统提供的函数库或者数据。在各种开源或商业软件中,如开源的Eclipse项目、微软的Visual Studio、IBM的RationalDOORS等系统中,都应用了插件技术,以便用户能够根据需要对原系统进行扩展和定制。本质上,插件所依赖的系统平台即作为软件总线,插件要按照系统平台的要求进行开发,调用系统平台提供的接口访问相关资源,对功能进行扩展。插件技术多用于单机运行的软件,工具调用效率和数据传输速度比较高。但这种方式不便于被集成工具间的通信,同时,也无法实现总线协议的扩展,因而所支持的工具种类受到了限制。
本发明提出的多层总线结构以全局总线作为基础,支持工具的扩展和总线的扩展,利用不同层次的局部总线实现对不同类型工具的高效集成。
发明内容
本发明解决的问题是:克服现有技术的不足,提供一种可扩展的、适用于对功能不同、所使用数据不同的工具进行集成的多层总线结构,以全局总线作为基础,支持工具的扩展和总线的扩展,利用不同层次的局部总线实现对不同类型工具的高效集成。
本发明解决方案,该体系结构采用了多层总线的设计,底层的总线为插件提供基本的动态加载、数据访问支持,上层的总线则针对特定类型的插件提供相应的数据类型支持和运行控制支持。这一体系结构,既能够保证工具集成系统的可扩展性,又简化了系统实现的难度,有效地解决了各类软件工具的集成问题。
为达到上述目的,本发明的技术方案如下。
1.多层总线与插件的组织方式
多层总线是一种新型的软件总线,由若干处于不同层次的总线组成,这些总线按照树的拓扑结构组织在一起:最底层有且只有一条总线,称为全局总线,其他各层次的总线都称为局部总线,以全局总线为树根,形成多层的树状结构。每一条总线上都可以直接连接多条局部总线,称为该总线的子总线;每条局部总线有且只有一条与其直接连接的下层总线,称为该总线的父总线。全局总线为所有类型的插件的集成和互操作提供基本的支持。而每一条局部总线针对一类插件的集成和互操作提供有针对性的支持以提高插件集成和互操作的效率。上一层总线所支持的插件的集和为其父总线所支持插件的子集,因此,子总线是其父总线的具体化。
全局总线与其子总线直接连接;局部总线与其父总线和子总线直接连接。总线之间通过上述连接进行数据传递和功能调用。
全局总线提供基本数据类型和基本操作类型的定义,以这些基本数据类型和基本操作类型为参数,实现插件间的数据传递或功能调用;全局总线还规定插件所必须实现的基本接口,通过这些接口,全局总线能够按照基本操作的定义来调用插件的功能,或实现与插件的数据传递。
局部总线则根据一类插件的具体功能和输入输出数据,定义这类插件公用的扩展数据类型和扩展操作类型;并提供局部总线编程接口,以这些扩展数据类型和扩展操作类型为参数,实现该类插件间较高效的功能调用和数据传递;此外,局部总线还规定连接局部总线的插件应实现的扩展接口,通过这些扩展接口,局部总线能够按照扩展操作的定义来调用插件的功能,或实现与插件的数据传递。
全局总线定义的基本数据类型和基本操作类型适用于描述所有类型插件的输入输出数据和操作,而所有局部总线所定义的扩展数据类型和扩展操作类型是基本数据类型和基本操作类型的子类,是对基本数据类型和基本操作类型的具体化,描述了一类数据或操作更多的语法和语义信息;同样,局部总线中子总线所定义的扩展数据类型和扩展操作类型也是其父总线所定义类型的子类,比父总线定义的类型描述更具体的语法和语义信息。
插件是集成环境中被集成的软件的封装,以服务的形式将被集成软件的功能加入集成环境中。一个插件提供一个或多个功能,每个功能对应插件所封装的被集成软件的一个功能。各插件都连接在多层总线上,通过多层总线进行插件间的数据传递和功能调用,并获得集成环境提供的服务。
而插件与多层总线的连接具体是插件与多层总线中的某一条总线的连接实现的,该总线称为插件的“直连总线”;反之,称插件是其直连总线的“直连插件”。一般来说,插件应连接在与其类型匹配的最上层总线上,从而充分利用多层总线提供的针对该类型插件的支持。无任何局部总线支持的插件类型,可以直接连接在全局总线上。
插件与其直连总线间可以直接进行数据传递和功能调用,并通过其直连总线与其他总线、插件进行间接的数据传递和功能调用。
全局总线只能以基本数据类型和基本操作类型作为参数,实现两个插件间的功能调用或数据传递时,两个插件必须进行一对一的参数数据解析;局部总线根据工具的输入输出类型定义更丰富的数据类型和操作类型,并直接按照这些数据类型和操作类型进行参数的传递;此外,局部总线还能够定义更丰富的插件功能调用方式,便于实现插件间的紧密集成。
2.插件信息的收集
一个插件提供一个或多个服务,作为供其他总线或插件调用的基本单位。在一个总线上,所有插件都具有一个唯一标识;一个插件上,所有服务具有一个唯一标识。同时,每个总线也具有一个全局的唯一标识。通过这些标识,可以对插件、服务进行查找。
在系统初始化时,全局总线和各局部总线各自扫描系统中存在的插件,根据插件的接口信息,识别直连插件,形成各自的直连插件列表和服务列表。
之后,从顶层总线开始,各层次总线将获取子总线上连接的插件,形成总线上面直接或间接连接的所有总线的列表。
3.插件间的调用
当一个插件要调用其他插件的功能时,需要向其直连总线发送调用请求。发送调用请求是通过调用插件调用请求接口实现的,所有总线都提供格式相同的插件调用请求接口。直连总线首先从直连插件列表中查找对应的插件。若找到,则加载并调用该插件;若未找到,则向上一层总线发送操作请求,由上一层总线接手插件的查找和调用的任务;如此反复,直到找到插件并调用成功。
从另一角度,当总线接收到插件调用请求并确定该插件直接或间接连接在自身时,首先查看插件是否在自身的直连插件列表中:若在,则直接调用;若不在,则向对应的子总线发送插件调用请求,再由子总线处理,直到找到插件的直连总线,由其实现对插件的调用。
当一个插件调用请求从上层总线转发到下层总线时,上层总线要按照下层总线的数据格式对调用请求附带的参数进行封装,再进行发送。例如,全局总线上只定义了字符串和文件路径两种数据格式,如果全局总线上一层的局部总线要想全局总线转发调用请求,必须将请求附带的参数转换成字符串或者保存为文件,再将字符串或文件路径作为调用参数转发给全局总线。
而当一个插件调用连接到统一总线上的插件时,则无需上述转换。
反之,当一个通信请求从下层总线转发到其子总线时,子总线需要对通信请求附带的数据进行解包,通过文本解析、反射技术,将下层总线传来的基本数据类型的数据转换为子总线定义的更具体的扩展数据类型,从而便于进行后续处理。
图2描述了两个插件间调用的过程。图中插件A与插件B都连接在局部总线X上,而插件C连接在局部总线Y上。局部总线X、局部总线Y都连接在全局总线上。插件A要调用插件B的服务B1时,首先向局部总线X发送调用请求,局部总线X在直连插件列表中找到插件B,并直接调用插件B的服务B1。而插件B要调用插件C的服务C1时,需要向局部总线X发送调用那个请求。插件C没有连接在局部总线X上,因此,局部总线X将调用请求的参数封装后,将调用请求转发给全局总线,全局总线再向局部总线Y转发该调用请求。最后,插件C的直连总线,即局部总线Y,直接调用插件C的服务C1,从而实现整个调用过程。
本发明与现有相比的优点在于:本发明所提出的多层总线结构实现了总线协议的可扩展性,能够通过增加新的局部总线,对总线协议进行扩展,以针对新类型工具进行更加高效、紧密的集成。
附图说明
图1是多层总线结构示意图;
图2是多层总线结构下插件间调用过程示意图;
图3是两层总线实例结构图。
具体实施方式
以下以一个高可信嵌入式软件集成开发环境编码部分的多层总线为例,对本发明做进一步说明。
实例对象为高可信嵌入式软件集成开发环境的多层总线,包括全局总线以及编码阶段局部总线和测试阶段局部总线。其中编码阶段局部总线上连接代码编辑器、编译器两个插件;测试阶段局部总线则连接着嵌入式系统仿真运行环境插件。
1.全局总线
全局总线定义“参数”、字符串和路径这三种基本数据类型,定义调用服务这一种基本操作。
“参数”为最基本的数据类型,所有参数数据类型继承自此数据类型,在编程实现中可采用Object(Java、C#)、CObject(MFC)来作为参数的数据结构实现。
字符串类型即一个字符串,继承自“参数”类型。路径类型则是一个特殊的字符串,继承自字符串类型。
服务调用的基本操作是插件或总线调用适配器功能的基本接口,需要三个输入参数:插件的标识、服务标识、输入参数列表。
2.编码阶段局部总线
编码阶段局部总线定义“源代码”、“目标码”这两种扩展数据类型(从数据结构上看,扩展数据类型为基本数据类型的子类);同时定义代码编辑、代码编译两种扩展操作(从数据结构上看,扩展操作对应数据结构为基本操作数据结构的子类)。
针对每类数据定义一个固定的描述方式,及所谓的公共数据模型,如下:
(1)源代码数据结构定义:
字段 | 类型 | 说明 |
源代码项目ID | 字符串 | ID |
源代码项目文件 | 路径 | 源代码项目文件存储路径 |
源文件列表 | 文件对象列表 | 源文件的列表,列表元素为文件对象 |
头文件目录列表 | 目录对象列表 | 头文件目录的列表,列表元素为目录对象 |
库文件列表 | 库文件列表 | 库文件的列表,列表元素为文件对象 |
语言类型 | 枚举 | ANSI C/KEIL C… |
版本 | 字符串 | 版本号 |
负责人 | 用户对象 | 编码负责人 |
创建时间 | 时间 | |
最后修改时间 | 时间 | |
工具支撑 | 适配器服务对象 | 对此对象操作的适配器服务 |
(2)目标码数据结构定义:
字段 | 类型 | 说明 |
目标码项目ID | 字符串 | ID |
目标码项目路径 | 路径 | 目标码项目的存储路径 |
目标码文件列表 | 文件对象列表 | 目标码文件的列表,列表元素为文件对象 |
调试信息文件列表 | 文件对象列表 | 调试信息文件对象的列表 |
编译器配置 | 编译器配置对象 | 编译器配置 |
目标码类型 | 枚举 | ERC32… |
负责人 | 用户对象 | 负责人 |
创建时间 | 时间 | |
最后修改时间 | 时间 | |
工具支撑 | 适配器服务对象 | 对此对象操作的适配器服务 |
对于代码编辑、代码编译两项活动,可定义为若干扩展操作,这些扩展操作是与插件实现无关的,局部总线发送这些操作指令给插件,再由插件将标准操作指令映射(转换)为对工具的具体操作。
(1)代码编辑操作:
a)建立代码项目:
i.输入:项目名称、项目文件存储位置(包含文件名);
ii.输出:源代码对象;
b)代码文件的增、删;
i.输入:源代码对象;
ii.输出:源代码对象;
c)代码编辑;
i.输入:源代码对象、源代码文件路径;
ii.输出:无;
d)头文件、库文件的维护;
i.输入:源代码对象;
ii.输出:无。
(2)代码编译操作:
a)编译器配置:
i.输入:图形界面输入;
ii.输出:编译配置对象;
b)编译:
i.输入:源代码对象、编译配置对象;
ii.输出:目标码对象;
3.测试阶段局部总线
测试阶段引用编码阶段局部总线源代码和目标码两个数据类型,并定义动态测试项目、测试用例两个扩展数据类型,以及运行动态测试这一个扩展操作。
两个扩展数据类型的数据结构定义如下。:
(1)动态测试项目数据结构定义:
字段 | 类型 | 说明 |
动态测试项目ID | 字符串 | ID |
动态测试项目文件 | 路径 | 动态测试项目文件存储路径 |
源代码 | 源代码 | 源代码的对象 |
目标码 | 目标码 | 目标码的对象 |
测试用例集 | 测试用例列表 | 测试用例对象的列表 |
负责人 | 用户对象 | 负责人 |
开始日期 | 时间 | 测试启动的日期 |
完成时间 | 时间 | 测试完成的日期 |
(2)测试用例数据结构定义:
字段 | 类型 | 说明 |
测试用例ID | 字符串 | ID |
动态测试项目 | 动态测试项目对象 | 对应的动态测试项目 |
测试步骤 | 测试步骤对象列表 | 测试步骤对象的列表 |
测试结论 | 字符串 | 此测试用例是否通过 |
…… | …… | ……· |
运行动态测试这一操作将调用嵌入式系统仿真运行环境插件,运行一个动态测试项目。该操作的输入参数为动态测试项目对象,输出为动态测试项目对象。
4.插件间的调用
图3描述了这一基于多层总线体系结构的集成环境的插件调用方式。
代码编辑器将调用编译器插件提供的编译功能,对当前编辑的源代码项目进行编译,形成目标码;另外代码编辑器还需要调用动态仿真运行环境插件,对软件进行动态调试和测试。
(1)代码编辑器调用编译器
两个插件在同一局部总线上。代码编辑器向编码阶段局部总线发送调用编译器插件的编译操作,给定输入参数为当前所编辑的源代码对象和默认编译配置文件。编码阶段局部总线将直接调用编译器插件的编译服务(对应于编译操作),将代码编译器传来的两个输入参数直接传给编译器插件。编译器插件的编译服务运行完成后,生成目标码对象,传回给编码阶段局部总线,然后再传回给代码编辑器。
(2)代码编辑器调用动态仿真运行环境
两个插件处于两个不同的局部总线上。
首先,代码编辑器向编码阶段局部总线发送调用动态仿真运行环境插件的运行动态测试操作,将代码编辑器当前编辑的源代码项目所对应的源代码对象、目标码等对象等组合成一个动态测试项目对象,作为调用的输入参数传给编码阶段局部总线。
第二步,编码阶段局部总线将作为输入参数传来的动态测试项目对象存储成一个本地文件,获得本地文件的路径,将该路径作为输入参数,包装成一个在全局总线上调用动态测试操作的插件调用请求,转发给全局总线。
第三步,全局总线将第二步的调用请求转发给测试阶段局部总线。
第四步,测试阶段局部总线按照全局总线传来的调用请求输入参数,读取文件,生成一个动态测试项目对象,以此对象为输入参数,生成调用运行动态测试操作的新的调用请求。
第五步,根据上述新调用请求,调用动态仿真运行环境插件提供的动态测试服务(对应于动态测试操作),测试结果将作为对象再逐层返回到调用者(代码编辑器)处。
按照上述四个方面的设计,可实现一套基于多层总线的集成平台,完成多个工具间的互操作,该集成平台具有良好的可扩展性。
Claims (3)
1.一种用于集成环境的多层软件总线结构,其特征在于:所述结构包括多层总线和插件;
多层总线由若干处于不同层次的总线组成,这些总线按照树的拓扑结构组织在一起:最底层有且只有一条总线,称为全局总线,其他各层次的总线都称为局部总线,以全局总线为树根,形成多层的树状结构;每一条总线上都能够直接连接多条局部总线,称为该总线的子总线;每条局部总线有且只有一条与其直接连接的下层总线,称为该总线的父总线;全局总线为所有类型的插件的集成和互操作提供基本的支持,而每一条局部总线针对一类插件的集成和互操作提供有针对性的支持以提高插件集成和互操作的效率;上一层总线所支持的插件的集和为其父总线所支持插件的子集,子总线是其父总线的具体化;全局总线与其子总线直接连接;局部总线与其父总线和子总线直接连接,总线之间通过上述连接进行数据传递和功能调用;
插件是集成环境中被集成的软件的封装,以服务的形式将被集成软件的功能加入集成环境中;一个插件提供一个或多个功能,每个功能对应插件所封装的被集成软件的一个功能;各插件都连接在多层总线上,通过多层总线进行插件间的数据传递和功能调用,并获得集成环境提供的服务;插件与多层总线的连接具体是插件与多层总线中的某一条总线的连接实现的,该总线称为插件的“直连总线”;反之,称插件是其直连总线的“直连插件”;插件应连接在与其类型匹配的最上层总线上,充分利用多层总线提供的针对该类型插件的支持,无任何局部总线支持的插件类型,可以直接连接在全局总线上;
插件与其直连总线间直接进行数据传递和功能调用,并通过其直连总线与其他总线、插件进行间接的数据传递和功能调用;
所述全局总线,提供基本数据类型和基本操作类型的定义,以这些基本数据类型和基本操作类型为参数,实现插件间的数据传递或功能调用;全局总线还规定插件所必须实现的基本接口,通过这些接口,全局总线能够按照基本操作的定义来调用插件的功能,或实现与插件的数据传递;
所述局部总线则根据一类插件的具体功能和输入输出数据,定义这类插件公用的扩展数据类型和扩展操作类型;并提供局部总线编程接口,以这些扩展数据类型和扩展操作类型为参数,实现该类插件间较高效的功能调用和数据传递;此外,局部总线还规定连接局部总线的插件应实现的扩展接口,通过这些扩展接口,局部总线能够按照扩展操作的定义来调用插件的功能,或实现与插件的数据传递;
全局总线定义的基本数据类型和基本操作类型适用于描述所有类型插件的输入输出数据和操作,而所有局部总线所定义的扩展数据类型和扩展操作类型是基本数据类型和基本操作类型的子类,是对基本数据类型和基本操作类型的具体化,描述了一类数据或操作更多的语法和语义信息;同样,局部总线中子总线所定义的扩展数据类型和扩展操作类型也是其父总线所定义类型的子类,比父总线定义的类型描述更具体的语法和语义信息;
全局总线只能以基本数据类型和基本操作类型作为参数,实现两个插件间的功能调用或数据传递时,两个插件必须进行一对一的参数数据解析;局部总线根据工具的输入输出类型定义更丰富的数据类型和操作类型,并直接按照这些数据类型和操作类型进行参数的传递;此外,局部总线还能够定义更丰富的插件功能调用方式,便于实现插件间的紧密集成。
2.根据权利要求1所述的一种用于集成环境的多层软件总线结构,其特征在于:所述各插件都连接在多层总线上,通过多层总线进行插件间的数据传递和功能调用,并获得集成环境提供的服务的实现如下:
(1)在初始化时,多层总线中的各条总线各自扫描系统中存在的插件,根据插件的接口信息,识别直连插件,形成各自的直连插件列表和服务列表;之后,从最上层总线开始,各层总线将获取子总线上连接的插件和服务信息,形成总线上直接或间接连接的所有插件的列表;
(2)当一个插件要与其他插件进行功能调用或数据传递时,需要向其直连总线发送通信请求,发送通信请求时通过通信接口实现的,所有总线都提供各式相同的通信接口;该插件的直连总线首先查找目标插件是否是其直连插件,若是,则加载并调用该插件进行通信,也即进行对应的功能调用或数据传递;若不是,则向上一层总线发送操作请求,由上一层总线接受进行通信请求的发送任务;如此反复,直到找到目标插件,并进行功能调用或数据传递;
(3)当总线接收到通信请求时,首先检查目标插件是否直接或间接连接到自身;若否,则不做响应;若是,检查目标插件是否是自身的直连插件:若是,则直接进行功能调用或数据传递;若否,则向所有子总线转发该通信请求,再由子总线进行处理,直到找到目标插件的直连总线,尤其实现对插件的通信。
3.根据权利要求2所述的一种用于集成环境的多层软件总线结构,其特征在于:所述各插件通过多层总线发送调用数据时,需要依据数据传输过程中所经历的各层总线的数据类型定义对数据进行封装;
当一个通信请求从上层总线转发到其父总线时,上层总线需要按照父总线的数据类型定义对通信请求附带的数据进行封装,再进行发送;
反之,当一个通信请求从下层总线转发到其子总线时,子总线需要对通信请求附带的数据进行解包,通过文本解析、反射技术,将下层总线传来的基本数据类型的转换为子总线定义的较具体的扩展数据类型,从而便于进行后续处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310751618.7A CN103714035B (zh) | 2013-12-31 | 2013-12-31 | 一种用于集成环境的多层软件总线结构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310751618.7A CN103714035B (zh) | 2013-12-31 | 2013-12-31 | 一种用于集成环境的多层软件总线结构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103714035A CN103714035A (zh) | 2014-04-09 |
CN103714035B true CN103714035B (zh) | 2015-07-08 |
Family
ID=50407029
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310751618.7A Active CN103714035B (zh) | 2013-12-31 | 2013-12-31 | 一种用于集成环境的多层软件总线结构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103714035B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105262614A (zh) * | 2015-09-08 | 2016-01-20 | 北京思特奇信息技术股份有限公司 | 一种基于服务插件的业务处理方法及其系统 |
CN114721736B (zh) * | 2022-03-07 | 2024-02-02 | 华中科技大学 | 一种基于软plc的数据管理方法和系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1889496A (zh) * | 2006-07-19 | 2007-01-03 | 山东富臣发展有限公司 | 支持即插即用的基于can总线的分层控制树状网络 |
CN101989240A (zh) * | 2009-07-13 | 2011-03-23 | 甲骨文美国公司 | 用于设备资源分配和再平衡的系统和方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6963947B2 (en) * | 2001-05-08 | 2005-11-08 | Tao Logic Systems Llc | Driver supporting bridge method and apparatus |
-
2013
- 2013-12-31 CN CN201310751618.7A patent/CN103714035B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1889496A (zh) * | 2006-07-19 | 2007-01-03 | 山东富臣发展有限公司 | 支持即插即用的基于can总线的分层控制树状网络 |
CN101989240A (zh) * | 2009-07-13 | 2011-03-23 | 甲骨文美国公司 | 用于设备资源分配和再平衡的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103714035A (zh) | 2014-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6334158B1 (en) | User-interactive system and method for integrating applications | |
US7496890B2 (en) | Generation of configuration instructions using an abstraction technique | |
CN100520718C (zh) | 脚本命令注册方法、调用源程序代码的方法和装置 | |
CN105740411B (zh) | 一种基于SOA和WebService的数据迁移方法 | |
CN104111826A (zh) | 一种软件项目开发方法及装置 | |
CN101276279B (zh) | 一种统一开发系统 | |
CN101256492A (zh) | 一种进行模型驱动架构的软件开发方法及其系统 | |
CN106648587A (zh) | 一种基于注解的Web应用代码生成方法 | |
US20090249369A1 (en) | Module-to-module association support method, program, and system | |
CN101334728A (zh) | 一种基于xml文档描述的界面生成方法和平台 | |
CN102968306A (zh) | 一种基于数据模型驱动的代码自动生成方法和系统 | |
US20050108684A1 (en) | Method and system for generating an application object repository from application framework metadata | |
CN102087594B (zh) | 扩展点和插件的管理方法和装置 | |
KR20020097147A (ko) | 새로운 컴포넌트를 생성 또는 구입하며 이들을 목록에추가할 수 있는 기능을 구비한 객체 지향 소프트웨어 개발툴 | |
CN102541996B (zh) | 一种基于jdbc的数据访问层构建方法及装置 | |
KR20140121145A (ko) | Bim기반 건설데이터 통합관리 시스템 | |
CN112860260B (zh) | 一种在高校场景下基于web的跨平台应用构建工具及方法 | |
CN101763043A (zh) | 用于自动化协同框架的方法和系统 | |
CN112363695B (zh) | Pmml文件及其运行时环境与工业软件的集成方法 | |
US10133766B2 (en) | Accessing and editing virtually-indexed message flows using structured query langauge (SQL) | |
CN100561476C (zh) | 一种基于asn类型对象的代码生成方法 | |
CN100517222C (zh) | 支持转换引擎与映射规则相分离的模型转换装置及其方法 | |
CN112148278A (zh) | 可视化的区块链智能合约框架及智能合约开发部署方法 | |
CN112363694A (zh) | Fmu文件及求解器运行环境与工业软件的集成方法 | |
CN105630563A (zh) | 基于xml的继电保护装置规约的动态模型配置方法 |
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 |