OPTIMIZING YOUR PI SDK APPLICATIONS BUILDERS' CAFÉ WEBINAR SERIES



Similar documents
Developing Analytics with Microsoft StreamInsight & PI for StreamInsight

Donky Technical Overview

Best Practices for Using and Deploying the Asset Framework

MS 10978A Introduction to Azure for Developers

Microsoft Introduction to Azure for Developers

Course 10978A Introduction to Azure for Developers

10978A: Introduction to Azure for Developers

Developing Microsoft SharePoint Server 2013 Advanced Solutions MOC 20489

Deploying Microsoft Operations Manager with the BIG-IP system and icontrol

FUTURE DATA Yes, it s finally coming to the PI System!

Compute Cluster Server Lab 3: Debugging the parallel MPI programs in Microsoft Visual Studio 2005

New Features for Sybase Mobile SDK and Runtime. Sybase Unwired Platform 2.1 ESD #2

OSIsoft Field Service Adding Value to your PI System

Monitoring Nginx Server

PI Cloud Connect Overview

Introduction to Azure for Developers

Programming in C# with Microsoft Visual Studio 2010

Auditing a Web Application. Brad Ruppert. SANS Technology Institute GWAS Presentation 1

Developing Algo Trading Applications with SmartQuant Framework The Getting Started Guide SmartQuant Ltd Dr. Anton B.

Designing and Developing Web Applications by using the Microsoft.NET Framework

Jitterbit Technical Overview : Microsoft Dynamics CRM

Basic Unix/Linux 1. Software Testing Interview Prep

DE-20489B Developing Microsoft SharePoint Server 2013 Advanced Solutions

: provid.ir

SQL Server Replication Guide

Monitoring Oracle Enterprise Performance Management System Release Deployments from Oracle Enterprise Manager 12c

Advanced Web Application Development using Microsoft ASP.NET

Deploying Cisco Unified Contact Center Express Volume 1

Course Name: ADVANCE COURSE IN SOFTWARE DEVELOPMENT (Specialization:.Net Technologies)

HarePoint Workflow Extensions for Office 365. Quick Start Guide

Novell Identity Manager

MS 20487A Developing Windows Azure and Web Services

INTERMEDIATE ANDROID DEVELOPMENT Course Syllabus

SharePoint Checklist and Resources

Architecture and Best Practices: Recommendations for PI Systems

VPS Remote Computing. Connecting to a Windows Server for the first time. 1 Your Server has been installed. 2 Finding the login details for your Server

Secure Messaging Server Console... 2

SOA REFERENCE ARCHITECTURE: WEB TIER

Rebasoft Auditor Quick Start Guide

Setup Guide: Server-side synchronization for CRM Online and Exchange Server

FAQ: Data Services Real Time Set Up

Transition your MCPD Web Developer Skills to MCPD ASP.NET Developer 3.5 (VB)

Configuration Guide - OneDesk to SalesForce Connector

WORKING WITH LOAD BALANCING AND QUEUEING FOR ADOBE INDESIGN CS5 SERVER

Oracle Database 11g: RAC Administration Release 2

6231B: Maintaining a Microsoft SQL Server 2008 R2 Database

This three-day instructor-led course provides students with the tools to extend Microsoft Dynamics CRM 4.0.

Table of Contents. Adding Build Targets to the SDK 8 The Android Developer Tools (ADT) Plug-in for Eclipse 9

McAfee VirusScan and epolicy Orchestrator Administration Course

MOC 20488B: Developing Microsoft SharePoint Server 2013 Core Solutions

Course 20489B: Developing Microsoft SharePoint Server 2013 Advanced Solutions OVERVIEW

The Road Ahead: Bridging Platform Releases 1 and 2. Ken Marsh Service Manger OSI Software Asia

Microsoft Dynamics AX Windows 8 App Starter Kit. App Development Guide Version 1.0

Java SE 7 Programming

SnapLogic Salesforce Snap Reference

Software Requirements Specification. Schlumberger Scheduling Assistant. for. Version 0.2. Prepared by Design Team A. Rice University COMP410/539

BarTender s.net SDKs

VantagePoint Getting Results Guide

Noramsoft Inc. Noramsoft Inc. SPT2O1O - Course Description. Developing Solutions with SharePoint Server 2010 SPT2010. Noramsoft Inc. Noramsoft Inc.

Course Outline: Course 20489B: Developing Microsoft SharePoint Server 2013 Advanced Solutions

