​1.     引言​

​2.     “X+”是什么?​

​3.     “X+”让软件飞​

​4.     技术剖析​

​5.     简单示例​


1.      引言

是不是觉得手机越来越慢,常常需要重启或重做系统?

是不是觉得电脑越来越慢,留您在无尽的等待中?

有时候它们不像是在跑,更像是在走,甚至是——爬!!!

不是您手机/电脑配置低,都是软件惹得祸!


早先提软件需求厂商却迟迟不能交付?

软件总需要频繁的升级安装?

软件开发周期长,个性化能力差


在某些设备上软件没法运行甚至没法安装

软件BUG频发总是Crash

跨设备能力差,兼容性不好


……


我们越来越离不开软件,常常希望它能“飞”起来!

2.      “X+”是什么?

“X+” 是3UCS推出的一套集应用设计与运行的SOA软件应用运行平台,包括服务端、PC客户端、手机客户端、Web Service等,典型应用方向为信息化、互联网+、云计算、CRM、OA、ERP、呼叫中心等。


让软件飞——“X+”技术揭秘_软件架构

 

3.      “X+”让软件飞

“X+”(3UCS)肩负着“让软件飞”的使命,并且她做到了:

a)   软件应用定制的速度飞快,相同要求软件应用的定制所需时间不足传统软件定制10%。

b)   软件运行速度飞快,相同要求的业务处理速度相当于传统方式的5~10倍。

c)   后期维护方便快捷,相同业务变更/调整需求个性化修改调整所需时间不足传统模式的10%。

d)   入门飞快,软件应用设计人员要求低,无需专业编程功底。

e)   跨设备实现飞快,在PC客户端定制的软件应用无需修改直接应用于智能手机客户端、网页等方式。

f)   安装部署飞快,傻瓜式安装默认配置即可运行,单机支持多应用,增减应用简单方便。

4.      技术剖析

“解耦”是“X+”平台的核心思想,从软件剥离出需要频繁修改调整的部分成为独立“应用”,将软件开发与应用设计分离。下面从几个方面来剖析:

a)   软件架构

目前软件的开发设计都是定向开发,即根据项目需求将相关的数据关系、业务逻辑、功能模块及接口插件等揉合在一起并与人机交互整体开发(若涉及人机交互),代码量巨大,如下图所示,当所涉及的任意部分需要改变或调整(即使是一丁点逻辑或参数调整)都需要去修改程序(大部分需重新编译发布),整个过程繁琐耗时灵活性差、维护不方便。


让软件飞——“X+”技术揭秘_个性化定制_02

“X+”的软件架构的核心思想就是从软件里剥离出应用界面(人机交换内容按钮、输入框等)、数据关系、业务逻辑等,将组合为应用,在其外围设计。

软件主体被定义为运行平台,其不拥有具体应用,而是运行时按需加载应用,按照应用的设计意图执行来实现项目需求,当项目需求发生调整仅需修改调整应用的内容,而软件(主体)无需修改,如下图所示。


让软件飞——“X+”技术揭秘_应用设计_03

按照“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​​)。


让软件飞——“X+”技术揭秘_应用设计_04

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年以上为消费


让软件飞——“X+”技术揭秘_个性化定制_05

自动生成逻辑代码(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+”技术揭秘_快速定制_06


让软件飞——“X+”技术揭秘_应用设计_07


让软件飞——“X+”技术揭秘_软件开发_08


扩展阅读

组件化软件应用开源平台“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​​)