业务基础平台厂商金富瑞公司的英文名称是Goldframe,意为“金框架”,公司的核心产品命名为UCML,从公司及产品的命名不难想象金富瑞公司是专业从事框架及建模工具研发的软件公司,从中也可以看出金富瑞公司成立之初就有只为业务基础平台而生的专一精神和打造国产精品软件、开拓软件产业链新层级的初衷和气魄。正是这样的决心和努力,在公司成立不到三年的时间内,应用框架开发平台 - UCML FOR ASP.NET在.Net业务基础平台领域已具有遥遥领先的地位,已是集数据访问框架、业务单元框架、报表框架、工作流框架、枚举样板程序、规则注入、Ajax++控件及其设计器、组织架构、访问权限和数据(行)权限、协同管理套件及团队开发于一身的集成开发环境和高性能、高可靠性的业务基础框架和架构。

业务系统平台化重要目的之一,就是达到快速开发的目的,不论平台厂商提前预置了多少基础的或者是领域的业务,客户最终还是要有变化的需求、新增的功能,这样就不可避免有新的开发需求。面对变化和扩展,如何达到快速响应、如何让用户方便扩展,降低平台介入门槛,这依然是任何一家业务平台厂商要面临的课题,就如木桶原理一样,平台的生命力不在于厂商预先做了多少领域模块,而在于用户自己扩展度能有多高。如何提高用户的扩展度,降低平台的学习门槛,在UCML平台销售近三年的时间内,我们总结了快速开发的5大要素,愿意拿出来和大家一起分享:
♦ 框架化的平台是提高用户扩展能力的唯一选择
UCML在研发之初,没有采用解释性脚本作为用户二次开发扩展的方案,而是采用直接生成.Net C#源码,不论在执行效率上和用户扩展能力,都有较好的效果,这些都是得益于框架思想。
什么是框架?框架是对某类群体中的共性的提取和抽象,框架的存在形式是封装成面向对象的一个或几个基类。当框架反作用于个体时,也就是个体继承框架时,这些个体就具备了框架共性的能力。个性的扩展是在继承基类的子类里进行完成,所以框架化的平台是对个性的扩展是没有限制的。唯一的限制就是要熟悉这个框架,才能方便扩展,UCML针对于此,也作了大量的工作,提出了样板程序和规则注入等手段来化解框架的学习量。
在UCML里,框架化组件包括:数据访问框架、业务单元框架、报表框架、工作流框架,细节不在这里介绍了。
♦ 样板程序和代码模板是降低平台学习曲线的法宝
什么是样板程序?
上面讲到框架和组件,说的抽象、包装,如何使用这些框架,那就是样板程序的职能了。样板程序其实大家都有用过,就是Sample程序,它是对某个框架或某个组件、控件等用法举例。这本没有什么特别,但是金富瑞公司的业务基础平台UCML却把样板程序的作用提高到法宝级,这是为什么?
在UCML平台推广的几年时间里,发现有些客户上手很快,有些客户就很慢。当初我们没有分析原因,只是简单的认为水平高的程序员用的就快,经验少的程序员会慢些,这本也正常,但是作为快速开发平台的初衷,让初学者容易上手的目标没有达到。最终我们发现,快的程序员是因为它能够很快理解的我们框架,会使用我们的组件,慢的呢,主要不知如何下手。基于此,我们提出了一个在开发平台领域具有突破价值的一个概念:"枚举",枚举什么,枚举样板程序。
枚举样板程序思想很简单:就是穷举一个框架或组件的所有用法,把它形成样板程序集合,在UCML里,样板程序是通过代码块模板来实现的,每一个代码块模板代表一个样板程序,代码块模板的好处是只要输入参数,就可以得到想要的源代码,而不是传统的必须读懂才能改写,这又极大的节约了开发者的时间。目前UCML里已发布了上千种代码块模板,几乎覆盖了UCML里的框架、组件、控件所有用法。用户在使用的时候只要找到一个合适的代码块,输入参数,自己想要的程序就出来了。平台厂商的一般都会说业务逻辑是要用户自己定义的,但是在UCML里,有了枚举样板程序的思想及实现后,是在组装业务逻辑时,依然有很多业务逻辑程序不需要手写。
♦ 规则注入理论的继续为提高开发速度助力
什么是规则?
规则是业务行为的准则及约束,它描述业务行为能够做哪些,不能做哪些。规则是业务逻辑的一种,但规则不是业务逻辑的全部,所以不能把业务逻辑和规则完全划等号。规则是附加到业务元素上的,规则的通用性随着业务行为元素的粒度的增大而降低,如判断录入项合法的规则具有很强的通用性,因为录入项本身就有很强的适用性,只要是同类的(如数字)就可以注入规则到相应的录入控件里面去,同类控件就受到相同规则的约束;但是一个社保金领取的业务,这个业务具有很强的领域特点,所以针对社保金领取的业务规则,也只能适用于这个社保行业领域。
综上所述,规则在通用的业务元素内具有更好的通用性的,随着业务元素所处专有领域业务的提高,而降低。但这些因素并不妨碍我们对规则的搜集和使用,在UCML平台内部内置了大量的通用规则,简单的如值校验、唯一值等,这些都是在通用的业务元素范围之内,开发人员使用时也是只要选用已有规则注入到业务元素之内,这个业务元素就受到这个规则的约束,而不需要再写程序。领域的业务规则,UCML提供规则引擎,规则集合和规则项的设计器,由客户自己来完成领域的规则的实现。所以UCML收集了大量通用性较好的规则,供用户直接调用;而建议用户自己收集本业务领域内的规则,在不同项目之间共享。
不论是样板程序和规则注入,都是提高业务逻辑编程速度的手段,而且是不可缺少的。
♦ 高度完备的组织机构和权限体系
任何一个业务系统都会有组织架构和权限体系,因为任何一个业务系统描述的都是现实中的业务行为,而组织机构成员正是这些业务行为的参与者,权限体系来控制行为参与者的动作权限。所以一个完整的组织机构和权限体系对开发速度的提高也是很重要的。
依据业务系统的复杂度和企业规模的大小,用户对权限控制的范围是不一样的,有的只需要访问权限(能不能进入这个业务单元);有的还要求数据权限(进入同一个模块后,不同的人看见和可操作的数据行的范围是不同的)等。UCML的组织机构和权限体系已非常完备:
组织机构模型:组织/部门、岗位、人员
权限模型:
访问权限:岗位、责任:模块,动作和列,定制权限码
数据(行)权限:人员、岗位、部门、群组、分类目录
单点登录接口方案:支持AD和第三方单点登录
♦ Ajax++控件及设计器再助快速开发一臂之力
传统的Ajax通常以XML为载体进行数据传递,在客户端进行处理。这并不能体现OO思想。虽然整体系统的采用了OO思想,但是一旦涉及到前端的表现层编程,就出现了OO断层!UCML平台中的Ajax++采用全面面向对象设计,数据到前台后,Ajax++框架会将数据组装成和后台结构一样的数据对象,并提供对该对象的各种操作。它可以同前端展现组件如:数据表格、编辑框甚至是填报报表等进行联动,并具备数据感知,以及数据输入控制等功能 。
除此外,Ajax++还具有操作数据识别的能力。客户端提交数据的时候,Ajax++会自动的将数据分成“新增数据”、“修改数据”、“删除数据”等类别,仅向服务器端提交修改过的数据,未修改的数据,则不予提交。通过Ajax++的数据自动识别功能,能充分的减少数据的传送量,提高Web 应用程序的运行效率。
UCML提供了丰富Ajax++控件,包括GRID、TREE、数字编辑、货币编辑、掩码编辑、日期编辑、下拉框、级联下拉框等多种业务系统用到的控件,同时提拱和.Net Studio Web设计器同样强大的设计功能,不但支持纯HTML元素,也支持复合控件(类比服务端控件)的设计

