首先我们再来看下企业内搭建软件平台的核心目标,主要包括如下几点:
a.软件人员从过多关注共性技术转化到对核心业务需求和逻辑的关注。
b.提升开发效率,降低开发成本,直接影响到我们最终给客户工作量和报价时的优势。
c.更加快速的通过配置方式满足业务需求能力,不是所有变更都需要重新部署和全流程测试。
d.统一企业所有软件开发框架模式,进一步提升复用度和企业IT资产库积累。
当企业就开发一款产品化产品的时候,往往并不一定太关注软件平台的事情,但是当我们涉及多个产品线,开发多个业务域的软件产品的时候,软件平台就相当重要。客户需求一驱动,往往需要新搭框架和新建系统,从头开始往往浪费大量时间和精力。平台核心思路就是所有技术共性内容下移到平台层(包括工作流,组织权限,消息缓存技术组件和开发框架模式等),在此基础上再考虑构件业务平台,实现共性业务组件的复用和平台化。基于技术平台+业务平台,构建定制化的业务应用。
我一直在强调,企业能够最终提供一个软件平台,面对任何新的应用的时候,我们只需要考虑业务建模,在业务建模完成后形成各个业务功能模块。最终只需要考虑一各个业务功能模块的开发的集成进入即可。从这点开平台本身也有SOA思想融入,彻底实现业务和IT技术的解耦,更加容易实现业务到应用的转化和集成工作。
平台提供各种能力引擎,应用功能模块开发只需要考虑如何消费和使用这些能力引擎即可,在PaaS架构下面我们叫资源或能力汇聚网关。平台本身又是一个完整的快速开发框架,包括了对象和数据库建模,流程建模,界面建模和规则建模的能力。而这个里面最难的是规则引擎和规则建模,很多时候我们太希望所有规则都可配置,进而得出一个所有内容都可配置就可以轻松完成功能开发的模式,但是没有银弹,很多努力到现在也没实现。因此我们并不提倡将功能开发变化为一种完成可视化的界面流程配置方式来开发,这一方面约束开发人员技能成长,一方面本身在熟练后可视化配置开发模式还不如直接代码编写速度快。很可能就两个配置文件修改问题,你都可能在可视化界面配置上折腾半天。
平台一定要融入SOA和组件化架构的思想,我们看普元提供的平台这是一个很大的优势。很多时候我们在跟客户谈我们的应用基于SOA架构,结果自身也完全没有立即SOA和组件化的核心思路。各个模块之间还是紧耦合,完全无法实现独立的产品配置和部署。如果一个平台最终能够提供的是我们在上面开发不同的组件和构件,最终通过不同的组件和构件来组装和发布适合不同客户需求的可配置产品,那么平台本身发挥最大的价值。构件库形成可复用资产,而构件组装灵活响应需求变化。
在公用云PaaS参考架构中,并没有谈到太多关于产品平台和技术平台的事情,而在企业私有云架构中,这块却是必须要关注的内容,可以理解为私有云PaaS中的开发态核心内容。
关于SOA和平台关系参考:
http://blog.sina.com.cn/s/blog_493a84550100tsh7.html 青春就应该这样绽放 游戏测试:三国时期谁是你最好的兄弟!! 你不得不信的星座秘密