<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

    主站蜘蛛池模板: 国产精品免费_区二区三区观看| 亚洲国产人成精品| 在线亚洲v日韩v| 亚洲国产精品无码专区在线观看 | 黄网站色视频免费看无下截| 国内精品99亚洲免费高清| 在线观看免费视频资源| 国产成人亚洲精品播放器下载 | 特级毛片免费播放| 97久久精品亚洲中文字幕无码 | 亚洲中文无码av永久| 一本色道久久88亚洲综合 | 亚洲线精品一区二区三区影音先锋| 97在线视频免费| 免费人成视频在线播放| 亚洲福利一区二区三区| 国产成人精品日本亚洲专区| 成年大片免费视频| a级成人毛片免费图片| 亚洲乱码无人区卡1卡2卡3| 久久精品国产亚洲av四虎| 国产精品黄页在线播放免费| 91精品国产免费久久国语蜜臀| 精品特级一级毛片免费观看| 亚洲精品乱码久久久久久下载| 亚洲国产综合人成综合网站| aa级一级天堂片免费观看| 免费无码一区二区三区蜜桃| 亚洲av永久无码精品网址| 亚洲永久永久永久永久永久精品| 免费播放特黄特色毛片| 毛片免费观看视频| 7x7x7x免费在线观看| 国产久爱免费精品视频| 色噜噜狠狠色综合免费视频 | 亚洲AV永久无码精品网站在线观看| 亚洲视频一区在线| 亚洲无线码一区二区三区| 免费日本黄色网址| 日韩免费视频一区| 最近2019中文字幕免费看最新|