平行论坛查看详情>>

中型企业云融合平台最佳实践

用友软件股份有限公司平台技术专家   覃 钊


    企业关键应用支撑平台
    对于软件,包括我们企业里面的SOA是怎么样定义的。SOA对于软件来说它有一个发展的历史,我给大家讲一下,最上面的是我们传统的软件,供应商、客户、分销以及企业,他们都是分得很开的,他们之间的联系很小。他们之间处于交换标准是不同的,技术也是不一样的。下面到近阶段,现在很流行的软件,包括我们现在看到的,这里已经是组件化,各系统之间的联系已经是比较大了,就像我们经常看到的,SCM的技术,CRM的技术也开始运用了,但是这样可能还是不够的。因为我们前面看到了,企业想发展,想变化,你现在很多的软件实际上都没有办法再修改,很痛苦,那怎么办呢?我们要从根本上去改变,在我们这里第三个部分,我们每一个小块都是一个服务,我们现在已经看不到模块。它们是一个个独立的,但我们的业务有这么多的流程怎么办呢?我们通过一条主线,通过这一条线把它穿起来,把我们的企业的数据,包括企业的流程把它以这样的形式固定起来,以后我们再调整就很简单,所以我们要从根本上解决了这个问题,这个就是我们SOA的架构。

     对于技术上来说,大家已经看到的这个发展,在业务上都明白SOA给我们带来的价值,技术上我们也是给它出了一些定义。从技术上来说,我强调几点,一是我们每一个服务都是独立的,能够独立完成它的功能,你要告诉他你要什么,他就会传给你想要的东西。另外一个它不是固定的,是可以改变的,可以流程重组的。我们用BPM工具把它串起来,这个我们在后面再探讨。

     再往下看,我们刚刚说的是SOA的价值以及业内对于它的定义,我们看U9中怎么样实现的,这个就是UAP的架构图,我们也是分成三层,四层的结构,最边上是数据层业务层,中间层也是我们的实体层,包括我们的模型,业务的数据,上面是我们的表现层。

     大家看到最下面的是Framework,再上面是UAP,再上面是服务组织库,最上面的是业务系统和界面。

     这里一个典型的例子以前我们的产品,是一个采购、收购、应付,在U9上我们怎么样实现呢?工厂,物资公司总部,也许不在一个地方,我们分三地,我们这个服务都是独立运行的。另外一个我们再去加新的流程,我们不需要改任何的东西,我也不需要你的服务到底在哪里,这样去完成我们这样一个企业流程的重新组合。这个就是SOA给我们企业带来的一些好处。

    个性化办公及报表平台
    我们可以看一下讲几个实例,大家可以看到,拿到产品,这里有一个客户,有很多的页签,项很多,想修改一下,这个要去写代码就很麻烦,我们怎么样去做呢?每一个用户都可以去把你想要的东西显示出来,但是必须项是必须要输入的,也许到了某一个客户那里,他最终的用户看到的只是很简单的界面,那些项输入一下就可以了,我们可以支持每一个页面重新的排列,我们最终看到的页面和我这个完全不一样。

    另外一个是我们的菜单,这些菜单可以看到,你可以完全不去显示它,根据你的需要,你可以收在你的收藏夹里面,最终只显示几个菜单。

    我们这一次过滤条件我们完全可以存在公司的方案里面,可以是整个公司共有的,也可以是你自己的,这样的话整个的操作就很方便。我们做好的报表,我不想要那么多的栏目,可以把它隐藏掉,或者是过滤的时候就想出来某一部分,可以把这些调整设好,每一次一点就可以了。

    另外一个是假如说,这个界面你都不习惯怎么办呢?里面所有的截面都可以导成Office,比如说订单的界面,我们可以用Word来做,我们的报表可以用Excel来做,Word大家都会用的。比如说一个客户要做订单,可以把订单导出来然后直接填写Word就可以了,不在线的时候也可以做,在线的时候提交上来就可以了。关键的信息可以不用去填,只要把数量填好就可以了,进到我们的系统,系统再需要他到客户门户,确认一下再可以了,这就是Word的一个应用。

    再讲到报表,我们运用到第二个层次,我们对于进行修改,修改最多的也是报表,我们报表讲了所谓的自动发布以及权限的管理,我们讲一下数据的来源,这里可以是传统的SQL,另外一个是基于DataCommand,我们可以生成一个标准的数据框架,你可以自己去写数据,之后再展示在页面之上。

    这些都是我们定制好的报表,我们可以看出哪些是系统做的,哪些是系统做的。整个平台是开放的,所有报表出来的效果是一样的。这个是我们报表的对象模型,上面刚刚讲了三种扩展方式,一种我们是OQL,另外一是SQL,还有一个是可扩展业务方式,必须写一些很复杂的模式,要用编程去写,只要按照我们的规则,我们的标准去写出来,然后返回到系统中,在系统中做一个展现。

    下面看展现的问题,我们强调一点,我们的数据源不是单一的,你做一张报表是从三个系统中去做的也可以。这个上面是我们的一个传统的报表,这个大家都见过了,合计、小计、汇总,这个是常见的表格,财务里面的负债表。这个是汇总表,在这里可以看到合计、小计下面的都可以做出来。另外我们可以根据不同的用户针对不同的报表还可以做自己的修改,可以根据你所想要的排列去展现不同的内容。

    我们讲报表还有哪些内容呢?图文混排式的报表,现在市面上不是很多,我们的报表之间可以做嵌入报表,可以在报表中嵌入一些图片。在这个报表里面,下面是我们的传统的表格,上面是图表,数据是一样,很清楚地可以表达出来。

    还有一个类似的智能分析,我们可以做二维,或者是三维的分析性的报表。下边这个是定制表格的方式,上面这个地方过来的都是仓库,右边来是就存货,交叉点就是这个仓库有多少存货。我们有两个维度,再加一个供应商的维度也可以在我们系统中实现。

    另外一个我们也有一些图表,只是展现一下就可以。

    另外一个我们可以支持一些报表系统的函数,以及自定义的函数,我要取当前登陆的人,当前登陆的时间等等。另外一个我们可以做多层的嵌套,包括多级的钻取,我们来做销售的汇总表,再往下转到销售的明细表,再钻到销售订单。

