1
General Board / Re: to PIM or not to PIM
« on: April 10, 2010, 01:53:34 am »
Hi Davide,
We do multiple transforms from our PIMs to generate business objects and DTOs (some applying our own frameworks, wrapping classes in other classes, (de)marshaling code to/from the classes), XSDs and WSDLs.
The key is to develop your own "flavour" of a PIM that can address the needs of all target platforms/outputs. So you are on the right track to think of an OO PIM, as that will be rich enough in meta data to generate both target PSMs.
I suggest that you do not contaminate your PIM with PSM specific constructs, i.e. rather than using "struct" stereotypes use something like "message" to denote message classes , generating classes in C++/C#/Java and struct in C. Your PIM should, as the name states, be platform independent. We also make extensive use of tags within the PIM to add the required meta data to guide the PSM transform in performing their functions.
That said, it is a mission to develop these transforms. We have invested months in writing our own transforms. And the template framework in EA is the most pathetic design I have seen in my life; i.e. try to do an arithmetic operation on values, loops, etc.. I suggest you make use of the Automation Interface to add functionality. We use Win32 code as C# add-ins cannot run on Linux. We have even included a caching layer in the add-in to speed up access to elements and connectors, as EA calls the DB for every a single property is being accessed. We now get an over 2000% speed improvement.
Hope this helps.
Chris
We do multiple transforms from our PIMs to generate business objects and DTOs (some applying our own frameworks, wrapping classes in other classes, (de)marshaling code to/from the classes), XSDs and WSDLs.
The key is to develop your own "flavour" of a PIM that can address the needs of all target platforms/outputs. So you are on the right track to think of an OO PIM, as that will be rich enough in meta data to generate both target PSMs.
I suggest that you do not contaminate your PIM with PSM specific constructs, i.e. rather than using "struct" stereotypes use something like "message" to denote message classes , generating classes in C++/C#/Java and struct in C. Your PIM should, as the name states, be platform independent. We also make extensive use of tags within the PIM to add the required meta data to guide the PSM transform in performing their functions.
That said, it is a mission to develop these transforms. We have invested months in writing our own transforms. And the template framework in EA is the most pathetic design I have seen in my life; i.e. try to do an arithmetic operation on values, loops, etc.. I suggest you make use of the Automation Interface to add functionality. We use Win32 code as C# add-ins cannot run on Linux. We have even included a caching layer in the add-in to speed up access to elements and connectors, as EA calls the DB for every a single property is being accessed. We now get an over 2000% speed improvement.
Hope this helps.
Chris