面向服务的集成化自定义表单系统研究

时间:2022-09-25 04:22:18

面向服务的集成化自定义表单系统研究

摘要:为解决软件开发门槛高、业务需求变化快的问题,该文基于面向服务的架构(SOA)技术,提出了一种业务端即时构造思想。在深入研究的基础上,设计了一个集成化的自定义表单系统。通过实际应用表明该系统具有很强的实用性,业务端即时构造思想为软件开发提供了一种新的思维。

关键词:面向服务架构; 自定义表单; 业务端构造

中图分类号:TP309文献标识码:A文章编号:1009-3044(2010)08-1912-03

Research on Service-oriented Architecture Integrated Custom form System

ZHOU Wen-bing1, WANG Bo2

(1.Jiangsu Automation Research Institute, Lianyungang 222006, China; 2. Graduate school, China University of Geosciences, Wuhan 430074, China)

Abstract: To solve the problem of high threshold and fast-changing business requirements in the software development field, a business end Just-In-Time construction thought was proposed based on SOA in this paper. On the basis of deeply research, the paper designed a custom integrated form system. Through the practical application in many projects, it shows that the system is highly practical, and the business end Just-In-Time construction thought provides a new direction for the software development.

Key words: SOA; custom form; business end construction

随着信息技术的飞速发展,企业对应用系统的开发要求越来越高。面对业务用户快速多变的业务需求,采用传统的开发方式(需求、设计、编码、测试、交付、维护),表单基本上是针对某个具体应用进行开发的,并且当业务需求发生变更时,客户没有能力或者很少有能力进行变更。然而由于先天存在的业务人员需求不确定,业务人员与开发人员在沟通上的问题以及开发人员理解上的偏差,应用系统经常会出现这样或那样的问题。在开发过程中,表单往往根据各个应用系统需要分别进行设计与开发,这样使得软件代码的复用率很低,从而加长了软件的开发周期,增加了不必要的软件开发成本[1]。

当前主流的表单开发方法主要是基于Jsf, Struts等优秀网络框架的开发。但对这种表单页面,开发人员必须是精通Java、Struts、Jsf等技术的专业人士,并且表单开发时间长,不能确保在企事业单位的业务流程变化时,表单及时更新。当前的市场上有一些独立的表单开发系统如InfoPath与Sure Form等[2]。它们都强调数据结构的一体化,使表单数据可以被跨公司、跨部门、跨地域的不同企事业单位所解析,然而各个表单系统都采用了独有的文件格式,需要专有的客户端来解析自己的表单,这将会带来一系列问题,诸如修改困难、程序复用性差、可扩展性差等,导致不能满足用户对今后业务发展的需要[3]。

企业一直在追求整合现有资源的有效方法,希望能够通过引入IT来支持业务流程,SOA(Service-Oriented Architecture,面向服务的架构)作为一种软件架构方法论能够满足市场对软件互联互通,复用和业务流程管理的需求[4],因此本文试图基于面向服务的思想,引入业务端构造的方法,研究并设计一个集页面制作、报表制作、数据访问与存储、数据展示、数据验证、表单维护、数据库基本操作、功能插件管理、插件开发于一体的表单可视化开发环境,以期有效解决当前软件开发门槛高、需求变化快的难题。

1 面向服务的架构

SOA是一种新的面向服务架构的编程模型,号称“下一代软件架构”[5],其内核就是“业务敏捷化”,满足企业的业务需求和投资需求。

① 能快速响应业务变更,提供高效的操作和应用集成及B2B集成。由于SOA的核心是促使开发和集成的重用,因此利用服务和组件的重用,新的应用能够对业务需求做出快速的响应。正因为SOA允许IT对业务的需求做出快速的反应,所以它克服了传统应用中面对跨企业应用时自定义自动化流线型应用在性能方面的损失。同时SOA通过网络支持服务部署在本地运行,可以跨越业务壁垒扩展集成。

② 平衡已有的投资,风险迁移。通过核心服务的重用,将已有的投资在项目级上封装,进行粒度分解,可以有效的平衡原有投资,减少了应用风险。

③ 更加丰富的用户体验。SOA Governance被用来在整个服务的生命中期中,将来自业务和IT的人协调起来,让他们各司其职,有章可循,相互协作。

所以,SOA把各种资源通过服务或组件封装起来,能快捷的整合和匹配服务从而更好的把IT和业务对象及过程集成在一起,以达成业务敏捷性(Business Agility),使IT与业务对齐(Alignment),提高了IT利用率和效率,是业务需求的最终价值体现。

