AnyPlan3D Architecture Overview
AnyPlan3D uses a layered client-server architecture based around an in-memory network (SmartNet) that contains all entities associated with the planning data , and with persistent storage to a database (typically Microsoft SQLServer®).
The AnyPlan3D SmartNet™
At the heart of AnyPlan3D is a smart network of planning entitites that are held in memory on the AnyPlan3D server and (partly) replicated on request on the client. This feature provides scalability for large data sets and processing for both the business rules and general calculations on either server side or client side as required.
AnyPlan3D Managers and Services
The Network Manager takes the core data objects and creates coupled objects that make up the network. A configurable Entity Factory is used to create the coupled object that maps to the core data object. Entities are objects that represent a conceptual aspect of a planning system, such as an activity, person, resource, project or calendar. Every coupled object will contain a reference to the core object and all data updates and retrievals will be made against that object.
Managers and Services
The result of the Network Builder is a network of nodes and links. This can be a completely new network or the addition to an already in-memory network.
All the nodes and links in the network are indexed for fast retrieval. Storage and retrieval of data is done through the data access layer. This layer utilizes the data block of the Microsoft Enterprise Library. The Network Manager on the service side contains the complete live network. All data access from the client to public/published data will be made against this manager and is the gateway for making changes to the network from a programming perspective. A public Library in the Network Manager contains a lightweight index of the network.
The Access Manager takes data retrieval requests from any client and routes the request and communicates with the lock manager to avoid retrieval of dirty data. The Change Manager takes data storage requests from any client and routes the request and communicates with the lock manager to lock entities being updated.
Anyplan ® Service Architecture. All communications with the services are based on Windows Communications Foundation (WCF).
Anyplan® Client Architecture
The Anyplan client architecture uses the Model-View-ViewModel (MVVM) Pattern.
The Network Manager (client side) contains the parts of the network that the client has opened (Project/Calendars). This will be a subset of the full server-side live network. The client side network manager contains both the public library (retrieved from the network manager on the service side) and the private library (an index of everything updated on the client). This is the Model element of the architecture pattern.
The UI Manager manages all communication with the network manager for the user interface. It contains a UI factory that takes the Model, consisting of coupled nodes and links, and wraps them in View Models to which the UI views can bind.
Anyplan® Portfolio Services
Portfolios in AnyPlan3D run from the SmartNet™ since the network contains all relevant projects and plans in a connected network. In practice AnyPlan3D users publish a version of their active and public plans and proposals on a periodic reporting date. This creates a version of reported data that can be used to generate and calculate a cached set of portfolio reports.
A Routing Service is used to manage independent Portfolio services that contain smart networks dedicated to individual reporting dates. These independent Portfolio services are responsible for handling all the portfolio report requests and calculations for that reporting date. New services for older reporting dates can run on demand. This approach protects the performance of both the services for live and in-progress planning and the current portfolio reporting services while still providing direct access to older reports.