CN101840335A - 一种可配置业务模块的J2EE web应用*** - Google Patents
一种可配置业务模块的J2EE web应用*** Download PDFInfo
- Publication number
- CN101840335A CN101840335A CN201010154399A CN201010154399A CN101840335A CN 101840335 A CN101840335 A CN 101840335A CN 201010154399 A CN201010154399 A CN 201010154399A CN 201010154399 A CN201010154399 A CN 201010154399A CN 101840335 A CN101840335 A CN 101840335A
- Authority
- CN
- China
- Prior art keywords
- module
- flow
- flow process
- business
- web application
- 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
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供一种可配置业务模块的J2EE web应用***,包括流程配置文件模块;流程单元处理器模块;流程单元业务模块接入点;流程数据结构;流程文件解析模块;流程管理模块;以及流程服务器组件。通过各个模块之间的协作,实现了可动态配置业务模块及主要业务流程、融合企业业务总线的轻量级J2EE web应用***。
Description
技术领域
本发明属于软件开发中的J2EE web应用技术领域,特别是涉及一种基于MVC模式的动态地可配置业务模块的J2EEweb应用***。
技术背景
在J2EE web应用开发领域中,经常以三层架构方式开发,即表现层、业务逻辑层、数据持久层,而其中的业务逻辑层承担着处理业务流程的任务,是***商业功能的体现。面对不断变化的市场需求,人们对web应用产生了需要快速开发、快速部署、快速更换业务逻辑的要求,这便要求开发者在web应用开发过程中要采用合理的架构,这种架构关键在于要求实现***不同层、不同业务模块的松耦合。
目前流行的开发框架是struts+spring+hibernate的MVC模式,这种模式实现了表现层、业务逻辑层和数据持久层的分离,而其不足之处在于:表现层将数据提交给业务逻辑层进行处理的时候,需要进行硬编码,而且页面数据转换与业务逻辑调用的代码耦合在一处。这样就导致***架构存在以下几个问题:
1***要更换业务逻辑时,需要在代码级别对业务层模块进行组合和替换。
2更换业务逻辑时需要服务器停机并且重新编译代码,降低了***快速反应商业变化的能力。
3这种传统的开发框架对现有的企业服务总线(ESB)融合度不高,同样需要代码级别的调用。
为此,本发明针对传统MVC模式进行扩展,设计一个可以动态配置业务流程、融合企业服务总线的轻量级J2EE web应用***,从而弥补了现有技术的不足。
发明内容
本发明的目的在于克服现有技术的不足,提供了一个可以动态配置业务模块及主要业务流程、融合企业服务总线的轻量级一种可配置业务模块的J2EE web应用***。
为实现本发明的目的,所采用的技术方案包括以下模块:
流程配置文件模块;
流程单元处理器模块;
流程单元业务模块接入点;
流程数据结构;
流程文件解析模块;
流程管理模块;
以及流程服务器组件。
构成本发明的模块具体如下:
所述的流程配置文件模块是一个XML模块文件,该文件模块定义了普遍的业务流程的结构。该文件模块结构将流程元素划分如下:一个文件模块用一个业务配置元素表示,而业务配置元素又多个业务流程元素。一个流程由一个业务流程元素表示,该元素规定了访问该流程的入口标识。业务流程元素包含多个流程单元元素,流程单元是一个具体执行流程业务的接入点,流程单元主要包括该接入点的入口标识、单元数据转换器、默认跳转路径。流程单元的子元素包括多个跳转子元素,该跳转元素指定了跳转情况标识和跳转路径标识(页面URL或业务模块标识),而跳转元素又可以包含流程单元元素。每个流程单元还有一个业务模块接入点元素。
所述流程单元处理器模块,是一个编程接口,该接口主要提供了两种数据转换方法:第一种是将WEB数据转换为适用于业务模块代码处理的方法,第二种是将模块处理完的反馈数据加工,返回给WEB页面的方法。
所述流程业务模块接入点,其对应的XML元素在流程配置文件中的流程单元元素配置。业务模块接入点是可扩展编程接口,不同的业务模块接入点可以将数据传送到不同的业务模块,例如简单java模块、spring容器配置的模块、企业服务总线入口。业务模块接入点同时负责将业务模块处理的结果反馈到外部。
所述的流程数据结构,是针对流程配置XML文件中每一种元素定义的java数据结构,这些数据结构保存了XML文件中的详细配置信息。
所述的流程解析模块,通过文件***读入流程配置XML文件,转换为流程数据结构。
所述的流程管理模块,对流程解析模块输出的流程数据结构,进行装载和管理,将流程数据结构保存在内存中。流程管理模块通过解析HTTP请求中附带的流程标识,根据内存中流程数据结构的内容,将HTTP请求和附带的数据传输到相应的流程单元中,然后触发相应的流程单元配置的单元处理模块的数据转换方法,将数据转换为适用于业务模块处理的数据类型,业务模块接入点接收数据,将数据交给具体的业务模块处理。业务模块处理完后返回的数据,流程管理模块将会根据该流程单元定义好的跳转规则实现数据/页面跳转。
所述的流程服务器组件,是可以部署在web服务器上的组件,负责接收和转发HTTP请求。
本发明的技术特点体现如下:
1、通过流程配置文件模块装配业务流程,将数据转换、具体业务执行模块、页面跳转逻辑的耦合从代码转移到了配置文件上。通过这种方式,前台页面开发人员和后台业务模块开发人员的任务可以更大地分开,他们需要交流的内容只有数据转换的协定。当需要替换不同的业务执行模块时,只需在流程文件中重新装配,而不用进行代码的修改。
2、通过扩展流程单元处理器,前台开发人员可以实现数据转换和模块结果反馈任务。
3、业务模块接入点实现了融合企业服务总线的一种解决方案。在配置文件中,通过流程单元业务模块接入点,指定模块名称和方法,可以将数据自动传给业务模块代码,业务模块代码将会自行处理。本发明为几种类型模块实现了的业务模块接入点,包括简单java模块、spring容器配置的模块、mule ESB入口。业务模块接入点是可扩展的,可以根据不同需要设计新的接入点。业务模块接入点可以实现业务模块的重用和装配。
4、业务流程数据结构存储在服务器内存中,由流程管理模块管理,因此业务流程数据结构是运行时可修改的,可以通过流程服务器组件的重加载方法重新加载新的流程配置文件,启动流程解析模块进行解析,让流程管理模块重新加载流程数据结构,提供了动态修改流程配置的功能。
附图说明
图1为本发明的结构图;
图2为初始化流程的顺序图;
图3为业务流程执行过程顺序图;
图4为某业务流程实例图。
具体实施方式:
下面结合附图对本发明做进一步的说明。
本发明的结构图如图1所示,包括以下内容:
流程服务器组件;
流程文件解析模块;
流程管理模块;
流程配置文件模块;
流程数据结构;
流程单元处理器模块;
流程单元业务模块接入点。
其中,所述流程数据结构则包含以下内容:
业务配置元素;
业务流程元素;
业务流程单元元素;
流程跳转元素;
所述流程服务器组件是负责接收和转发http请求的模块,它还负责管理和调用流程解析模块和流程管理模块,流程解析模块负责将流程配置文件进行解析转换为流程数据结构,流程管理模块将流程数据结构装入内存进行管理。
本发明初始化流程图见图2。当web服务器启动后,对流程服务器组件进行初始化,此时,流程服务器组件会调用流程解析模块的方法加载并解析流程配置文件,流程解析模块将流程配置文件转换成相应的流程数据结构;然后流程服务器组件调用流程管理模块的方法去加载流程数据结构,此时流程数据结构就会存放到服务器内存中。
本发明业务流程执行过程如图3所示,当Internet上一个HTTP请求到达时,服务器将HTTP请求和附带的数据交给流程服务器组件进行转发,流程服务器组件调用流程管理模块对HTTP请求进行解析,根据附带数据中的标识符查找对应的流程数据单元,流程单元调用自身所配置的流程单元处理器模块的数据转换方法,将数据转换为合适的类型交给流程单元业务模块接入点,业务模块接入点将数据提交给具体的业务模块执行。业务模块执行后返回的数据将提交给流程单元业务模块接入点,再交给流程单元处理器模块进行后续加工。流程单元处理器加工完毕之后,会将数据和HTTP请求转发还给流程服务器组件,流程服务器组件再根据HTTP请求的URL类型决定进行页面跳转还是启动下一个流程。
下面根据图4的例子,演示一个具体的实施过程。
有这样一个业务流程,客户首先在p1.jsp填写表单FORM,表单通过mule ESB中配置的一个业务模块BO1进行处理,BO1模块处理完后返回OBJ1对象,如果OBJ1的attribute1属性小于0,则流程跳转到p3.jsp,否则将OBJ1对象存放到会话中以便jsp2.页面处理,跳转到p2.jsp。
p2.jsp会根据一些用户的操作生成一个FORM2表单,单用户提交后,FORM2要转换为一个MAP对象,然后连同原先在会话中的OBJ1对象一并交给BO2的process(MAP,OBJ1)方法处理,BO2是配置在SPRING中的一个模块,这个模块处理完OBJ2不返回任何数据,但是有可能在处理过程中抛出异常,如果抛出异常,则流程跳转到p5.jsp,如果一切正常,则跳转到p4.jsp,流程结束。
在实施开发过程中,首先进行一些流程文件的配置工作:
创建一个流程配置文件并声明一个业务配置元素,然后为这个业务配置元素声明一个业务流程元素,定义这个业务流程元素的入口标识。
该业务流程元素涉及两个页面提交数据的业务,因此需要提供两个流程单元元素,分别为这两个流程单元元素指定标识。两个流程单元元素都有不同的数据转换任务,所以要配置流程单元处理器,前台开发人员和通过概要设计或者和后台开发人员交流,得知后台业务模块需要的数据,实现流程单元处理器接口的数据转换方法,然后就将流程单元处理器配置到流程单元元素中。两个流程单元元素分别要使用不同业务模块,因此要配置业务模块接入点,指定模块名称和调用方法。两个流程单元都有跳转的情况,所以要配置跳转元素,并指定跳转标识和路径。这样就配置好了流程配置文件。而前台开发人员在设计页面时,在要触发业务的超链接URL(如提交表单时指定表单的action值)设置为相应的流程标识,就可以触发相应的流程。
写完流程配置文件,就可以在服务器上进行部署工作,启动服务器时,根据图2所示的初始化工作将流程配置文件转换为流程数据结构存放到内存中。
结合图3简述业务运行时的示例:
当用户填写完p1.jsp的表单,单击提交按钮时,浏览器会将HTTP请求连同该表单的内容和流程的标识发送到服务器,服务器将HTTP请求转发给配置好的流程服务器组件,流程服务器组件通知流程管理模块解析该流程标识,流程管理模块查询内存中的流程数据结构,找出该HTTP请求的目标流程和流程单元,然后启动相应的业务模块接入点启动业务方法,返回的结果OBJ1交给流程单元处理器,根据相应的数据反馈方法判断OBJ1的属性,然后将HTTP请求重定向到指定页面,重定向到指定页的实现是通过在流程单元处理器中的数据反馈接口中返回相应的跳转标识,例如图4中,若要跳转到p2.jsp则返回case1标识,若要跳转到p3.jsp则返回case2标识。当用户在p2.jsp提交表单之后,过程与上述类似,流程管理模块找到对应的流程单元后,调用其流程单元处理器的数据转换方法将HTTP中的数据转换为MAP和OBJ1数组交给对应的业务模块接入点处理,业务模块返回的结果同样通过流程单元处理器的相应的方法执行页面重定向的选择。
在实施图4所示的业务流程过程中,前台开发人员的工作与后台开发人员的工作完全分开,前台开发人员只需根据概要设计进行相应的数据转换,而不用关心调用和如何调用哪个业务模块。最后通过流程配置文件进行流程装配。
Claims (9)
1.一种可配置业务模块的J2EE web应用***,以软件包的形式部署在web应用服务器中,其特征在于包括:
流程配置文件模块;
流程单元处理器模块;
流程单元业务模块接入点;
流程数据结构;
流程文件解析模块;
流程管理模块;
以及流程服务器组件。
2.根据权利要求1所述的可配置业务模块的J2EE web应用***,其特征在于所述的流程配置文件模块是一种XML格式的文件,定义了业务配置元素,业务流程元素,流程单元元素,业务模块接入点元素,跳转元素,业务流程元素和流程单元元素并有唯一的访问标识。
3.根据权利要求1所述的可配置业务模块的J2EE web应用***,其特征在于所述的流程单元处理器模块是一种编程接口,提供了业务数据转换、业务结果反馈的方法。
4.根据权利要求1所述的可配置业务模块的J2EE web应用***,其特征在于所述的流程单元业务模块接入点是一种可扩展的编程接口,不同流程单元业务模块接入点可以将数据传送给不同类型的业务模块,并获得业务模块的反馈数据。
5.根据权利要求1或2所述的可配置业务模块的J2EE web应用***,其特征在于所述的流程配置文件模块中的各个元素有如下所示的主要关系:流程配置文件根元素是一个业务配置元素,一个业务配置元素包含多个业务流程元素;一个业务流程元素包含多个流程单元元素;一个流程单元元素包含一个业务模块接入点元素,一个跳转元素,流程单元元素可指定流程单元处理器。
6.根据权利要求1所述的可配置业务模块的J2EE web应用***,其特征在于所述的流程数据结构是一种与所述流程配置文件对应的数据结构,包含了流程配置文件中各个元素及其配置信息。
7.根据权利要求1所述的可配置业务模块的J2EE web应用***,其特征在于所述的流程文件解析模块,通过读入所述的流程配置文件,将其转换为对应的所述的流程数据结构存放到内存。
8.根据权利要求1所述的可配置业务模块的J2EE web应用***,其特征在于所述的流程管理模块通过分析HTTP请求中的流程访问标识,将HTTP请求及其携带的数据转发给对应的流程单元进行处理。
9.根据权利要求1所述的可配置业务模块的J2EE web应用***,其特征在于所述的流程服务器组件可以部署在web应用服务器中,负责接收和转发HTTP请求,并管理流程解析模块和流程管理模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010154399A CN101840335A (zh) | 2010-04-16 | 2010-04-16 | 一种可配置业务模块的J2EE web应用*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010154399A CN101840335A (zh) | 2010-04-16 | 2010-04-16 | 一种可配置业务模块的J2EE web应用*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101840335A true CN101840335A (zh) | 2010-09-22 |
Family
ID=42743722
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010154399A Pending CN101840335A (zh) | 2010-04-16 | 2010-04-16 | 一种可配置业务模块的J2EE web应用*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101840335A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104462605A (zh) * | 2014-12-31 | 2015-03-25 | 迈普通信技术股份有限公司 | 一种数据库持久层框架配置、修改方法及*** |
CN104765596A (zh) * | 2014-01-08 | 2015-07-08 | 腾讯科技(深圳)有限公司 | 请求处理方法和装置 |
CN104866298A (zh) * | 2014-02-26 | 2015-08-26 | 阿里巴巴集团控股有限公司 | 基于流程图的流程化业务实现方法和装置 |
CN105718601A (zh) * | 2016-03-09 | 2016-06-29 | 浪潮通信信息***有限公司 | 一种业务动态集成模型及其应用方法 |
CN106557820A (zh) * | 2016-11-24 | 2017-04-05 | 天津市普迅电力信息技术有限公司 | 一种变电运维标准作业移动端平台 |
CN106971293A (zh) * | 2017-03-23 | 2017-07-21 | 广东亿迅科技有限公司 | 一种基于activiti的业务事件与流程分离方法及*** |
CN110032360A (zh) * | 2019-04-19 | 2019-07-19 | 成都四方伟业软件股份有限公司 | 事务流程创建方法、装置及服务器 |
CN112685073A (zh) * | 2019-10-17 | 2021-04-20 | 天津天堰科技股份有限公司 | 一种***架构和应用该***架构的*** |
CN112749220A (zh) * | 2021-01-08 | 2021-05-04 | 北京码牛科技有限公司 | 酒店信息管理***、方法、电子设备及可读存储介质 |
-
2010
- 2010-04-16 CN CN201010154399A patent/CN101840335A/zh active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104765596A (zh) * | 2014-01-08 | 2015-07-08 | 腾讯科技(深圳)有限公司 | 请求处理方法和装置 |
CN104866298A (zh) * | 2014-02-26 | 2015-08-26 | 阿里巴巴集团控股有限公司 | 基于流程图的流程化业务实现方法和装置 |
CN104462605A (zh) * | 2014-12-31 | 2015-03-25 | 迈普通信技术股份有限公司 | 一种数据库持久层框架配置、修改方法及*** |
CN105718601A (zh) * | 2016-03-09 | 2016-06-29 | 浪潮通信信息***有限公司 | 一种业务动态集成模型及其应用方法 |
CN105718601B (zh) * | 2016-03-09 | 2019-04-30 | 浪潮天元通信信息***有限公司 | 一种业务动态集成模型及其应用方法 |
CN106557820A (zh) * | 2016-11-24 | 2017-04-05 | 天津市普迅电力信息技术有限公司 | 一种变电运维标准作业移动端平台 |
CN106971293A (zh) * | 2017-03-23 | 2017-07-21 | 广东亿迅科技有限公司 | 一种基于activiti的业务事件与流程分离方法及*** |
CN110032360A (zh) * | 2019-04-19 | 2019-07-19 | 成都四方伟业软件股份有限公司 | 事务流程创建方法、装置及服务器 |
CN112685073A (zh) * | 2019-10-17 | 2021-04-20 | 天津天堰科技股份有限公司 | 一种***架构和应用该***架构的*** |
CN112749220A (zh) * | 2021-01-08 | 2021-05-04 | 北京码牛科技有限公司 | 酒店信息管理***、方法、电子设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101840335A (zh) | 一种可配置业务模块的J2EE web应用*** | |
Salatge et al. | Fault tolerance connectors for unreliable web services | |
Fujii et al. | Dynamic service composition using semantic information | |
US9164998B2 (en) | Archive-system-independent archive-type objects | |
CN102436373B (zh) | 企业分布式应用***中实现资源加载及资源热更新的方法 | |
US20120030689A1 (en) | Business application integration adapters management system | |
US20110154226A1 (en) | Chip model of an extensible plug-in architecture for enterprise mashups | |
CN103473696A (zh) | 一种收集、分析和分发网络商业信息的方法和*** | |
Nabi | Pro Spark Streaming: The Zen of Real-Time Analytics Using Apache Spark | |
Candela et al. | DILIGENT: integrating digital library and Grid technologies for a new Earth observation research infrastructure | |
CN103164476A (zh) | 一种bi应用元数据描述文件的执行方法和装置 | |
Grassi et al. | Klaper: An intermediate language for model-driven predictive analysis of performance and reliability | |
Cortes et al. | XtreemOS: a vision for a Grid operating system | |
Mocan et al. | Filling the gap-extending service oriented architectures with semantics | |
CN101751626B (zh) | 组合服务演化中运行实例的在线迁移方法 | |
CN101697530B (zh) | 基于实时动态服务质量的服务管理*** | |
Ezenwoye et al. | A Proxy-Based Approach to Enhancing the Autonomic Behavior in Composite Services. | |
De Giorgio et al. | An approach to enable replacement of SOAP services and REST services in lightweight processes | |
Dong et al. | Dynamic web service composition based on OWL-S | |
Kertész et al. | BPDL: A data model for grid resource broker capabilities | |
Kuropka et al. | Semantic enterprise services platform: motivation, potential, functionality and application scenarios | |
Zhang et al. | Lightweight SOA-based twin-engine architecture for enterprise systems in fixed and mobile environments | |
Caniou et al. | Standardized data management in GridRPC environments | |
SAMOYLENKO et al. | FEATURES OF MICROSERVICES ARCHITECTURE IN E-COMMERCE SYSTEMS | |
Pieczykolan et al. | Semi-automatic creation of adapters for legacy application migration to integration platform using knowledge |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20100922 |