1. 开发平台概述
1.1. 产品概述
GForms开发平台让开发人员甚至非技术人员在短短几分钟内创建全功能的展现服务,让开发团队更加适应客户和市场的需求,从而提高客户服务和速度实现收益。
GForms提供展现服务可视化开发、部署、运行平台:
- 1、开发平台:开发平台基于开放的、深受广大开发人员喜欢的Eclipse研发,可以与svn、cvs等版本控制器结合实现版本管理。通过使用GForms设计器能够快速构建和部署全功能的Web窗体应用程序。
- 2、运行时:运行时包含各类GForms展现服务的转换处理,把xforms文件转换为html文件,也就是说运行时其实gforms文件是一个静态的html文件。静态文件就意味着客户端不用每次都到后端请求gforms文件,而可能缓存到用户浏览器中,不用每次都动态的去构建展现页面,提高响应效率及用户体验;
1.2. 我们使用的开放标准
云计算带来了全新的业务模式及商业机会,而云计算的核心是服务、集成,所以开放标准、开放架构非常重要。
同时我们认为未来的企业业务系统将更多的以SaaS云计算模式诞生,只有基于开放的标准才能保证企业业务系统能够迁移到云环境中,并产生增值。
开发平台所使用到的开发标准及开发技术如下图所示:
其中,Restful、AJAX及JSON为开发的技术或架构,其他的均为开放的标准。
我们的GForms开发平台完全实现了XForms 1.1标准,并为了加快业务系统的开发,我们还额外提供了更多的控件类型,如图、树等复合控件,同时为了方便展现服务开发及编程,我们额外还为编程包装了一些的强大工具组件,如对话框、向导等。
1.3. XForms标准
XForms是W3C组织所推荐的下一代在线展现服务标准(早在2003年10月14日就被W3C推荐),它吸取了W3C标准诸如:XML Schema, XPath和基于XML的事件,XForms试图突破当前HTML的一些限制。
HTML标准存在的缺点:
- 面向展现,混合数据和展现
- 没有类型的,直接就提交到服务器
- 严重依赖脚本(复杂展现脚本占到90%)
- 设备单一
- 弱数据模型,无法与现有的服务交互
难以管理,很难看到返回什么
XForms标准的体系架构如下图所示:
左边的图为标准的基本体系架构,从中可以看出XForms标准完全的实现了展现页面中的模型与展现的分离,右边图更加给出了数据通过submit操作提交到后端的数据格式为XML,并且得到的也是XML。
注:我们的GForms其实支持的格式不仅是XML,还支持JSON。
2. 开发平台功能介绍
2.1. 系统架构
为了不破坏开发人员的开发习惯,如现有的开发工具、技术体系及应用运行环境,GForms开发平台设计器基于Eclipse研发,同时开发人员可以沿用既有技术体系(如后端服务实现、前端样式渲染/展现逻辑控制,甚至可以直接使用jsp、html等技术),GForms应用其实就是一个web应用,最终会被部署到Web或J2EE服务器,如Tomcat、weblogic、websphere application server中。
GForms开发平台使用开放的技术架构:设计器基于Eclipse,运行时基于J2EE,如下图所示:
2.2. GForms设计器
GForms设计器时创建及编辑表单的图形设计工具,提供可视化、拖拽式、直接预览的引人入胜的开发环境。
GForms设计器完全实现了xforms标准,是可视化的、拖拽的,非常简单容易上手的开发高效工具。
整个GForms设计器包括:
- 控件面板:存放GForms所直接支持的、可拖拽的控件。
- 视图:各种配置视图,如控件属性视图、XForms核心模块(数据模型、模型实例、提交、绑定、动作等)视图及web服务视图。
- 视图配置属性:配置视图中各个元素的属性信息。
2.3. 控件类型
GForms提供41个开箱即用控件:17个基础控件、8个复合控件、11个扩展控件、6个图形控件及web服务控件,同时还提供对话框、向导、tooltip等通用组件。
同时为了方便展现服务开发及编程,我们额外还为编程包装了一些的强大工具组件,如对话框、向导、tooltip等。
基础控件:与一个模型实例节点绑定,包括输入框、输出框、按钮、密码、标签、文本域、复选框、复选框列表、单选框列表、组合框、列表、日期、图片、上传、iframe、富文本及值域 复合控件:与模型实例的多个节点绑定,可以含有其他任意控件,包括按钮组、分组、分组框、表格、树、页签、重复容器、工件查看器 扩展控件:GForms对标准进行扩展的控件,使用场景相对较少,包括日历、评分、代码片段、进度条、web链接、颜色选择器、fieldset、滑动条、横向菜单、下载、上下文菜单等 图形控件:几乎支持所有的图形类型,系列图、XY图形、雷达图、饼图、漏斗图、仪表盘 Web服务:使用后端提供的web服务,根据wsdl文件或web服务URL创建web服务展现 |
2.4. 控件建模
每个控件都提供丰富的配置项以满足不同的业务场景。
不同控件有不同的配置项,如文本域控件,可以配置文本域自身属性、事件、操作、格式化及高级属性等。
控件与模型实例的关联是通过控件的引用配置实现的,配置的值为xpath表达式,可以通过“选择”按钮弹出XPath编辑器。
2.5. GForms XPath编辑器
GForms平台提供XPath编辑器,辅助开发人员开发xpath表达式。
我们提供的XPath编辑器支持XPath1.0、XForms 1.1、GForms 1.0标准。
分为三个区域:选择区域、编辑器区域及问题显示区域。
其中,选择区域:
模型实例树:包含所有的模型实例数据节点,包括属性及元素,如果需要选择某个节点请双击或拖拽到编辑器区域即可。
函数树:包含所有的xforms1.0及xforms1.1所支持的所有xpath,每个函数具体使用说明请参考相关xpath手册。
操作符树:xpath所支持的操作。
设计器中的UI控件与模型实例是通过xpath进行关联的,我们为了降低xpath表达式开发难度,我们提供了一个可视化的xpath编辑器;
通过双击或拖拽上面3棵树中的节点到中间区域自动生成xpath表达式,同时,开发人员可以手动调整xpath表达式,如果编辑xpath的过程中存在问题,则会在问题区域给出错误提示。
2.6. 典型控件
本节列举几个常用的复杂控件,让用户加深对GForms开发平台的了解。
2.6.1. 树控件
研发时参考了JQuery Ztree等流行的树实现,但是我们更加灵活,因为我们对后端服务没有任何格式要求,真正实现数据与展现分离,同时支持XML及json。
树的设计态如上图所示,点击预览后的效果图如下所示:
GForms提供的树控件具备如下特点:
- 支持动态加载;
- 支持JSON、XML数据格式;
- 支持checkbox、radio;
- 支持展现配置:连线、图片;
- API及事件处理;
- 对后端服务没有格式要求
2.6.2. 表格控件
GForms提供的表格满足各类应用场景需求,对比目前比较流行的jquery flexgrid,我们提供了xml、json两种数据结构、支持数据在线填写、支持表格列锁定等重要功能。
表格的设计态如上图所示,点击预览后的效果图如下所示:
GForms提供的表格控件具备如下特点:
- xml、json
- 列冻结、右键菜单
- 2种分页机制、ajax
- 完善的API及事件处理
- 表格列上下文菜单
- 自定义toolbar
- 展现表格及编辑表格
- 列支持18种控件类型
- 支持button group
2.6.3. 图形控件
在GForms中图形更加简单易用,支持json、xml格式,同时GForms开发平台所提供的图形区分为6种大类型,而每种类型图形支持100多项配置,足以应答各种业务场景。
一些图形样例如下所示:
2.7. XForms核心模块
XForms中的核心模块是展现服务的模型及控制部分,是控制中心,是减少或消除手动编码的核心所在。
>模型视图:管理展现服务中所有的数据模型、模型实例、绑定、提交及动作等。
>模型实例视图:在该视图中维护模型实例XML结构(其实还支持JSON格式)。
>绑定配置:用于定义数据的约束,包括只读、依赖关系、值计算公式、数据类型(介绍GForms所支持的数据类型:xsd+xforms数据类型+自定义类型):
>提交:是展现服务与后端服务数据交换的纽带,支持rest api接口调用。
>动作:标准的16个动作+自定义的1个操作。可以直接通过配置使用,降低编程难度、消除重复编码。
2.8. web service支持
GForms开发平台直接对soap/http web service提供支持,可以通过web服务的WSDL文件或web服务的URL来启动web服务开发支持。
第一步:选择或录入web 服务地址
第二步:选择需要构建的服务、端口及操作
当向导完成后,可以在web服务视图中对引入的web服务进行可视化管理。
通过从web服务视图中拖拽节点到设计器区域,上下web服务UI的构造。
2.9. 应用发布
可以提高应用调试效率,减少文件手动拷贝的繁琐工作,展现服务及GForms工程其他任意文件,包括jar包等的任何变化都会同步更新到远程的服务器上,实现快速调试。
3. 开发平台特点
非侵入式的开发平台、通过建模大幅减少编码、降低后期维护工作量:
- 简单易用、可视化、模型驱动展现服务开发
- 数据支持XML、JSON
- 直接支持图形、表格、树等复杂控件,同时编程方式支持向导、对话框、提示等控件。
- 支持在任何标准的J2EE中部署:Tomcat、weblogic、IBM WAS
- 跨浏览器运行:IE8及以上、chrome、firefox、safari
- 展现样式可以被轻松定制
- 大量可用的API及事件处理
- 提供大量资料文件,并提供功能相对完善的GFormsDemo应用供技术人员开发参考
- 计算公式基于xpath表达式:可以用来轻松创建动态的 Web 2.0 的表单界面,可以自定义验证器、计算器、表单提交动作和事件处理等。
4. 开发平台优势
GForms开发平台提供了一种富有吸引力、交互式的用户体验,能够快速、轻松地创建出功能丰富的展现服务,并且在质量控制方面既降低了成本,又提高了效率。
GForms开发平台优势如上图所示,主要有四方面的优势:
1. 展现服务可视化:
随着云计算的发展,IT从业人员的形态将发生巨变,可能任何人都可以通过云计算平台开发自己的应用并产生收入,所以一个简单、快捷的开发平台非常关键。
我们提供可视化的拖拽式开发环境、提供配置化的展现开发,能消除开发人员之间的技术差异、理解差异,特别是能够快速响应需求变化、提高后续系统维护性。
可视化降低后期维护成本,在项目研发,特别是产品研发中,随着版本的增多,后期调整展现服务非常困难,开发人员总有“还不如重新做”的想法。
2. 展现服务理念:
云计算的核心之一是服务,在云计算中,其实任何东西都可能成为服务,如大家所熟知的存储服务、计算服务、IP服务、web服务等,其实展现也是一种服务类型,是是可以成为交易的商品类型。
同时展现服务理念,能够让实现展现与后端业务服务的松耦合。
3. 模型驱动:
我们提供可视化模型驱动的展现开发,能够大幅度降低硬编码量,保守估计能够减少60%的硬编码工作量,编码量减少就意味着可维护性好。
4. 基于开放标准及开发技术:
开发标准及技术意味着产品的成熟度高,有广泛的行业认可,同时也可以屏蔽私有标准的封闭性,GForms基于开放标准及开发技术,技术人员认可并且提高可维护性。
云计算带来了全新的业务模式及商业机会,而云计算的核心是服务、集成,所以标准、开放架构非常重要。
同时我们认为未来的企业业务系统将更多的以SaaS云计算模式诞生,只有基于开放的标准才能保证企业业务系统能够迁移到云环境中,并产生增值。
5. 我们的规划
目前只是一个开始,我们还在持续的研发、创新、完善中,GForms开发平台是我们的GPaaS发布的第一版版本,该版本主要提供展现服务开发、测试、部署及运行。
我们提供的GPaaS平台,初期是以application development/application life cycle management (AD/ALM) PaaS方式提供,为合作伙伴提供开发技术服务,支持合作伙伴开发出更多基于开放标准的应用。后期将与基础实施服务供应商合作伙伴一起实现aPaaS,并与广泛的合作伙伴一起打造PaaS运营生态链。
5.1. GPaaS平台设计及规划
应用开发平台所开发出来的应用全部基于开放标准及开发技术,之所以基于标准,是因为标准可以保证技术的可靠性及完备性,有更多的企业参与,也更能被广泛的开发人员所接受,同时,基于标准的服务更容易被广泛使用。
GPaaS平台整体上包括开发平台及运行时平台,其中:
一、开发平台:
提供企业应用开发所需要的所有的开发工具,如展现服务开发工具GForms、业务流程建模工具、数据服务等。
二、运行时平台:
运行时基础组件提供运行时服务支持,包括各个服务引擎,如展现服务引擎、流程引擎、ESB引擎及服务引擎等。
运行时平台还提供运行时的管理平台,管理GPaaS平台的各类服务及云应用SaaS应用的运营情况。
同时,为了提供SaaS应用运营支撑,我们还提供云门户,供最终用户提供应用订阅及访问服务。
5.2. GForms开发平台版本规划
在即将发布的V1.1中,将提供与业务流程结合解决方案,开发人员根据该解决方案将轻松实现在业务流程中使用GForms作为流程人工任务的展现服务,并能实现展现服务于流程之间的数据流动。
当发布V1.2后,GForms将提供全方位的权限控制,精准控制展现服务的各个功能的授权。目前版本(V1.0)还不支持开发者自定义复合组件,通过提供复合组件定制,开发人员可以根据业务需要,定制与具体业务相关的复合组件,该复合组件可以添加到控件选择器中,可以被展现服务使用。
在V1.2中还将研发数据库发布为服务,为开发人员提供数据库服务建模,减少后端服务硬编码,可以轻松实现把数据库表发布为基于soap的web service或rest风格web服务,简化数据库操作,大幅度降低开发人员开发工作量。
在V1.3中,我们将提供手机浏览支持、展现服务运行时国际化、GForms独立部署、代码动态构造GForms等重要功能:
1、手机浏览支持:基于GForms开发的展现服务可以不需要修改即可运行在智能终端,展现服务将根据智能终端的屏幕大小进行自调整。
2、展现服务运行时国际化:可以轻松的为展现服务提供包括控件label、js提示信息、配置信息等的全面运行时国际化支持。
3、GForms独立部署:GForms运行时独立部署,而业务web应用中不含有任何GForms文件,而只需要为业务web应用在运行时提供GForms的URL即可,GForms运行时提供XForms到html的转换、国际化、授权等服务。
4、代码动态构造GForms:某些场景下,需要动态的构造展现服务UI控件,在该需求下,“代码动态构造GForms”将变得很实用。
随着V3.0的发布,此时GForms开发平台已经基本达到GPaaS初期规划功能,后期版本将提供应用运营支撑。
6. 联系方式
www.ghpaas.com
电话: 13601178468
Email: ghpaas@163.com