Skip navigation
All Places > PI Developers Club > Blog > Authors MvanderVeeken
1 2 Previous Next

PI Developers Club

19 Posts authored by: MvanderVeeken Employee

Maybe you've already taken a look at the agenda, and noticed the Day #0 events at vCampus Live! 2012

 

6661.vcampusLiveDay0.png

 

Programming hackathon: stay focused and keep hacking

 

3716.Man_5F00_Asleep_5F00_On_5F00_Laptop_5F00_With_5F00_Cup_5F005F00_5671.jpgMaybe you have noticed the difference in schedule for the Security Hackathon and the Programming Hackathon. There is a bit of a difference. The Security Hackathon runs from 13:00 to 21:00, followed by the welcome reception. The Programming hackathon runs from 13:00 to 09:00 the next morning! That's 20 hours of pure PI Development delight. You are off course invited to join the welcome reception in between coding, to get some refreshments and meet everyone. 

 

The purpose of the programming hackathon is very simple: you get 20 hours to work together with your team and create a killer application. OSIsoft developers will be there to coach and get you started, but it will be up to you to get creative and be innovative.

 

The theme this year will be 'car data'. Imagine getting real-time data from a car in the PI System. Imagine what you could do with that data, what kind of applications you could make. Now imagine having that data for a fleet of cars. What can applications can you think of using the PI System, to create something really valuable for consumers or fleet operators. For this hackathon you will be presented with data, and your task is to come up with that single killer app that will surprise us all!

 

Off course there will be some rules, but the main focus is to be very creative and innovative, and create something that works. Try to think outside the box: what online services or online resources could you use in your application? The deadline will be at 09:00 on Day 1, and then a panel of judges will look at each application and determine the winners. We will have some nice prizes for the winners. 

 

These 20 hours will give you a great opportunity to work together with your peers and OSIsoft developers. Use your experience as a PI System developer, while learning from others. This event will be quite unique in that it gives you the opportunity to really be creative and innovative. Same for the security hackathon -- seating is limited. Make sure you register for vCampus Live! 2012, and pick 'programming hackathon' as your Day #0 event!

 

 

 

 

 

 

 

 

 

 

Maybe you've already taken a look at the agenda, and noticed the Day #0 events at vCampus Live! 2012

 

6661.vcampusLiveDay0.png

 

Programming hackathon: stay focused and keep hacking

 

3716.Man_5F00_Asleep_5F00_On_5F00_Laptop_5F00_With_5F00_Cup_5F005F00_5671.jpgMaybe you have noticed the difference in schedule for the Security Hackathon and the Programming Hackathon. There is a bit of a difference. The Security Hackathon runs from 13:00 to 21:00, followed by the welcome reception. The Programming hackathon runs from 13:00 to 09:00 the next morning! That's 20 hours of pure PI Development delight. You are off course invited to join the welcome reception in between coding, to get some refreshments and meet everyone. 

 

The purpose of the programming hackathon is very simple: you get 20 hours to work together with your team and create a killer application. OSIsoft developers will be there to coach and get you started, but it will be up to you to get creative and be innovative.

 

The theme this year will be 'car data'. Imagine getting real-time data from a car in the PI System. Imagine what you could do with that data, what kind of applications you could make. Now imagine having that data for a fleet of cars. What can applications can you think of using the PI System, to create something really valuable for consumers or fleet operators. For this hackathon you will be presented with data, and your task is to come up with that single killer app that will surprise us all!

 

Off course there will be some rules, but the main focus is to be very creative and innovative, and create something that works. Try to think outside the box: what online services or online resources could you use in your application? The deadline will be at 09:00 on Day 1, and then a panel of judges will look at each application and determine the winners. We will have some nice prizes for the winners. 

 

These 20 hours will give you a great opportunity to work together with your peers and OSIsoft developers. Use your experience as a PI System developer, while learning from others. This event will be quite unique in that it gives you the opportunity to really be creative and innovative. Same for the security hackathon -- seating is limited. Make sure you register for vCampus Live! 2012, and pick 'programming hackathon' as your Day #0 event!

 

 

 

 

 

 

 

 

 

 

Maybe you've already taken a look at the agenda, and noticed the Day #0 events at vCampus Live! 2012

 

6661.vcampusLiveDay0.png

 

Programming hackathon: stay focused and keep hacking

 

3716.Man_5F00_Asleep_5F00_On_5F00_Laptop_5F00_With_5F00_Cup_5F005F00_5671.jpgMaybe you have noticed the difference in schedule for the Security Hackathon and the Programming Hackathon. There is a bit of a difference. The Security Hackathon runs from 13:00 to 21:00, followed by the welcome reception. The Programming hackathon runs from 13:00 to 09:00 the next morning! That's 20 hours of pure PI Development delight. You are off course invited to join the welcome reception in between coding, to get some refreshments and meet everyone. 

 

The purpose of the programming hackathon is very simple: you get 20 hours to work together with your team and create a killer application. OSIsoft developers will be there to coach and get you started, but it will be up to you to get creative and be innovative.

 

The theme this year will be 'car data'. Imagine getting real-time data from a car in the PI System. Imagine what you could do with that data, what kind of applications you could make. Now imagine having that data for a fleet of cars. What can applications can you think of using the PI System, to create something really valuable for consumers or fleet operators. For this hackathon you will be presented with data, and your task is to come up with that single killer app that will surprise us all!

 

Off course there will be some rules, but the main focus is to be very creative and innovative, and create something that works. Try to think outside the box: what online services or online resources could you use in your application? The deadline will be at 09:00 on Day 1, and then a panel of judges will look at each application and determine the winners. We will have some nice prizes for the winners. 

 

These 20 hours will give you a great opportunity to work together with your peers and OSIsoft developers. Use your experience as a PI System developer, while learning from others. This event will be quite unique in that it gives you the opportunity to really be creative and innovative. Same for the security hackathon -- seating is limited. Make sure you register for vCampus Live! 2012, and pick 'programming hackathon' as your Day #0 event!

 

 

 

 

 

 

 

 

vCampus Live! 2012 is right around the corner, and registration is now open! This will be the 4th annual gathering of us PI geeks in San Francisco. With your help, this event will be bigger and better than before!

 

