P2 Server’s key reason for existing is to get your data from any source and show its relationships all with impressive speed, in a way applications can easily consume it.
P2 Server has always been a great data retrieval tool, with Data Dictionary based relationship models built right in. Version 4 takes this to a new level, with enhancements to all areas, as well as the addition of entirely new features.
P2 Server version 4 reinvents the existing application, with new technologies allowing speeds and features that were never previously available. This is a vital first step towards an exciting and impressive future set of P2 applications, that will be based on this new P2 Server infrastructure.
The 4.3 release provides our first release of P2 Server that can replace the functions that are most commonly used in the BabelFish Server installations at new customer sites.
Technology refresh
This version of P2 Server uses the latest technologies to provide the fastest, most reliable and secure communications possible. The external interfaces are based on new technologies that exist in modern web browsers and mobile web browsers, meaning that applications that use data from P2 Server can do so in a much easier way that was previously available. The technology refresh will support a wide range of new features and visualization opportunities, and deliver significant performance improvements both now and into the future.
Tabular Data Set Features
Previous versions have been heavily designed around time series data, with a few extra components included to visualise sets or tables of information. Version 4 now includes native support for tabular ‘data sets’ through the whole system, just as the previous versions did for time series ‘tags’.
These tabular sets of data can be used to drive visualisation components, such as charts, in P2 Explorer.
Time-Aware Hierarchies
Previous versions had always supported multiple hierarchies, but these have always been fixed structures. We have expanded this in version 4 to now allow these hierarchies to change over time. This means that as items are moved in the hierarchy, or added and deleted, this history is now all recorded and can be used to more accurately depict the real state of real world items that exist on site.
Related, but even more exciting, is being able to use this hierarchy and its new time-aware features inside calculations in the near future! With this, we will have the ability to perform a calculation such as, “Sum up the ‘Total Oil Produced’ amounts from all ‘Wells’ in ‘Field A’ for Jan 2014”. This will not only allow us to perform rollup-style calculations much easier than before, it will also be smart enough to not include wells that did not exist in the hierarchy at the time. This new feature is coming to a store near you soon!
P2 Server API (previously called Web API)
The P2 Server API is the entry point into P2 Server to get any data or structure information, and is used for other P2 applications and third party applications.
This is an expansion on the existing P2 Web API interface that was provided by previous 2.6.x versions of P2 Explorer. It is important to note that some of the interfaces have changed in order to improve the architecture.
As with the previous versions, this new interface is also implemented using a RESTful web service interface. Via this interface, users are able to get information about real world objects in the system, the structure of these objects, and the relationships between objects.
One of the big enhancements in the new Server API is the ability for other applications to plug into this infrastructure, to provide metadata about objects, and to provide relationship information that adds to the total relationship map provided. In this way, all other P2 applications can contribute to this relationship graph, expanding it out further than just the knowledge that is inside P2 Server. This exciting new ability means that the future of a single integrated platform is a big step closer, while still ensuring that the ‘System of Record’ for that data is still the only place that data is stored.
A part of this plug-in facility is the ability to define relationships to other known object types in the system, forming automatic links to other information that is related to an object in the system. This feature gives us the capacity to create a richer set of relationships, without having to manually define them all.
The 4.0 release of P2 Server included the initial version of the new P2 Server API, based on REST principles and the ServiceStack platform. The 4.0 release included support for calls on Entities, Hierarchies and Datasources.
The 4.2 release has been expanded to add support for Datasets and Tags in order to facilitate work on the web administration interface. In addition, a new component of the API has been added with a data resource to be exposed from the Data Broker. In future releases, P2 Server will add support for fetching data synchronously through this data resource.
Time Series Data
The previous version of P2 Server was only able to retrieve data sets from relational databases. This release P2 Server adds initial support for serving time series data through the system.
For this initial release of time series support, a basic version of the adaptor for the OSIsoft PI historian has been implemented. Consumer applications are now able to fetch time series data from PI historians through P2 Server’s existing SignalR asynchronous interface.
A console application has also been implemented to enable fetching of tags. The tag fetch process is significantly faster than in previous versions of P2 Server.
P2 Server Management Studio
A new enterprise management tool has been created to simplify administration of P2 Server. This initial release of P2 Server Management Studio allows administrators to create and manage datasources, tags, and datasets, as well as simplified management of entities and hierarchies.
Administrators will now be able to easily configure a new datasource, for either datasets or tags. They will also be able to create a query for a dataset datasource and be able to perform an on-demand tag fetch against a historian.
This tool will be further refined in upcoming releases to eventually provide a comprehensive self-serve administration tool for P2 Server.
Comments
P2 Server provides the infrastructure for applications to create and save threaded comments.
The comments infrastructure enables comments to be applied to a specific date or date range. Comments can therefore be for a point in time or for a period (e.g. reporting month).
Comments can also be given a “context”, which can later be used for filtering.
Adaptors
An initial version of the PI adaptor was released in Server 4.2. The initial release had the following basic features:
- Collect tags from the historian for population into P2 Server.
- Get Raw time series data from the historian and return it to P2 Server.
The PI Adaptor has been enhanced in the 4.3 release to provide native support for PI implementation of Time Weighted Average, Linear Interpolate, and Last Known Value.
This release does not include writing data back to tags in PI.
P2 Server Import / Export
P2 Server Management Studio now includes a new Import/Export tool, which allows a specially formatted Microsoft® Excel® spreadsheet containing P2 Server configuration information to be uploaded and imported.
The Import/Export tool provides users with a mechanism to import entities, hierarchies, and templates into the Data Dictionary. It will also create attributes and assign them to specific templates, and assign templates to entities.
Calculation Engine Functions
The Calculation Engine of P2 Server has been further enhanced to add support for some of the frequently used calculation functions that are currently available in the BabelFish 2.6.x and Reconcile CER products. These functions include:
- BabelFish: April, ArcCos, ArcSin, ArcTan, August, Avg, CalenderDayStart, Ceil, Confidence, Cos, Day, December, Feburary, Floor, Hour, If, January, July, June, Log10, Log, March, Max, May, Min, Minute, Month, November, Random, Round, Second, September, Sin, Tan, Year.
- CER: Absolute, ApplyTimestamp, Boolean, DateTime, DaysInMonth, Decimal, Duration, Eval, EvalExp, Exponential, GetSystemTime, Integer, ReplaceValue, Series, SeriexExp, SingleValueIf, Sqrt, String, Time, TimeShift, Timestamp, Truncate.
General Notes
- The maximum number of entities that can be selected in a hierarchy at one time is 1,000.
- The following characters have been reserved and should not be used in any names. They will be replaced with other characters as follows:
-
Reserved characters: [ ] : ! { } , / \\
-
Replacements: ( ) - # ( ) . | |
-
- The following words have been reserved and should not be used as an exact match for any name (including entities):
Entity