<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Vanlin Study Club

    Java Js Flex

    jBPM4的服務(wù)[轉(zhuǎn)載]

    The new (rock-solid) service API

    When making the transition from jBPM3 to jBPM4, the most remarkable change is probably the new service API.

    In jBPM3, it was not always clear  where to look for a certain operation. Some operations were found on the JbpmContext, or on the GraphSession, or on the TaskManagement interface, or yet some other class. So there definitely was an API, but the growth of jBPM both in Slocs and adoption in the past years have transformed it into a maze for many people who wanted to learn jBPM.

    In jBPM4, the jBPM team has drastically moved away from these shackles of legacy and has chosen a simpler approach with a less steep learning curve: the service API. Every jBPM story (webapp, standalone, shared BPM server, etc.) starts with a ProcessEngine. As the name implies, the ProcessEngine is the key for doing the actual BPM stuff. But like the engine of your car, you need components to control and guide your engine (gears, brakes, etc) or the engine will do nothing. So basically what you’ll do is create a process engine from a given jBPM config (jbpm.cfg.xml) and acquire from it the services.

    • RepositoryService: allows managing static process data: deploying process definitions, enable/disabling them, query them, etc.
    • ExecutionService: exposes operations concerning the runtime executions (ie process instances and sub-executions): starting process instances, variable management, retrieving and deleting executions, etc.
    • TaskService: this service will probably be used the most, since it gives access to the most crucial part of BPM, Human Interactions. Everything you ever wanted to do with human tasks is done through this service: creating tasks (ad-hoc is supported!), querying, assigning them, task completion, etc. You’ll notice that, in comparison with jBPM3, task management has been given a complete redesign which makes tasks easier to access, query and filter.
    • HistoryService: in jBPM4, a clean separation has been made between the runtime and historical data. The previous services all had more or less something to do with active executions of a process, whereas the historyService is only concerned with things of the past. Through this service, historical data (such as completed process instances or executed activities) can be easily queried. This service also gives access to some statistical calculations which are done by the engine. There is no real prior component for this in jBPM3, so be sure to check it out!
    • ManagementService: the last service is the one that’ll be used only by ‘management apps’ (eg the jBPM console). This services allows for example to query jobs and execute them (without the needing a job executor), but typically you’ll not use it in end-user software.

    Note: the Query API which I discussed in part 2, is also accessible through these services.

    The services are designed such that every practical jBPM use case is covered by it. All the API services are tested by us at our QA lab against several databases (HsqlDB, MySQL, PostgreSQL and Oracle for the moment, but we’ll expand this very soon), different Java versions (jdk 5 & 6) and JBoss AS versions. So when you use this new API, you can be sure it is stable as a mountain goat (is this a valid expression?).

    But jBPM-power users shouln’t be afraid that this ‘easier’ jBPM API leads to less power. The service API is in fact an abstraction on top of the CommandService facade approach, which was already in the more recent versions of jBPM3. In fact, every service operations translates into a Command, which is executed in the well-known try-catch-finally block of jBPM. Take a look at the source of DefaultCommandService if you want to know more. You can easily retrieve the CommandService to get access to the full power of the jBPM engine:

    processEngine.get(CommandService.class)

    Power users will know what to do with it ;-)

    Stay tuned for the next post, where I’ll show you how easy it is to create a Hello World process with jBPM4 and the service API.


    from: http://www.jorambarrez.be/blog

    posted on 2009-10-12 11:42 vanlin 閱讀(386) 評(píng)論(0)  編輯  收藏 所屬分類: jbpm

    主站蜘蛛池模板: 成全影视免费观看大全二| 久99久无码精品视频免费播放| 黄页免费在线观看| 亚洲中文字幕久久精品无码喷水| 特级毛片A级毛片100免费播放| 美女被免费视频网站a国产| 亚洲精品国产第一综合99久久| 在线视频免费观看高清| 亚洲一卡二卡三卡| 成人免费无码大片a毛片软件| 亚洲人成色99999在线观看| 大香人蕉免费视频75| 亚洲GV天堂无码男同在线观看| 日韩中文无码有码免费视频| 国产精品亚洲二区在线| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 亚洲中文字幕乱码AV波多JI| 成人午夜免费福利视频| 亚洲第一成人在线| 日韩成人免费在线| a级毛片免费观看网站| 亚洲av午夜成人片精品网站| 成人午夜免费福利视频| 亚洲国产成人精品无码区二本| 国产真实伦在线视频免费观看| 五月婷婷免费视频| 久久久久久久久亚洲| 大地资源二在线观看免费高清| 校园亚洲春色另类小说合集| 亚洲国产成人久久综合碰| 久久国产免费观看精品| 亚洲免费二区三区| 亚洲国产综合精品中文字幕| 国产好大好硬好爽免费不卡| 亚洲最大福利视频| 不卡一卡二卡三亚洲| 成人免费黄色网址| 一级做a爱片特黄在线观看免费看| 亚洲人成网站在线播放影院在线| 成人性生交视频免费观看| 久久国产乱子伦精品免费午夜 |