Mark your calendars for Nov. 28 – Nov. 30 and make sure you register early at the vCampus Live! 2012 website.

 

Some highlights for this year’s event:

 

New location

 

We are moving to the Grand Hyatt near Union Square, San Francisco (CA). This very modern and stylish hotel has some great conference rooms and very cool guest rooms. It’s inside the heart of San Francisco, and walking distance from the BART station.

 

Bigger, better…

 

We are continuing with the successful hands-on sessions and fixing some of the imperfections we observed last year. This will be your chance to learn about new OSIsoft products and technologies first hand, guided by OSIsoft experts. This year we will have 4 hands-on session tracks, and a presentation track.  We are repeating the popular sessions, so you will have a chance to attend your favorite sessions. As of writing this blog post A a grand total of 28 hands-on and 15 presentation sessions will be available to you. We have improved greatly on the IT infrastructure, to make sure everything runs smoothly.

 

This will also be your first opportunity to get hands-on with Configured Analytics (Abacus), PI Data Exchange Service, PI Coresight for iPad and OData for the PI System.

 

Longer

 

Feel like diving really deep? Take the plunge, and join us at one of the hackathons on Day 0 (Nov. 28). There are two separate hackathon tracks – with something for everybody. 

 

Interested in PI System security? Have a look at the security hackathon. In a few hours you will be taught by OSIsoft’s finest in cyber security, and be prepared for what comes next. You will be challenged in simulated attack-defend scenario by cyber security experts. This will be a great opportunity to get hands-on experience in cyber security. 

 

Are you into PI Development? Join us at the programming hackathon. In 20 hours you will be challenged to be creative and innovative, and create a valuable PI application. The theme this year will be ‘car data’. Use your imagination and OSIsoft tools to surprise everyone with your killer app.

 

Best teams for both hackathons will receive some cool prizes! Stay tuned for more info on the hackathons. Don’t wait too long to register, seating for the hackathons is limited.

 

Social

 

The new and improved Developers Lounge will be a way for you to meet other vCampus members and OSIsoft developers. The Developers Lounge and the Vox pop sessions will be an opportunity for you to discuss and learn.

 

Party!

 

At the end of Day 1, we will have our ‘Geek Night Extravaganza’, where we will party like its 636.30π, on the 36th floor of the Hyatt with an awesome view over the bay and city.

 

 

 

We really hope to see you there on Nov 28th in San Francisco. Make sure to check out the registration page and the agenda.

 

 

 

 

This year at vCampus Live! 2012 will kick of with a Day #0 event. This day is split into two tracks. One track will focus on security, where you will learn about PI System security in great depth, and you will be challenged afterwards. During the programming hackathon, you will be challenged to use all your PI System development knowledge to create an application that will surprise your peers! More info about the programming hackathon later.

 

2210.vcampusLiveDay0.png

 

Security hackathon - Red VS Blue

 

0523.redvsblue.png

 

This event will start in the afternoon, and will run until 9 PM. After that, we will have the welcome reception where you can meet your fellow vCampus members and OSIsoft people in person after a year of online communication.

 

First we will spend the first part of the day getting in-depth knowledge about PI System security. How to detect, recognize, defend and analyse security threats on your PI System infrastructure. You will be taught by OSIsoft's finest in PI System security. People who are veterans dealing with cyber security, and deal with cyber security threats on a daily basis. The knowledge you learn here will be invaluable during the second part of the day: the Red vs Blue contest.

 

Red vs. Blue exercises have their origin from the military. The idea is that a group of security professionals - a red team - attacks something, something from an opposing group - the blue team. The blue team has to defend against these attacks. Originally, these exercises were used in the military to test battle-readiness. Red vs. Blue exercises have been used on many occasions in many different fields. For instance, they are used to test the physical security of high profile sites, such as nuclear and chemical sites. They have been used as cyber 'warfare' training at several security conferences, and also eBay did a red-team exercise together with several vendor invitees (including CISCO). 

 

So, what does that mean for the vCampus Live! hackathon? Armed with the cyber security knowledge you gain from OSIsoft's security experts, you will be presented with a PI System infrastructure. Together with a team of your peers - and an OSIsoft employee - as the blue team you will have to defend against carefully crafted cyber attacks from OSIsoft's battle hardened security veterans. These attacks will increase your stress-level, agitate you, and will force you to act. You can gain points by detecting and defending against these threats. In the end, the teams with the highest point count will be able to call themselves 'Winners of the first vCampus Live! security hackathon!', and you will be able to brag to your friends and coworkers that you survived, or 'died' with your boots on.

 

This will be a unique opportunity to learn about PI System security, in a way that you can use to further secure your PI System infrastructure. This event will be very valuable to you as a PI System administrator or Architect. Become aware and prepared for malicious activity, and protect your valuable data. There is limited seating available, so make sure to register for vCampus Live! 2012, and select the 'security hackathon' as a Day #0 event.

OSIsoft vCampus had the opportunity to host a hackathon during the Connected World Conference in St. Charles, Ill (near Chicago). To quickly explain the setup: there were three companies providing a hackathon track: OSIsoft, Exosite and ILS Technology. Contestants had 36 hours to compete in the challenge, and come up with an awesome new application build using the tools provided. They were competing for nice prizes (1st: $3000, 2nd: $1500, 3rd: iPad)

 

I arrived in Chicago on Saturday, and had a day to stay awake and fight the jetlag. I took a cab to the Pheasant run resort, and was amazed by the country side we passed. Big buildings in the middle of nowhere, a huge drive in cinema and a lot of parking spaces everywhere! Mind you, I'm from the Netherlands, and we usually have to fight to get a parking space near the 'big' cities. The resort itself was pretty awesome, and the weather was really nice (about 30 deg. Celcius, 86 deg Fahrenheit, 303 deg Kelvin). After taking the Sunday to do some final preperations, we had the hackathon kickoff at the 'Hackathon Pavilion'.

 

We prepared an infrastructure, with a PI System deployed 'in the cloud' using Skytap. Participants received an USB drive with PI Client software, Data Access Products, manuals and documentation and off course code samples.

 

4263.IMG_5F00_5813.JPG

 

