Often you hear about performing an application design review on a IBM Planning Analytics model where both coding and implementation “styles” are compared against “industry proven” practices. During the process, naming conventions, dimensionalities, rule-vs-process strategies, (just to name a few items) are studied and assessed.
One aspect that is sometimes overlooked in the review is the overall architectural design of the “functional components” of the model. This is an area that can have a profound effect on the performance, sustainability and usability of the model.
Common Components
I believe that all Planning Analytics (formally TM1) applications, are made up of only 4 distinct “areas of functionality” – or components. These are absorption (where key information from external data sources is “absorbed” and sometimes transformed into the models environment), configuration (where assumptions about the absorbed data are set and applied), calculation (where the specific “magic” happens; i.e. business logic is applied to the source data using the set assumptions) and consumption (where the information processed by the application is reviewed and reported on).
Keeping these functional components separate and distinct within a model is known as keeping the design “architecturally pure”.
Advantages to a Functionality Pure Design
Keeping functional areas of a design distinct has numerous advantages. For example:
Resist the Impulse
When performing application design, there is always an inclination to “jump in” and “do it all” using one tool or technology or, in the case of Planning Analytics, create just a few “massive” cubes. In addition, with every software version upgrade, there are new “package connectors” delivered that allow you to directly connect (even external) system components to a model. This often promotes the idea that data staging areas aren’t needed, and that data can be directly queried and loaded to a specific view within a model.
One may “understand the mechanics” of how a certain technology works and this will allow you to “build”, but without comprehensive knowledge of architectural concepts, you may end up with something that does not scale, has unacceptable performance or is costly to sustain.
When creating a design, take the time to not only document detailed requirements, but to also understand how the “functional areas” of the model will work. Believe me, its well worth the time.
Final Thoughts
Some final thoughts:
Happy Designing!