SmartPlant Foundation application server - SmartPlant Foundation - IM Update 48 - Help - Hexagon

SmartPlant Foundation Help

Language
English
Product
SmartPlant Foundation
Search by Category
Help
SmartPlant Foundation / SDx Version
10
SmartPlant Markup Plus Version
10.0 (2019)
Smart Review Version
2020 (15.0)

The SmartPlant Foundation architecture is built up from multiple connected components. The SmartPlant Foundation server architecture is continually being optimized to help improve scalability. The server application pool is configured to use multiple worker processes for multiple concurrent tasks. Server-side functional items developed include the cache service, the configuration service, and the license service.

The following image shows a high-level representation of the connections between the SmartPlant Foundation application server, the various component services, and the database server.

The SmartPlant Foundation server application is written in .NET and centers on the schema object model, which is used to define the information processed by the system. The key server interface definitions defined within the data model are also represented as .NET classes and have code written against them.

The method definitions (code stubs) that are associated with the interfaces were generated from a code generator utility that reads the data model and creates a base class with all references to the properties and the relationships associated with it.

The base class code is written to reference any relationships or properties found within the data model. Within the data model, the interface definitions have a specialization hierarchy defined with IObject as the lowest, most-generic interface definition.

All other interfaces imply IObject, either directly or indirectly through other interface definitions. A representation of this implies tree is held within the SpecializationValues.xml file that is used to control access to the code. Therefore, a method definition written on IObject, to update an object, can be overridden on any interface that implies it. Interface definitions created for a specific task that requires code being associated with it are then created within a named assembly, such as Progress.