The participants were OSIsoft customers, partners, OSIsoft employees (mainly TechSupport and Field Service) and two students from Northwestern University. Soon, teams  formed, and after having our introduction and some pizza, we headed of to our room to start our 36 hour hackathon.

 

2742.IMG_5F00_5868.JPG

 

You could feel the energy of programmers working on something creative immediately after we started.  The degree of experience of each participant was highly variable, from years of experience to ’What is the PI System?’ The first evening was taken to get people up to speed on the PI System and the different PI Data Access tools. Our primary focus for this hackathon was using PI Web Services and AF SDK 2012 (CTP) technologies. People unfamiliar with PI AF SDK 2012 were pretty excited about the new capabilities.

 

During the night, a lot of people were still working late. At about 3 am Stuart decided to go to Wallmart to get some extra refreshments and a waffle iron. This lead to some hilarity because I wouldn't believe Wallmart was open 24 hours a day (we don't have that here). So, after Stuarts return he started making waffles, and soon the whole room started to smell like a small bakery.

 

0143.IMG_5F00_5873.JPG

 

At about 4 am I went to bed, but a lot of people stayed up late. The two students from Northwestern didn't sleep at all. When I came back the same morning - after my morning swim - they were still at it! Later that morning, Dr. Kennedy (the founder of OSIsoft) presented a talk about Lit San Leandro that a couple of people went to. It was a very interesting talk about the effort to put in a fiber optics ring in the city to attract new business in a former industry town. Dr. Kennedy later came and visited us at our room to get to know the people and inquire about the different projects. 

 

7360.IMG_5F00_5842.JPG

 

During the rest of the day people were working hard to finish their projects. Stuart made some improvised home-made guacamole that night, and people enjoyed it while programming like crazy.

 

6786.IMG_5F00_5865.JPG

 

I went to bed a little early (about 1 am) to get some sleep for the following day. Wednesday was to be our closing session, we had a 4 hour session from 8 am - 12 am where people could finish their projects with the maximum assistance from OSIsoft people. After people finished the last hurdles, they were asked to present their project with their team. After careful deliberation a panel of judges awarded the prices. The judges were comprised of OSIsoft people, industry experts and people from Connected World. Let's have a look at the different teams and the projects they made!

 

1st Prize - Team Soap (Northwestern University)

 

7462.IMG_5F00_5901.JPG

 

Team Soap consisted of two students from Northwestern University. They named their team after the fact that they didn't sleep (or shower) for 2 days, and they had a big challenge connecting a SOAP web service to their Django (Python) environment. Their project consisted of connecting an Arduino to the PI System using a C# application, to feed information from the device into the PI System. From their they used Django (Python) to get data out of the PI System using PI Web Services to create a very slick HTML5 interface. They made it easy to connect different Arduino devices to the PI System and visualize the information in a dashboard. Before the hackathon started, they had never worked with the PI System. It was very impressive to see how much they have learned in that short amount of time. They won first prize with this project, and took home $3000!

 

2nd Prize - Team '3 guys, a gal and a PI System' (RoviSys)

 

2112.IMG_5F00_5891.JPG

 

RoviSys is a partner of OSIsoft, and they had 4 people at the hackathon! Their goal was to create a Event Frame generator using PI Notifications. They also created an HTML5 front-end that could display the Event Frames in a Gantt chart. I personally found this project particularly interesting. They found a great way to generate Event Frames. From a user perspective this is very interesting, because it requires no coding, only configuration of the Notification triggers. This is a great way of generating event frames, until we have the Event Frame Generator, or Configured Analytics to generate those event frames. The HTML5 interface was very responsive and quick. It displayed all the information related to the Event Frames in a clear way. With this outstanding project they won 2nd prize, and took home $1500!

 

Team Exele (James)

 

4645.IMG_5F00_5896.JPG

 

Team Exele (from Exele Information Systems) are also a partner of OSIsoft, and we had the pleasure of having James with us. James had an utmost creative idea! His project was to store Twitter messages in the PI System using Event Frames. He created a very nice and clean HTML interface, that allows users to submit a query. This query was then stored into an AF Element. A separate service than monitored the queries, and stored all Twitter messages related to that query in the PI System. This would allow you to store Twitter messages related to a particular subject for long periods of time (far beyond the history limit of Twitter). I would say this is especially nice for marketing, demographics and research. He also created a nice and clean interface to display the results, and pinpoint a message location on a map using Google maps. Team Exele won 3rd prize with this, taking home a brand new iPad!

 

We also had teams from OSIsoft participating. One particular team decided to participate in the Exosite track, by creating an interface between Exosite's OnePlatform and the PI System. They won 1st prize at the Exosite track with this. Very impressive, we will certainly follow up on this with the Exosite team!

 

5556.IMG_5F00_5906.JPG

 

Another team from OSIsoft created a prototype of a manual logging application with geolocation in HTML5. The application would use Google Maps to locate the assets closest to you, display them on the map, and give the user the opportunity to manually enter data. A great accomplishment, and I could certainly imagine a future for such a product! It was demonstrated on a laptop, an iPad and Android phones.

 

2350.IMG_5F00_5910.JPG

 

And, off course a picture of the whole group afterwards!

 

5078.IMG_5F00_5915.JPG

 

Looking back to the event, I found it a huge success. A lot of great initiatives were being developed. The energy and atmosphere during the hackathon were awesome. Thanks to everyone who helped out and participated! I really hope we get to do this more often. I can imagine something like this being done before or during vCampus Live! 2013 can be really interesting. What do you think? Please leave a comment below!

 

We have more material coming up, including videos and interviews with the participants. These need some processing, but we will be sure to post them as soon as possible!

 

 

 

 

 

 

Hackathon-Chicago-2012-_2D00_-Page-Header.png_2D00_915x0.png

 

OSIsoft vCampus is hosting the M2M Killer App Hackathon at the Connected World Conference on June 11th - June 13th at the Pheasant Run Resort in St-Charles, Ill. (near Chicago).

 

The goal of this hackathon is to create a contest, where developers participate in a 36-hour programming frenzy to create awesome applications with the PI System. Two other companies who are participating are ILS Technology and Exosite. For more information, go to this site!

 

