XCAP Jonathan Rosenberg dynamicsoft. Agenda XCAP Main spec changes XCAP Main spec open issues XCAP Package changes XCAP Package Open Issues Authorization.

Slides:



Advertisements
Similar presentations
SIP and Instant Messaging. SIP Summit SIP and Instant Messaging What Does Presence Have to Do With SIP? How to Deliver.
Advertisements

XCAP Tutorial Jonathan Rosenberg.
IPP Notification and Notification Services White Paper Hugo Parra; Novell, Inc. October 6, 1999 The intent of this paper is to supplement the discussions.
Yunling Wang VoIP Security COMS 4995 Nov 24, 2008 XCAP The Extensible Markup Language (XML) Configuration Access Protocol (XCAP)
SIP Working Group Jonathan Rosenberg dynamicsoft.
An Introduction to XML Based on the W3C XML Recommendations.
Session-Independent Policies draft-ietf-sipping-session-indep-policy-01 Volker Hilt Gonzalo Camarillo
SIP Working Group Stuff Jonathan Rosenberg dynamicsoft.
1 CPCP Hisham Khartabil XCON WG IETF 60, San Diego 2 nd August, 2004
XML Configuration Access Protocol (XCAP) Jonathan Rosenberg dynamicsoft.
XHTML1 Building Document Structure. XHTML2 Objectives In this chapter, you will: Learn how to create Extensible Hypertext Markup Language (XHTML) documents.
1 COS 425: Database and Information Management Systems XML and information exchange.
Hands-On Microsoft Windows Server 2003 Administration Chapter 3 Administering Active Directory.
Tutorial 11 Creating XML Document
XCON architecture and protocol musings Henning Schulzrinne Columbia University.
Introduction to XML This material is based heavily on the tutorial by the same name at
Introducing HTML & XHTML:. Goals  Understand hyperlinking  Understand how tags are formed and used.  Understand HTML as a markup language  Understand.
XP New Perspectives on XML Tutorial 4 1 XML Schema Tutorial – Carey ISBN Working with Namespaces and Schemas.
Requirements for DSML 2.0. Summary RFC 2251 fidelity Represent existing directory protocols with new transport syntax Backwards compatibility with DSML.
XP New Perspectives on XML Tutorial 3 1 DTD Tutorial – Carey ISBN
What is Sure BDCs? BDC stands for Batch Data Communication and is also known as Batch Input. It is a technique for mass input of data into SAP by simulating.
Why XML ? Problems with HTML HTML design - HTML is intended for presentation of information as Web pages. - HTML contains a fixed set of markup tags. This.
Lecture 6 of Advanced Databases XML Schema, Querying & Transformation Instructor: Mr.Ahmed Al Astal.
XHTML1 Building Document Structure Chapter 2. XHTML2 Objectives In this chapter, you will: Learn how to create Extensible Hypertext Markup Language (XHTML)
PHP meets MySQL.
WebDAV Issues Munich IETF August 11, Property URL encoding At present, spec. allows encoding of the name of a property so it can be appended to.
Processing of structured documents Spring 2002, Part 2 Helena Ahonen-Myka.
1 Tutorial 13 Validating Documents with DTDs Working with Document Type Definitions.
Avoid using attributes? Some of the problems using attributes: Attributes cannot contain multiple values (child elements can) Attributes are not easily.
ECA 228 Internet/Intranet Design I XSLT Example. ECA 228 Internet/Intranet Design I 2 CSS Limitations cannot modify content cannot insert additional text.
XSLT Kanda Runapongsa Dept. of Computer Engineering Khon Kaen University.
XML Patch Operations based on XPath selectors Jari Urpalainen IETF62 Minneapolis.
XCAP Needed Diffs Jonathan Rosenberg Cisco Systems.
Summer Computing Workshop. Introduction  Boolean Expressions – In programming, a Boolean expression is an expression that is either true or false. In.
Name of Presentation Red Hat Presenter Mobicents SIP Presence Service: XDM Server Creating XCAP Application Usages Eduardo Martins.
Introduction to XML This presentation covers introductory features of XML. What XML is and what it is not? What does it do? Put different related technologies.
XCAP Open Issues May 2004 Interim Jonathan Rosenberg dynamicsoft.
4395bis irireg Tony Hansen, Larry Masinter, Ted Hardie IETF 82, Nov 16, 2011.
Sheet 1XML Technology in E-Commerce 2001Lecture 2 XML Technology in E-Commerce Lecture 2 Logical and Physical Structure, Validity, DTD, XML Schema.
XML 2nd EDITION Tutorial 4 Working With Schemas. XP Schemas A schema is an XML document that defines the content and structure of one or more XML documents.
1 Tutorial 14 Validating Documents with Schemas Exploring the XML Schema Vocabulary.
Data Manipulation Jonathan Rosenberg dynamicsoft.
XCAP Jonathan Rosenberg dynamicsoft. Changes in Main Spec Removed POST usage Clarified the meaning of PUT for inserts vs. modifies Added AUID grammar.
SIP working group IETF#70 Essential corrections Keith Drage.
SIMPLE Drafts Jonathan Rosenberg dynamicsoft. Presence List Changes Terminology change Presence List Information Data Format –Provides version, full/partial.
Forms Collecting Data CSS Class 5. Forms Create a form Add text box Add labels Add check boxes and radio buttons Build a drop-down list Group drop-down.
XCAP Jonathan Rosenberg dynamicsoft. Agenda XCAP Base XCAP List XCAP Event Package XCAP Authorization Usage Presence Data Model XCAP Multiple Inserts.
SCIM conference call 4 September Issue #2 Add pagination capability to plural Resource attributes User Group retrieval could be resource intensive,
March 2006 CAPWAP Protocol Specification Update March 2006
SIP PUBLISH draft-ietf-simple-publish-01 Aki Niemi
Issues and Status in App Interaction Team Jonathan Rosenberg dynamicsoft.
XP New Perspectives on XML, 2 nd Edition Tutorial 7 1 TUTORIAL 7 CREATING A COMPUTATIONAL STYLESHEET.
SIP PUBLISH Method Jonathan Rosenberg dynamicsoft.
1 Java Server Pages A Java Server Page is a file consisting of HTML or XML markup into which special tags and code blocks are inserted When the page is.
Grouping Robin Burke ECT 360. Outline Extra credit Numbering, revisited Grouping: Sibling difference method Uniquifying in XPath Grouping: Muenchian method.
1 CPCP Hisham Khartabil XCON WG IETF 59, Seoul
1 © NOKIA Presentation_Name.PPT / DD-MM-YYYY / Initials Company Confidential XCAP Usage for Publishing Presence Information draft-isomaki-simple-xcap-publish-usage-00.
 XML derives its strength from a variety of supporting technologies.  Structure and data types: When using XML to exchange data among clients, partners,
