LCS Server Programmability John Lamb Consultant Microsoft UK.

Slides:



Advertisements
Similar presentations
VON Europe /19/00 SIP and the Future of VON Protocols SIP and the Future of VON Protocols: Presence and IM Jonathan Rosenberg.
Advertisements

Fall VoN 2000 SIP for IP Communications Jonathan Rosenberg Chief Scientist.
What's New in HotDocs 2006 & 2007 August 21, 2007 Capstone Practice Systems Marc Lauritsen, Bart Earle, Alan Soudakoff.
18 Copyright © 2005, Oracle. All rights reserved. Distributing Modular Applications: Introduction to Web Services.
JD Edwards Service JD Edwards Service SAP Service SAP Service Java Appl. Service Java Appl. Service.Net Appl. Service.Net Appl. Service CICS Service.
Overview of Web Services
Microsoft Office System UK Developers Conference Radisson Edwardian, Heathrow 29 th & 30 th June 2005.
Web Services Darshan R. Kapadia Gregor von Laszewski 1http://grid.rit.edu.
Web Services Nasrullah. Motivation about web service There are number of programms over the internet that need to communicate with other programms over.
Want to join Lync MVPs and speakers at an exclusive Pub Trivia Night tonight? Tweet a photo from a Lync session using the hashtag #LyncTEE for your.
Software Frame Simulator (SFS) Technion CS Computer Communications Lab (236340) in cooperation with ECI telecom Uri Ferri & Ynon Cohen January 2007.
G O B E Y O N D C O N V E N T I O N WORF: Developing DB2 UDB based Web Services on a Websphere Application Server Kris Van Thillo, ABIS Training & Consulting.
Understand Web Services
14 1 Chapter 14 Database Connectivity and Web Development Database Systems: Design, Implementation, and Management, Seventh Edition, Rob and Coronel.
V0.01 © 2009 Research In Motion Limited Understanding Java APIs for Mobile Devices Trainer name Date.
The 100% Inspiration Tour. Web Services – An Industry Approach to the evolution of Distributed Architecture Mark Johnston Academic Team, Microsoft UK.
Objective In this session we will discuss about : What is ADO. NET ?
Microsoft Windows Server 2003 TCP/IP Protocols and Services Technical Reference Slide: 1 Lesson 20 RADIUS and Internet Authentication Service.
Today’s Agenda Bill Presentment Overview Demo. Tailoring Your Invoices with Oracle’s Bill Presentment Architecture March 7, 2005.
Getting Started with Windows Communication Foundation 4.5 Ed Jones, MCT, MCPD, MCTS Consultant RBA Inc.
1 Simple Object Access Protocol (SOAP) by Kazi Huque.
XML on the Web: is it still relevant? O'Neil D. Delpratt.
Introduction SOAP History Technical Architecture SOAP in Industry Summary References.
Interoperability Scenario Producing summary versions of compound multimedia historical documents.
V0.1 BlackBerry HTML5/WebWorks Applications for the BlackBerry ® PlayBook™ Tablet BlackBerry Academic Program Module 5 - Writing HTML5/WebWorks API Extensions.
Web Service Bright + Ong. Meaning A collection of protocols and standards used for exchanging data between applications or systems Written in various.
Fundamentals of Database Chapter 7 Database Technologies.
Building Data Visualization Solutions with Visio 2007 Paul Holdaway Microsoft Consulting Services (UK)
Web Services Description Language (WSDL) Jason Glenn CDA 5937 Process Coordination in Service and Computational Grids September 30, 2002.
Call Control with SIP Brian Elliott, Director of Engineering, NMS.
CSC8530 Distributed Systems XML Web Services David Vaglia.
Lecture 15 Introduction to Web Services Web Service Applications.
Kuali Enterprise Workflow Presented at ITANA October 2009 Eric Westfall – Kuali Rice Project Manager.
HTTP Extension Framework Name: Qin Zhao Id:
Copyright © PASS Consulting Corp., Miami 2001 XX/1 XML Application Server.
COM+ And CORBA Interop With XML-Based Web Services Jay Schmelzer Partner Clarity Consulting, Inc
B. RAMAMURTHY Developing Applications with SaaS (Software as a Service) 11/4/
Introducing the ABCs of Windows Communication Foundation | Feb 2006 rickgaribay.net Windows Communication Foundation Hosting & Endpoints Winter 2006.
The Client This is the overview of the client that manages the rendering of scenes, interaction, interpolation of local model, and inter- action with the.
Omar A. Abouabdalla Network Research Group (USM) SIP – Functionality and Structure of the Protocol SIP – Functionality and Structure of the Protocol By.
TC 57 PSCE09 - CIM Status Update Panel Session Introduction Ed Dobrowolski, NERC.
Establishing a foundation for web services Ashraf Memon.
1 Web Services Web and Database Management System.
Josh Twist Principal Consultant, Microsoft UK
Topics. Service Bus- Topics Service Bus topics and subscriptions support a publish/subscribe messaging communication model. When using topics and subscriptions,
Andrew Allen Communication Service Identifier.
Kemal Baykal Rasim Ismayilov
What is SOAP? Luciano Piccoli. SOAP – Simple Object Access Protocol  SOAP is an XML based protocol to let software components and applications communicate.
1 ADO.NET Data Services Mike Taulty Developer & Platform Group Microsoft Ltd
Core VoIP and 911 issues and alternatives Henning Schulzrinne Columbia University August 2003.
Chapter 7: Creating and Consuming XML Web Services Understanding XML Web Services Creating XML Web Services Deploying and Discovering XML Web Services.
Agenda Pattern Authenticate a user against UCWA Operations happen using the user’s identity Interact with the UCWA service endpoint Make HTTP requests.
Intro to Web Services Dr. John P. Abraham UTPA. What are Web Services? Applications execute across multiple computers on a network.  The machine on which.
PCE 64 th IETF PCE Policy Architecture draft-berger-pce-policy-architecture-00.txt Lou Berger Igor Bryskin Dimitri Papadimitriou.
Introduction to Web Services Presented by Sarath Chandra Dorbala.
Introduction to the World Wide Web & Internet CIS 101.
Microsoft Office System UK Developers Conference Radisson Edwardian, Heathrow 29 th & 30 th June 2005.
DISCO/UDDI -Ketan Reddy Peddabachi. Agenda Web Service Disco UDDI Disco Vs UDDI.
Session-Independent Policies draft-ietf-sipping-session-indep-policy-00 Volker Hilt Gonzalo Camarillo
WebApi: What is it? How can I use it? Guy In Front of the Whittaker.
Application Integration Framework (AIF) Dean Wierman Lead Program Manager Microsoft Corporation.
Added Value to XForms by Web Services Supporting XML Protocols Elina Vartiainen Timo-Pekka Viljamaa T Research Seminar on Digital Media Autumn.
Name of Presentation Red Hat Presenter RED HAT Developer conference Brno 2009 Mobicents/JBCP Pavel Slegr.
Session-Independent Policies draft-ietf-sipping-session-indep-policy-02 Volker Hilt Jonathan Rosenberg Gonzalo.
WEB SERVICES.
Jonathan Rosenberg dynamicsoft
Exact Cisco Exam Dumps Real Exam Questions Answers
Louis DeJardin | Software Developer, Microsoft
網際網路電話系統 期中考重點整理.
.NET Framework V3.5+ & RESTful web services
Presentation transcript:

