1. 引言
1. 引言
是不是觉得手机越来越慢,常常需要重启或重做系统?
是不是觉得电脑越来越慢,留您在无尽的等待中?
有时候它们不像是在跑,更像是在走,甚至是——爬!!!
不是您手机/电脑配置低,都是软件惹得祸!
早先提软件需求厂商却迟迟不能交付?
软件总需要频繁的升级安装?
软件开发周期长,个性化能力差
在某些设备上软件没法运行甚至没法安装
软件BUG频发总是Crash
跨设备能力差,兼容性不好
……
我们越来越离不开软件,常常希望它能“飞”起来!
2. “X+”是什么?
“X+” 是3UCS推出的一套集应用设计与运行的SOA软件应用运行平台,包括服务端、PC客户端、手机客户端、Web Service等,典型应用方向为信息化、互联网+、云计算、CRM、OA、ERP、呼叫中心等。
3. “X+”让软件飞
“X+”(3UCS)肩负着“让软件飞”的使命,并且她做到了:
a) 软件应用定制的速度飞快,相同要求软件应用的定制所需时间不足传统软件定制10%。
b) 软件运行速度飞快,相同要求的业务处理速度相当于传统方式的5~10倍。
c) 后期维护方便快捷,相同业务变更/调整需求个性化修改调整所需时间不足传统模式的10%。
d) 入门飞快,软件应用设计人员要求低,无需专业编程功底。
e) 跨设备实现飞快,在PC客户端定制的软件应用无需修改直接应用于智能手机客户端、网页等方式。
f) 安装部署飞快,傻瓜式安装默认配置即可运行,单机支持多应用,增减应用简单方便。
4. 技术剖析
“解耦”是“X+”平台的核心思想,从软件剥离出需要频繁修改调整的部分成为独立“应用”,将软件开发与应用设计分离。下面从几个方面来剖析:
a) 软件架构
目前软件的开发设计都是定向开发,即根据项目需求将相关的数据关系、业务逻辑、功能模块及接口插件等揉合在一起并与人机交互整体开发(若涉及人机交互),代码量巨大,如下图所示,当所涉及的任意部分需要改变或调整(即使是一丁点逻辑或参数调整)都需要去修改程序(大部分需重新编译发布),整个过程繁琐耗时灵活性差、维护不方便。
“X+”的软件架构的核心思想就是从软件里剥离出应用界面(人机交换内容按钮、输入框等)、数据关系、业务逻辑等,将组合为应用,在其外围设计。
软件主体被定义为运行平台,其不拥有具体应用,而是运行时按需加载应用,按照应用的设计意图执行来实现项目需求,当项目需求发生调整仅需修改调整应用的内容,而软件(主体)无需修改,如下图所示。
按照“X+”架构,参与软件开发的人员被分为软件开发人员和应用设计人员。软件主体由专业软件开发人员完成、应用部分由应用设计人员(专注于交互、数据、业务等,少量简单代码)实现。
b) 设计语言
“X+”软件内核(无论是服务端、PC客户端、手机客户端、WEB Service)全采用C++开发,确保运行稳定高效。
应用部分(应用界面、数据关系、业务逻辑)则直接用简单脚本语言xml进行描述,并形成BizXML设计规范(http://3ucs.com/bizxml) ,“X+”平台动态载入解析执行应用脚本(BizXML)。
应用设计人员只需编写简单的脚本描述即可,而无需学习掌握C、C++、Java、PHP之类的专业程序设计语言。
c) 辅助工具——代码自动生成
BizTool自动化工具可根据数据库表结构自动生成应用代码(BizXML)、运行测试、修改等(http://3ucs.com/fm98.html)。
d) 辅助工具——业务逻辑可视化设计
使用业务逻辑可视化编辑工具xLogicDesigner生成的代码可以被 “X+”动态调用与执行(http://3ucs.com/fm105.html)。
例如,假设我们需要计算会员的级别,
会员 类别 | 界定标准 |
A类 | 最近一年内内消费金额在2000元以上∕或年度消费频次在4次及以上用户 |
B类 | 最近一年消费在1000-1999元以内∕或年度消费频次在2次及以上用户 |
C类 | 最近一年消费在1-999金额∕或年度消费频次在1次及以上用户 |
D1类 | 最近1-2年未消费 |
D2类 | 最近2-3年未消费 |
D3类 | 最近3年以上为消费 |
自动生成逻辑代码(memberlevel.xml)然后,我们通过简单的代码将该逻辑嵌入到应用中去(见下节“简单示例”)。
5. 简单示例
将上面的逻辑加入页面展示出来,其BizXML代码(logicdemo.xml)及运行于PC、手机客户端和网页的效果如下:
<?xml versinotallow="1.0" ?>
<WndTap Name="logicdemo" Text="表格逻辑">
<var name="MemberLevelTbl"><xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="memberlevel.xml"/></var>
<Ctrls>
<GroupBox Name="GroupBoxLogicM" Text="会员逻辑演示"><Ctrls>
<Label Name="lb_input1" Text="输入1:" Size="50,20"/><ComboBox Name="annualamount" Size="100,100" Items="100|1000|2000" SelectedIndex="0"/>
<BR/><Label Name="lb_input2" Text="输入2:" Size="50,20"/><ComboBox Name="annualtimes" Size="100,100" Items="1|2|5" SelectedIndex="1"/>
<BR/><Label Name="lb_input3" Text="输入3:" Size="50,20"/><ComboBox Name="noneyears" Size="100,100" Items="1|2|5" SelectedIndex="1"/>
<BR/><Label Name="lb_output" Text="输出:" Size="50,20"/><TextBox Name="EvalTblTest1" Size="50,20" ToolTip="EvalTableTest"></TextBox>
<Button Name="cal" Size="50,20" Text="计算">
<OnClick>
<EvalTbl rules="%{MemberLevelTbl}" table="memberlevel">
<inputs annualamount="%{annualamount}" annualtimes="%{annualtimes}" noneyears="%{noneyears}"/><outputs level="EvalTblTest1"/></EvalTbl>
</OnClick>
</Button>
</Ctrls></GroupBox>
</Ctrls>
</WndTap>
扩展阅读
组件化软件应用开源平台“x+”(http://3ucs.com/fm103.html)
x+Logic表格逻辑规则引擎(http://3ucs.com/fm105.html)
分分钟定制您的个性化软件应用(http://3ucs.com/fm98.html)
x+(xPlus,,乘加)部署指南(http://3ucs.com/fm101.html)