There are  nice cash prizes involved for the winners. Each track will have three winners, and the first prize is a $3000 cash prize, the second prize winner will get $1500, and the third prize winner will get an iPad. Next to that, the winners will be featured in the Connected World Magazine (350.000 subscribers!), and on the website. This will get you and your company a lot of exposure!

 

We are really excited about this, and we are very busy preparing the challenge. We are going to be using some really cool technology to get data in and out of the PI System. Something that hasn't been released so far, and you may have never heard of it before. It's called 'PI Data Pipeline', and it's a new way to interface with the PI System.

 

We are going to kick off the hackathon on Monday, where everyone will receive instructions and their developer kits. The OSIsoft track will have an ending session on Wednesday, June 13th where we will wrap up and announce the winners.

 

Do you want to be a part of this? You can! You can register at the Connected World Conference website. Participating in the hackathon will cost you $225, and you will get a lot of value out of this!

 

We want as many people there participating. That's why we will be paying for 2 vCampus members to go there! Flight and hotel will be sponsored by OSIsoft, and full conference admission (worth $1300) will be sponsored by Connected World.

 

What do you need to do to win this? We want you to write a small testimonial, where you tell us how OSIsoft vCampus helped you out during your projects or day-to-day work. How did OSIsoft vCampus brought you value? Send this to vcampus@osisoft.com, with your company logo and picture. We will pick the two winners from the submissions, and announce them a week from now. Just keep your schedule open!

 

Hope to see you at the Connected World Conference!

 

7180.connected_5F00_world_5F00_video_5F00_grab.png

 

 

OSIsoft provides several data access methods to PI System data. Most of us would be familiar with most of them in our day-to-day PI System development efforts:

  • PI Web Services
  • PI SDK
  • AFSDK
  • PI OLEDB
  • PI OLEDB Enterprise
  • AFSDK (RDA)

There is a good reason for having these multiple data access methods. Different circumstances prefer a different data access product. If you are developing your own high performance PI Interface, you might want to resort to PISDK for performance reasons. If you are developing a Silverlight app,  you probably want to resort to PI Web Services, because of the ease of access. If you are working on more of a BI product, and want to really cross examine your data, then PI OLEDB or PI OLEDB Enterprise could be your method of choice.

 

It's difficult to really state beforehand when you should use what product. It's really dependent on the environment, goal and architecture.

 

One thing that could be measured is the performance of the different data access products in your architecture and situation. The last couple of weeks I've been working on a concept where measuring the performance of the different data access methods should be a walk in the park. In this post, I want to elaborate a bit on this concept, and ask you for your opinion. 

 

Introducing PI System DataAccess Profiler

 

The goal of this concept is to create a 'one stop shop' for all performance measurements involving PI System Data Access technologies. But why stop there, why not also measure the performance of different programming paradigms like sequential, async, multi threading and parallel programming. 

 

Some example use cases I have in mind:

  • You want to get insight into the performance of a data access method in your (network) environment
  • You want to compare the performance of PI SDK vs PI Web Services for data retrieval in order to make an informed architecture decision.
  • You want to know the performance using PI OLEDB to all the PI Servers in your Enterprise.
  • You are creating a new .NET product, and you are wondering if multithreading or parallel programming would allow the biggest data throughput to your PI Server using PI SDK
  • ...

Overview

 

The main idea of the application is to generate detailed performance reports, according to your configuration. You create a 'Execution Plan', which holds all the information.

 

An execution plan holds one or more 'Connections' and one or more 'Execution Groups'. A Connection is a dedicated connection using a certain Data Access product. For instance, you can configure one or multiple PISDK or PI Web Services connections. The application should support PI Web Servces, PI SDK, AF SDK, PI OLEDB and AF SDK RDA. An Execution Group is dedicated to a certain Connection, and consists of Operations. The application supports the following Operations (for each connection type):

  • Get Product/Server Version
  • Get Snapshot
  • Get Archive Values
  • Get Summaries

These are the basic operations that all Data Access Products support, and therefore we can cross measure performance. 

 

The application looks like this when you open it. It presents you with an empty execution plan on the 'Execution Plan Explorer' on the left pane. The middle pane is where the report will show up, the right pane is the 'object explorer', where you can make configuration changes. The lower pane is a log pane, where any information and error messages appear. The toolbar on top let's you

  • Create a new Execution Plan
  • Open an existing Execution Plan
  • Save the current Execution Plan
  • Save the current Execution Plan As (specify filename)
  • Run the current execution plan and generate a report
  • Save the generated report to HTML
  • Get information about PI System Data Access Profiler

2352.screen1.png

 

 

 

Creating a Performance Report

 

If we want to create an execution plan, we will first start off by adding one or multiple connections

 

0184.screen2.png

 

After that, we can configure the connection (using the object explorer). You can rename a connection to make it more descriptive.

 

6560.screen3.png

 

After that, we can add our first execution group, using one of the previously defined connections.

 

4807.screen4.png

 

