We have been using the concept of “BLOB” just everywhere, from the time we started with our primitive approach of programming and designing system architecture. It has become, just like a fixed member of the family, whenever we design a data model or the data architecture at enterprise level we need to have some room and scope for the BLOB implementation.
BLOB as i understand “Binary Large Objects”, is used to encapsulate the data, engulf the hard-disk space and most importantly make life difficult and complex for us to understand and interpret!!
Well, i dont have any personal vengeance with “BLOB” as such – as it might sound 🙂
But, am a bit confused, whether having a BLOB for a BPM Product or implementation is good or bad, be it from the design, development or performance standpoint. Its definitely a good choice for storing binary files, images and other related informations.
The words have become so catchy that even the Customers, get fancied by the word, as if it will encapsulate the data and provide another layer of security. But the question is does it really happen??
Its the same Customer, who will hit back at us, when we come up with the reasons for lack of technical implementations or changes like exposing the columns, as the data is inaccessible, unsearchable, and un-reportable thus forcing them to purchase or get external extractors to do the job. In simple words, we create boundaries for the data we own and then use external options and means to reach out to the same data.
The in-memory data architecture i.e. blobless implementation, on the other hand provides better reporting and faster responses without any dependencies on external tools.
Here when am talking about the blob/blobless implementation in a BPM scenario, lets try relating to the Products in the market :
Pegasystems PRPC(Pega Rules Process Commander) I suppose is the only BPM Product that implements using the BLOB Model i.e storing all the work instances in the form of a XML in the BLOB.
And for facilitating Reporting, Search and other features – it can be done at ease if we are working withing the same product using the OOTB Features. But yes AGREED, if we are trying to infer to the case related data directly from outside, we may not be able to do so. In order to achieve this, we need to have the extractor provided by Pega (BIX – Business Information Exchange) which decrypts the encapsulated BLOB data and embedded properties that can be used for Reporting or by Data warehousing products for archival. From my personal experience never faced many challenges by using the OOTB rules for Reporting and Search.
Learnt recently, that Appian another BPM Product in the Market, is using a blobless in memory implementation for the data storage and retrieval.
Am not very sure about IBM BPM, Lombardi, TIBCO , Oracle and other competitive products in the market. Having worked in Pega, could add on my thoughts and view points.
The question is not related to the products, as to which is better or not!!(all are equally good with the features they provide)…..The products are just cited as examples for reference.
The generic question irrespective of the Product owner is, “Which is a better approach and can be set as a benchmark – to go with the BLOB model or BLOBLESS model of data architecture and memory management“
Am a bit puzzled and confused!!
Please feel free to share your thoughts on the same!!
The Link which ignited this topic (reference) : http://www.appian.com/blog/intelligent-bpm/beware-of-the-blob
Happy Learning!! 🙂