<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 閱讀(387) 評(píng)論(0)  編輯  收藏 所屬分類: jbpm

    主站蜘蛛池模板: 全部一级一级毛片免费看| 亚洲成人一级电影| 阿v免费在线观看| 天天拍拍天天爽免费视频| 亚洲视频在线观看2018| 成人女人A级毛片免费软件 | 久久久无码精品亚洲日韩蜜桃 | 57pao一国产成永久免费| 91精品国产亚洲爽啪在线影院| 性xxxxx大片免费视频| 99亚洲精品高清一二区| 国产福利视精品永久免费| 亚洲成人午夜电影| 国外成人免费高清激情视频| 亚洲AV成人无码网站| 亚洲人成网站观看在线播放| 国产一精品一av一免费爽爽| 亚洲理论在线观看| 女人18特级一级毛片免费视频| 看全免费的一级毛片| 久久影视国产亚洲| 免费视频成人片在线观看| 亚洲人成在线精品| 在线看片无码永久免费aⅴ| 一出一进一爽一粗一大视频免费的| 在线亚洲精品自拍| 114级毛片免费观看| 亚洲精品V天堂中文字幕| 中文字幕不卡亚洲| 色se01短视频永久免费| 猫咪免费人成在线网站| 亚洲国语精品自产拍在线观看| a级毛片无码免费真人| 一本久久A久久免费精品不卡| 亚洲综合男人的天堂色婷婷| 四虎永久成人免费| 98精品全国免费观看视频| 国产精品亚洲专区无码牛牛| 亚洲AV日韩AV永久无码下载| 全免费一级午夜毛片| 国产自国产自愉自愉免费24区|