Sunday, May 15, 2011

Business Process Management (BPM) and Pega

Business Process Management (BPM) is currently a very in-demand area. One of the factors why it's so is that business rules are always changing. If the business system in any company can not support the changes, the consequence is that the company will be much less competitive. Hence, a lot of companies now put tremendous efforts to improve their business processes in order to make them more automated, more flexible and agile.

Currently there are a few major players of BPM product in the market, such as IBM Lombardi + iLog rule engine, Pega PRPC, Oracle BPM Suite and Progress Savvion, as well as Microsoft SharePoint. I had an opportunity to work with Pega PRPC for a few months starting beginning of this year, and I passed a few Pega certificates (man, you need to study their staff for sure!). I would like to share my comments about Pega here.

Pega is very aggressive in marketing and branding its PRPC product. In addition, its marketing efforts target very much business users. Indeed, Pega PRPC product is good for business users in terms of a few perspectives such as standard user interface, delegation of business rules to business users, easy management features (work list, work basket, monitoring and escalating rules, etc), capability of quick demonstrating the prototype.

However, I have seen a few major questions (if not issues) associated with Pega product. First of all, tt is not in consistence with current technical main stream. Pega product is away, in many aspects, from the common technology language and paradigm. In addition, Pega product is rather proprietary. I am listing a few things below.

In addition to (normal) class inheritance (concept of abstract class and implementation of interface), Pega uses another type inheritance based on the name resolution involved in the dash. For example, Transportation-Vehicle-Car is inherited from Transportation-Vehicle. Pega names this type of class Inheritance as Pattern Inheritance. 

Pega product is not BPEL based, although it provides integrations with other data format and protocols (such as FTP, MQ, HTTP(s), SOAP). 

Pega stores all rules and code in a database. The code is generated dynamically and loaded into the application server (such as WebSphere Application Server, WebLogic) or Web Servers (Such as Tomcat). One of issues from this design is that you can not uninstall it straightforwardly. You need to delete database tables and restore them from the last backup. I bet no database administrator wants to do it, and any change of database has to go through formal change request.

Pega rules are stored as BLOB in a few tables. The good thing of using BLOB is easiness and flexibility. For example, if you add more rules, there is no need to change table schema corresponding to the new rules. They are just stuffed into the BLOB. The content in the BLOB is encoded and compacted by Pega proprietary algorithm. On the other side, the BLOB may impact adversely the performance. One remedy recommended by Pega is to create (or "expose" as per Pega) new columns. Then you can apply indexes on the newly created columns. 

Finally, Pega product is not very easy to learn, not only due to the mediocre documentation and lack of end-to-end tutorials, but also there are many hidden “secrets” (if you don’t know them, it takes a lot of time to figure them out as many things are away from mainstream as mentioned above). Let me chanllege you a question. How to create a new application from scratch if NOT going through the Application Profile and Application Accelerator in PRPC? Sounds a very simple question, isn’t it? Yes, it should be a very simple thing to do with other products. However, I bet you don’t know how to do it even you take 2 weeks training provided by Pega. In this respect, I believe there will be rather tough road for Pega  product to be widely accepted by development community.

12 comments:

  1. I think great site for these post and i am read the most of contents have useful for my Carrier.Thanks for these useful information.Any information are commands like to share him.

    Pega Training in Chennai

    ReplyDelete
    Replies
    1. Hi Jia,

      Thank you for update from now onward I start to use this blog in my training practice. Thank you for explaining in each step. I use blogs for my easy reference which were quite useful to get started with.
      How can we implement BPM with SOA?
      For Example, if I click the button once, then it should be disabled.
      I am trying to develop a set of Work Groups, Access Groups and roles for an application. I'm unsure where to start due to lack of meaningful documentation and intuitive design.
      BPM has been widely adopted by organizations and is essential for any enterprise businesses that want to be competitive in today’s marketplace.
      today’s marketplace.
      Kindly guide me for the above scenario.
      Excellent tutorials - very easy to understand with all the details. I hope you will continue to provide more such tutorials.

      Muchas Gracias,
      Larsen

      Delete
    2. Hello There,

      Mi Amigo! You make learning so effortless. Anyone can follow you and I would not mind following you to the moon coz I know you are like my north star.

      Just noticed that this functionality is deprecated in Pega Customer Service 7.3.1 (7.3.1 release notes, page 19), with plans to remove the feature entirely in a later release.
      Do we have any further information regarding this?I (and my customer) would be interested to know the driver to remove this and whether an alternative out of the box solution is planned for delivery.

      Super likes !!! for this amazing post. I thinks everyone should bookmark this.


      Regards,
      Stella

      Delete
  2. Hi There,

    What a brilliant post I have come across and believe me I have been searching out for this similar kind of post for past a week and hardly came across this.

    I am a new RPA developer. I went through a 4 month course for my job only to get on site to realize that my group and I have not learned about the interaction framework or how to use Activities and so I have several questions:
    We have been browsing over previous teams' work and realize that activities are a core part of their development work, however whenever we have tried to recreate using activities we have a limited selection of properties, events and methods for the activities we create compared to code we were trying to recreate. How do we gain access to more methods, events and properties for our activities?
    Another thing we have observed is that activities seem to contain automations and other automations call these activities (like a method); how do we create automations within activities?
    One of my teammates have also noticed that in a lot of the videos we have been trying to watch many of the people use designer studio to create activities (?) but we do not have that software (if it is a separate software from VS).
    What is the difference between an Activity and a Bot Activity?
    When do you use an Activity versus calling the execute of another automation?





    I read multiple articles and watched many videos about how to use this tool - and was still confused! Your instructions were easy to understand and made the process simple.

    MuchasGracias,
    Irene Hynes

    ReplyDelete
  3. Hi There,


    Gasping at your brilliance! Thanks a tonne for sharing all that content. Can’t stop reading. Honestly!

    During the interaction, at a certain stage in the CPMInteraction flow, the flow reaches an assignment assigned to a workbasket.
    When this happens the interaction tab goes blank. Instead we would like this specific interaction tab to close and focus go back to the home page. The interaction case can be resumed from the workbasket where it's waiting
    At this moment, this is a big defect for the interaction tab to be out there (even if blank) when the assignment is in a workbasket.
    Is there an activity that will close the current interaction tab (without resolving) and refocus to home page?FYI.Support tickets# SR-B73729 and SR-B75271
    Excellent tutorials - very easy to understand with all the details. I hope you will continue to provide more such tutorials.


    Obrigado,
    Ashish

    ReplyDelete
  4. Truly it was a wonderful article.very intriguing to read..You have given a pleasant article.Thanks to sharing.
    Education | Article Submission sites | Technology | Linux Hacks

    ReplyDelete