Once we have our execution group, we can configure it. We can rename it (to make it more descriptive, for instance 'PISDK to PISRV101 Parallel'). We can also specify 'iterations'. This number indicates how many times the entire group is iterated for the performance test. The default is 1, but if you really want to see how it performs getting data a few hundred times, you can configure it here. The ExecutionType configured the way these iterations are handled. You can choose from the following:

  • Serial (will be renamed 'Sequential). Uses a typical for loop to iterate
  • Parallel. Uses Parallel Extension to the .NET Framework to execute the iterations in Parallel
  • Async. Uses async mechanism (if available for this particular Data Access Product). Works well with for instance PI Web Services or the PISDK
  • MultiThreading. Spawns new threads for every iteration. 

1614.screen6.png

 

After we have configured our Execution Group, we can add operations to our Execution Group. You can add as many different operations as you like. The same goes for adding more execution groups.

 

4530.screen5.png

 

Now we can configure the operation. Here is an example of the 'Get Snapshot' configuration

 

4657.screen7.png

 

And here is an example of configuring and adding Requests to a 'Get Summary Data' operation. Again, you can add as many as you like.

 

1346.screen8.png

 

Here is an example of running a Execution Plan that uses PI Web Services to get snapshots. In this example we compare the results of calling 'GetPISnapshotData' 20 times sequential, and 20 times in parallel. You can see the report (in HTML) in the middle pane. Before executing the Execution Plan, there are latency checks (ping) and a traceroute to the target server to get some insight in the network performance. You will also get a summary about the performance of the different execution groups (in this case, using the same operation but one sequential and one parallel executed). You can clearly see the difference in performance when comparing Parallel vs. Sequential.

 

1106.screen10.png

 

Here are some more details from the generated report (Sequential group)

 

3618.screen11.png

 

and for the Parallel group

 

4353.screen12.png

 

You can imagine using this to generate a performance report for PI SDK vs PI Web Services, or vs AF SDK, or any other combination. You can also use it to see the performance difference using the same technique to different PI servers in your organization. This could give some great insight into choosing the right data access method for your environment or project.

 

Status of the application

 

The application that is showed here is in a very early stage of development, and should be considered a concept application. Development has come up to a point where it is feasible to show, and to a point where I need more input. I could personally think of something like this as a Community Project.

 

At this point, I cannot promise anything beyond what I just showed. I'm not sure how this will develop, and if this will ever reach maturity. I would certainly like to come up to a point where I can share the code.

 

The application is a .NET 4.0 WPF application, written in C#. 

 

Questions that need input

 

I'm personally convinced this could be a great tool to get insight into the performance of the different PI DataAccess products. I would like to get some input on the following:

  • What's your overall thought after reading this?
  • Will something like this be useful in your PI application development efforts?
  • What features should definitely be present in a concept like this?
  • Any further comments/input.

 

 

If you have made it to the bottom, thanks for reading! I hope you leave comment to provide some input!

 

 

This has become a pretty big story, scroll down for the TL;DR; (Too Long; Didn't Read;)

 

I'm always really excited to go to conferences. One of the conferences I always try to attend is the local Microsoft Developer Conference in The Hague. It was previously known as Microsoft DevDays, but it has now been rebranded to Microsoft TechDays.

 

It is a 3 day event. The first day focussed on 'IT Professionals' (mainly administrators), and the last 2 days focus on 'Developers'. Development is in my blood, but I still decided to go the full 3 days, and also attend the 'IT Professionals' day.

 

When I first arrived, I found it funny that the IT Professionals (read: admins) attending the first day are a very different bunch. I was wondering where all the people with their laptops were, scattered around the conference site, writing code, drinking coffee and chatting. That's what developers do, but it seems that admins are a different bunch. Also in terms of enthusiasm: admins tend to cheer and clap a lot less during exciting announcements. But this could be my persional bias as a developer...

 

The keynote was presented by two really funny dudes, and there was a lot of talk about Windows 8, Windows Server 8 and System Center 2012. After that there were 5 different parallel tracks. Topics ranging from general system administration, to 'what's new in Windows Server 8' to advanced topics of windows Debugging and security. I decided to focus on security. I attended a total of 4 security topics, and these were all pretty good.

 

The first two sessions were presented by  Hasain Alshakarti . The topic of some big security breached came up, specially the one at Symantec, DigiNotar and RSA. The message was clear: it's almost impossible to know who you can trust anymore. The security breach at DigiNotar had a big impact on the way we think: hackers were able to issue their own signed security certificates, which caused a lot of trouble. Especially, here in the Netherlands a lot of govermental agencies were using certificates by DigiNotar. After the security breach it was impossible to know for sure who had issued these, and it was almost impossible to recognize if you were on the real goverment site, or a spoofed one (with all risks attached). 

 

The last two security topics were presented by  Paula Januszkiewicz . This was very refreshing. She was very knowledgable, and she brought the topics with a lot of fun and charm. She did tons of demo's, which really impressed the audience. I wasn't aware that in this day and age, the Windows operation system allowed for so many malicious actions. She demonstrated retrieving passwords, being very annoying with the Windows debugger, to totally crashing entire enterprise IT systems.

 

The last topic was about the risk of disgruntled IT administrators. The point of the presentation was to make people aware of the power that (Enterprise) administrators have, and the risk that comes with that. If an administrator turns evil, for instance because he is unsatisfied with the company, or he is at the brink of being fired: he can do a lot of damage and (almost) bring a company down. There were a few nice examples where disgruntled administrators can do tons of damage using malicious (Active Directory) configurations or some evil scripts.

 

All and all I had a very good first day, even though there no development topics. If you ever had the chance to attend topics by  Paula Januszkiewicz , make sure you do!

 

The second day was the first of two development conference dayS. When entering the venue, you could immediatly feel that developer vibe and atmosphere. Everywere people are talking geek, and the energy was very motivating.

 

The keynote was very interesting, and had a lot of small demonstrations. Offcourse, the mandatory Windows 8 demo, but also a lot about Metro development and Windows Azure. I was looking forward to hearing Scott Guthrie speak. I'm always very inspired by him and the way he speaks. Offcourse, he had an awesome demo with code. The small demo made use of the Azure Service Bus, and allowed people in the audience to write messages with their phones to the big screen. This was reason for a lot of hilarity, as people send messages ranging from 'Hello Scott, you are awesome', to 'format c:\' and '; -- drop table users;'. 

 

The first breakout sessions I attended was called 'Rocking your enterprise with Microsoft Kinect'. As you may know, I developed some Kinect with PI AF demo's a few months ago, so I was very anctious to see what was next. The overall message of the presentation was very nice. I was glad that other people are also enthusiastic about the Kinect sensor and what it could do for business applications. I was a bit dissapointed by the examples that were presented, as I already studied those before. One really funny thing was the fact that one of his demo's looked suspiciously like my Kinect + AF + Bing Maps demo that I uploaded to YouTube a few months ago. It also was a data visualization demo, with a carrousel of country flags...

 

The rest of the day was filled with very nice topics surrounding MVC4, WebAPI, Metro, C# 5.0, etc. 

 

In the evening there was something called 'Geek night', which basically meant that there were a lot of fun sessions. I went to a Kinect track. The first session was very interesting, as the presenter  Kay Hofmeester  (who works on the Xbox team) raised a lot of interesting questions about Natural User Interfaces in a non-gaming environment. It was very nice to hear someone struggling with the same questions around this subject. I will definitly contact him to get more insight.

 

The second presentation in the evening was presented by Rob Miles . What an awesome presentation! Everything broke down, demo's stopped working and applications crashed. The guy presented the entire presentation with the charme and jokes of a standup comedian. It had been a long time since I had to laugh this hard during any presentation. The guy was just funny as hell. If you ever have the chance to attend one of his presentations, please make sure you do!

 

The last day was filled with a lot of real in depth technical tracks. I made sure to attend the introduction to MVC4 WebAPI framework. This is a very interesting concept, and I will definitly research that further and blog about it.

 

Then the sessions came where I really looked forward to: C# 5.0 async 'behind the scenes', and a talk about 'Project Roslyn'. 

 

C# 5.0 offers true asynchronous programming trough a set of new keywords and methods. Bart de Smet took us trough some of the internals of async, and how the compiler handled the async calls and keyword. This was a very good session, where the internal state machine that the compiler creates was programmed out in detail.

 

The last session for me was about Project Roslyn. As you may know, I'm a big fan of the project. Roslyn opens up the compiler, and offers API's to get directly involved in the compilation process. I did a few blogposts about it here and here.

 

 

 

TL;DR;

 

Microsoft is focussing all client development on Metro and ASP.NET (MVC). There is not too much mention of Silverlight, but Silverlight developers will have acquired the right tools to hit the ground running with Metro development. Windows 8 and Windows Server 8 will bring a lot of great innovation. I'm personally very anctious to get my hands on the Consumer Preview of Windows 8 that will be released end of this month. 

 

My focus on getting a Natural User Interface with Kinect to an office/enterprise environment is shared with a lot of people. This was very refreshing to notice. There are a lot of uncertainties and undiscovered realms here. A very good analogy by a presenter was when video recording became available, it was not that populair because the concepts of zooming/editing and moving were not yet introduced. Introducing Kinect as a controlling device for your PC also needs some new ways of thinking.

 

Roslyn is going to be awesome! There are so much possibilities here. I will be sure to dive deeper into it, and blog about it here.

 

Long story short: I don't possibly have enough time to dive deep into all this new stuff in the short term, which annoys me

 

 

MvanderVeeken

test

Posted by MvanderVeeken Employee Jan 26, 2012

 

There are a lot of examples available on vCampus on how to access PI Web Services from .NET. PI Web Services is based on Windows Communication Foundation (WCF) and integration with Visual Studio is very good. There are less examples on how to access PI Web Services from Java yet, and there has been some interest in this. Steve Mohr posted a Java sample for the CTP release of PI Webservices earlier.

 

I haven't worked with Java for years, so I thought it would be a nice challenge to dive into it a little bit and share it with the community.

 

Getting started

 

To get started, you will need the following

  • PI Web Services. PI Web Services in available at the Download Center. The PI Web Services User Guide (pdf or chm) is available in the Library under 'vCampus Library > vCampus PI Products Kit > Data Access Technologies'.
  • Java Development Kit (JDK). You need the JDK to develop, you cannot use the Java Runtime Environment (JRE) in this case. You can download the newest JDK versions here.
  • Eclipse. An IDE for Java, you can download it for free here. There is no installation required. You can run eclipse.exe it when you unpack it. You probably want to unpack it at a convenient location (e.g. 'C:\Program Files\Eclipse')
  • GlasFish Metro. The web service stack for Java we are going to be using. This is also free. You can download it here

Installing Metro is very straight forward. Go to a directory where you want to install Metro, copy the Metro_1_4.jar file and execute it by double clicking or running 'java -jar metro-1_4.jar' in the command prompt. This will create a new 'metro' sub directory.

 

Creating the Java classes for PI Web Services

 

What we want to do first is let Metro create all the appropriate Java classes for PI Web Services. We are going to use a tool called 'wsimport', which is roughly the equivalent of Microsoft's 'svcutil' tool. In order to do this, we are going to make a small 'description' file for our PI Web Services client. 

 

Go to the directory where you just installed 'Metro'. Create a new XML file called 'PIWebservices.xml' with the following content:

 

 

 

<bindings

 

    xmlns:xsd="http://www.w3.org/2001/XMLSchema"

 

    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"

 

    wsdlLocaption="http://ultralisk/PIWebservices/PiTimeSeries.svc?wsdl"

 

    xmlns="http://java.sun.com/xml/ns/jaxws">

 

    <bindings node="wsdl:definitions">

 

        <enableAsyncMapping>true</enableAsyncMapping>

 

    </bindings>

 

</bindings>

 

The URL (in red) should be the URL to you PiTimeSeries.svc service, don't forget the port number (e.g. http://piserver:8080/PIWebservices/PiTimeSeries.svc?wsdl). The 'enableAsyncMapping' makes sure we also generate asynchronous methods to the server. Save this file and close it. We are not ready to generate the java classes with wsimport. Startup a command prompt and navigate to your Metro directory.

 

First, we want to make sure we set the 'JAVA_HOME' variable. If it is already set properly (you can check this by executing 'echo %JAVA_HOME%' in the command prompt), you can skip this step. wsimport makes use of this variable to access the java tools from the JDK. When we are sure JAVA_HOME is set correctly, we can execute the following command:

 

bin\wsimport -extension -keep -Xnocompile -b PIWebservices.xml http://ultralisk/piwebservices/pitimeseries.svc?wsdl

 

Again, make sure that the URL in red is the URL to your PITimeSeries.svc file. The PIWebservices.xml file is the XML file we created previously. You should get the following output:

 

0878.metro_5F00_wsimport.png

 

If you look closely, you will see that a new directory called 'com' has been created in your Metro installation directory. If you browse to it, you will notice that it is a few levels deep ('\com\osisoft\xml\services\pidataservice'). You will see that a lot of .java files have been created. If you are familiar with PI Web Services, you will notice that these files are named after PI Web Services operations and data structures.

 

4452.metro_5F00_wsimport_5F00_generated_5F00_files.png

 

Creating the Java Project

 

We are going to use these generated classes in our Java project. Start up Eclipse, and create a new Java Project (File > New > Java Project) called 'PIWebservicesClient.

 

4370.metro_5F00_eclipse_5F00_new_5F00_project.png

 

Click Finish. In the package explorer, expand the 'PIWebservicesClient' node and right click on the 'src' folder. Select New > Class, and name it 'Main'. Also make sure the wizzard creates the 'public static void main(String[] args)' entry method.

 

6470.metro_5F00_eclipse_5F00_new_5F00_class.png

 

Click Finish. Now we are going to import the .java files we generated with wsimport. In Windows Explorer, select the 'com' folder (in the Metro directory) and drag the folder to the 'src' folder in Eclipse. If it asks how the files and folders should be imported, select 'Copy files and folders'. Click OK. You will see that a new 'com.osisoft.xml.services.pidataservice' package has been created in your 'src' folder.

 

1004.metro_5F00_eclipse_5F00_com_5F00_package.png

 

Now that all the preparations are done, let's get to some Java coding. For our first example we are going to get the snapshot value of a PI Point using the getPISnapshotData method.

 

Go to your Main class, and change it to look like this:

 
import java.net.URL;
import javax.xml.namespace.*;
import com.osisoft.xml.services.pidataservice.*;

public class Main {

     /**
      * @param args
      */
     public static void main(String[] args) {
          // TODO Auto-generated method stub
          try {
               
               PITimeSeriesService service = new PITimeSeriesService(new URL("http://ultralisk/PIWebservices/pitimeseries.svc?wsdl"),
                         new QName("http://xml.osisoft.com/services/PIDataService", "PITimeSeriesService"));
               
               IPITimeSeries port = service.getBasicEndpoint();
               
               ArrayOfString paths = new ArrayOfString();
               
               paths.getString().add("\\\\Ultralisk\\sinusoid");
               ArrayOfTimeSeries result = port.getPISnapshotData(paths);
               
               TimeSeries timeSerie = result.getTimeSeries().get(0);
              TimedValue value = timeSerie.getTimedValues().getTimedValue().get(0);
               
               System.out.println(timeSerie.getPath() + " " + value.getTime() + " " + value.getValue());
               
          } catch (Exception e) {
               // TODO Auto-generated catch block
               e.printStackTrace();
          }          
     }
}

 Again, make sure you set the URL's to your PI Web Services URL, and change the path of the PI Point ('sinusoid') to your PI Server. Please note the double backslashes used for escaping. If we run this code in Eclipse, the output should be:

 

0284.metro_5F00_eclipse_5F00_com_5F00_output1.png

 

This means we have successfully called the GetPISnapshotData method on our PI Web Services service! You will probably have noticed that all the data is in container structures, so it's a little bit different than we are used to.

 

A little bit more advanced example would be getting archive data.

 
// TODO Auto-generated method stub
          try {
               
               PITimeSeriesService service = new PITimeSeriesService(new URL("http://ultralisk/PIWebservices/pitimeseries.svc?wsdl"),
                         new QName("http://xml.osisoft.com/services/PIDataService", "PITimeSeriesService"));
               
               IPITimeSeries port = service.getBasicEndpoint();
               
               
               ArrayOfPIArcDataRequest requests = new ArrayOfPIArcDataRequest();
               
               PIArcDataRequest request = new PIArcDataRequest();
               
               request.setPath("\\\\Ultralisk\\cdt158");
               
               TimeRange timeRange = new TimeRange();
               timeRange.setStart("*-1h");
               timeRange.setEnd("*");
               
               PIArcManner manner = new PIArcManner();
               request.setTimeRange(timeRange);
               
               request.setPIArcManner(manner);

               requests.getPIArcDataRequest().add(request);
               ArrayOfTimeSeries result = port.getPIArchiveData(requests);
               TimeSeries serie = result.getTimeSeries().get(0);
               for (TimedValue value : serie.getTimedValues().getTimedValue())     {
                    System.out.println(serie.getPath() + " " + value.getTime() + " " + value.getValue());
               
               }
               
          } catch (Exception e) {
               // TODO Auto-generated catch block
               e.printStackTrace();
          }          

 If we run this, the output should be something like:

 

0647.metro_5F00_eclipse_5F00_com_5F00_output2.png

 

From here

 

If you look at the 'PI Web Services User Guide', you should be able to roughly translate all the operations and structures to their Java equivalent. Getting the Java classes generated and creating the connection objects is probably the unfamiliar part. Once that is set up, accessing the right PI Web Services methods and extracting the right information from the structures should be straight forward.

 

If you have any questions about PI Web Services, please have a look at the Web Services and PI discussion forum.

 

 

 

 

Maybe you have seen the blog post with attached video about a little project I've been working on. The project is to create a .NET object Serializer for PI AF.

 

In the previous video I made some suggestions for improvements, and there is some progress there. It is more and more starting to look like a nice abstraction of the AF SDK. It makes for a more declarative way of handling AF data.

 

Please find the update video below (or download it here), and you can find the updated source code attached to this post.

 

Please let me know what you think!

 

 

A lot of us are developing applications against PI AF. The AF SDK or PI OLEDB Enterprise are the way to go when you need access to PI AF data.

 

The AF SDK is very powerful when it comes to dealing with AF Data. There are a lot of options, and I think the SDK is very well structured. However, if you are like me a lot of the time you just want to quickly put data in AF, and want to quickly pull it. In a lot of cases this involves translating AF SDK calls into .NET objects.

 

This concept shows a simple AFSerializer library that allows you to quickly store .NET objects in PI AF. I think this can be much more enhanced to make PI AF more of a flexible .NET object database. Please find the demo video below (or download it here (mp4)).

 

Code sample and source code is attached below.

 

Enjoy! And let me know what you guys think of the concept.

 

 

Everyone on vCampus knows Rhys Kirk (AKA Rhys @ Wipro). He is a 2 time vCampus All-Star, and one of the most active users on the forums.

 

11/18/2008 3:38:03 PM was the date he joined us and his first post (1000 so far, and many more to come) was Dec 2 2008. 

 

We as the vCampus Team (and a few others!) would like to congratulate and thank you!

 

Thank you for all your contributions and hard work!

 

5001.Rhys_5F00_1000_5F00_youtube.png

MvanderVeeken

The joy of computing

Posted by MvanderVeeken Employee Dec 17, 2011

There are certain moments in my live when I revisit all the joyful moments that I've experienced during my live. This always makes me think back of all the good times that I had with computers. Now, this sounds like the nerdiest and geekiest thing one can imagine: and it probably is. But the fact remains that computers brought a lot of joy and excitement in my life.

 

I haven't had much of those moments in the last few years, mainly because I used computers almost only for development, email and web browsing. Now: I've experienced very good and happy moments when programming: the times when you make something very complicated work, or the times when you are amazed by your own creations. But, for me that's a different kind of 'joy'.

 

This time the cause of revisiting all those joyful moments was the upgrade of my (personal) workstation. The hardware was getting really old. Now, as we all know that 'old' is very relative if you are speaking about computer hardware. Most of my hardware (the CPU, main board, memory and graphics card) was about 6 years old. That's almost comparing Napoleonic warfare with the modern battlefield in computer-years.

 

I'm one of those people who can be really spontaneous in buying small things, but when it comes to the 'bigger' expenses, I tend to wait as long as possible and try to research as much as possible. That's why my workstation hardware got so 'old'. For the last 2,5 years I had problems with it. It would halt on boots, and Windows 7 would not install. I managed to install Ubuntu after a lot of trouble, and just kept going using my ancient machinery. In the meanwhile I looked at all the reviews and and web shops in search for 'the perfect system'. I didn't want to spend too much money, but I did want to build something that would last me at least a couple of years.

 

I visited the US during vCampus Live! 2011, and we had training in the OSIsoft office in San Leandro. That gave us some free time during the weekend. We visited a gigantic electronics store, and I was amazed by all the computer and electronics stuff they sold. 

 

I felt all curious and excited inside. Then it hit me! I was reliving my own 'joy of computing'. When I got back to the hotel I started writing it down. I wanted to share this with you, in the hope you might relive your joy you had with computers.

 

The Joy of Computing

 

 

 

I think my first experience with a ‘real’ computer was at a friend’s house. I must have been 7 or 8 back then. His father worked for a telecom company, so they were early adopters. I think their computer must have been an 8068 or a 80268, and it had a green phosphor screen. We played a lot of ‘Prince of Persia’ on it. I believe the game is now available for IPhone and Android, and I had a blast a few weeks back when I was able to play it again.

 

 

 

Then a few years later my father bought an 80368. He thought it would be good for our education. I was playing around with the DOS shell a lot, navigating through the file system, archiving and copying games on floppy disk, etc. Then a friend of my father’s came to the house one day, and he showed me how I could use batch scripts to create a simple menu for my games. I could pop up a ‘menu’ with choices, and I had batch scripts called 1.bat, 2.bat, 3.bat, that would correspond with the menu options. He then also showed me QBasic. I was stunned by what you could do with it! I quickly created more and more nice menus for my games. This all must have been in primary school.

 

 

 

When I went to secondary school (age 12 or 13), I had a friend who was also into programming with QBasic. The problem back then was that you didn’t have very good references or programming examples. It was sometimes really cumbersome to create something decent. His uncle worked at a university, and they had early access to the internet. He gave us some floppy disks with examples. At a certain point, he gave us a library to control the mouse. Together with the ‘graphics’ libraries in QBasic we were able to create more decent applications and games. I can remember I learned a lot from the ‘Gorillas’ game, which was wide spread as an example QBasic application.

 

 

 

I still had to use the ‘family’ computer for all my programming and exploration. When there was something wrong with the computer, I was always blamed. My goal in live became to get my own computer. They were pretty expensive back then. I already had ‘job’ delivering newspapers, so I started to save for my own computer. It must have taken me almost a year, and with some help of my parents (who were fed up with me crashing the family computer all the time) I was able to buy my first computer.

 

 

 

 

 

 

 

 

 

A Pentium 200 MMX, with 16mb RAM with Windows 95. I believe it costs me about $1200 at that time, which is a huge amount of money when you are 13. A few months later I bought 2 10mbit network cards with BNC cable and a couple of terminators, I can remember they were also really expensive.

 

We then moved to Turbo Pascal and C. At that time, we got more and more computers at school, and we also started to get computer lessons. We were always bored during these classes, and we were always trying to ‘get to the grade lists’ to see and change our grades. Off course we never got that far, because we had no idea what we were really doing. But I can remember we had a lot of fun exploring the school’s network.

 

I would invite friends to come over and play ‘Command & Conquer: Red Alert’. We would spent the entire morning building huge bases and armies, and then battle it out in the afternoon. We crashed the game a couple of times because there were so many units on the field!

 

I think we also got internet at that time. First with a 33k6 modem, and later we got two ISDN lines. I got my own ISDN modem, and a whole new world was opening up for me. I quickly discovered ICQ and IRC to stay in touch with my friends and meet new people. 

 

I started to use mIRC, and found out about mIRC scripting. At that time I found more school friends who were also into playing games, programming and scripting. If I think back to that time, it still makes me happy. I was learning about programming and scripting, and met a lot of people trough IRC. We discussed different programming techniques, and how we could build IRC chatbots to ‘guard’ our channels. mIRC was highly customizable, and we basically could create our own applications with it.

 

I found out about ‘IRC warfare’. Basically, this means that you try to take over IRC channels by flooding other people out of the channels, so the you are the only one left, once you ‘cycle’ (leave and rejoin), you where the operator of that channel. I became obsessed with protecting myself on IRC and trying to get as much ‘power’ as possible. We would find SOCKS proxies to get SOCK puppets onto the IRC server, and so on. We really felt we were the ‘underground hackers’ at that time. Basically, we were just enthusiastic and curious kids looking for excitement. But this gave me the opportunity to learn about basic network protocols, and I was obsessed with learning as much as possible about the IP and TCP protocol.

 

Then my father came to my room with the phone bill… I think it was about $2000 for 3 months. My parents were furious, and wanted to take away my precious ISDN modem. After some debate, and after I convinced them that ‘it was good for my future, and I was learning a lot’, we agreed that I would pay half of the bill. So, I took 2 summer jobs and paid my parents back. Luckily, sometime after that we got our first ADSL connection, which saved me a lot of money and fights with my parents.

 

To be continued...

 

 

 

 

 

 

 

 

Filter Blog

By date: By tag: