3 Replies Latest reply on Apr 4, 2010 4:06 PM by Gopal

    Web Service Delivery Channel

    Lonnie Bowling

      During my leisure time I was reading the PI Notifications User Guide and was wondering what the thought is behind the web service delivery channel.  From what I understand, it uses notification to call a method from a webservice, but what is that method suppose to accomplish?  It is just for sending the content to a service and that service is suppose to do something with it, like maybe sending it into a message system or database?  Just wondering if anyone has done something with it or if there are any examples floating around.

        • Re: Web Service Delivery Channel

          A web service method can abstract pretty much any action from any kind of system, which means invoking it from PI Notifications could serve pretty much any purpose (I know, this ain't useful so far... ).


          I'm sure the community will come up with some examples (and chances are you'll hear more about this during our upcoming Users Conference), but here are a few use cases:

          • A web service that creates a work order, or some kind of task or alert, in a given system (a maintenance system?)
          • A web service that makes sends an SMS to a cell phone (I feel some Norwegian member will chime in soon... )
          • A web service that makes a phone call (this could be using some IP telephony system's API or Microsoft OCS). See an example with Skype, in this blog post from Andreas

          You could "wrap" your own actions to a particular system/database/file and expose them as web services, and then call them from PI Notifications... sky's the limit!


          Hope this helps!

          • Re: Web Service Delivery Channel

            In my previous life, I used this feature to interact with a Sharepoint document library, and therefore to kick-start a Sharepoint workflow.  Sharepoint publishes a fairly complete set of web services for interacting with the capabilities fo the portal.  It's nice to be able to use these capabilites to extend what happens in response to an event comming from PI.


            Another application that's seeing more use is posting messages to ERP or maintenance systems.  PI Notifications can detect, for instance, that the run time on a motor has exceeded 1000 hours (I'm making up the numbers here) and can, via the web service delivery channel, post the name of the motor and the actual run time to the maintenance system.

              • Re: Web Service Delivery Channel

                To continue w/Matt’s thoughts, web services, in general, offers a flexible and potent method to exchange PI and AF data in context with other line-of-business (LOB) systems.


                In addition to the web service delivery channel, you can also use the XML Delivery Channel (included in the PI Notifications Developer’s Kit and is a free download for vCampus members) to “push data from PI” to any external system.  Full (C# and VB) code is included in the XML Delivery Channel download so that you can make some quick extensions to the delivery channel behavior, for example:


                >Use a NotificationName prefix and a TriggerTimestamp suffix to the XML filename as the file is written out.


                >Use XSLT to transform the XML file from the Notification format to your custom format


                >Use the XML schema from a WSDL to transform to the appropriate format and then call a web service (note that this allows you to pass any data type to the web service since you are constructing the XML content directly)


                >Send the XML to an ftp site


                We will get into much more details on the above “push data from PI” use cases as well as several “pull data from PI” scenarios at UC2010 – see you there.   The UC2010 talk is titled "Enterprise Integration and PI Data Access."