您的位置:首页 > 产品设计 > 产品经理

高级运营系统研发工程师需要具备的能力 什么是JBPM

2013-02-05 15:10 344 查看
高级运营系统研发

负责公司运营流程平台及相关支撑系统及工具的研发工作,具体包括对工作流引擎的二次开发,相关支撑系统架构设计及优化工作,确保海量自动化运营业务的高性能及高可靠性,以及运营数据收集分析和系统运维、调优等工作。

工作要求:

计算机相关专业本科及以上学历,两年以上相关开发工作经验;

熟悉LAMP(MySQL数据库设计以优化,Linux常用操作,Apache,PHP)开发;

精通PHP开发以及面向对象编程思想,理解设计模式;

能熟练使用PHP smarty模板引擎,以及JavaScript、Jquery、HTML、CSS等基本前端技术;

精通Java编程,熟悉Servlet、JSP、EJB等开发技术,熟悉Spring,Mybatis框架;




MyBatis框架[2]

iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL
Maps和Data Access Objects(DAO),同时还提供一个利用这个框架开发的 JPetStore实例。
随着开发团队转投Google Code旗下,ibatis3.x正式更名为Mybatis

虽然从正式版发布至今也有近一年时间,官方也非常友好的提供了中文版的使用手册,不过相信很多人还在项目中使用ibatis2.x版本。

究竟Mybatis有哪些新特性,能给我们带来哪些好处呢?以下是我看一位大侠研究后

1、Mybatis实现了接口绑定,使用更加方便。

在ibatis2.x中我们需要在DAO的实现类中指定具体对应哪个xml映射文件,

而Mybatis实现了DAO接口与xml映射文件的绑定,自动为我们生成接口的具体实现,使用起来变得更加省事和方便。

这可以说是Mybatis最重要的改进。

注意:

虽然Mybatis支持在接口中直接使用annotation的配置方式来简化配置,

不过强烈建议仍然使用xml配置的方式。毕竟annotation的配置方式功能有限且代码入侵性太强。使用xml配置方式才能体现出Mybatis的优势所在

2、对象关系映射的改进,效率更高

相信很多在使用ibatis2.x的朋友并没有通过ibatis的xml映射文件来实现对象间的关系映射。其实也确实没有必要那么做,因为ibatis2.x采用的是“嵌套查询”的方式将对象之间的关系通过查询语句的直接拼装来实现,其效果和在DAO或Service中自行封装是一样的。

不过这种方式存在“N+1查询问题”。

概括地讲,N+1查询问题可以是这样引起的:

? 你执行了一个单独的SQL语句来获取结果列表(就是+1)。

? 对返回的每条记录,你执行了一个查询语句来为每个加载细节(就是N)。

这个问题会导致成百上千的SQL语句被执行。这通常不是期望的。

而在Mybatis中,除了兼容ibatis2.x中的“嵌套查询”方式外,还提供了直接“嵌套结果”的方式,其效果相当于直接通过一句sql将查询出的dto对象自动封装成所需的对象。

具体实现方法请自行参考Mybatis官方使用手册,不在此累述.

不过实际上这一改进所带来的好处也是很有限的。因为这一方式在使用分页的时候并不起作用,或者说嵌套对象的结果集是不允许进行分页的。这一点在Mybatis框架中已经做出了明确的限制(org.apache.ibatis.executor.resultset.NestedResultSetHandler里34行),而实际项目中需要分页的情况又特别多……

仔细一想,一对多映射确实不能通过配置文件来分页,因为这时查询出的记录数并不等于实际返回对象的size,不过一对一映射为什么也不允许就不太明白了。可能是因为一对一是一对多的特例,而在设计框架的时候并没有考虑去处理或是难于处理这一特例吧。

3、MyBatis采用功能强大的基于OGNL的表达式来消除其他元素。

熟悉struts2的人应该对OGNL表达式不会感到陌生,

MyBatis采用OGNL表达式简化了配置文件的复杂性,使用起来更简洁。

可能较为关心的是
Mybatis实现了接口绑定,使用更加方便。
iBatis / MyBatis 3提供了一个新的功能:的注解

具备一定的交互设计能力,对web应用的用户体验设计方面有经验者优先;

具有JBPM或Activiti工作流框架开发经验者优先;

JBPM(Java Business Process Management):JAVA业务流程管理,是一个可扩展、灵活、开源的流程引擎, 它可以运行在独立的服务器上或者嵌入任何Java应用中。遵循 ASL(Apache License Version 2.0)和EULA(JBoss End User License Agreement)协议。JBPM流程定义采用自己定义的jPdl(JBoss jBPM Process definition language)语言,详细定义了状态图的每个部分,如起始、结束状态,以及状态之间的转换,通过图型化的流程定义,直观地描述业务流程。持久层采用HIbernate,将数据的管理职能分离出去,自己专注于业务逻辑的处理。

JBPM在2004年10月18日,发布了2.0版本,并在同一天加入了JBoss,成为了JBoss企业中间件平台的一个组成部分,它的名称也改成JBoss jBPM。

jBPM是一种基于J2EE的轻量级工作流管理系统,是JBoss开源项目中的一个组成部分,全称是Java Business Process Management。它采用自己定义的JBoss jBPM Process definition language (jPdl)。jPdl认为:一个商务流程可以被看作是一个UML状态图。jPdl就是详细定义了这个状态图的每个部分,如起始、结束状态,状态之间的转换等。

jBPM使用Hibernate来管理数据库,将数据的管理职能分离出去,自己专注于商务逻辑的处理。

工作流,拿请假来说吧。申请人申请休假,填完休假单后提交给自己的上一级领导,领导审批后(如果同意)提交到人事部备案,这就是一个工作流。

工作流管理系统的构成:

1.工作流引擎(定义规则,解释规则)

2.工作流设计器(JBPM已提供,亦可以自己设计)

3.流程操作(流程引擎提供的一些控制流程API)

4.工作流客户端程序(基于某一工作流引擎设计的)

5.流程监控

6.表单设计器(如:请假单。一些商业工作流管理系统中都会提供以下功能模块,方便用户)

7.与表单的集成(如:一个请假的工作流对应的会有一个请假申请单)

8.与应用程序的集成(提供与其他应用系统进行交互)

流程定义语言JPDL——》按流程定义语言提供的语法去定义流程

jBPM PROCESS ENGINE——》加载流程定义文件,根据流程定义语法解释流程并生成流程

有一定的项目管理经验、具备较好的团队合作能力;

具备良好的沟通表达能力、学习能力和分析解决问题能力;

有良好的文档编写能力以及英文技术文档阅读能力。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: