CN102693239A - 基于xml描述及静态编译框架的应用程序组织方法及系统 - Google Patents

基于xml描述及静态编译框架的应用程序组织方法及系统 Download PDF

Info

Publication number
CN102693239A
CN102693239A CN2011100720422A CN201110072042A CN102693239A CN 102693239 A CN102693239 A CN 102693239A CN 2011100720422 A CN2011100720422 A CN 2011100720422A CN 201110072042 A CN201110072042 A CN 201110072042A CN 102693239 A CN102693239 A CN 102693239A
Authority
CN
China
Prior art keywords
xml
software module
assembling
file
module unit
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.)
Pending
Application number
CN2011100720422A
Other languages
English (en)
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.)
BEIJING KADAKE TECHNOLOGY CENTER
Original Assignee
BEIJING KADAKE TECHNOLOGY CENTER
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 BEIJING KADAKE TECHNOLOGY CENTER filed Critical BEIJING KADAKE TECHNOLOGY CENTER
Priority to CN2011100720422A priority Critical patent/CN102693239A/zh
Publication of CN102693239A publication Critical patent/CN102693239A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于XML描述及静态编译框架的应用程序组织方法及系统,包括以下步骤,首先,依据现有软件模块单元编写XML业务逻辑组装文件,在该业务逻辑组装文件中定义需要引用的功能点;然后,将现有软件模块及在编写所述XML业务逻辑组装文件过程中新定义的模块单元所依赖的外部库统一编入XML格式的外部依赖组装清单;最后,采用静态编译框架,根据所述的XML业务逻辑组装文件、和外部依赖组装清单,将现有软件模块单元编译为新的内存程序集,供外部系统调用。本发明的系统包括XML业务逻辑组装文件、外部依赖组装清单、静态编译框架。本发明的方法和系统针对现有程序模块的组装及整合提供了解决方案。

Description