SEMI-STRUCTURED DATA (XML) 1. SEMI-STRUCTURED DATA ER, Relational, ODL data models are all based on schema Structure of data is rigid and known is advance.
Jonathan Rosenberg dynamicsoft
SIP Configuration Issues: IETF 57, SIPPING
Foreign Keys Local and Global Constraints Triggers
Markus Isomäki Eva Leppänen
XML QUESTIONS AND ANSWERS
WEB API.
ISC440: Web Programming 2 Server-side Scripting PHP 3
Jonathan Rosenberg dynamicsoft
WebDAV Design Overview
Web-based Imaging Management System Working Group - WIMS
New Perspectives on XML
Presentation transcript:

XCAP Jonathan Rosenberg dynamicsoft

Agenda XCAP Main spec changes XCAP Main spec open issues XCAP Package changes XCAP Package Open Issues Authorization policies changes Authorization policies open issues List changes List open issues

XCAP Changes MIME type for PUT/GET of XML elements is application/xml-fragment-body –Did not include proposed “root” attribute to define MIME type of actual element –Reference XML fragment specification for definition of a fragment MIME type for attribute PUT/GET is application/xml-attribute-value –Contains only the value, not the name

XCAP Changes Merged replace/create subsections Clarified that PUT where parent doesn’t exist is an error, returns 409 Defined default auth policies for documents in the global tree –Read all, Write by privileged users only Clarified you cannot select comments, namespace attributes or processor instructions

XCAP Changes PUT 200 OK response is empty Etags are now constant across the whole document –Previous mechanism simply didn’t work –Client couldn’t determine etag of parent doc or element after a change, in order to change a different part Clarified data dependency behavior –Client has to GET the resulting data after a PUT, or use package –There is a change in etag URI hierarchy is a MUST implement