企业应用开发的平台
      怎么样来做我们实际的业务,刚刚讲了我们需要自己去做自己的东西,怎么来做呢?

    我把我们的结构图给大家讲一下,这个平台有的东西太多了,我们讲三个地方。

     一个是我们集成开发的环境,所有的工具都在这里,这边是我们所有附属工具,中间是我们运用的平台,所有的引擎都在这里,我们所有的基础的服务,所有的框架包括我们讲的引擎等等都公开。

  我们有两点,中间这一块是在我们的运行平台上,这一块我们不会轻易去改变,我们用设计工具去做我们最终想要的东西,再发布到我们的运行中来就可以了。这些就是我们的核心的价值,我们SOA的架构,它靠的是什么呢?靠的是业务流程的管理工具去创新,是靠的是我们对于整个管理软件的理解,去对我们特定领域去做定义,我们定义出来的SOA的内库,模型。我们另外一个架构就是模型驱动开发,MDD的模式,我们可以支持我们300人的大团队进行工作,大规模地个性化的交付。

  我们看一下是怎么样做出来的,首先是把所有的模型都定出来,我们企业里面的订单是实体,客户是实体,我们要把这些模型都给它定义出来,我们在这里把它全面地定义出来,比如说订单和哪里有关系呢,我们有组合,关联、继承等关系。我们往下走,这个是我们服务的一个定义,服务我们定什么呢?它的传入参数是什么呢?传出参数是什么呢?如果这个服务出错了会怎么样呢?另外一个我们的AOP,你的服务要不要权限呢?要不要写日志呢?这些内容就可以完全地不用自己去实现,只要选上就行了。

  我们的流程,订单来了以后怎么办呢?审批,多少钱以上让董事长审核,所有的流程我们都可以显示出来,订单来了我可以直接出库,或者可以直接销售,这些都是服务。

   另外一个是UI,一个页面就简单了,定一个页面,大家可以看到和传统的不一样,传统的是把数据定下来,我们是先把模型定好,把它自动地发布到数据库中,我们的CRUD都不让大家去做。我们要定什么呢?在页面上展示什么样的按钮呢?这个页面要显示什么内容呢?或者是需要显示吗?这个定好以后,我们再来看,我们可以选择模板,模板很重要,你要做一个样子或者是一个操作模板很重要,我们把所有的模板都提供给大家。

  这时就可以把你所想要的单据做上去,单据头,单据体。实际上有一些功能是不需要去写的,比如说这一行数量乘单价等于后面的金额,你要用上我们关联的运算就可以了,就能够处理。

   另外讲了我的页面很简单,我的逻辑特别多,我还是想写代码怎么办呢?我们会把这一块的代码一样地提供出来,只要你有这样一个开发能力,你想去做扩展,你都可以在这个上去做你想去做的事情。另外一个我们不是说从先是模块再到功能这样去做的,我们所有的页面都是在我们这边做好,最终会有一个发布的过程。

微博热议

精彩视频

历届精彩回顾