17 Replies Latest reply on Oct 18, 2011 2:19 PM by MichaelvdV@Atos

    Showcase: PINexus

    MichaelvdV@Atos

      Hello fellow vCampus members!

       

      In light of Asle's showcase, I would also like to present something. I call it 'PI Nexus'. 'Nexus' is a latin word, which can be loosely translated to 'to connect' or 'connection between things or people'.

       

      The purpose of PINexus is to provide a full set of PI Client tools in a single environment, and provide the opportunity to easily create and extend functionality. Next to that, PINexus provides dashboarding functionality for PI / other systems (more on that later).

       

      The first goal is to provide this functionality on an 'on premise' webserver, but the next version will be able to run in the cloud (Windows Azure)! This is actually my 3th total rewrite of the project. I'm now working on the 4th

       

      PINexus is developed in Silverlight 4, with a WCF/.NET 4 backend. It is currently a prototype/research project. I have a total 2 years of my free time invested in this (started with Silverlight 2 beta ).

       

      The project is a merge of 3 of my other 'hobby' projects:

       

      - Silverlight WebDesktop - with the aim to provide a desktop environment in Silverlight

       

      - LinqToPi - which is now used in the backend to retrieve PI data/metadata

       

      - PIDash - an attempt to create a dashboarding application for PI in Silverlight

       

      This is the first time I'm showing it. I thought it was a shame that it was only sitting on my laptop. So, I would like to take you on a tour using screenshots, and it would be really great if you could tell me what you think of it!

       

       Please note that the screenshots are taken on a PI installation that was 5 minutes old. There is not a lot of data there at the moment :)

       

      All the screenshots are taken from a browser (Silverlight) application. All the data is accessed trough a WCF service..

       

      This is the login screen. Users are authenticated against the Windows accounts on the hosting machine.

       

      http://imgur.com/NMnMp.jpg

       

      This is the main working area. Shown here is the collapsable menu on top, with the different functionality. It's layed out like the Office 2007 ribbons. You can identify the main functions. The ribbon also provides direct search function, direct access to vCampus and techsupport website and also the notion of 'multiple work area's' (the squares with the numbers). You can click one of the squares and go to that work area (much like multiple desktops in linux windowmanagers).

       

      http://imgur.com/9nJC4.jpg

       

      This is an example of a PINexus application (in this case, a videplayer: the PI related stuff will come soon :) ). When a user clicks the icon on the desktop (the WMV file), the appropriate application is searched (in this case, the videplayer). The application is then downloaded from the server, and loaded into PINexus. The application is then started with a parameter to the opened file. So, there is a file <> application association.

       

      http://imgur.com/4brLU.jpg

       

      This shows the use of multiple windows. The windows react much the same as in Windows, with a twist. The windows also have a back-side, if you double click the bottom bar, the window will rotate and show the backside. Applications can make use of this backside to provide additional functionality (for instance, configuration options. It shows the taskmanager (with the running applications), the filebrowser (with tagging support) and a simple image presenter. edit: a video of the flipping windows can be found here

       

      http://imgur.com/X8URY.png

       

      This shows two windows, the file explorer and the console. PINexus supports two windowing modes: floating (like windows), and autotile. With autotile, the windows are automatically positioned and sized. The files are all on the server (notion of a 'remote filesystem').

       

      Altough a console might sound like outdated functionality, this one is very helpfull. It has autocompletion and command history. Not only can it display text, but also complex interactive controls.

       

      In this case, the test2.sql file is an PIOLEDB command. This can be executed using the 'run' command (which can also execute csharp and performance equations). The result is then displayed in a (interactive) grid.

       

      http://i.imgur.com/h7yWu.png

       

      This demonstrates the execution of csharp code in the console ("Hallo Wereld" is 'hello world' in Dutch). The console also includes a nice editor (with automatic syntax highlighting for PE, SQL, XML and C#) in which you can create the executable code. This way, you can create scripts in C# (which can also access PI)

       

      http://i.imgur.com/N0eQc.png

       

      Next to that, the console also includes an eval mode. In the eval mode, you can type csharp code, which is then evaluated.

       

      http://i.imgur.com/RntmC.png

       

      This demonstrates the usage of the 'pivalues' and 'chart' command in the console. Console commands (or console apps) can be easily created using the PINexusSDK (just implement an interface, and place the dll in a directory on the remote filesystem).

       

      http://i.imgur.com/CvLPK.png

       

      On to the PI stuff now. This shows a Performance Equation editor and the build-in tagsearch

       

      http://i.imgur.com/Ur9Wb.png

       

      This shows the 'quickanalyze' application. With this, you can quickly trend some PI tags

       

      http://i.imgur.com/kFs4c.png

       

      This shows the same application, but then in master/detail view

       

      http://i.imgur.com/vQnPR.png

       

      This shows the 'SQL Explorer' (with syntax highlighting)

       

      http://i.imgur.com/9rwVC.png

       

      This shows the dashboarding management application. The dashboards are a seperate part of PINexus, but they are configured using this application.On the left you see the toolbox. This displays the controls that can be added to the dashboard. These can be any Silverlight control. The middle section shows the XAML of the dashboard. At this time, only direct XAML editing is supported, there is no graphical designer just yet!. On the right you see the layout of the dashboard. You can add 'folders' and new displays. On the far right are the properties of that page (name, description, etc).

       

      http://i.imgur.com/fqeBz.png

       

      Here is the same page in preview mode:

       

      http://i.imgur.com/F7FB2.png

       

      This results in the following dashboard in 'running mode'. Please note the 'show workspace' link in the far right, this takes you back to your workspace. On the workspace, there is a same link to go to the dashboard. You can switch back and forth very quickly.

       

      http://i.imgur.com/iRn9w.png

       

      As mentioned before, you can add any Silverlight Control to your dashboard. In this case, a tagsearch (the same as seen before).

       

      http://i.imgur.com/YSruS.png

       

      This shows the build-in webbrowser, with some widgets on the background 'desktop'. You see a note, calendar, RSS and Twitter widget. These widgets are very easy to create using the PINexusSDK. You can easily think of trends and gauges for your PI system.

       

      http://i.imgur.com/9023c.png

       

      And at last, an overview showing the simple email client (not configured in this screenshot, but working), the calculator and the same widgets

       

      http://i.imgur.com/l1GmT.png

       

       

       

      Well, that was it. I was planning on creating a screencast (if you guys are interested), so I can show the usage of the windows, the smooth transitions and the easy use of the application.

       

      I'm really curious about what everyone thinks of it. I learned so much creating this, that alone was worth the effort :)

       

      As a side note: this application is created by me personally, and does not depict any commercial application from my company or otherwise.

       

       

       

       

       

       

        • Re: Showcase: PINexus
          Asle Frantzen

          I must say, this is quite impressive Michael!

           

          I have seen a couple of "cloud desktops" and "cloud apps" - nothing major yet, but still it gives a good presentation of what is to come in the near future. This is probably the best one I've seen yet. And also with it being developed with pi in mind, it seems like something useful

           

          Last year we actually had one of our customers request more advanced web tools to use with PI. I'm sure others will see it soon enough :)

           

           

           

          How much time have you spent creating this?

           

          (Only thing I'd question is the GUI - being that it's made to look like OSIsoft's regular WinApps, you'd have some work maintaining this when new releases are available from OSIsoft. But on the other hand - the similar-to-OSIsoft-GUI also lowers the threshold for new users)

            • Re: Showcase: PINexus
              MichaelvdV@Atos

              Thank you very much Asle!

               

              There are a lot of upcomming webdesktops or 'cloud operating systems' (that term I find very presumptuous). I have seen some very nice startups, but nothing remotely usefull.

               

              This is also something I encountered while developing this. If you really want to create a cloud desktop, there is so much to do, and getting to a state where it is really usefull is nearly impossible if you are on your own. That's why I focus on PI, that narrows the scope, and the cloud desktop quickly becomes really usefull.

               

              I have really no idea how much time I spend on this, it was/is a learning experience. For example: when I started it, I started out trying to create a window manager in SL 2 beta. This worked, then I started to create the plugin system (MEF was not available back then). Now I use (a portion of) MEF. I have completely rewritten it 3 times now, and am busy rewriting it a 4th time.

               

              All in all. I think I must have spend close to +500 hours.

               

              I'm not a GUI or a web developer, that's something I come across a lot. I can battle with the simplest color or layout choices for hours. You're right about the fact that some of the applications do look very similair to OSIsoft's design (specially the SQL explorer). This is indeed done to lower the threshold for me (and potential users) to be able to use it. If it evolves more, I certainly see the interface change. I try to add some simple advancements (like syntax highlighting and autocompletion, that's already is a big plus, and still it is very user friendly and recognizable.

               

              In my next rewrite I am really focussing on design and functionality, rather than looks. I have done this for this one, but I sometimes find myself caring more about the looks then the design. My main goal has to be an extensible and easy to use platform. If it comes to that, a well trained GUI designer or webdesigner can change the looks in a mather of days (using templates or otherwise).

               

              I'm for example quite proud of the C# evaluation functionality. It's very simple in nature, but that's something that could be really usefull (creating scripts or 'on the fly' applications). That's something I haven't seen in any of the other projects. Also, I really easy to use console is one of my main goals: I haven't seen that either.

               

               

                • Re: Showcase: PINexus
                  wpurrer

                  Thats cool ..

                  build more or less the same application "before" PI and also called it nexus ....

                   

                   

                   

                  It based on dot.net / infragistics + dundas toolkit.

                   

                  We spent arround 600 hours (but at this time there was no PI under it, but a couple of DCS historians...)  => and had also a cool "alarm event viewer" and a recipe manager included.

                   

                  Two guys same idea ... same name

                   

                   

                   

                  Thats very cool => are you at the UC, we should defenitly spend a beer together.

                  • Re: Showcase: PINexus

                    Hi Michael,  Someone has been a busy bee although you could have put more effort in to it! 

                     

                    It is a fantastic way to learn a new technology (even better when you get paid to learn a new technology on a project)...when I first started out someone told me that a good software engineer is never satisfied by his work, evident by you working on your 4th rewrite.

                     

                    I do like the flip side to an application where you have the view of it, then clicking on the bottom bar flips it to see the configuration.  Something similar I think we mentioned in the next gen visualisation thread.

                • Re: Showcase: PINexus

                  Wow, this is impressive Michael, thanks for sharing! It is clear you invested a lot of time and energy into - and the fact that this is aside from your regular work makes me wonder: do you have 32-hour days in the Netherlands??

                   

                  I think the number of refactorings proves you learned a lot by making this - and I find it really interesting that you are considering porting it to the Windows Azure platform.

                   

                  Michael @ Atos Origin

                  I thought it was a shame that it was only sitting on my laptop
                  I hope it was not just on your laptop (i.e. you had a backup)

                   

                  Michael @ Atos Origin

                  I sometimes find myself caring more about the looks then the design. My main goal has to be an extensible and easy to use platform. If it comes to that, a well trained GUI designer or webdesigner can change the looks in a mather of days (using templates or otherwise).
                  Agreed, it is sometimes difficult for non-GUI developers (like me!) to not care too much about the looks of it... that's one thing I found interesting from the Microsoft WPF: the ability to separate the functionality from the UI, with one GUI expert writing XAML like crazy and somebody else focusing on the actual functionality.

                   

                   

                   

                  Just curious: in terms of next steps for your research project, are you considering metadata (i.e. Asset Hierarchy data from AF)? I understand this would require major efforts in LinqToPi in the first place... 

                    • Re: Showcase: PINexus
                      MichaelvdV@Atos

                      Steve Pilon

                      Wow, this is impressive Michael, thanks for sharing! It is clear you invested a lot of time and energy into - and the fact that this is aside from your regular work makes me wonder: do you have 32-hour days in the Netherlands??

                       

                      Thanks Steve!

                       

                      No, we have 24 hour days here, and I also have a social live I did howver dedicate a lot of my free time to this!

                       

                      Steve Pilon

                      I think the number of refactorings proves you learned a lot by making this - and I find it really interesting that you are considering porting it to the Windows Azure platform.

                       

                       

                      I think I never learned so much about programming/.NET/Silverlight as in the past year. My thought is to create a hybrid (using plugin model) which can run on both a normal webserver, Azure, and maybe even Amazon's EC2

                       

                      Steve Pilon

                      I hope it was not just on your laptop (i.e. you had a backup)

                       

                      Yes I did. I have had 2 harddisk crashes in the past year, but luckily I made backups!

                       

                      Steve Pilon

                      Just curious: in terms of next steps for your research project, are you considering metadata (i.e. Asset Hierarchy data from AF)? I understand this would require major efforts in LinqToPi in the first place... 

                       

                      Yes I do. I'm not sure how tough. I really hope the PI Webservice release will come soon, so I can use that for my PI data. I'm thinking of using LinqToPi to access the AF (meta)data, and then propagate it with WCF.

                        • Re: Showcase: PINexus
                          MichaelvdV@Atos

                          Laurie Diffenbach

                          Hi Michael,

                          I had a look at your showcase. It represents some deep thinking and hard work on your part. For the majority of PI users, though, I think the notion of building something (no matter how quick and convenient) in C# is not an option. The focus of our new product is to make it extremely straightforward for users to start visualizing data using built-in components (not something they have to create with code).

                           

                          The focus of our efforts, I would say, is providing the kinds of visualization (out of the box) that help users investigate and identify issues exposed by PI data in a highly optimized data retrieval environment. So, much of our focus is on providing the fastest access to PI data and intelligent ways to organize that data into something meaningful for a given type of visualization (trends, tables, charts, etc.). Extensibility will come, but not in the first round.

                           

                          Thanks for the preview of your work!

                           

                          Regards,

                           

                          Laurie

                           
                          Laurie,
                          Thank you so much for taking the time to have a look!
                          My intention is not to have 'end users' (if there ever will be any ) to code their own functionality. What I have presented here is an early basis for further development. My idea behind the concept is to provide a framework and the applications for PI management, analysis and visualisation/dashboarding. 3th parties then can easily develop their own applications for more specific tasks. Having the C# evaluation possibility is nice for creating add-hoc scripts (and is just plain cool IMHO), but it is certainly not a main goal.
                            • Re: Showcase: PINexus
                              ygalipeau

                              just my opinion here,

                               

                              but being in software for a few years now made me saw a lots of things!!!

                               

                              the issue is always between how "out of the box" a software/applications must be? when you provides something that it's only manageable with point and click and that is very straightforward , it will never be able to serve the customer needs and they always ending up by building or using something else on the side as the application cannot do exactly what they wants. On the other hands, when someone can code and develop their functionnality, some may think it is too hard and that it looks like a development platform. So i think this is a choice depending on which audience and market you want to target with the application.

                               

                              personnaly, i think that something that don't allow the user to extend the functionnalities with code behind the scene is not enough.

                               

                              just my 2 cents...

                               

                              yannick

                                • Re: Showcase: PINexus

                                  Yannick Galipeau (ITI)

                                  the issue is always between how "out of the box" a software/applications must be? when you provides something that it's only manageable with point and click and that is very straightforward , it will never be able to serve the customer needs and they always ending up by building or using something else on the side as the application cannot do exactly what they wants. On the other hands, when someone can code and develop their functionnality, some may think it is too hard and that it looks like a development platform. So i think this is a choice depending on which audience and market you want to target with the application.

                                   

                                  personnaly, i think that something that don't allow the user to extend the functionnalities with code behind the scene is not enough.

                                   

                                   

                                  Yannick, I don't speak for OSI but I get the impression that any next gen visualisation tool is going to be AF based so the likeliehood of extending functionality is strong.  I totally agree that not allowing an application to be extended is never going to be a fit for all purposes application - but if you can capture a majority % of the market with the basic functionality of such an application then it is going to succeed.  From that point onwards you can evaluate just how customers are looking to extend the application and provide some framework for that.

                                   

                                   

                                    • Re: Showcase: PINexus
                                      cescamilla

                                      This is really nice! I would like to be able to try it out :) and then read some info on how you created it. I really liked the interface, I would have to say that I had a hard time figuring out why the coloresque scheme for the close, maximize and minimize buttons... if you see the images in B&W you may not know the difference (or if you are color blind).

                                       

                                       

                                       

                                      Nice job Michael!

                                        • Re: Showcase: PINexus
                                          MichaelvdV@Atos

                                          I have posted a video of the rotating windows:

                                           

                                          http://www.youtube.com/watch?v=ub2wdSxn4Pc

                                           

                                          The quality is poor, but you get the idea I think :)

                                          • Re: Showcase: PINexus
                                            MichaelvdV@Atos

                                            Cristobal Escamilla

                                            This is really nice! I would like to be able to try it out :) and then read some info on how you created it. I really liked the interface, I would have to say that I had a hard time figuring out why the coloresque scheme for the close, maximize and minimize buttons... if you see the images in B&W you may not know the difference (or if you are color blind).

                                             

                                             

                                             

                                            Nice job Michael!

                                             

                                             

                                            Thank you Cristobal! I want to create a screencast explaining the application and how it came to be.

                                             

                                            Yeah, the buttons are only colored. They should have some icons in them. The fact that they don't have icons in them is a direct consequence of me not finding any nice window icons, and at one time I stopped looking. That's indeed something to consider if you would have something like this for a broader audience.