Game Programming with DXFramework

Lambda Architecture. Near Real-Time Big Data Analytics Using Hadoop. January Website:

Performance Monitor. Intellicus Web-based Reporting Suite Version 4.5. Enterprise Professional Smart Developer Smart Viewer

Marketo GoToWebinar Adapter. User Guide Version 3.5

Tomcat Tuning. Mark Thomas April 2009

2311A: Advanced Web Application Development using Microsoft ASP.NET Course 2311A Three days Instructor-led

Developing Microsoft SharePoint Server 2013 Advanced Solutions

Advanced Web Application Development using Microsoft ASP.NET

Definiens XD Release Notes

Getting Started with STATISTICA Enterprise Programming

Microsoft Dynamics Training

2012 Nolio Ltd. All rights reserved

Migrating to vcloud Automation Center 6.1

Hands-On Lab. Embracing Continuous Delivery with Release Management for Visual Studio Lab version: Last updated: 12/11/2013

Oracle 11g Database Administration

Hansoft LDAP Integration

Feature Integration Across Microsoft Office Server Products SharePoint Server, Exchange Server, Lync Server, and Office Web Apps

Extending Microsoft Dynamics CRM 4.0

Release Notes Scribe Adapter for Microsoft Dynamics

Jitterbit Technical Overview : Salesforce

Eloquence Training What s new in Eloquence B.08.00

NovaBACKUP Central Management Console

To install Multifront you need to have familiarity with Internet Information Services (IIS), Microsoft.NET Framework and SQL Server 2008.

socketio Documentation

Colligo Contributor 4.4 SP2 for Terminal Services. User Guide

CSC 2405: Computer Systems II

ASP.NET Using C# (VS2012)

70-487: Developing Windows Azure and Web Services

Discovery Guide. Secret Server. Table of Contents

User's Guide. ControlPoint. Change Manager (Advanced Copy) SharePoint Migration. v. 4.0

Gladinet Cloud Backup V3.0 User Guide

ANPI VIP Call Center. A Hosted Call Center Solution. User Guide

This module provides an overview of service and cloud technologies using the Microsoft.NET Framework and the Windows Azure cloud.

LabVIEW Advanced Programming Techniques

Create Reports Utilizing SQL Server Reporting Services and PI OLEDB. Tutorial

What's New in SAS Data Management

Developing Microsoft SharePoint Server 2013 Advanced Solutions

Transcription:

OPTIMIZING YOUR PI SDK APPLICATIONS BUILDERS' CAFÉ WEBINAR SERIES

PRESENTERS Jay Lakumb Product Manager Charlie Henze Software Development Lead Cristóbal Escamilla vcampus Team Member 2

VCAMPUS-EXCLUSIVE WEBINARS The Builders' Café Webinar Series Submit your ideas here: 3

AGENDA Optimization your PI SDK Applications Leveraging PI Server Mechanisms Threads Asynchronous Functions ListData Functions EventPipes Conclusion PI SDK Roadmap (Hint: SDK Buffering!) 4

THE OSISOFT SDKS PI SDK PI Points (Attributes & Data) PI Server Message Log Various PI Databases (Users & Groups, etc.) AF SDK AF Databases, Elements, Attributes AF Analysis Rules (ARs) and Data References (DRs) AF Connectivity Models and Cases Notifications SDK (a.k.a. AN SDK) Notification Configuration (including Delivery Channel) Manipulation of notification instances Event Frames SDK (a.k.a. EF SDK) 5

PROGRAMMING WITH PI SDK Assemblies (installed in GAC Global Assembly Cache) OSIsoft.PISDK OSIsoft.PISDKCommon OSIsoft.PISDKDlg OSIsoft.PITimeServer 6

PROGRAMMING WITH PI SDK Assemblies (installed in GAC Global Assembly Cache) OSIsoft.PISDK OSIsoft.PISDKCommon OSIsoft.PISDKDlg OSIsoft.PITimeServer Help File: \PIPC\Help\PISDK.CHM Manage/Find PI Points Read/Write Data Perform Calculations Invoke Common Dialog Windows... 6

WAYS TO OPTIMIZE PI SDK APPLICATIONS Connection Pooling One ServerManager hierarchy per thread Single sign on inherits caller s Windows identity. Supports PITrust and PIIdentity (Interactive Login not supported) One multiplexed connection at the network layer. The PI SDK object also inherits user s identity but does not optimize sharing of equivalent authorization. PISDK Asynchronous Calls Non-blocking calls Easy to implement ListData Functions Grouping of tags May reduce the number of calls Event Pipes Sign up for updates instead of polling 7

