Heritage Human Services vs. Client-Side Human Services


In IBM BPM v. 8.5.5 IBM introduced Client-Side Human Services (CSHS). The IBM Knowledge Center articles cover the basic feature comparison but guides the choice between CSHS and Heritage Human Services (HHS) towards using CSHS unless you have a reason not to. While it is generally a good idea to begin transitioning to the latest features, use of HHS may remain a valid choice for other reasons.

CSHS advantages

  • As their name implies CSHS run scripts (formerly Server Scripts) client side. This is a nice performance improvement when using boundary events.
  • Since scripts are run client side, browser console outputs can help with debugging during development.
  • CSHS give a more interactive preview in the coach designer.
  • For certain features like case management, you can only use CSHS.

HHS advantages

  • HHS allow for copy and paste in the coach designer.
  • CSHS don't have a proper validation framework like HHS, although validation can still be achieved.
  • Being established and embedded in the desktop application, HHS are less prone to new bugs or browser quirks.
  • HHS allow nesting of other HHS while HHS may not be nested in CSHS.

Other considerations

  • CSHS performance is tied to the client's web browser, so best performance for the end user may only be experienced newer browsers. However, IE9 is supported for HHS in 8.5.6 but IBM warns that IE10 and IE11 are noted to have possible layout or style issues when displaying HHS.
  • CSHS editing requires using the browser-based editor. While similar, there may be minor differences that might trip up designers when having to switch between editor types (such as lack of copy and paste). Performance of the editor is also tied to the web browser.
  • It may not be an effective use of time to recreate existing HHS as CSHS which is why IBM generally advises the continued use of HHS for pre-8.0 designs.

Additional reading:



Have more questions? Submit a request


  • Avatar
    Anders Mikkelsen

    Maybe you can gain some performance with CSHS but the web designer does not feel mature enough to work with. Much more time consuming and the missing copy/paste is annoying. So I would stick to HHS a little longer.

  • Avatar
    Don Williams

    I've just completed a CSHS-intensive proof of concept for a customer on 8.5.7 and have updated feedback to share about working with CSHS:


    • Debugging coaches is much improved and actually works quite well - you can run the coach directly from the service and step through it. Note that you'll want to add "console.log()" statements throughout to verify and output data to the browser console. Defining variables when debugging can be a bit problematic, though. A few options are:

      1 ) Define on variable defaults (which I feel is a bad practice because you're bound to forget to clear these later).

      2) Mark the service as nested and build a test harness CSHS around it - this creates another asset just to test, though, which is a bit annoying.

      3) My favorite thus far, which is to just add a script block named "DEMO" or whatever to the beginning of the coach service which inits all variables as needed for testing. It can just be disconnected from flow when done testing.
    • CSHS now allows for nesting services, which is a huge addition for reusability. Note, however, that if you mark a CSHS as 'Nested', then it cannot be implemented at the BPD level (this is an either/or setting).
    • The new CSHS designer in 8.5.7 looks much better than it's predecessor, and while it seems to be "less buggy", I've still encountered lots of issues, see below.


    • As mentioned above, you still cannot copy/paste controls - that means not from one coach into another, or even within the same coach.
    • Properties tab will just not show up sometimes for some controls, requires restart of Web Designer.
    • Type changes to variable inputs/outputs often aren't picked up by services implementing that service, must restart Web Designer to resolve validation error.
    • ANY type throws validation error when attempting to map to a defined type (type mismatch error).
    • Sometimes the browser will stop responding when dragging controls out from palette - mouse pointer just gets stuck on green plus sign.
    • Can only open one service at a time - no ability to select several services and have them all open up at once. This doesn't mean you can only HAVE one service open, this is just referring to the act of opening a service.
    • Renaming is a bit clunky - can't do it when service is open. You have to do it from left-hand context menu.

    Another note is that while in the past I worked with a client where we decided against CSHS due to difficulty with exception handling, now that CSHS nesting is supported, a client-side equivalent to GEX could be built. It's not out there yet as far as I know, but this would be a really useful asset.

    Hope this helps someone, feel free to reach out to me directly if you have additional questions: dwilliams@bp-3.com

    Thanks -Don

Powered by Zendesk