LCS Server Programmability John Lamb Consultant Microsoft UK

Agenda Overview of server APIs Review of existing features Changes in Live Communications Server 2005 Building server applications for maximum performance

Server APIs – Overview Expose SIP- No abstraction Allows application to only receive messages it requires Routing and proxy functionality Allow multiple applications to run on one server Do not impose an extensive framework on applications

Server APIs Primary components Application manifest SPL Managed extensions (optional) Performance implications in each

Component Interaction

Application Manifest What? XML formatted document Why? Describes the application to the server Application URI Filtering rules (request type, response class, strict route, etc) SPL container Where? Presented to the server when the application registers First application component to see any message

Manifest – Example <r:applicationManifest r:appUri=" tentModification" xmlns:r=" <r:requestFilter methodNames="INVITE,MESSAGE" strictRoute="true" registrarGenerated="false" domainSupported="false"/> <![CDATA[

SPL What? SPL- SIP processing language Why? Easy to use scripting language able to write powerful filter and routing rules Syntax similar to C# Very limited set of capabilities(Ex- no looping, static variables, or arithmetic) Where? Messages that pass the manifest Runs in process

SPL - SIP support Access to SIP message components providing capabilities Filtering Response codes (Ex- 302) Headers contents (Ex- Routing Proxy and respond Simple message modification Add/modify headers Change message content Access to endpoint data

SPL – Example <![CDATA[ Log("Debug", false, "Entering ContentModification.am"); userUri = GetUri(sipRequest.To); remoteHost = GetHostName(userUri); If (remoteHost != northwindtraders.com) { index = IndexOfString(sipRequest.Content, guarantee"); …

SPL – Example if (index != -1) { sipRequest.Content = Concatenate(sipRequest.Content, "\r\n**** Contoso Financial makes no binding guarantees of future performance***"); Log("Debug", false, " Message body matched substring; modified content"); } } ProxyRequest(""); ]]>

Managed APIs What? Managed API-.NET Framework SIP Class Library provides low level access to SIP semantics Why? Building standalone applications Allows application to provide more complex logic than SPL Where? Invoked from within SPL Outside of server process

Managed APIs – SIP Support All data available to SPL Messages, header contents Message content.NET facilities available for XML doc parsing, SDP, etc. Additional data Transaction objects Transaction semantics provided by the APIs Event/error handling

Managed APIs – Out Of Process Existing app integration Provides SIP awareness to legacy applications Ex- virus scanning, media relay Server security Misbehaved applications Attack vulnerability

Managed APIs – Sample <r:applicationManifest r:appUri=" gNotice" xmlns:r=" <r:requestFilter methodNames="MESSAGE,ACK" strictRoute="true" registrarGenerated="false" domainSupported="false"/> <![CDATA[ Dispatch("OnRequest"); ]]>

Managed APIs – Sample public void OnRequest(object sender, RequestReceivedEventArgs e) { string CallId = GetHeaderValue(e.Request, "Call-Id"); SessionState state = GetSessionState(e.Request); switch (state) { case SessionState.Unknown: if (e.Request.StandardMethod == Request.StandardMethodType.Ack) { UpdateSessionState(CallId, SessionState.ModifyNextIM); } else if (e.Request.StandardMethod == Request.StandardMethodType.Bye) { DeleteState(CallId); } break;

Managed APIs – Sample case SessionState.ModifyNextIM: if (e.Request.StandardMethod == Request.StandardMethodType.Message) { string ToAddr = GetHeaderValue(e.Request, "To"); if (!ParticipantWarned(CallId, ToAddr)) { e.Request.Content += "\r\n(*** This conversation may be logged. ***)"; MarkParticipant(CallId, ToAddr); } if (WarnCount(CallId) == 2) { DeleteState(CallId); } }

SPL – Performance Minimal impact SPL app should not affect engineered capacity of server Avoid registration data lookup until necessary *More significant perf impact when weighed against Managed APIs

Managed APIs – Performance Design wisely for maximum performance Filter via manifest and SPL Dispatch only when necessary By definition, SPL is better performing than Managed APIs

Performance – Best Practices Never do in SPL or managed code what you can do in a manifest Bad- <r:requestFilter methodNames="ALL"... if (sipRequest.Method == StandardMethod.MESSAGE) Good- <r:requestFilter methodNames="MESSAGE"...

Performance – Best Practices Filter before calling Dispatch() Bad- SPL: Dispatch(); Managed: if (response.statusCode != 200) return; Good- SPL: if (sipResponse.StatusCode == 200) Dispatch();

Whats New? Server roles Live Communications Server 2005 feature support Presence Optimizations Server Roles (Topology) Message origin (Access Proxy) Other SPL routing enhancements Presence based routing Flat file access Enhancements to existing objects

Whats NOT? UAC Functionality Applications do not have the capability to generate requests WMI Access from SPL Only managed applications can integrate WMI

New Features – Server Roles Several new server roles introduced Director, Access Proxy, Forwarding Proxy Each role has unique behavior DMZ Front-EndDirector Outside User Federated Company AD Access Proxy Enterprise Deployment

New Features – Server Roles Server applications may run on ANY server role What server should my app be running on? May depend on existing topology Examine message path of target activity Consider data needs Ex- Access Proxy does NOT have access to user database Deploy for performance

New Features – Presence Optimizations Recap- BENOTIFY Response- less NOTIFY Subscription piggybacking Embedding presence documents in responses SubscribeResponseNOTIFYResponseNOTIFYResponse SubscribeResponseBENOTIFY

New Features – Presence Optimization Support BENOTIFY BENOTIFY added to list of known SIP verbs Any application that inspects NOTIFY requests should inspect BENOTIFY Applications must NOT rely on responses SPL and Managed APIs Subscription piggybacking No specific features added Not ALL presence documents now available to applications in the server pools

New Features – Message Stamping Applications may require exchanging state In FE pools Stamping messages so that app runs only once per user (Ex- logging) Exchange state between application instances easily Functions provided for setting stamps and querying for existing stamps SPL and Managed APIs

New Features – Message Origin Only relevant to Access Proxy based applications Allows application logic depending upon message entering or leaving the network SPL and Managed APIs Access Proxy Federated Traffic (Outside) Enterprise Traffic (Inside)

New Features – Flat File Flat file access (SPL only) Allows SPL scripts access to delimited text files Provides a source for data- name/value pairs (128K max) Example usage- Phone routing tables Specific user set requires special handling

New Features – XML access XML document access (SPL only) GetXMLAttr(…) function Useful for Routing based on presence stored in endpoint database Inspection of SERVICE requests Attribute search based on 1st occurrence from XPath provided

Additional New Features SPL String operations Header enum- optimized header lookup Dispatch- able to pass additional parameters to managed code null may now be return from several functions Allows applications do differentiate between not found and empty string()

Backward Compatibility What about my Live Communications Server 2003 applications? Applications run in 2005 without modification No 2005 changes affect existing application Beware of 2003 app execution in FE pools Modified Applications Manifest must be updated to target 2005 if the applicaton (SPL or managed) is modified to use any 2005 features

Additional Info API Documentation on MSDN- us/lcs2005/rtc/portal.asp us/lcs2005/rtc/portal.asp us/lcs2005/rtc/portal.asp Application Deployment Guide (To be published)

© 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.