Infosys’ BPM-EAI blog offers a platform to discuss the latest trends in the Business Process Management and Enterprise Application Integration spaces. Exchange thoughts, ideas and opinions with Infosys experts on how BPM and EAI programs can be leveraged to achieve operational excellence and maximize your return on investment.

« Telecommunications industry has come a long way…..Basics…..part 1 | Main | Smartly "repurposing" the technology - Innovation or misuse? »

Externalization based design strategies - another angle for SOA principles?

In last couple of weeks, I have been reading about virtualization and externalization view-points. While churning the ideas around it in my head, I’m also trying to clearly distinguish between externalization and virtualization. While some principles across these two could be same, I see them as two different design strategies, applicable with different strengths and needs. This blog I’m dedicating to my views on externalization design strategy that I believe represent the ‘deployment’ view of the SOA paradigm in some way.

What’s the meaning of ‘externalization’? In the context of software design, we take externalization as the strategic (I used this word intentionally to stress upon the fact that it has long term strategic benefits) separation of certain overarching capabilities (that otherwise are inherently embedded inside the software all over the place) from the rest of the capabilities. In simple terms, the way I view externalization it is very similar to MVC (model view control) principle: It separates the ‘global control’ aspect from the ‘local execution’. This way, I have flexibility to:

  • One) focus upon the end-to-end view of the design without infecting that with low level details/concerns of local execution capabilities
  • Two) provide the freedom to plug in adequate local execution capabilities (and change it as we want) without breaking the global configuration

Let us come down to specific to make more sense of what I said. There are 4 critical architectural capabilities as greatly being discussed across the globe today which are fantastic realization of the design externalization strategy. Here are those fantastic four with the illustration of the two benefits that I described above:

  1. BPM Layer - Transaction flow externalization: BPM in its purest form externalizes the business transaction flow or the business process flow. What it means that we can construct the global wireframe of the business process with end-to-end view and then decide at which point of that flow which kind of business transaction capabilities need to be plugged in. At those point, appropriate invocation of transactions/application services will be done. With this kind of approach, we can instrument and administer the overall IT solution capability at two level. First level at the global flow level where it allows us to reorganize, enrich and mold the overall flow according to end-to-end view-point. Second level, it allows us to replace a given transaction services/capability (at a given point in the flow) with another one without disrupting/breaking the overall flow including replacement of legacy applications with new generation applications.
  2. BRM layer - Business/transaction rules externalization: BRM layer allows us to extract all the rules that are implemented the process logic and make them independently executable policies. This way, a transaction logic or a BPM layer flow becomes the overall wire-frame in which rules can be executed. By externalization, rules become independent and individually available objects (local execution) that can be plugged in the global wire frame of the application (transaction delivery) or BPM (overall process delivery).
  3. MDM layer - Master Data exchange/management flow externalization: This is important one here. MDM as a design strategy allows externalization of the process/flow for the data events. Through MDM, we can separate out the individual data transactions across multiple data masters from the overall control/flow in which these events are plugged into. So it could be same update customer master data event that could be plugged into multiple data flows arising from variety of business processes. Having said, that, based on my experience, I found that many organizations tend to complicate the MDM layer by intruding the MDM capabilities/software scope into BPM space. If MDM layer is over-engineered to start designing the business process capabilities also, it will lose its strength and actually make the architecture highly fragile and complicated. So MDM needs to be carefully integrated with the BPM such as business process flows are managed by BPM and then at appropriate nodes, MDM services are plugged in to execute data events necessary to keep the data masters clean and consistent.
  4. ESB layer - Event/message flow externalization: ESB or the erstwhile middleware capability is externalization layer for managing the execution of event and services messages. ESB separate out the overall flow and orchestration of these messages from the execution of individual messages/events. This again is integrated as a capability with both BPM and MDM layers to provide them event management, service management and message management capabilities. From BPM layer, at some node when local transaction execution capability has to be invoked, it is orchestrated by the ESB event/messaging wire-frame that knows precisely which all touch points to be connected in order to get the transaction nodes executed within BPM flow.

Diagram below gives pictorial understanding of how these different externalized layers interact with each other.

diag2.png

I  do realize that possibilities with such view-point is diverse and hence it will be interesting to hear from others on this.

TrackBack

TrackBack URL for this entry:
http://www.infosysblogs.com/apps/mt-tb.cgi/487

Comments

Great post

Thanks Shamina, hope it gave some useful perspective. Do share if you are using any similar concepts at your end.

I can't seem to see the diagram. Was it removed from the site? These layers are well defined, and is an excellent approach to implementing an agile ViewModel-Model-Service architecture!

Thanks Mark. We have corrected the issue, now diagram is visible. Do take a look and let me know if this can be enhanced.

Wish you a merry X-mas...

The numbers in black circles don't seem to correspond to anything in text - so we, as readers, can't be sure what operations you're sequencing. :) Apart from that, I appreciate the diagram. I am curious if there's another term for Enterprise Data Integration that would be a superset related to Master Data Management. "Master Data" has a particular meaning in the organization I'm working in now, and I want to address enterprise data management accordingly without running into that problem. :)

Mark, diagram is 'architecture-in-motion' representation while text in blog is primarity the stand along description of the layers suggesting how externalization works for each of the layer. So here is a quick run down of the diagram if it helps.

Typically a process is kicked off in BPM layers based on specific event triggers. A particular node in BPM externalized process flow will send out a process service execution request to ESB layer (#1). ESB layer has event management externalization flow. A node in ESB layer could call a rules service using externalized interface of BRM (#2)or send out transaction execution service request to transaction management system (#3) that in turn could call the rules service (#4). Depending on the nature of the transaction, another node in ESB layer will trigger the MDM process that will be executed by the MDM externalization framework across various master data stores (#5, #6). And flow goes one similarly further. Hope this helps to relate the concept execution as illustrated i the diagram.

On MDM front, as you said correctly, MDM is only a sub-set of larger information management in the enterprise. However, my personal view is that enterprise information management is spread across multiple sub-capabilities or sub-sets like MDM (master data as a service), information integration (integration as service), BRM (rules as a service), data stores(information as a service) etc. I don't see information management as a single self-sufficient capability that can be executed in a particular single externalized framework. It will be essentially combination of multiple information management sub-sets. Let me know if you got a different notion/strategy. It will be interesting to contrast this hypothesis.

The sequencing descriptions are very useful. Thanks!

Enterprise Information Management probably wouldn't always be considered something that is executable under its own devices. However, for data management intensive systems, it might be useful to specify a layer that could provide "default" enteprise services design strategies (for example, services that provide basic CRUD functionality, common validation across the enterprise, etc.) for any enterprise or shared operational domain entity that doesn't necessarily represent reference data. I'm definitely open to looking at other strategies to achieve these goals, though. :)

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)

Please key in the two words you see in the box to validate your identity as an authentic user and reduce spam.

Subscribe to this blog's feed

Follow us on

Blogger Profiles

Infosys on Twitter