Anyplan® Architecture OverviewAnyplan uses a layered client-server architecture based around an in-memory network that contains all entities associated with a portfolio of plans with persistent storage to a database (typically Microsoft SQLServer®).

The Anyplan SmartNet™At the heart of Anyplan is a smart network of planning objects that are held in memory in the Anyplan server and replicated on request by the client. This provides scalability for large projects and processing for both the business rules and general calculations on either server side or client side as required.

Anyplan Managers and ServicesThe 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).

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.

Portfolios in Anyplan run from the SmartNet™ since this contains all relevant projects and plans in a connected network. In practice Anyplan 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.

Portfolio Routing ServiceA 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. The latest reporting portfolio’s service will normally always be running and commonly used portfolios are pre-calculated and cached ready for retrieval. 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.