2 自定义表单系统研究

本文设计的集成化自定义表单系统是借鉴软件开发架构(MDA,Model Derived Architecture)设计思想,采用分层的方法将系统分为数据层、业务层以及表现层等3个层次[6],并在面向服务思想(SOA)指导下设计与开发的一个基于.net架构下的可视化高层通用表单开发平台,它将界面表现层和业务层从层次模型中剥离开来,使程序开发人员不再关注这两个层,让技术支持人员,甚至客户都可以更改配置业务,从而跳出重新编译、部署、配置、维护的“泥潭”。系统从业务用户的角度出发考虑,将用户的业务需求进行抽象,整合和提取现有服务资源,得到面向业务用户的业务层抽象服务资源;进而,针对现有的面向服务的应用的构造方法难以为业务用户所用的问题,需要从分离业务过程的描述与服务组合的IT实现的角度出发,为业务用户提供单纯的业务层服务组合手段,让业务用户能够从业务层面来直接描述其需求,并且还要提供特定的转换方法来实现业务用户“编程”结果到服务组合的IT实现的转换,最终得到完整的面向服务的应用[7]。设计完成的表单主要是由HTML和脚本生成,数据传输依靠XML HTTP(即Ajax)来完成,借助于Ajax,用户在点击控件时使用JavaScript和DHTML动态更新页面, 并向服务器发出异步请求,以执行更新或查询数据库,见图1。当请求返回时,使用JavaScript和CSS来更新页面,完成一次与用户的交互。

2.1 自定义表单系统操作流程与结构

集成化自定义表单系统一般使用流程:① 制作或者编辑已有的表单。在设计视图所见即所得的拖拽系统面板中相应控件,在属性面板中设置相关属性格式、事件、约束和绑定插件,构建表单的大致框架和基本功能。② 数据管理和绑定。利用数据面板设置页面参数和SQL语句,管理相关表、视图、存储过程,将相应表的字段与已设置的控件绑定,即可完成增、删、改、查、打印、报表、图表、数据校验等常见的业务功能。③ 功能扩充和预览。在服务器端,提供了插件、系统配置文件,用户可以自己编写插件完成特定功能;在客户端,提供了一个客户端对象,在客户端脚本中可以编程,功能跟插件类似。在浏览器中预览表单,如果发现不能满足需求,只需定位到本表单作相应修改。④ 部署。将表单部署到服务器上,而此过程不需要停用服务和网站,具有很大的灵活性。

在这个过程中,仅牵涉到两类人员:步骤①、②和④需要技术支持人员甚至略懂计算机的业务人员即可完成,步骤③仅需要具有计算机专业基础认识的程序员。由此可见,通过本系统将节省大量的编程人员,让技术支持人员甚至客户也参与到软件开发中来。

集成化表单系统由可视化表单编辑器(客户端)、表单解释引擎、表单服务构成。如图1所示。其中,可视化表单编辑器主要用于系统运行期间,对基于后台数据库的表单设计管理,它以可视化界面将表单呈现给用户,使用简易的点击、拖拽操作来完成表单的编辑、数据绑定、功能绑定、插件编写等功能;表单解释器负责表单样式、表单权限的解释运行和数据填充、数据展示,图形界面表单到XML的解析,XML到图形界面表单的解析,经过解析的表单界面在浏览器上显示;表单服务,主要提供解释器所需要的各种业务数据。

在集成化表单系统中,表单解释器是核心,通过表单样式解析把数据定义和表单样式(HTML格式)分离开来,或者把表单的样式和数据定义合并成一个表单,实现了表单的表现、数据定义和后台逻辑分离开来,当表单样式发生改变时,只需通过表单编辑器对其进行修改,而不必修改程序。通过表单数据解析把在表单编辑器上定义好的数据控件转换为数据字段的定义并输出到数据库中,可以通过它直接调用出一个表单的数据,进行查询和统计。通过表单权限解析来扩展绑定文档的权限、数据查看、操作的权限,这样就可以把定义好的表单和其他信息类型进行绑定。这种表单与系统业务设计相对分离的方法,既减轻了开发人员的维护压力,又使得用户可以根据自身的需求随意地增减、修改表单,从而实现了零成本维护[8]。

2.2 自定义表单系统设计

根据对已有系统及其开发技术的分析和研究,本文引入面向服务的即时应用构造技术,设计了一种集成化自定义表单系统(称为Visual Form Designer),自定义表单系统包括两个部分:自定义表单编辑系统和Web服务器表单处理程序。

