高级运营系统研发工程师需要具备的能力 什么是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——》加载流程定义文件,根据流程定义语法解释流程并生成流程
有一定的项目管理经验、具备较好的团队合作能力;
具备良好的沟通表达能力、学习能力和分析解决问题能力;
有良好的文档编写能力以及英文技术文档阅读能力。
负责公司运营流程平台及相关支撑系统及工具的研发工作,具体包括对工作流引擎的二次开发,相关支撑系统架构设计及优化工作,确保海量自动化运营业务的高性能及高可靠性,以及运营数据收集分析和系统运维、调优等工作。
工作要求:
计算机相关专业本科及以上学历,两年以上相关开发工作经验;
熟悉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——》加载流程定义文件,根据流程定义语法解释流程并生成流程
有一定的项目管理经验、具备较好的团队合作能力;
具备良好的沟通表达能力、学习能力和分析解决问题能力;
有良好的文档编写能力以及英文技术文档阅读能力。
相关文章推荐
- 数字前端和后端设计工程师需要具备什么能力
- 作为一名互联网高级测试工程师,至少需要具备哪些能力
- 优秀的数字前后端设计工程师需要具备什么能力?
- 干货 | 运营到底是做什么的?高级运营需要什么样的能力?
- 想成为高级java工程师需要具备什么
- 你需要具备什么能力
- 成为一名JAVA高级工程师你需要学什么
- 成为一名Java高级工程师你需要学什么
- 高级程序员应该具备什么能力
- 成为一名Java高级工程师你需要学什么
- 成为高级嵌入式系统硬件工程师要具备的技能
- 成为java高级工程师需要什么
- 作为一名测试工程师,需要具备哪些能力
- 高级程序员应该具备什么能力
- 【nice C轮创业公司】 大数据系统高级研发工程师
- 6月26日云栖精选夜读:成为一名Java高级工程师你需要学什么
- 未来孩子们需要具备什么能力?家长应该怎样规划孩子的成长路径?
- 成为一名Java高级工程师你需要学什么