CppExplore

一切像雾像雨又像风

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  29 随笔 :: 0 文章 :: 280 评论 :: 0 Trackbacks
作者:CppExplore  http://www.cppblog.com/CppExplore/http://blog.csdn.net/cppexplore同步发布。
近3年没发文章,谨以本文总结我和团队兄弟们3年在业务之外的工作成果。

 1 产品目标 
      降低高性能服务领域开发门槛,提高开发效率,同时解决测试、运维、监控、数据分析中的各类问题。
      
围绕此目标,sBPM(snda Business Process Management:盛大业务流程管理)将流程管理概念延伸到高性能服务器领域,使用SOA服务编排配置方式进行服务开发与组装,提供外围支持工具,封装监控、告警、日志类基础功能。

2 产品功能

1)支持SOA服务路由

2)支持SOA服务编排:对多个服务进行调用流程编排

Ø 通过sBPEL语法(xml风格)描述业务流程

Ø 编排流程支持:并行调用、串行调用、跳转流程,支持根据服务任意返回值、流程内变量等进行跳转或赋值操作。

Ø 支持对编排结果嵌套编排

Ø 编排目标原生支持sBPM自定义二进制协议,通过外部适配支持对HTTP协议以及其他协议进行编排。

3)支持服务编排语法进行服务开发

Ø 通过异步插件机制可任意扩展编排目标,已支持:本地内存、memcache、redis、mysql、oracle,且针对各数据源特点不同分别支持一致性hash、分库分表等策略。通过对基础存储进行编排达到服务开发的目的

Ø 通过同步插件机制可任意扩展流程内编排逻辑,已支持大量常用逻辑插件。

4)提供BPEL4WS语法向sBPEL语法转换工具,可使用BPEL4WS可视化流程编排工具进行编排

5)提供配置接口、明细日志、性能数据接口、业务量数据接口、告警接口等支持。尤其对实时日志分析提供特别支持。

6)对编排结果接口,提供HTTP/TCP两类通用授权网关对外暴露。提供TCP接口的同步、异步IPC调用。

7)对编排结果接口,提供可视化测试用例编辑器以及自动化运行器。

3 类似产品比较

在后端服务器领域,没有类似支持SOA服务编排的产品,其他领域产品存在部分类似点,比较如下:

1)    sBPM与ESB比较

ESB是对已存在的复杂异构环境的黏合剂,主要强调消息路由、协议适配。
      
sBPM拥有完善产品线,虽有扩展机制支持组合已有系统,但更侧重于从无到有开发全新系统;sBPM虽支持消息路由功能,但更强调服务编排功能。
      
通过ESB的协议适配机制可以大大加强sBPM的编排能力,可作为sBPM的补充。

2)sBPM与BPEL4WS类产品、jBPM比较

      BPEL4WS使用XML语法描述业务流程,由BEA、IBM和Microsoft编写和公布,是针对WEB服务的SOA组合编排,代表产品众多,不详举。
      
sBPM使用sBPEL描述业务流程,提供BPEL4WS语法向本语法翻译工具,可复用BPEL4WS的可视化流程开发工具,与BPEL4WS定位于WEB服务编排不同,sBPM侧重于高性能后端服务,通过内置插件以及扩展服务不限编排组合对象,可以是基础服务、cache、本地内存、redis、mysql、oracle、http接口等。
      jBPM使用自定义jpdl描述业务流程,提供可视化流程编辑器、调试器,定位为信息化、工作流领域,不强调编排目标与性能,更重视流程数据持久化、与人交互流程。

3)    sBPM与Node.js比较
Node.js相对前两着,和sBPM更为接近。它定位为快速构建异步高性能服务后端,和传统web容器相同,仅支持单线程。它强调IO异步,以类似网络proactor模型设置回调方式进行开发,使用javascript语言进行开发,容易获得已有前端人员认可,同时也带来了不可避免的调式工作。

      sBPM和node.js同样定位为快速构建异步高性能服务后端,强调运行时异步性能,默认线程和CPU数量相同。和node.js不同,sBPM不需开发,以同步方式来描述异步流程,配置思路符合业务思维,配合级联部署、层层组合较容易组装产生平台级的强大服务。sBPM属完整产品,对接口日志、各接口业务量、依赖接口业务量、接口耗时、各依赖耗时、告警分布做了统一封装。

      Node.js目标人群仍旧是开发人员。而sBPM框架不再需要传统开发、代码调试角色。在云计算时代,我相信sBPM是云平台发展的必然趋势,传统后端开发角色终将被合架构师、开发角色、业务运维角色为一体的业务配置角色所替代。

4 产品优点

1) 产品线完善:覆盖编排运行容器、可视化编排工具、可视化测试工具、运营支撑平台等。

2) 缩短产品开发时间:基于sBPM产品开发新产品,完全配置方式,颠覆传统开发方式,将产品研发时间完全缩短到产品需求提炼过程。

3) 提高产品质量:开发过程不会引入bug,节省测试成本。

4) 产品高可扩展、可维护:流程配置完全贴近业务本质,保护流程投资。流程编排方式更容易产生更强大、功能更完善的产品,维护更直接简单。

5) 高性能:sBPM将性能与稳定性做为本产品第一竞争力,容器在初始化阶段解析流程文件到内存结构,运行中采用全异步机制。基于sBPM配置产生的产品天生具有高性能,高于手写方式。

6) 可运营性:sBPM产品融合我方实际运营经验,关注配置、告警、性能、日志、安全等方面。

5 产品使用情况

通过近3年持续发展与推广,sBPM已在盛大基础平台内广泛使用,涵盖认证、注册、用户信息、计费、安全等业务。目前sBPM产品已管理过10T关系型数据库、几十亿记录,涵oracle、mysql、hbase、memcache、redis多种数据源,每日外部请求量近10亿次,内部组合调用过30亿次。

6 产品展望

1)将sBPM独立产品化,与内部运营支撑系统藕荷部分重构为插件接口,裁减掉不适合产品化部分。

2)将sBPM和私有云概念结合,搭建PAAS平台,对外提供运营服务。
posted on 2013-08-20 14:18 cppexplore 阅读(2668) 评论(2)  编辑 收藏 引用

评论

# re: 【原创】sBPM产品介绍 2013-08-20 22:36 sjtlqy
这是要开源的节奏吗?  回复  更多评论
  

# re: 【原创】sBPM产品介绍 2014-04-02 18:06 maigohuang
宗老大v5,求开源,求分享  回复  更多评论
  


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理