OPTIMIZING YOUR PI SDK APPLICATIONS

Single-Thread Linear execution Susceptible to blocking calls Low code complexity Easy to debug SINGLE VS.MULTI Multi-Thread Parallel/concurrent execution Susceptible to thread-locks/race/starve conditions Increases application complexity 9

IMPERSONATION LogonUser Attempts to log a user on to the local computer If successful you receive a handle to a token that represents the logged-on user Use this token handle to impersonate the specified user via the WindowsIdentity.Impersonate. LogonUser function is part of the Advapi32.dll library and needs to be included explicitly in your application. C# Example: 10

CLOSEHANDLE FUNCTION CloseHandle Closes an open object handle (in this case an Access Token) Invalidates the specified object handle, decrements the object's handle count, and performs object retention checks After the last handle to an object is closed, the object is removed from the system. CloseHandle function is part of the Kernel32.dll library and needs to be included explicitly in your application. C# Example: 11

DEMONSTRATION 12

LEVERAGING PI SERVER MECHANISMS

CONCURRENCY FROM MULTIPLE CLIENTS PI Server is a multi-process, multi-threaded system Each process (subsystem) has a different number of RPC threads by default View/Change these in SMT > Tuning Parameters This is leveraged in client applications 14

SYNCHRONOUS & ASYNCHRONOUS Synchronous Function return when it finishes the process Execution of the program will wait for the value to be available (user interface won t be responsive) Asynchronous Function returns immediately Execution of the program continues Program needs to monitor the status of the pending function calls (the user interface is responsive) Output arguments must be cleaned up by the developer. 15

ASYNCHRONOUS There are three methods you could use to check the status of a PIAsynchStatus object: Loop for status to change. Register a Windows Event Callback. Wait for a call completion handle change. 16

DEMONSTRATION 17

ASYNCHRONOUS FUNCTIONS Find the latest list in \PIPC\HELP\pisdk.chm (under PIAsynchStatus Object ) 18

LISTDATA FUNCTIONS Some functions take a list of tags and return one value per tag, those can help you optimize queries to make less calls and improve performance: ListData.Snapshot ListData.ArcValue Both return a PISDK.PointValues collection 19

PLOTVALUES Given a start and end time and number of desired plotting intervals (typically pixels) return values suitable for plotting in a PIValues collection Supports Asynchronous calling Only brings the minimum number of values required to represent the trend at the passed resolution. 20

USING EVENTPIPES Generic channel/listener for various PI events Subscribes for updates to the PI Update Manager Supported by objects like: PIData, ListData PIPoints See the "Deeper in PI SDK«webinar Recorded September 30th, 2009 http://vcampus.osisoft.com/media/p/2109.aspx 21

CONCLUSION

PI SDK ROADMAP SDK 2010 (1.4) Major Features: Buffering (aka client-side buffering) Fanning to High Availability PI Collective Use Cases: PI Clients and PI Data Access products that write to PI Manual entry applications Custom interfaces Schedule: Targeted for H2 2010 See Engineering Plan on Tech Support site Prerequisites: PI Server 3.4.375 or higher (may require upgrade) 23

WHAT SHOULD I USE? Improve UI responsiveness using an asynchronous design and/or EventPipe Performance and scalability with PIAsynchStatus Improve scalability with Connection pooling Reduce data transfers by delegating standard calculations to the PI Server Minimize server calls using EventPipe and ListData.ArcValue Visual Studio 2008 Team Use Application profiler to find bottle necks http://msdn.microsoft.com/en-us/magazine/cc337887.aspx 24

WHAT SHOULD I USE? Enabling PI SDK Tracing you can: Find out what PI SDK calls a running application is making Know how long those calls are taking to execute Impact performance negatively, so please remember to revert the values when you are no longer needing it. 25

Q & A Users on Conference Call: Please do not put the call on hold as we would probably hear music! Users on Internet Audio: Type your questions in LiveMeeting 26

VCAMPUS-EXCLUSIVE WEBINARS The "Builders' Café" Webinar Series Submit your ideas here: 27

NEXT VCAMPUS WEBINARS 28

HOW TO CONTACT US vcampus Discussion Forums vcampus@osisoft.com http://twitter.com/osisoftvcampus http://vcampus.osisoft.com > Contact Us 29