基于XML描述及静态编译框架的应用程序组织方法及系统
技术领域
本发明涉及一种基于XML描述及静态编译的应用程序组织方法,特别指利用一种基于静态编译原理实现的软件框架实现的,组织现有程序功能模块的软件开发组织方法,本发明还提供一种基于XML描述及静态编译的应用程序组织系统。
背景技术
目前,由于应用服务器厂商对各种技术的支持并没有真正统一,导致企业应用中存在大量的零散业务系统及业务功能模块,造成传统企业应用的开发效率低下。企业开发中如何方便、统一的组织使用这些现有业务模块实现功能,成为了软件开发工作中的一项巨大问题。
发明内容
本发明的目的在于提供一种能够利用统一、有效利用企业现有业务功能模块实现功能的基于XML描述及静态编译的应用程序组织方法,本发明还提供一种基于XML描述及静态编译的应用程序组织系统。
为了实现上述目的,本发明采用的技术方案如下:
本发明的基于XML描述及静态编译框架的应用程序组织方法,包括以下步骤:
S1:依据现有软件模块单元编写XML业务逻辑组装文件,在该业务逻辑组装文件中定义需要引用的功能点;
S2:将现有软件模块及在编写所述XML业务逻辑组装文件过程中新定义的模块单元所依赖的外部库统一编入XML格式的外部依赖组装清单;
S3:采用静态编译框架,根据所述的XML业务逻辑组装文件、和外部依赖组装清单,将现有软件模块单元编译为新的内存程序集,供外部系统调用。
优选的,在该业务逻辑组装文件中定义需要引用的功能点,具体指定义以下内容:
一般对象:是指利用现有软件模块单元中的内容所创建的或通过定义的功能函数生成的现有对象或新构成对象的实例化;所述的功能函数是指在所述XML业务组装逻辑文件中直接编写的以函数形式发布的脚本,其引用现有软件模块单元的功能,定义组织新的业务内容,该对象在接受外部系统调用时执行业务功能;
服务对象:通过定时或条件触发的方式发动执行业务功能的对象;
在所述的静态编译框架编译时,根据该业务逻辑组装文件中对一般对象和服务对象的定义,将现有软件模块单元编译得到一般对象和服务对象,所述的一般对象和服务对象常驻内存构成所述的程序集。
更优选的,所述的一般对象通过以下方法中的一种或者几种构造:
F1:通过构造函数构造,指直接通过现有软件模块中的对象的构造函数进行实例化;
F2:通过功能函数构造;
F3:通过索引构造,指通过另一一般对象的一个索引进行实例化;
F4:通过属性构造,指通过另一一般对象的一个属性值进行实例化;
F5:通过方法构造,指通过另一一般对象的一个方法的执行结果进行实例化。
优选的,当所述的现有软件模块单元、XML业务逻辑组装文件和外部依赖组装清单发生变化时,所述的静态编译业务框架能够触发更新,通过重新编译,更新内存中生成的新业务逻辑单元。
优选的,所述的静态编译框架能够支持至少一种脚本语言。
本发明还提供一种基于XML描述及静态编译框架的应用程序组织系统,包括:
XML业务逻辑组装文件:依据现有软件模块单元编写,并定义需要引用的功能点;
XML格式的外部依赖组装清单:依据现有软件模块及在编写所述XML业务逻辑组装文件过程中新定义的模块单元所依赖的其他外部库编写;
静态编译框架:用于根据所述的XML业务逻辑组装文件和外部依赖组装清单将现有软件模块单元编译为新的内存程序集,供外部系统调用。
优选的,所述定义需要引用的功能点,具体指定义以下内容:
一般对象:是指利用现有软件模块单元中的内容所创建的或通过定义的功能函数生成的现有对象或新构成对象的实例化;所述的功能函数是指在所述XML业务组装逻辑文件中直接编写的以函数形式发布的脚本,其引用现有软件模块单元的功能,定义组织新的业务内容,该对象在接受外部系统调用时执行业务功能;
服务对象:并通过定时或条件触发的方式发动执行业务功能的对象;
在所述的静态编译框架编译时,根据该业务逻辑组装文件中对一般对象和服务对象的定义,将现有软件模块单元编译得到一般对象和服务对象,所述的一般对象和服务对象常驻内存构成所述的程序集。
优选的,所述的一般对象通过以下方法中的一种或者几种构造:
F1:通过构造函数构造,指直接通过现有对象的构造函数进行实例化;
F2:通过功能函数构造;
F3:通过索引构造,指通过另一一般对象的某个索引进行实例化;
F4:通过属性构造,指通过另一一般对象的某个属性值进行实例化;
F5:通过方法构造,指通过另一一般对象的某个方法的执行结果进行实例化。
优选的,当所述的现有软件模块单元、XML业务逻辑组装文件和外部依赖组装清单发生变化时,所述的静态编译业务框架能够触发更新,通过重新编译,更新内存中生成的新业务逻辑单元。
优选的,所述的静态编译框架能够支持至少一种脚本语言
本发明的有益效果如下:
本发明的基于XML描述及静态编译框架的应用程序组织方法及系统,针对现有程序模块的组装及整合提供了一种解决方案,通过XML描述及静态编译原理的业务框架,最大限度的利用了现有软件模块,以编写语言无关的角度整合了现有软件资源,通过XML业务组装逻辑文件及XML外部依赖组装清单,规范了业务逻辑的组织及软件组织,利用静态编译原理的业务框架,弥补了解释及反射原理实现的软件系统的执行性能上的不足。
附图说明
图1为本发明的方法流程图;
图2为本发明的系统结构框图;
图3为本发明的系统运行流程图。
具体实施方式
下面结合附图和具体实施例对本发明的技术方案及有益效果进一步进行阐述。
参见附图1,本发明的基于XML描述及静态编译框架的应用程序组织方法,首先,第一步,需要根据现有软件模块单元编写XML业务逻辑组装文件,该业务逻辑组装文件中定义需要引用的功能点,主要指定义一般对象和服务对象,一般对象是指利用现有软件模块单元中的内容所创建的或通过定义的功能函数生成的现有对象或新构成对象的实例化,这里的功能函数是指在XML业务组装逻辑文件中直接编写的以函数形式发布的脚本,其引用现有软件模块单元的功能,定义组织新的业务内容,一般对象在接受外部系统调用时执行业务功能;服务对象通过定时或条件触发的方式发动执行业务功能的对象,比如执行定时调度功能,是指在某个指定的时间点来调用某个目标对象的方法,使用它可以方便地实现计划任务,定时或者周期性任务,即在某个时间或是每隔一定时间运行一个任务。
所述的一般对象可以通过如下方法构造:
F1:通过构造函数构造,指直接通过现有对象的构造函数进行实例化,下表中为一个具体的例子,
Figure BSA00000458543700041
该代码段根据DataAccessObjectBase类型的构造函数的定义,传递了三个参数,定义了一个新的类型为DataAccessObjectBase的对象“DAO”。
F2:通过功能函数构造,下表中为一个具体的例子,
Figure BSA00000458543700042
该代码段根据在XML业务组装逻辑文件中直接编写的特定脚本,调用现有软件模块单元的功能,定义组织新的业务内容,并以函数形式发布出来;
F3:通过索引构造,指通过另一一般对象的某个索引进行实例化:
Figure BSA00000458543700043
该代码段根据现有软件模块中的对象数组AnyTypeArray,根据索引值,取得该对象数组的第一个元素,生成一个新的类型为AnyType的对象AnyTypeObject;
F4:通过属性构造,指通过另一一般对象的某个属性值进行实例化:
Figure BSA00000458543700044
该代码段根据现有软件模块中的数据集DataSet1,取得它Talbes属性的某一元素,并根据该元素生成一个新的类型为DataTable的对象Table1;
F5:通过方法构造,指通过另一一般对象的某个方法的执行结果进行实例化:
Figure BSA00000458543700051
该代码段根据现有软件模块中的一个数据库访问对象DAO,用DAO对象的一个查询方法Select()的返回结果,来生成一个新的类型为DataSet的数据集DataSet1。
下面是一个XML业务逻辑组装文件的实施例,在该实施例中对现有软件模块单元如数据源、数据访问模块等进行配置了配置,同时需要根据这些现有模块产生的新模块有数据集1、数据表1以及函数f1等也在XML业务组装逻辑文件中进行配置:
Figure BSA00000458543700052
Figure BSA00000458543700061
Figure BSA00000458543700071
第二步,将现有软件模块及在编写XML业务逻辑组装文件过程中新定义的模块单元所依赖的外部库统一编入XML格式的外部依赖组装清单,把静态编译框架在编译时需要依赖的外部库在XML依赖外部组装清单中进行配置,该外部依赖组装清单将用于静态编译业务框架中,在编译时告诉框架需要调用哪些外部库,下面是一个外部依赖组装清单的具体实例:
Figure BSA00000458543700072
Figure BSA00000458543700081
第三步:通过静态编译框架进行编译得到内存中新业务逻辑单元中的新业务方法。参见附图3为编译过程,框架读取XML配置元数据,包括XML业务组装逻辑文件及XML外部依赖组装清单,并根据元数据内容生成对应的中间代码,最后根据中间代码,通过静态编译,生成内存中可供其他客户代码调用的程序集。在静态编译框架编译时,根据业务逻辑组装文件中对一般对象和服务对象的定义及外部依赖组装清单中指明的需要调用哪些外部库,将现有软件模块单元编译得到一般对象和服务对象,所述的一般对象和服务对象常驻内存构成所述的程序集共外部系统调用,下面是一个外部系统调用框架所生成的内存中程序集的实例:
Figure BSA00000458543700082
为了更好的实现功能,静态编译业务框架应能够触发更新,在现有软件模块单元、XML业务逻辑组装文件、外部依赖组装清单发生变化时,通过重新编译,更新内存中生成的新业务逻辑单元。
参见附图2为本发明的基于XML描述及静态编译框架的应用程序组织系统的原理框图,该系统通过静态编译框架,根据XML业务逻辑组装文件、外部依赖组装清单将现有软件模块单元重新编译为内存的程序集供外部系统调用,重新组织完成的整合系统将以二进制形式存在,但不一定以文件形式存储在文件系统中。
为了更好的适应现有软件模块单元,静态编译框架应能够支持至少一种脚本语言,比如,静态编译框架可以采用由C#语言编写,支持C#语言作为脚本,编译时可以采用CodeDomProvider的CSharpCodeProvider来进行编译。

