CN102789382B - 用于表单生成和运行的系统及方法 - Google Patents
用于表单生成和运行的系统及方法 Download PDFInfo
- Publication number
- CN102789382B CN102789382B CN201210222581.4A CN201210222581A CN102789382B CN 102789382 B CN102789382 B CN 102789382B CN 201210222581 A CN201210222581 A CN 201210222581A CN 102789382 B CN102789382 B CN 102789382B
- Authority
- CN
- China
- Prior art keywords
- list
- model
- interface
- code
- data
- 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)
Abstract
本发明提供了一种用于表单生成和运行的系统,所述表单应用于至少一种终端,则所述系统包括:模型设计单元,用于设计所述表单针对上述至少一种终端的至少一个UI模型,并将所述至少一个UI模型生成为UI模型元数据;界面设计单元,用于设计所述表单针对上述至少一种终端的至少一个UI界面,并将所述至少一个UI模型生成为UI界面元数据;发布单元,针对待发布终端的类型,从所述UI模型元数据和所述UI界面元数据中获取对应的数据,以进行发布;运行单元,利用所述对应的数据完成对所述表单的加载。根据本发明的又一方面,还提出了一种用于表单生成和运行的方法。通过本发明的技术方案,能够实现完善的方案兼顾复用性和扩展性。
Description
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种用于表单生成和运行的系统及方法。
背景技术
随着IT技术的发展,软件系统需要支持更多的终端设备。企业管理软件除了在传统的计算机终端运行外,也开始在智能手机等移动设备上广泛应用。例如,用户可能通过手机或PC进行订单操作,企业管理人员需要使用移动设备随时随地进行业务流程审批。因此在实现软件系统时,不但要考虑体系架构,还要考虑不同的终端设备差异。
在常见的实现方案中,支持多架构或多平台的软件系统很难实现完善的方案兼顾复用性和扩展性,具体表现为:
组件复用性低,开发和维护成本较高。服务端和客户端根据架构和终端的差异,分别要实现不同的组件,这些组件通常会包含大量执行相同任务的代码。因为技术平台的差异,往往要使用不同的技术开发功能相同的模块,代码复用性差,难以扩展和维护;
扩展性差,无法适应不同终端设备。PC、智能手机等设备在显示上有较大差异,如屏幕尺寸和分辨率等,使用固定UI界面无法自动适应不同的终端屏幕,使得软件被局限在特定终端环境中运行,而无法灵活的扩展到不同的客户端设备上。
因此,需要一种新的支持多架构或多平台的软件系统,能够实现完善的方案兼顾复用性和扩展性。
发明内容
本发明正是基于上述问题,提出了一种用于表单生成和运行的系统,能够实现完善的方案兼顾复用性和扩展性。
有鉴于此,本发明提出了一种表单生成和运行的系统,所述表单应用于至少一种终端,则所述系统包括:模型设计单元,用于设计所述表单针对上述至少一种终端的至少一个UI模型,并将所述至少一个UI模型生成为UI模型元数据;界面设计单元,用于设计所述表单针对上述至少一种终端的至少一个UI界面,并将所述至少一个UI模型生成为UI界面元数据;发布单元,针对待发布终端的类型,从所述UI模型元数据和所述UI界面元数据中获取对应的数据,以进行发布;运行单元,利用所述对应的数据完成对所述表单的加载。
在该技术方案中,实现了对UI(User Interface,用户界面)设计,经过发布后,可以以一致的UI呈现方式和行为逻辑在不同的客户端环境中运行,从而使得一套软件系统可以支持不同的客户端和设备,提高了系统的复用性和扩展性,并且简化了系统开发、部署和维护的成本。
在上述技术方案中,优选地,所述界面设计单元包括:预存储子单元,用于预存储至少一种UI组件类型及对应的UI组件属性;配置子单元,为所述UI界面元数据中的每个所述UI界面配置相应的UI组件类型、及对应于该UI组件类型的UI组件属性。
在上述技术方案中,优选地,所述界面设计单元还包括:关联存储子单元,用于将至少一个所述UI模型与至少一个所述UI界面之间的关联关系存储至所述UI模型元数据或所述UI界面元数据中。
在上述任一技术方案中,优选地,所述发布单元包括:数据解析子单元,用于对所述UI模型元数据进行解析;判断子单元,用于判断所述UI模型元数据中是否包含业务逻辑插件;构架生成子单元,用于在所述判断子单元的判断结果为是的情况下,为每个所述UI模型生成相应的UI模型代码构架,其中,所有的所述UI模型代码构架采用统一类型的代码;检测子单元,用于检测所述表单的运行平台采用的代码类型;编译子单元,用于在所述表单的运行平台采用其他类型的代码的情况下,对所述UI模型代码构架进行代码编译为所述其他类型的代码。
在上述任一技术方案中,优选地,还包括:服务层创建单元,用于采用Windows通讯接口技术进行创建所述表单对应的应用服务层。
根据本发明的又一方面,还提出了一种用于表单生成和运行的方法,包括:步骤202,所述表单应用于至少一种终端,对所述表单的UI模型和UI界面分别进行设计,并将生成的至少一个UI模型生成为UI模型元数据、将生成的至少一个UI界面生成为UI界面元数据;步骤204,针对待发布终端的类型,从所述UI模型元数据和所述UI界面元数据中获取对应的数据以供发布;步骤206,利用所述对应的数据完成对所述表单的加载。
在该技术方案中,在该技术方案中,实现了对UI设计,经过发布后,可以以一致的UI呈现方式和行为逻辑在不同的客户端环境中运行,从而使得一套软件系统可以支持不同的客户端和设备,提高了系统的复用性和扩展性,并且简化了系统开发、部署和维护的成本。
在上述技术方案中,优选地,在所述步骤202中,生成所述UI界面元数据的过程包括:预存储至少一种UI组件类型及对应的UI组件属性;为所述UI界面元数据中的每个所述UI界面配置相应的UI组件类型、及对应于该UI组件类型的UI组件属性。
在上述技术方案中,优选地,所述步骤202包括:将至少一个所述UI模型与至少一个所述UI界面之间的关联关系存储至所述UI模型元数据或所述UI界面元数据中。
在上述任一技术方案中,优选地,所述步骤204中,还包括:对所述UI模型元数据进行解析,若包含业务逻辑插件,则为每个所述UI模型生成相应的UI模型代码构架,其中,所有的所述UI模型代码构架采用统一类型的代码;以及若所述表单的运行平台采用其他类型的代码,则对所述UI模型代码构架进行代码编译为所述其他类型的代码。
在上述任一技术方案中,优选地,所述步骤206中,还包括:所述表单对应的应用服务层为采用Windows通讯接口技术进行创建。
通过以上技术方案,能够实现完善的方案兼顾复用性和扩展性。
附图说明
图1示出了根据本发明的实施例的用于表单生成和运行的系统的框图;
图2示出了根据本发明的实施例的用于表单生成和运行的方法的流程图;
图3示出了根据本发明的实施例的表单系统结构示意图;
图4示出了根据本发明的实施例的表单设计时的结构示意图;
图5示出了根据本发明的实施例的表单设计的流程图;
图6A和图6B示出了根据本发明的实施例的表单UI界面的示意图;
图7示出了根据本发明的实施例的表单元数据发布的流程图;
图8示出了根据本发明的实施例的表单运行时的流程图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
图1示出了根据本发明的实施例的表单生成和运行的系统的框图。
如图1所示,表单生成和运行的系统100中表单应用于至少一种终端,则系统100包括:模型设计单元102,用于设计表单针对上述至少一种终端的至少一个UI模型,并将至少一个UI模型生成为UI模型元数据;界面设计单元104,用于设计表单针对上述至少一种终端的至少一个UI界面,并将至少一个UI模型生成为UI界面元数据;发布单元106,针对待发布终端的类型,从UI模型元数据和UI界面元数据中获取对应的数据,以进行发布;运行单元108,利用对应的数据完成对表单的加载。
在该技术方案中,实现了对UI(User Interface,用户界面)设计,经过发布后,可以以一致的UI呈现方式和行为逻辑在不同的客户端环境中运行,从而使得一套软件系统可以支持不同的客户端和设备,提高了系统的复用性和扩展性,并且简化了系统开发、部署和维护的成本。
在上述技术方案中,界面设计单元104包括:预存储子单元1042,用于预存储至少一种UI组件类型及对应的UI组件属性;配置子单元1044,为UI界面元数据中的每个UI界面配置相应的UI组件类型、及对应于该UI组件类型的UI组件属性。
在上述技术方案中,界面设计单元104还包括:关联存储子单1046,用于将至少一个UI模型与至少一个UI界面之间的关联关系存储至UI模型元数据或UI界面元数据中。
在上述任一技术方案中,发布单元106包括:数据解析子单元1060,用于对UI模型元数据进行解析;判断子单元1062,用于判断UI模型元数据中是否包含业务逻辑插件;构架生成子单元1064,用于在判断子单元1062的判断结果为是的情况下,为每个UI模型生成相应的UI模型代码构架,其中,所有的UI模型代码构架采用统一类型的代码;检测子单元1066,用于检测表单的运行平台采用的代码类型;编译子单元1068,用于在表单的运行平台采用其他类型的代码的情况下,对UI模型代码构架进行代码编译为其他类型的代码。
在上述任一技术方案中,还包括:服务层创建单元110,用于采用Windows通讯接口技术进行创建表单对应的应用服务层。
图2示出了根据本发明的实施例的用于表单生成和运行的方法的流程图。
如图2所示,用于表单生成和运行的方法包括:步骤202,表单应用于至少一种终端,对表单的UI模型和UI界面分别进行设计,并将生成的至少一个UI模型生成为UI模型元数据、将生成的至少一个UI界面生成为UI界面元数据;步骤204,针对待发布终端的类型,从UI模型元数据和UI界面元数据中获取对应的数据以供发布;步骤206,利用对应的数据完成对表单的加载。
在该技术方案中,在该技术方案中,实现了对UI设计,经过发布后,可以以一致的UI呈现方式和行为逻辑在不同的客户端环境中运行,从而使得一套软件系统可以支持不同的客户端和设备,提高了系统的复用性和扩展性,并且简化了系统开发、部署和维护的成本。
在上述技术方案中,步骤202中,生成UI界面元数据的过程包括:预存储至少一种UI组件类型及对应的UI组件属性;为UI界面元数据中的每个UI界面配置相应的UI组件类型、及对应于该UI组件类型的UI组件属性。
在上述技术方案中,步骤202包括:将至少一个UI模型与至少一个UI界面之间的关联关系存储至UI模型元数据或UI界面元数据中。
在上述任一技术方案中,步骤204还包括:对UI模型元数据进行解析,若包含业务逻辑插件,则为每个UI模型生成相应的UI模型代码构架,其中,所有的UI模型代码构架采用统一类型的代码;以及若表单的运行平台采用其他类型的代码,则对UI模型代码构架进行代码编译为其他类型的代码。
在上述任一技术方案中,步骤206还包括:表单对应的应用服务层为采用Windows通讯接口技术进行创建。
图3示出了根据本发明的实施例的表单系统结构示意图。
如图3所示,表单系统结构包括表单设计时、元数据发布系统、表单运行时三个子系统。其中,表单设计时定义表单数据、逻辑模型和UI界面等元数据;元数据发布系统基于设计时元数据创建运行时所需的数据和逻辑组件;表单运行时用于支持在多种平台基于已发布的数据和逻辑组件运行表单。
另外,传统意义上的表单概念是指一个包含数据和逻辑的业务对象,通过表格、卡片等UI单元向用户呈现界面,用户可通过表单界面查看、编辑、提交业务数据。这种表单定义的特性更类似于企业管理软件中的单据特性,在现有表单系统或技术方案中,表单往往也是以单据形式定义和运行的。
在本发明描述的系统中,表单概念被的延伸以包含更广泛的业务对象范围,这些对象不仅仅包含单据,还包含其他以数据处理为目标的业务对象,如选项配置、数据列表、查询条件编辑等,这些业务对象的共同特征是都包含数据处理和UI界面。本发明描述的表单系统抽取这类对象的共性,实现了应用更为广泛的表单系统。
(一)表单设计时
如图4所示,表单设计时用于定义表单的数据结构、业务逻辑和UI界面等元数据。
分析不同技术平台和客户端类型后可以发现,支持多种客户端运行的难点在于客户端UI呈现技术和特性存在较大差异,这些差异导致设计出的UI界面很难适应不同客户端环境。在现有系统中,表单设计通常耦合了业务逻辑和UI界面,一个表单往往只有一个固定的UI界面,导致UI界面适应性差,无法满足多客户端的需求。
针对这一难点,在本发明描述的表单系统中,对UI界面进行了分离,UI界面与业务数据和业务逻辑不再具有严格的依赖关系。相应的,表单设计时也包含两个设计器:UI模型设计器、布局视图设计器。其中,UI模型设计器用于定义表单的业务数据结构模型和业务逻辑模型,其设计结果生成UI模型元数据;布局视图设计器用于定义最终用户可见的UI界面,其设计结果生成UI布局元数据,同一个表单可以定义多个布局视图。设计器生成的元数据之间相对独立,减少了UI界面与业务数据和业务逻辑之间的耦合关系,为UI界面适应不同客户端环境创造了条件。
具体地,如图5所示,是表单设计时的完整流程图,其中,又可以分为UI模型设计和布局视图(UI界面)定义。
(1)UI模型设计
UI模型设计是定义表单业务数据模型和业务逻辑模型的过程。
表单的业务数据模型定义表单将要呈现和编辑的数据内容,以及数据的业务特性。例如:单据类型的表单通常包含一个或多个相互关联的数据表,每个数据表包含一组字段,每个字段包含“数据类型”、“名称”、“长度”、“是否唯一”、“是否允许为空”等属性。这些表及字段构成了表单的业务数据结构,表单的业务数据模型就是对表单数据结构的定义。
在本发明所述的表单系统中,表单的业务数据模型可以使用以下两种类型的实体模型组成:
●数据实体模型。在包含本表单系统的管理软件系统中,数据实体模型是预先定义的公用数据结构模型,通常包含特定应用领域的业务数据信息,对应一个数据库物理表或视图。本表单系统支持使用公用数据实体模型作为表单的业务数据结构,在运行时使用实体数据作为表单的数据源。数据实体模型通常用于定义单据、单据列表、数据档案等表单类型的数据结构,这些类型的表单用于向用户呈现和编辑业务数据,与表单关联的业务数据通常需要从数据库加载并在编辑完成后保存到数据库;
●控制实体模型。控制实体模型包含一组数据项的数据结构定义,与数据实体模型不同的是,控制实体模型用于处理不需要存储到数据库的临时数据,这些数据主要在非单据类型的UI界面中呈现,用于向用户显示或获取信息。控制实体模型通常用于定义选项配置、查询等表单类型的数据模型。
根据表单数据结构的需要,一个表单可以定义一个或多个实体模型。
表单的业务逻辑模型定义表单如何响应用户的UI动作以及UI状态。业务逻辑模型包含可供调用的命令列表,以及命令在业务场景模式中的状态。每个命令执行特定的业务逻辑操作,例如:单据类型的表单通常具有“新增”、“保存”、“修改”、“提交”、“打印”等命令,这些命令由UI界面在接收到用户操作时调用。在单据已经保存或提交审核的模式下,这些命令又具有不同的状态,如“可用”、“不可用”、“显示”、“隐藏”等UI状态。这些命令及状态,构成了表单的业务逻辑模型。
UI模型设计结果生成UI模型元数据,以数据表形式存储到数据库。每个表单对应一份UI模型元数据。
(2)布局视图定义
布局视图用于定义用户可见的UI界面。UI界面通常包含一组用于向用户呈现或获取数据、接收用户操作的UI元素组成。
由于UI前端技术平台差异,基于一种技术平台创建的UI界面无法应用于其他技术平台,例如:为Windows桌面应用程序创建的UI界面无法应用于Web应用程序,HTML页面也无法应用于Silverlight程序。为解决技术平台的差异性问题,在本发明描述的系统中,UI界面设计不直接生成最终可见的UI对象,而是生成与技术平台无关的中间格式UI界面元数据。
通过对不同技术平台UI呈现技术的分析,抽象了表单中常见的UI元素类型及各个UI元素的特性,这些元素类型被定义UI组件类型,每个UI组件类型包含一组组件属性。UI组件类型和UI组件属性具有各自的元数据标识。用户基于系统提供的UI组件类型创建UI界面。
在本系统中支持的UI组件类型如表1所示:
表1
UI组件类型包含表2所示的公共组件属性,以用于UI呈现的特性:
UI组件属性 | 属性标识名 | 属性表示的UI内容 |
尺寸 | Size | 定义UI元素显示的大小 |
位置 | Location | 定义UI元素显示的位置 |
自适应性 | Dock | 定义UI元素显示自适应特性 |
前景颜色 | Forecolor | 定义UI元素显示前景色 |
背景颜色 | Backcolor | 定义UI元素显示背景色 |
字体 | Font | 定义UI元素字体 |
表2
用户设计表单UI界面时,可以选择系统定义的任意组件类型在界面中呈现,通过定义UI组件的属性,可以定义UI组件的显示特性。系统支持可视化方式设计UI界面。
布局设计器还处理定义UI界面与UI模型间的关联关系,决定在UI界面中的UI组件在运行如何数据和响应用户操作。
UI组件类型包含表3所示的属性,用于定义与UI模型的关联:
表3
考虑到终端设置显示屏幕的差异,本系统支持设计多个UI界面以适应不同的终端屏幕。在本系统中,每个不同UI界面定义为一个布局视图,布局视图的内容可以包含不同的UI组件类型,以及使用不同的布局方式。例如:针对可以同时支持在PC客户端和移动客户端运行的表单,用户可以设计两个不同的布局视图,布局视图可以指定在一个或多个目标平台上使用。
图6A和图6B示出了根据本发明的实施例的表单UI界面的示意图。
如图6A所示,为适用于PC客户端的布局视图,在PC客户端的布局视图中显示完整表单数据。
如图6B所示,为适用于移动客户端的布局视图,在移动客户端的布局视图中显示表单的概要数据。
UI界面设计结果保存为布局视图元数据。布局视图元数据使用XML格式描述,每个UI组件对应一个XML节点,组件属性保存为XML节点的属性。XML节点的层级关系与UI组件的层级关系保持一致。一个表单可以包含多个布局视图,每个布局视图分别存储为独立的布局视图元数据,即一个表单可对应多个布局视图元数据。
(二)元数据发布
元数据发布是向运行时发布设计结果,发布数据包括生成UI模型代码框架、生成目标平台的UI界面文件、创建运行时表单功能菜单等,则图7示出了根据本发明的实施例的表单元数据发布的流程图。
同时,表4示出了本发明描述的系统中已实现支持的运行时客户端平台:
表4
(1)生成UI模型代码框架
元数据发布过程中,发布程序根据设计时定义的UI模型元数据自动生成UI模型的代码框架。
UI模型定义的业务数据模型和业务逻辑模型在运行时需要映射到可执行的代码,这部分代码包括系统提供的表单运行时API公共组件,也包括表单设计中定义的特定业务逻辑的实现。其中,表单运行时API组件包含系统预先实现并编译的公共服务代码,这部分代码实现运行环境初始化、数据访问服务、登录、权限验证、流程审批以及打印等公共功能,组成表单基础运行平台;表单的特定业务逻辑与具体的表单有关,需要单独实现,然后以插件形式集成到表单基础运行平台,发布过程生成的UI模型代码框架是对表单插件接口的定义。
发布生成的UI模型代码框架中的插件接口包含一组属性和方法,这些属性和方法映射到UI模型设计时定义的业务数据模型的相关属性和业务逻辑模型中包含的命令,因此最终实现的插件就是对UI模型的代码实现。
由于要支持多种客户端及技术平台,各客户端和技术平台之间最终运行的代码存在较大差异,因此本系统采用以下方案解决差异性:使用C#语言生成一份代码框架,基于WinForm、Silverlight、HTML平台编译不同的目标组件。这种方案的可行性在于:利用编译工具的功能,C#代码可以被编译为不同平台的组件,例如:WinFrom和Silverlight都是基于.Net技术平台,在只使用WinForm和Silverlight都支持.Net Framework功能子集的前提下,同一份C#代码文件即可编译为WinFrom和Silverlight组件;同时,采用特定的编译方式可以使用C#生成其他平台的目标文件,如使用Script#(一个开源项目,支持使用C#生成JavaScript代码),可以把C#代码编译为JavaScript文件。在本系统中,客户端运行的组件基本是通过一份C#代码生成多个目标平台组件的方式编译,这样,开发人员可以使用自己熟悉的语言开发支持不同平台的功能组件。
基于以上方案,表单发布时只创建一份代码框架,表单设计人员在此代码框架基础上编写代码实现UI模型中定义的特定业务逻辑,编译为多个平台的目标组件。
在本系统中,生成UI模型代码框架是可选过程。这是因为系统提供的表单公共运行时已封装了常规表单运行所需的所有代码实现,不包含特定业务逻辑的表单通常不需要表单插件。因此,发布过程会根据表单的UI模型设计决定是否需要生成UI模型代码框架。
(2)生成目标平台UI界面文件
发布过程基于设计时定义的布局视图元数据生成目标客户端平台的UI界面文件。在本系统中,支持的客户端平台包括:WinForm、Silverlight、HTML。其中,WinForm平台不支持使用静态的UI文件,因此不需要生成对应的平台UI界面文件,而是在运行时基于布局元数据动态创建UI对象。Silverlight和HTML客户端支持使用静态的UI文件,发布过程为针对这两种平台设计的布局视图生成对应的静态UI界面文件,这样可以减少运行时动态创建的性能损耗。
Silverlight和HTML使用符合XML规范的格式定义UI界面文件。表单元数据发布系统实现了两种UI界面生成引擎分别处理这两种技术平台的UI界面生成。其中,XAML生成引擎用于生成Silverlight界面文件,HTML生成引擎用于生成HTML页面文件。这两个引擎分别根据相应平台的特性和表单设计时UI组件的定义,预置了一系列的转换规则,可基于相同的布局视图元数据生成对符合应平台格式的界面文件。例如:在布局视图中设计了一个按钮组件,包含前景色和背景色属性,在布局视图的元数据片断为:
通过XAML生成引擎生成的Silverlight界面文件片断为:
<Button Background="#0000FF"Foreground="#FFFFFF"></Button>
通过HTML引擎生成的HTML代码片断为:
<input type="button"style="background-color:#0000FF;color:#FFFFFF"/>
因此,在表单设计时设计的同一个布局视图,通过发布后即可在多个平台使用,设计或修改界面设计只需要在布局视图设计器中进行一次操作,发布后即可在多个平台体现。
(3)创建表单运行时功能菜单
设计时创建的表单最终要集成到本表单系统所属的管理软件平台运行,元数据发布模块通过在管理软件平台中创建功能菜单,生成运行表单的入口。
(三)表单运行时
表单运行时包括客户端公共运行时、应用服务层、数据服务器等部分组成。其中,客户端公共运行时是表单在各种客户端的基础运行框架;应用服务层处理从客户端发起的服务请求,完成后台业务逻辑、数据存取等操作;数据服务器存储表单运行中生成的业务数据。
图8所示为根据本发明的实施例的表单运行时的具体流程图,则表单运行时可分为以下几个部分:
(1)客户端公共运行时
客户端公共运行时是一组运行于客户端的系统组件,这些组件提供表单在客户端运行的基础框架和系统功能。客户端公共运行组件时使用C#代码实现,通过不同的编译方式生成可在WinForm、Silverlight、HTML三种客户端运行的组件。
客户端公共运行时包含以下部分:
●表单加载器:加载表单发布生成的UI模型组件和UI界面文件,通过表单集成框架在管理软件平台中显示;
●表单集成框架:实现本系统所属管理软件的平台集成接口,为表单在管理软件平台运行提供环境;
●UI模型关联框架:实现一组关联模式,根据设计时布局视图定义的UI组件与UI模型关联关系,创建运行时UI对象与UI模型实例对象间的关联;
表单公共功能API:实现一组通用表单常用功能,如保存、打印、审批等。
(2)应用服务层
表单应用服务层包含一组运行于应用服务器的组件,这些组件用于处理表单需要在服务端完成的业务逻辑,如并发控制、服务端数据校验、数据存储和读取等。
因为本系统支持多种体系架构和客户端类型,采用的技术平台差异决定了客户端访问服务层的方式存在差异。因此,在本系统使用的解决方案中,使用WCF技术创建应用服务层以解决不同客户端类型的访问差异问题。
WCF(Windows Communication Foundation)是微软开发的一种统一多种技术的数据通信技术,用于解决多种通信技术的差异与重叠性。WCF技术支持多种网络协议,兼容WebService通信标准,可用于开发基于SOA架构的分布式系统。
在本系统中,应用服务层使用WCF技术实现,服务配置为同时支持TCP和HTTP协议,不同的客户端使用不同的网络协议和服务类型访问应用服务层,实现了同一服务层满足不同客户端平台的需求。具体的客户端访问服务方式如表5所示:
客户端类型 | 体系架构 | 使用网络协议 | 使用服务类型 |
WinForm客户端 | C/S | TCP | WCF |
Silverlight客户端 | B/S | HTTP | WCF |
HTML客户端 | B/S | HTTP | WebService |
表5
在以上描述的系统实例中,采用了Microsoft.Net、Silverlight、HTML和JavaScript等技术,但并不局限于以上技术平台。通过对系统的实现方案分析可知,本发明提供了一种实现类似系统的较为通用的方案,即:分离UI界面与业务逻辑、使用与平台无关的中间格式元数据、基于同一代码的多种编译方式生成不同平台的组件、公共服务层。
基于以上方案,系统技术平台可以灵活的进行扩展或迁移,如通过实现特定的UI界面生成引擎和编译方式,可扩展采用Asp.Net、JSP等技术在客户端呈现动态页面,或者把服务层从Microsoft.Net技术平台迁移到JAVA平台。
综合以上对本表单系统及其实现方案的描述,本发明对比现有技术或方案,在实现支持运行于多种架构和客户端类型的基础上,在代码和组件复用性、可扩展性方面都有显著提高,具体表现在:
1、使用UI界面与UI模型代码分离的方式,解决了现有技术和方案中UI界面与UI逻辑代码耦合较紧密,难以在多种类型客户端部署和运行的问题。
2、UI界面设计结果使用与客户端和技术平台无关的中间元数据格式描述,通过实现多个客户端的UI界面生成引擎,使用同一个UI界面元数据可生成不同客户端的UI界面,达到了UI界面设计在多个客户端平台复用的效果。
3、UI界面设计支持针对不同的终端设备设计不同的UI布局视图,解决了单一UI界面无法适应具有不同显示特性的终端设备的问题。
4、通过UI模型设计和发布,运行于不同客户端和技术平台的业务逻辑组件,由同一份代码通过不同的编译引擎生成各平台对应的组件,而不需要为各个平台单独编写代码,实现了客户端代码和组件最大限度的复用。
5、使用了支持多种协议并兼容标准服务模式的服务层技术和架构,多种类型的客户端访问统一的服务层,实现了系统服务的复用。
综上所述,本发明描述的可运行于多种类型客户端的表单系统,实现了通过一次设计和发布,即可生成运行于多技术平台和客户端类型的表单,提高了系统复用性和可扩展性,减少了开发和维护成本,取得了良好的应用效果。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种用于表单生成和运行的系统,其特征在于,所述表单应用于至少一种终端,则所述系统包括:
模型设计单元,用于设计所述表单针对上述至少一种终端的至少一个UI模型,并将所述至少一个UI模型生成为UI模型元数据;
界面设计单元,用于设计所述表单针对上述至少一种终端的至少一个UI界面,并将所述至少一个UI模型生成为UI界面元数据;
发布单元,针对待发布终端的类型,从所述UI模型元数据和所述UI界面元数据中获取对应的数据,以进行发布;
运行单元,利用所述对应的数据完成对所述表单的加载;
所述界面设计单元包括:
预存储子单元,用于预存储至少一种UI组件类型及对应的UI组件属性;
配置子单元,为所述UI界面元数据中的每个所述UI界面配置相应的UI组件类型、及对应于该UI组件类型的UI组件属性;
所述发布单元包括:
数据解析子单元,用于对所述UI模型元数据进行解析;
判断子单元,用于判断所述UI模型元数据中是否包含业务逻辑插件;
构架生成子单元,用于在所述判断子单元的判断结果为是的情况下,为每个所述UI模型生成相应的UI模型代码构架,其中,所有的所述UI模型代码构架采用统一类型的代码;
检测子单元,用于检测所述表单的运行平台采用的代码类型;
编译子单元,用于在所述表单的运行平台采用其他类型的代码的情况下,对所述UI模型代码构架进行代码编译为所述其他类型的代码。
2.根据权利要求1所述的用于表单生成和运行的系统,其特征在于,所述界面设计单元还包括:
关联存储子单元,用于将至少一个所述UI模型与至少一个所述UI界面之间的关联关系存储至所述UI模型元数据或所述UI界面元数据中。
3.根据权利要求1或2所述的用于表单生成和运行的系统,其特征在于,还包括:
服务层创建单元,用于采用Windows通讯接口技术进行创建所述表单对应的应用服务层。
4.一种用于表单生成和运行的方法,其特征在于,包括:
步骤202,所述表单应用于至少一种终端,对所述表单的UI模型和UI界面分别进行设计,并将生成的至少一个UI模型生成为UI模型元数据、将生成的至少一个UI界面生成为UI界面元数据;
步骤204,针对待发布终端的类型,从所述UI模型元数据和所述UI界面元数据中获取对应的数据以供发布;
步骤206,利用所述对应的数据完成对所述表单的加载;
在所述步骤202中,生成所述UI界面元数据的过程包括:
预存储至少一种UI组件类型及对应的UI组件属性;
为所述UI界面元数据中的每个所述UI界面配置相应的UI组件类型、及对应于该UI组件类型的UI组件属性;
所述步骤204中,还包括:
对所述UI模型元数据进行解析,若包含业务逻辑插件,则为每个所述UI模型生成相应的UI模型代码构架,其中,所有的所述UI模型代码构架采用统一类型的代码;以及
若所述表单的运行平台采用其他类型的代码,则对所述UI模型代码构架进行代码编译为所述其他类型的代码。
5.根据权利要求4所述的用于表单生成和运行的方法,其特征在于,所述步骤202包括:
将至少一个所述UI模型与至少一个所述UI界面之间的关联关系存储至所述UI模型元数据或所述UI界面元数据中。
6.根据权利要求4或5所述的用于表单生成和运行的方法,其特征在于,所述步骤206中,还包括:
所述表单对应的应用服务层为采用Windows通讯接口技术进行创建。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210222581.4A CN102789382B (zh) | 2012-06-28 | 2012-06-28 | 用于表单生成和运行的系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210222581.4A CN102789382B (zh) | 2012-06-28 | 2012-06-28 | 用于表单生成和运行的系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102789382A CN102789382A (zh) | 2012-11-21 |
CN102789382B true CN102789382B (zh) | 2015-09-23 |
Family
ID=47154790
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210222581.4A Active CN102789382B (zh) | 2012-06-28 | 2012-06-28 | 用于表单生成和运行的系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102789382B (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140184535A1 (en) * | 2012-12-27 | 2014-07-03 | Agilent Technologies, Inc. | Method for Displaying Children Components in a Display that Operates at Different Screen Parameters and Orientations |
CN103605543B (zh) * | 2013-11-19 | 2017-06-06 | 北京国双科技有限公司 | 验证属性转换方法和装置 |
CN103793227B (zh) * | 2014-01-23 | 2018-03-13 | 浪潮通用软件有限公司 | 一种实现wcf服务的方法 |
CN103809976A (zh) * | 2014-02-19 | 2014-05-21 | 浪潮软件股份有限公司 | 工作流关联多终端类型表单的方法 |
CN103809975B (zh) * | 2014-02-19 | 2018-04-13 | 浪潮软件股份有限公司 | 智能云表单的实现方法 |
CN104090768A (zh) * | 2014-07-18 | 2014-10-08 | 武汉市科尔创新软件技术有限公司 | 智能手机端表单自动生成系统及方法 |
CN105718275B (zh) * | 2014-12-01 | 2019-04-05 | 金蝶软件(中国)有限公司 | Erp系统中的模型加载方法和系统 |
CN105760450A (zh) * | 2016-02-04 | 2016-07-13 | 浪潮通用软件有限公司 | 一种表单文件解析方法及装置 |
CN106021333A (zh) * | 2016-05-06 | 2016-10-12 | 北京致远协创软件有限公司 | 用于智能移动终端网页表单的生成方法及装置 |
CN106445536B (zh) * | 2016-09-28 | 2021-06-25 | 湛江市霞山区新软佳科技有限公司 | 自动化业务设计管理系统 |
CN106775622A (zh) * | 2016-11-17 | 2017-05-31 | 济南浪潮高新科技投资发展有限公司 | 一种Winform表单界面管理方法 |
CN106990970B (zh) * | 2017-04-06 | 2020-10-23 | 苏州金唯智生物科技有限公司 | 基于mvc动态页面生成方法及系统 |
CN107203595B (zh) * | 2017-05-03 | 2021-11-30 | 北京海顿中科技术有限公司 | 一种基于自由表单的动态生成web界面的方法 |
CN108021367B (zh) * | 2017-12-15 | 2020-11-17 | 广州赛意信息科技股份有限公司 | 一种基于元数据架构的ui开发系统及方法 |
CN109445794B (zh) * | 2018-11-12 | 2022-01-28 | 北京中电普华信息技术有限公司 | 一种页面构造方法及装置 |
CN110990006A (zh) * | 2019-11-25 | 2020-04-10 | 爱信诺征信有限公司 | 表单管理系统以及表单生成装置 |
CN112711414B (zh) * | 2020-12-28 | 2022-10-11 | 浪潮通用软件有限公司 | 一种表单界面适配展现方法、装置及存储介质 |
CN113641671B (zh) * | 2021-07-14 | 2022-06-14 | 广州市玄武无线科技股份有限公司 | 表单配置模块外接数据的处理装置及处理方法 |
CN114064611A (zh) * | 2021-11-18 | 2022-02-18 | 中冶赛迪重庆信息技术有限公司 | 一种元数据可复用的数据建模方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101082862A (zh) * | 2007-03-07 | 2007-12-05 | 浪潮集团山东通用软件有限公司 | 一种逻辑、表示和数据分离的窗体描述方法和标记语言 |
CN101976189A (zh) * | 2010-09-26 | 2011-02-16 | 用友软件股份有限公司 | 组件展现方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7665014B2 (en) * | 2004-06-03 | 2010-02-16 | Microsoft Corporation | Method and apparatus for generating forms using form types |
-
2012
- 2012-06-28 CN CN201210222581.4A patent/CN102789382B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101082862A (zh) * | 2007-03-07 | 2007-12-05 | 浪潮集团山东通用软件有限公司 | 一种逻辑、表示和数据分离的窗体描述方法和标记语言 |
CN101976189A (zh) * | 2010-09-26 | 2011-02-16 | 用友软件股份有限公司 | 组件展现方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102789382A (zh) | 2012-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102789382B (zh) | 用于表单生成和运行的系统及方法 | |
US11789715B2 (en) | Systems and methods for transformation of reporting schema | |
CN101151608B (zh) | 开发人员容易地找出或扩展系统上周知位置的能力 | |
US8719949B1 (en) | Parameter based operation | |
US10585655B2 (en) | Systems and methods for automated retrofitting of customized code objects | |
CN103927163A (zh) | 插件框架处理装置及插件系统 | |
CN103605570A (zh) | 一种基于虚拟机模板自动部署应用的方法及系统 | |
CN107357593A (zh) | 源代码文件组建方法、装置、电子终端及可读存储介质 | |
KR101275871B1 (ko) | SaaS 환경에서의 홈페이지 제작 시스템 및 방법, 그 방법을 컴퓨터에서 실행하기 위한 컴퓨터 프로그램이 기록된, 컴퓨터로 판독 가능한 기록 매체 | |
CN104704468A (zh) | Web应用程序的跨系统安装 | |
CN104375818A (zh) | 一种通过配置文件实现通用数据格式录入的系统及方法 | |
CN101673358B (zh) | 基于权限组件对工作流组件中的权限管理的方法及装置 | |
CN105204863B (zh) | 违法数据审核系统 | |
US20090037902A1 (en) | Transitioning From Static To Dynamic Cluster Management | |
CN111068328A (zh) | 游戏广告配置表格的生成方法、终端设备及介质 | |
US10198537B2 (en) | Method and system for implementing intelligent system diagrams | |
CN103036855A (zh) | 一种权限管理的实现设备和方法 | |
CN105897902B (zh) | 一种通过浏览器启动本地应用的方法及系统 | |
CN104834715A (zh) | 一种基于部件和容器的网站生成方法及系统 | |
CN107391118A (zh) | 一种Web应用用户体验平台系统 | |
KR101599471B1 (ko) | 소스 관리 장치, 시스템 및 방법, 컴퓨터 판독 가능한 기록 매체 | |
CN110825367B (zh) | 一种适用于龙芯cpu环境下的表单设计器的设计方法 | |
CN109062548B (zh) | 一种基于工作流搭建的Web服务扩展方法及系统 | |
CN109614084A (zh) | web程序及其快速开发框架、开发方法与相关设备 | |
CN105183491A (zh) | 跨平台的桌面gis系统及其启动方法 |
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 | ||
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20160215 Address after: 100094 Beijing City, North Road, Haidian District, No. 68, building 2, floor 2 Patentee after: You Pu Information Technology Co., Ltd of UFSOFT Address before: 100094 Beijing city Haidian District North Road No. 68, UFIDA Software Park Patentee before: UFIDA Software Co., Ltd. |