金富瑞公司的业务基础平台UCML.NET正是以上述5点作为快速开发的基石和核心理论,该抽象的形成框架、组件和控件,用户在编写业务逻辑时有样板程序供选择、有业务规则可注入,再加上一个完备的组织架构和权限体系,这就是我们快速开发的核心所在。
以下还有些UCML.Net 平台的其他重要功能:
♦ UCML的工作流
UCML.NET工作流管理系统(UCML.NET WorkFlow)参照工作流管理联盟(WfMC)标准设计,以业务管理为核心(BPM),可以帮助企业购建高效、柔性的业务管理流程;UCML基于组件开发,可以帮助企业部署实现基于面向服务架构(SOA)的服务体系。
UCML.NET工作流管理系统包括五个组成部分:
• 可视化的工作流 开发环境
• 工作流引擎 与服务
• WEB客户端管理
• 可视化的流程监控
• 标准的工作流服务组件
可视化的工作流开发环境
UCML工作流设计支持图形化的工作流定义,可以方便地支持鼠标拖拉处理,UCML工作流设计与UCML业务开发基于一体化的设计环境,可以实现复杂的业务处理。一个典型的流程设计界面如下:
工作流活动支持人工节点、自动节点、路由节点、子流程节点(流程嵌套);支持分支的串行、并行;完善的任务分配体系,支持手动分配、预定义分配和智能任务分配;支持一个任务可以分配给一个人,也可以分配给多个人,支持任务的会签、参阅、任务完成规则;支持任务的回退、撤回;支持任务超时监控,超时提醒,任务的重新分配;支持多种工作流事件回调。
工作流引擎与服务(WorkFlow Engine)
UCML.NET工作流引擎是一组支持Asp.net 工作流后台服务程序,用UCML工作流开发平台可以直接生成相关工作流引擎源码;
UCML.NET工作流引擎负责任务的调度,分配,时间、事件控制等工作,UCML.NET工作流引擎经过了大并发、大数据量的实际使用检验,能满足企业级工作流系统大并发用户和大数据量的应用要求。
WEB客户端管理
UCML.NET工作流系统提供了标准的业务基础框架,包含了业务运行所需要的绝大部分基础功能组件,是一个功能强大的业务基础平台;开发者不需要写一行代码,只需简单发布,就一个调试、运行业务流程。
UCML.NET工作流系统WEB客户端业务基础框架的主要功能包括:
• 组织机构、岗位、人员管理
• 群组(虚拟组织)管理
• 业务权限(访问权限、行权限、列权限、按钮权限)管理
• 流程权限管理
• 流程启动
• 待办事宜
• 手工任务分配
• 批量任务审批
可视化的流程监控
及时掌握工作流运行状态是每一个管理者都十分关心的问题,UCML.NET工作流系统提供了方便简捷的WEB工具,可以让管理者可视化地了解每一个流程实例的流转状况。
UCML工作流监控工具可以对运转的流程实例进行监控和干预,可以挂起、解挂流程,终止流程,可以跳转节点,转发任务等
标准的工作流服务组件
为了帮助客户快速开发,UCML把一些工作流中常用的功能封装成标准组件,开发者直接调用这些组件就可以实现复杂流程的处理,大大提升了工作流的开发效率,这些组件包括:
• 图形化流程监控组件
• 处理意见组件
• 意见跟踪组件
• 附件上传组件
• 手工分配任务
具有SOA支撑作用的业务单元
业务框架主要是为了给开发者提供一套基于业务开发的框架体系,从而简化业务的开发过程,降低开发难度、提高开发效率、保障产品质量;
UCML WEB业务框架深度抽象了业务开发的过程,独创性地把业务开发分成标准的三个层次,使开发者可以采用定义、拖拉的方式实现复杂WEB业务的快速搭建;
UCML业务框架包括业务组件(Business Component 简称BC)、业务视图组件(Visual Component 简称VC)、业务单元(Business Unit 简称BU)定义,业务组件是业务处理的逻辑部分;业务视图组件是业务处理的展现部分,可包含多种展现方式:Grid类型组件、Edit类型组件、树型组件、代码选取组件、基础信息分类编辑组件等;业务单元包含了一个完整的业务处理,它由多个业务组件、多个视图组件拼装而成;
业务视图组件中包含一个Web页面设计器,在页面设计器中可实现拖动编辑、增加多种HTML控件和Ajax++控件、定义控件属性和事件等功能;
业务层包含多种数据权限的控制方式,使开发者只需简单定义,就可控制任意复杂的数据权限。如在任何一个应用系统中一般都包含对数据权限的控制,即同一个页面不同的人需要看到不同的数据,用传统的开发方法,需要单独对每个页面进行处理,而且针对不同的客户控制数据权限的方式也不同,有的需要按岗位来控制,有的需要用组织或部门来控制,开发者往往很难满足这种多样化的需求,而在UCML平台中彻底解决了这样的问题,开发者只需在业务组件上简单定义,就可以实现按个人、岗位、组织甚至是自定义的目录分类来控制不同的数据权限;
开发者只需简单定义,就可实现对级联下拉数据框、弹出数据框、主从表关系等复杂逻辑关系的处理;
UCML.NET业务框架开发平台是业内最开放的开发平台,UCML.NET业务基础平台,运行于主流运行环境.Net FrameWork上,发布没有限制,是一个开放的、高性能的业务基础平台。
♦ UCML协作通
一、UCML协作通简介
UCML协作通是一个以先进的点对点通讯技术为基础的企业级即时通信软件。它支持在线聊天、视频/语音对话、点对点断点续传文件、自定义皮肤等多种功能。
UCML协作通定位于企业级即时通讯市场,致力于提升企业级用户的沟通效率,致力于与应用系统的协同集成。
UCML协作通实现了与UCML业务系统的集成,实现了与工作流系统的协同。UCML协作通采用单点登陆方式,实现了与业务系统的完整整合。
二、主要功能
与UCML.NET工作流集成
支持与UCML.NET工作流引擎无缝集成,支持代办事宜处理,支持通过消息机制自动与业务系统关联并进行处理;
与UCML业务集成
UCML协作通与UCML业务系统完美结合,实现组织协同、任务协同、业务协同。
状态管理
维护所有在线人员的状态,除了系统提供的几个常用的状态(如:离开、忙碌、参加会议等)之外,系统同时提供了自定义在线状态的功能,以满足各种应用场合的需求;
添加好友
支持添加组以及添加好友功能,及对所添加联系人的身份验证和阻止联系人等功能;
即时消息
发送联机或脱机消息,同时可自定义消息字体、颜色、大小等信息,支持插入表情符号,屏幕截取。支持多人对话以及消息群发等功能;
语音对话
采用成熟的语音压缩技术,通话双方即使是使用拨号上网也可得到很好的通话效果;
视频功能
允许您查看联机对话用户的摄像头,并可自定义图像的压缩级别,以适应各种上网速度的要求;
文件传输
系统提供了高速、稳定的实时文件传输功能,支持断点续传,文件大小不受任何限制;
更换皮肤
软件自带多种界面皮肤供用户选择,并定期更新软件皮肤,让用户时刻保持清新;
点对点技术
系统采用先进的点对点通讯技术,消息(包括文本、语音、视频、文件)的传输大多数情况不需要经服务器中转而直接发往接收者所使用的机器,传输速度更快。而且因服务器仅仅只是起着维护用户状态列表的功能,因此占用资源极少,可允许同时在线的人数就越多,对系统的影响也最小;
三、软件特性
MPEG4 视频压缩技术
MPEG4不仅可以应用在窄带上(带宽小于64Kbps),还可以灵活的扩展到高质量、高清晰度的宽带上。这就保证可以满足了不同用户的需求。用户可以根据自己的实际情况,设置好相应的带宽,可以最大限度的利用带宽资源,从而达到最好的视频会议效果。
P2P点对点的通讯技术
P2P是“peer-to-peer”(点对点)的缩写,它最直接的功能就是让用户可以直接连接到网络上的其他计算机,进行文件共享与交换。有效节约带宽,减少对服务器的负荷。
G729音频压缩技术
G.729语音压缩采用的算法是共轭结构的代数码激励线形预测(CSACELP),是基于CELP编码模型的算法。由于G.729编译码器能够实现很高的语音质量(长话音质)和很低的算法延时,被广泛地应用于数据通信的各个领域,如IP phone和H.323系统等。
穿透防火墙
可穿越企业中使用最普遍的NAT防火墙,无需任何特殊配置,支持其他类型防火墙及代理服务器,适应各种复杂的网络环境。
软件截图:

♦ UCML Web报表
与ASP.NET(C#)水晶报表相比,UCML web报表即支持所见即所得的中国式复杂报表设计与web报表打印,还可以实现与业务数据结合,完成WEB报表填报工作;WEB报表设计可以方便地实现加线、删除线、分割、组合等处理功能.
业务的展现也可以通过报表来实现,可以实现复杂业务处理,如主从表关系、下拉数据框、弹出数据框等处理;可以生成与定义表样完全一样的纯WEB报表,不包含任何插件,就可以实现浏览器前端显示;可定义前端公式,规则,也可定义服务端规则,处理(统计、取数),录入之后公式马上计算;浏览器端可以实现模拟显示及打印; 支持分组、交叉、主从、套打、分栏、图表混排等多种展现方式。