Claims (10)

1.一种基于XML描述及静态编译框架的应用程序组织方法,其特征在于,包括以下步骤:
S1:依据现有软件模块单元编写XML业务逻辑组装文件,在该业务逻辑组装文件中定义需要引用的功能点;
S2:将现有软件模块及在编写所述XML业务逻辑组装文件过程中新定义的模块单元所依赖的外部库统一编入XML格式的外部依赖组装清单;
S3:采用静态编译框架,根据所述的XML业务逻辑组装文件、和外部依赖组装清单,将现有软件模块单元编译为新的内存程序集,供外部系统调用。
2.根据权利要求1所述的基于XML描述及静态编译框架的应用程序组织方法,其特征在于,在该业务逻辑组装文件中定义需要引用的功能点,具体指定义以下内容:
一般对象:是指利用现有软件模块单元中的内容所创建的或通过定义的功能函数生成的现有对象或新构成对象的实例化;所述的功能函数是指在所述XML业务组装逻辑文件中直接编写的以函数形式发布的脚本,其引用现有软件模块单元的功能,定义组织新的业务内容,该对象在接受外部系统调用时执行业务功能;
服务对象:通过定时或条件触发的方式发动执行业务功能的对象;
在所述的静态编译框架编译时,根据该业务逻辑组装文件中对一般对象和服务对象的定义,将现有软件模块单元编译得到一般对象和服务对象,所述的一般对象和服务对象常驻内存构成所述的程序集。
3.根据权利要求2所述的基于XML描述及静态编译框架的应用程序组织方法,其特征在于,所述的一般对象通过以下方法中的一种或者几种构造:
F1:通过构造函数构造,指直接通过现有软件模块中的对象的构造函数进行实例化;
F2:通过功能函数构造;
F3:通过索引构造,指通过另一一般对象的一个索引进行实例化;
F4:通过属性构造,指通过另一一般对象的一个属性值进行实例化;
F5:通过方法构造,指通过另一一般对象的一个方法的执行结果进行实例化。
4.根据权利要求1所述的基于XML描述及静态编译框架的应用程序组织方法,其特征在于,当所述的现有软件模块单元、XML业务逻辑组装文件和外部依赖组装清单发生变化时,所述的静态编译业务框架能够触发更新,通过重新编译,更新内存中生成的新业务逻辑单元。
5.根据权利要求1所述的基于XML描述及静态编译框架的应用程序组织方法,其特征在雨,所述的静态编译框架能够支持至少一种脚本语言。
6.基于XML描述及静态编译框架的应用程序组织系统,其特征在于,包括:
XML业务逻辑组装文件:依据现有软件模块单元编写,并定义需要引用的功能点;
XML格式的外部依赖组装清单:依据现有软件模块及在编写所述XML业务逻辑组装文件过程中新定义的模块单元所依赖的其他外部库编写;
静态编译框架:用于根据所述的XML业务逻辑组装文件和外部依赖组装清单将现有软件模块单元编译为新的内存程序集,供外部系统调用。
7.根据权利要求6所述的系统,其特征在于,所述定义需要引用的功能点,具体指定义以下内容:
一般对象:是指利用现有软件模块单元中的内容所创建的或通过定义的功能函数生成的现有对象或新构成对象的实例化;所述的功能函数是指在所述XML业务组装逻辑文件中直接编写的以函数形式发布的脚本,其引用现有软件模块单元的功能,定义组织新的业务内容,该对象在接受外部系统调用时执行业务功能;
服务对象:并通过定时或条件触发的方式发动执行业务功能的对象;
在所述的静态编译框架编译时,根据该业务逻辑组装文件中对一般对象和服务对象的定义,将现有软件模块单元编译得到一般对象和服务对象,所述的一般对象和服务对象常驻内存构成所述的程序集。
8.根据权利要求7所述的系统,其特征在于,所述的一般对象通过以下方法中的一种或者几种构造:
F1:通过构造函数构造,指直接通过现有对象的构造函数进行实例化;
F2:通过功能函数构造;
F3:通过索引构造,指通过另一一般对象的某个索引进行实例化;
F4:通过属性构造,指通过另一一般对象的某个属性值进行实例化;
F5:通过方法构造,指通过另一一般对象的某个方法的执行结果进行实例化。
9.根据权利要求6所述的系统,其特征在于,当所述的现有软件模块单元、XML业务逻辑组装文件和外部依赖组装清单发生变化时,所述的静态编译业务框架能够触发更新,通过重新编译,更新内存中生成的新业务逻辑单元。
10.根据权利要求6所述的系统,其特征在于,所述的静态编译框架能够支持至少一种脚本语言。
CN2011100720422A 2011-03-24 2011-03-24 基于xml描述及静态编译框架的应用程序组织方法及系统 Pending CN102693239A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011100720422A CN102693239A (zh) 2011-03-24 2011-03-24 基于xml描述及静态编译框架的应用程序组织方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011100720422A CN102693239A (zh) 2011-03-24 2011-03-24 基于xml描述及静态编译框架的应用程序组织方法及系统