XCAP Changes 409 Body Type defined –Indicates error and error-specific data Schema invalid, no parent, invalid fragment or attribute value, uniqueness constraint violated For uniqueness violation, the specific URI is indicated and alternatives can be provided Client behavior for looking at 409 body and acting on it is included –Handling for other error cases is defined in RFC2616 Document URI and node selector in URI separated by “/” not “?” –GET with query strings may be problematic

XCAP Changes Documents can now use schemas not understood by the server –Document contains an XML “mustUnderstand” element listing required namespaces –Equivalent to SIP Require header field

Open Issue 1: Fragment MIME Type Issue: should MIME type be application/xml- frag+xml –That is, use the RFC3023 convention for XML MIME types –RFC3023 unclear on scope of when to use this Proposal –+xml implies a document compliant to a specific schema or DTD –This is a generic xml content type, similar to application/xml –Therefore do not use +xml convention

Issue 2: Etag Scope Previously, etag scope was a different one for each XML component Now, etag scope is whole document Problem –Rules out cases where there are multiple editors for one document, each operating over a separate section

Proposal HTTP does not mandate how the server computes etags, neither should XCAP With XCAP, there isn’t an inherent break point in the hierarchy at the document level The “natural” granularity for the etag is inherently application specific –Ideal granularity is when the normal case is that a client generally only modifies content within the scope of a single etag So, specify that application usages should define appropriate RECOMMENDED scopes, but these are not MUST –Consistent with HTTP where it’s a server choice –If done poorly in the implementation, worst case is inefficiency – protocol still works

Issue 2: Schema Extensibility Current approach is like Require –Each document uploaded by the client lists any required namespaces Jari proposed an OPTIONS-like approach –Define an app-usage that contains “supported- namespaces” in the global tree –If the client wants to upload a document which requires the server to understand, it checks this file first –If not supported, client does something different

Tradeoffs Jari’s approach moves the compatibility check to the client, current one has it in the server –Both cases rely on the client and server to properly function Jari’s approach has the check out- of-band, current one is in-band –In-band includes protocol “ugliness” within documents –Server upgrade cases vary Server upgrade, in-band implementation –Client finds out when server is upgraded only if it tries with extension –Trying results in error/retry cycle if there has been no upgrade –Not trying delays discovery Server upgrade, out-of-band implementation –Client can subscribe to list of supported namespaces –Will learn when it changes –No retrying needed Jari’s approach similar to ACAP Proposal –Adopt Jari’s approach –Include the application usage definition inside xcap spec

Issue 3: Insertion Point Currently, XCAP does not mandate where an element is inserted when multiple insertion points are possible –PUT

So what? Complicates change notifications in xcap- package Complicates subsequent ops after PUT –Client can’t know position of new element –New element position might renumber positions of existing elements –A positional selection after such a PUT will be useless Proposal: Mandate insertion at the end –Doesn’t re-index previous elements!! Very nice. –Keeps it simple

Issue 4: Other selectors Is the current set of selectors enough –Element by name –Element by value of its attribute –Element by position Primary problem is multiple siblings with the same name a b

Multi-Name Case Positional selection now much more powerful with resolution of previous issue GET and DELETE can easily target any element PUT for modification can easily target any element PUT to create at end is easy –N current elements –PUT always insertshttp://example.com/foo/bar[N+1 Only problem case: Insertion into a specific spot

Problem or not? Can we mandate that all XCAP schemas do not assign semantics to sibling ordering? –Not if we ever need to include an existing schema that has this problem –Example problem case: CPL –Likely for any other XML domain specific languages –Unlikely for XML database types of schema Row ordering irrelevant in relational DB E.g., a non-issue for xcap-cpcp No easy way to fix this in XCAP model For CPL, can PUT/GET larger pieces or whole CPL Proposal: Don’t try to solve this –Do not add any additional selectors –Add text emphasizing utility of positional selectors

Issue 5: Multiple Insertions XCAP allows for insertion or modification of a SINGLE element or attribute at a time Implications –Adding multiple buddies requires multiple operations –Adding multiple users to a dialout conference list requires multiple operations For a protocol engineered to manipulate lists, this is a serious limitation