自定义表单编辑系统主要完成用户界面的编写和业务逻辑处理功能模块代码的生成和存储。为使系统层次分明和灵活移植,自定义表单系统采用C/S结构,它由两个部分组成:自定义表单客户端和自定义表单服务器,其实现过程如图2所示。

自定义表单客户端是一个ActiveX控件,便于在浏览器和应用程序客户端上灵活使用。其处理单元是一个页面,各项参数是每个页面的入口,而发送到浏览器上的Html代码是页面的出口。自定义表单的客户端从逻辑上包括界面表现层和中间语言翻译层,二者均不直接和数据库交互,在具体实现上,客户端内置了大量的面向服务的构件,这些构件封装了业务用户常用的控件、业务功能插件、数据绑定和管理等功能点,为用户提供了一站式服务的体验。界面表现层主要采用类似于Microsoft DHtmlEdit控件来实现,用户可以可视化地设计页面,设计完成的页面通过Html代码翻译模块将页面表现动态翻译为Html代码,而此过程可采用AJAX机制访问服务器端JavaScript代码,并且支持界面逆向生成功能通过更改Html源代码来生成表单页面,JavaScript代码将和Html代码放在一起。客户端将采用向导和直接编写C#代码的形式来完成对服务器的操作,生成的C#代码通过系统内置的动态库编译模块动态编译成称之为功能库的动态库。

表单设计完成后,在数据保存前,自定义表单客户端将Html源代码存放在一个Html文件中,并同时将Html源代码翻译成ASPX源代码存放在ASPX文件中,Html页面控件和数据库字段的绑定信息将保存在一个XML文件中。Html文件、ASPX文件、XML文件以及编译生成的功能库都将保存在服务器的硬盘上。由此可见,客户端操作主要生成一个Html文件、一个ASPX文件、一个XML文件和一系列的功能库,并为服务器端操作提供人性化界面。

自定义表单系统的服务器端逻辑上只有一层:数据访问层,通过Remoting机制实现与客户端的交互,负责完成对客户端生成的ASPX文件、XML文件、功能库的存取以及管理与自定义表单系统和具体业务系统有关的数据库表、自定义函数、触发器、存储过程等以及其他对服务器的操作和数据库管理等。

2.2.2 Web服务器表单处理程序

Web服务器表单处理程序是一个ASPX文件的对应处理程序,其操作流程如图3所示,它首先响应浏览器的请求,然后读取XML文件、分析XML中结点的数据绑定信息并操作数据库和Web服务器,将响应得到的信息返回到客户端。其工作原理为:先查找业务系统传递过来的参数列表,如果参数列表不合法,则退出系统,否则执行下列操作:加载功能库,查找分析XML配置文件确定控件和字段的绑定关系,查找数据库填充各个控件,然后按照普通ASPX文件的处理方式来处理。

3 结束语

本文设计的集成化自定义表单系统采用面向服务的思想,引入客户端即时构造方法,将界面表现和逻辑控制有机结合起来,进行增量的螺旋式应用程序开发,有效的避免了重复开发,加快了系统建设速度。更加具有创新意义的是本文将系统的用户定位在业务人员,使业务用户能看到并使用业务服务资源,同时支持业务用户自行组装面向服务的应用,解放了程序员这种宝贵的资源。

参考文献:

[1] 唐文忠,莫伟栋.面向领域的模型驱动智能表单系统的框架设计[J].北京航空航天大学学报,2007,33(9):1086-1089,1126.

[2] 黄慧,孙静.基于AJAX的B/S电子表单填写模式研究[J].计算机工程与设计,2008,29(5):1055-1056,1046.

[3] 张文治,张辉.工作流系统中的表单服务系统(J).长春师范学院学报:自然科学版,2005,24(5):25-27.

[4] 张超.用户驱动的GIS服务与聚合技术及软件开发研究[D].上海:华东师范大学,2008.

[5] Olaf Z, Krogdahl P, Gee C.An interdisciplinary modeling approach for SOA projects[M].Prentice Hall PTR,2004:97-103.

[6] 唐文忠,莫伟栋.基于共享模型的工作流表单系统设计[J].南京航空航天大学学报,2008,34(4):391-395.

[7] 赵卓峰.面向服务的应用的即时构造方法研究[D].北京:中国科学院研究生院,2005.

[8] 王瑞霞,隋宏伟,刘宏.基于xml的表单设计器构件的设计与实现[J].计算机应用研究,2007,24(7):183-185.

上一篇:基于.net&b/s架构的NET-OA研究与开发 下一篇:毕业生就业中心的设计与实现