TM1 itself introduces a pattern on the nature of cube development by clear demarcations on data definition, parameter definition, association of values to parameters from data sets an then finally loading the data on boundaries defined by parameters and rules. This simple but generic and powerful pattern can help create any type of multi-dimensional structure rapidly. This is one of the capabilities that TM1 brings for data analysis and can be used in literally any industry.
However, when we think of enterprise solution for analytics, where OOAD is required for simplification, to ensure consistency, reproducibility and reducing duplication (increasing reuse), this tight regulation poses serious challenge, especially without capabilities of programming languages like function, Array or Vector. When similar activities need to be done repeatedly time and again, ensuring these guidelines is quite a challenge.
For example, creation of dimension and population of the dimension elements is quite a generic thing that would need to be written time and again. A simple function would have made life very easy, but then we need to work around by creating a new TI process to do this simple task. Even if such a process is created that can accept parameters, multiple members in the team can still go ahead and create a dimension in their own way without adhering to the standards. This creates lot of variation on the architecture management in not only TM1 but most analytics projects involving the tools like TM1/COGNOS or ESSBASE or SPOTFIRE.
Besides, the other challenges to coming up with an enterprise architecture solution is the level at which objects are considered. While definition of object in TM1 is identical to that in any high level programming language, the universe of defining all objects is a row of data used in the input to TI process unlike the higher level programming languages where a row of data from the table represents an instance of an object. Cube creation requires various types of analytical operations to be performed on collections of records. Handling these types of operations bring enormous challenges to how the enterprise solution is modeled. Hence, I consider that programming in TM1 takes us back to the 1990's where design patterns were the way out. I am trying to see if we have any new flavors in structural, creational or behavioral patterns that the differ from what the founding fathers or OOAD put up. My respect for Eric Gamma and the Gang-Of-Four increases as I can use combinations of their findings to achieve most of what I want, albeit the fact that I have to implement them without a array or vector or function to assist/simplify my task.
No comments:
Post a Comment