I really want to give this thread a kick.
I think a lot of us are really interested in the idea of having an extensible Coresight product. Maybe the reason that this thread is not getting a lot of traffic is that 'we simply are not sure how or what'. I'm pretty sure a lot of Coresight enthusiasts will see extensibility as the next big step.
I have to admit, I'm going at this from a developers perspective, rather than an end user, so I'm not sure how valuable this is. But it's good to write my thoughts on this subject down.
Embed your own Silverlight controls into the Coresight application
For me, specially as a developer, this will be the biggest step. If Coresight can provide an API/SDK for creating custom controls, that would exponentially increase the usability of the product in a lot of situations where Processbook or a custom visualization application would be needed. I'm thinking of an AF DataReference type of plugin system, where you can register your control library, and clients will 'download' the control from the central Coresight server. A programming model like we use with AF DataReferences. I've experemented a bit with Silverlight and Managed Extensibility Framework (MEF). This is now included in Silverlight 4, and it really makes it easy to create extensible Silverlight applications.
Use the PI Coresight visual objects from your Application
I think this will be great. I'm not sure about the technical implications, because you will have to have access to Silverlight UserControls in other applications. For (managed) .NET applications this shouldn't be a big issue, and maybe it's even possible to convert some of the Silverlight controls to WPF.
Making Coresight controls available to (custom) SIlverlight Applications will already be really great!
Access to data access services
- In Silverlight
- Directly from any application
That would be really great. I'm not sure about how this fits in if you think about PI Webservices. If you would have something like a Coresight DataAccess service, it should then be available to Silverlight applications and other (any) application.
Passing Context to/from PI Coresight and other applications
In my opinion, this would be parallel to creating something like a Coresight SDK. You would be able to create 'plugins', and you would be able to (programmatically) instantiate different controls, and configure them/pass context.
Another thing, that would be the ultimate extensibility feature, is if you are able to use 'scripts' in your Coresight displays. For instance to 'script' behavior of the display when certain criteria are met. Maybe this could be made possible by using AF and custom datareferences.
I have a few "use cases" and maybe extensibility would solve this:
* Custom Visual Objects (Spider Charts,....)
* Double Click and more Detailed information (Reports, Archived Webcam Pictures of the Production)
* Complex - Tag Configuration solution
* Connect (prepare ready to use configuration files for more advanced datamining apps)
* Cursor aware Calculations
Tom, firstly wanted to say welcome to vCampus.
My immediate reaction is that there is far too little experience or exposure to Coresight to really give definitive ideas for extensibility - in other words, despite not having an extensibility model in v1 you should still release it to the vCampus community to help shape the future extensibility of Coresight.
I actually think that a lot of extensibility of data access is already taken care of via AF's plug-ins, especially if Coresight will enable data writes back to AF (maybe one example of passing context between applications; Coresight --> Manual Logger web interface).
Despite what the intentions are, I still think Coresight will slowly pull users away from ProcessBook (at the moment I see this as a good thing) so being able to have your own silverlight controls in a display is good but would those controls be exposed to the full object model of a silverlight display - in the same manner you have in the ProcessBook object model?
Away from the single Coresight display perspective, what about being able to create Coresight displays from code based on events or other criteria.
Or searching through all currently built Coresight displays for data points and contexts that are used? This in particular would be useful for assessing the impact of making changes to AF hierarchies and being able to change the Coresight displays from code.
Thanks for the welcome Rhys, and I agree the vCampus community will need more exposure to the product to really get the extensibility juices flowing. But I must say that you and Wolfgang have already suggested some nice use cases. I am particularly interested in your last couple of points about assessing the impact of changes in AF hierarchies on PI Coresight displays and auto generating displays from code based events.
As for the vCampus community having access to PI Coresight, that will happen. Because there is no extensibility now we do not plan on having an early release version for vCampus, but once it it release it will be made available along with the rest of the PI clients that vCampus members have access to.
From what I understood of Coresight, you are going to be able to associate a display with a root Element from AF so procedures such as searching would start from the display root. Any modifications within AF have potential to impact the clients such as ProcessBook, Datalink and Coresight. For ProcessBook and Datalink you are blind because a client can use those tools and define their own data, hidden on their machines or shared drive. You don't (easily) know what it is they are accessing and what the impact will be. For Coresight the configuration of the display is being held on the Coresight server (be interesting to know in what form), so there is opportunity to have a better assessment of the impact of changes. Lost count the number of grey hairs I have got when PI server IDs/Names/Aliases etc change and you hope that the client impact isn't too big. (Thank goodness for hair dye!)
Also, I always had this idea of having a graphical interface and data layer to a single display for PI data. On one hand you have the nice trends etc, but then you can flip the display over (that would be a cool Apple style animation) and see the data configured behind the scenes and then export it for use in other PI clients via translation templates (bit like XML + XSLT).