Server and Platform
For training purposes we created a presentation which covers the main parts of the platform architecture which can be downloaded here. PIM_Core_Platform.pptx
Architecture principles
The architecture is driven by four main aspects:
Domain model centric
Base for customer specific solutions which are developed externaly (product line)
It is possible to migrate customer specific solutions to newer versions at low cost
Provides rich client UI as a desktop application as well as a Web UI and Service interfaces
Domain model centric
Most of the functionality is focused on data management: import, creation, classification, validation, presentation, export to external formats etc. PIM core has a declarative domain model. The domain model contains business entities, descriptions and relations between entities as well as meta information for the data management functionality.
A base for customer specific solutions
Customer specific solutions which are developed externally (product line)
Hpm provides "vanila" domain model (PIM model shared by different PIM branches) and corresponding logic. In most cases this domain model must be adjusted and extended to suite needs of a concrete customer. Customization is also performed on the other levels such as presentation - to support user workflows, integration - to connect HPM with other systems and data sources, data management - to validate input data, etc. Application integrator/developer has a possibility to extend any part of the standard applicaiton if it is required.
Migrate customer specific solutions to newer versions at low cost
It is a common situation that customer specific solutions are migrated to newer versions of PIM. For this reason the public API is backward compatible and a migration path is provided. If new programming concepts in the platform replace old ones then a compatibility layer is provided whenever this is feasible (or possible)
Solution provides rich client UI as a desktop application
Clients contain not only presentation but also business logic. In a such distributed environment data modifications are synchronized accross many distributed nodes. Client have different presentation of the data structures and is capable of presenting large datasets.
Architecture main concepts
Architecture is domain model centric. Model structure is described declaratively and additionaly contains meta info for different functional areas.
The system consists of functional layers which interprets the structure using meta info.
No code generation with round trip.
Layers of abstraction to support customization
Different public APIs (data access, integration, ui, etc.)
This picture shows the general overall architecture in respect to the most important aspects. The key to the outstanding performance in mass data access is a separated model with it's own data access layer for mass data retrival. Additionally to that we combined a static physical model with a generic business model. This provides us the high performance of a classic, normalized database structure with all the abilities to create customer specific indizes and optimizations as well as the flexibility needed to have additional fields and entities for each customer.
Advatages of the approach
Domain model structure can be changed without changing the logic
New functional layers can be added without changing the existing ones