Proposed Fix Allow for insertion, modification, fetching or deletion of multiple elements of the same name that are all siblings of the same parent –Great for list manipulations –Will not be useful for other operations How? Easy –HTTP URI can use natural Xpath techniques to select several elements –For GET and DELETE, result is obvious –For PUT If the URI matches no elements in the doc, its insertion at end After insertion, URI MUST reference elements that were present in the body If URI matched some elements in the doc, those are removed and replaced in-place –Number of elements in body must match number of elements selected by expression –Expression must point to new elements when evaluated

Selecting Multiple Elements Introduce Xpath union (|) operator within Predicates A B C

Delete Multiples DELETE C

Insert multiples PUT D E A B C D E

Modify Multiples PUT AA BB AA BB C

Proposal Add this capability to XCAP NOTE: Not sure on syntax; seems to work according to spec but doesn’t work in XML Spy

Issue 6: Directories Important for a client to learn about the documents it owns –Bootstrapping for endpoints –Determine set of available auth policies for a presence server Proposal on list –Define an application usage that provides list of documents and their etags –And/or use package to subscribe to all documents owned by a user Do we need both?

XCAP Package Changes Notifications contain etags Subscriptions to documents in the global three through a well-known username “global-xcap-user” Pending: Allow for subscriptions to all docs for a user

Issue 1: Scope Scope 1 –Only find out the doc changed –Effectively a subscription to the etags Scope 2 –Subscribe to change log –Find out what the change is, but initial NOTIFY only gives initial etag, not actual document Scope 3 –Subscribe to document –Initial notify contains full document –Subsequent notifies contain change

Pros/Cons Scope 1 is the simplest, ideal for where a single user edits their own doc as the normal case Scope 3 is general purpose, more complex, overalps a bit with XCAP itself –HTTP GET or initial SUBSCRIBE return full doc Not clear scope 2 buys much over 3 Proposal: –Scope 3 –Add package parameter to ask just for etags

Issue 2: Deterministic Changes Change notification format doesn’t specify where an insert occurs With current XCAP, server and client may compute different documents This is resolved with previous XCAP proposals

Issue 3: Config Framework Should we align xcap package with SIP configuration framework?

Authorization Changes draft-ietf-geopriv-common draft-rosenberg-simple-rulesdraft-ietf-geopriv-policy draft-rosenberg-simple-common-policy-caps draft-rosenberg-simple-pres-policy-capsTBW

Authorization Changes All conditions are part of a element New condition Only domains have clauses condition Removed condition Explicit subscription confirmation action Explicit polite blocking action Explicit rejection of subscriptions Removed action a global condition Three xforms – show tuple, show-namespace, show- element –Each applied independently –Each takes a pass at removing data –Unfortunately they overlap in coverage Less xcap centric

Issue 1: Semantic v. Syntactic Current policies are syntactic oriented –Can specify policies for PIDF elements not yet defined However –Overlap in which XML components are selected by each policy introduces complexity –Certain policies are not easily expressed syntactically –Mapping from syntactic policies to UI may be complex –Easy for rules to create invalid PIDF documents –Attribute restrictions would introduce sizeable XPath complexity [?]

Proposal: Semantic Include basic PIDF policies –Control access to note –Control number and types of tuples Include RPID policies –Primarily hide or show each attribute –Possibly globally or per tuple using class Include guidelines for other PIDF extensions to define their own policies Specific details on list shortly

Presence List Changes No authorization specified here about who can subscribe to the list Display name optional Entry URI mandatory, id optional Added which points to an entry elsewhere in the list –Allows one buddy to appear on multiple lists without repeating information

Issue 1: Other List Source In many systems, some other list (possibly non-XCAP) will serve as the real “address book” –Enterprise directories –Wireless phone book In such a case, most information on users resides there Presence list need only contain flat list of URIs for the presence list –No structure needed –No auxiliary data needed – display name, etc. Client needs to know whether it should put structure and aux data into presence list or not Proposal: Define a global document that includes such an indication

Advanced IM Requirements Outlines requirements for new work to cover –IM delivery notifications –IM “is typing” indicators –IM receipt capabilities –Group page mode –Invitations to non-real-time sessions Most discussion on mechanisms for IM delivery Main question – are we still interested in each of these?