Hi, I am looking for any information (documentation) on development of custom java application that communicates to PI via the PI SDK. Can anyone help?
From one of the past threads, it looks like a customer is using the JACOB COM Bridge to use PI SDK in Java and he got the Snapshot property to work successfully. Please refer to this thread for information.
Type mismatch when calling InterpolatedValues over COM using JACOB
Could the JDBC driver be an option for you?
PI JDBC Driver - Overview
To me this would be the easiest option.
Other that that, you could also consider using our PI WEB API to serve PI Data as if it was a Web Service.
And Generally speaking you can look at our Developer Technologies (PI Data Acess) when you need to develop an application to see what are options available.
For each of these technologies, you can find a comparison here: KB01046 - PI Data Access Features
Hope this helps !
Looks like OSISoft doesn't recommend SDK programming for Java application development.
We have decided to go ahead with using PI JDBC driver for the java application we intend to develop.
However, I am keen on PI SDK programming as I have experience developing C#.NET applications using SDK COM objects. Is there any specific reason to why OSISoft doesn't recommend using SDK COM objects (wrapper classes with JNI) for java applications?
The reason for selecting Java usually is to be platform independent or to develop on a non-Windows platform. Developing a Java application against PI SDK appears at least an unusual approach to me. We consider other Data Access Technologies like PI JDBC or PI Web API a better fit but I wouldn't know that we are strictly recommending against developing a Java application against PI SDK. Generally we recommend AF SDK upon PI SDK for new development projects.
The PI Web API that Patrice said seems very interesting because it is not bounded to any especific programming language. It seems PI Web API implements HATEOAS (Hypermedia as the Engine of Application State) which means the services themselves give enough information in order to reach the resource you need.
If you choose Pi Web API, you might need a RESTful client (which may be Jersey) and a JSON parser (like Jackson).
We've done some small projects using the Pi JDBC driver, and others using the Pi Web Services API. The latter has been replaced by Pi Web API, which is a better solution. The JDBC solution requires SQL Data Access and Pi OLEDB or OLEDB Enterprise. The obvious advantage is that you can use SQL for most operations. The disadvantage is that, if my memory is correct, you do not have the full functionality that you get with PI SDK. Also, it adds another server in your application stack (SQL Data Access).
We haven't tried any of the Java COM bridge solutions, but they sound promising.
Retrieving data ...