Publications (1)

Publication Number Publication Date
CN102693239A true CN102693239A (zh) 2012-09-26

Family

ID=46858696

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011100720422A Pending CN102693239A (zh) 2011-03-24 2011-03-24 基于xml描述及静态编译框架的应用程序组织方法及系统

Country Status (1)

Country Link
CN (1) CN102693239A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109144007A (zh) * 2018-09-12 2019-01-04 机械工业仪器仪表综合技术经济研究所 一种面向数字化车间制造装备集成与互联互通的自动构造系统
CN109656617A (zh) * 2018-11-30 2019-04-19 武汉烽火信息集成技术有限公司 一种Web Service前端部署方法、存储介质、电子设备及系统
CN112631585A (zh) * 2020-12-22 2021-04-09 中国航空工业集团公司西安航空计算技术研究所 基于xml的快速参数界面配置方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109144007A (zh) * 2018-09-12 2019-01-04 机械工业仪器仪表综合技术经济研究所 一种面向数字化车间制造装备集成与互联互通的自动构造系统
CN109144007B (zh) * 2018-09-12 2021-10-12 机械工业仪器仪表综合技术经济研究所 一种面向数字化车间制造装备集成与互联互通的自动构造系统
CN109656617A (zh) * 2018-11-30 2019-04-19 武汉烽火信息集成技术有限公司 一种Web Service前端部署方法、存储介质、电子设备及系统
CN112631585A (zh) * 2020-12-22 2021-04-09 中国航空工业集团公司西安航空计算技术研究所 基于xml的快速参数界面配置方法
CN112631585B (zh) * 2020-12-22 2023-03-31 中国航空工业集团公司西安航空计算技术研究所 基于xml的快速参数界面配置方法

Similar Documents

Publication Publication Date Title
Sethi et al. Presto: SQL on everything
Zhou et al. SCOPE: parallel databases meet MapReduce
Yan et al. Big graph analytics platforms
US9720743B2 (en) General purpose distributed data parallel computing using a high level language
US8997070B2 (en) Extension mechanism for scripting language compiler
US8239847B2 (en) General distributed reduction for data parallel computing
US8275731B2 (en) Anonymous types for statically typed queries
US20130332449A1 (en) Generating data processing code from a directed acyclic graph
US9471651B2 (en) Adjustment of map reduce execution
CN109299074B (zh) 一种基于模板化数据库视图的数据校验方法及系统
CN102254021A (zh) 基于虚拟机管理系统的数据库构建方法
CN104679500B (zh) 实体类自动生成实现方法及装置
CN102799624A (zh) 基于Datalog的分布式环境下大图数据查询方法
CN112379884A (zh) 基于Spark和并行内存计算的流程引擎实现方法及系统
US10268461B2 (en) Global data flow optimization for machine learning programs
Zou et al. From a stream of relational queries to distributed stream processing
CN102693239A (zh) 基于xml描述及静态编译框架的应用程序组织方法及系统
US10409815B2 (en) SQLScript compilation tracing system
US20140068550A1 (en) Selecting execution environments
Tešanovic et al. Embedded databases for embedded real-time systems: A component-based approach
US9262492B2 (en) Dividing and combining operations
CN115114341A (zh) 数据查询的方法、装置及存储介质
CN111191106B (zh) Dsl的构建方法、系统、电子设备和介质
CN111414438B (zh) 基于mysql的实时规则匹配方法及系统
Böhm et al. Model-Driven Generation and Optimization of Complex Integration Processes.

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20120926