Peer-to-peer Ink Messaging across Heterogeneous Devices and Platforms

Similar documents
Streaming-Archival InkML Conversion

This is a sample chapter of WebRTC: APIs and RTCWEB Protocols of the HTML5 Real-Time Web by Alan B. Johnston and Daniel C. Burnett.

Content Management for the Defense Intelligence Enterprise

Cisco Unified Presence 8.0

[MS-RDPECLIP]: Remote Desktop Protocol: Clipboard Virtual Channel Extension

XEP-0206: XMPP Over BOSH

XMPP Illustrated: Getting to Know XMPP

iscsi Technology: A Convergence of Networking and Storage

MPEG-21: The 21st Century Multimedia Framework

XML ALONE IS NOT SUFFICIENT FOR EFFECTIVE WEBEDI

Enhancing Wrapper Usability through Ontology Sharing and Large Scale Cooperation

FIPA ACL Message Structure Specification

IEEE Issues in Microgrids Evolution towards a distributed energy future William J. Miller, President, MaCT USA

Business Data Communications and Networking

Software Design Specification

Verint Knowledge Management Solution Brief Overview of the Unique Capabilities and Benefits of Verint Knowledge Management

[MC-SMP]: Session Multiplex Protocol. Intellectual Property Rights Notice for Open Specifications Documentation

Request for Comments: Xerox Corporation December Functional Requirements for Uniform Resource Names

Shiksha: A Novel Architecture for Teleteaching Using Handwriting as a Perceptually Significant Temporal Media

Network Applications and Protocols

Unit A: Computer and Internet Basics

Chapter 3. E-commerce The Evolution of the Internet 1961 Present. The Internet: Technology Background. The Internet: Key Technology Concepts

INTRODUCING THE UNIFIED E-BOOK FORMAT AND A HYBRID LIBRARY 2.0 APPLICATION MODEL BASED ON IT. 1. Introduction

X-Communicator: Implementing an advanced adaptive SIP-based User Agent for Multimedia Communication

6 Computer Networks 6.1. Foundations of Computer Science Cengage Learning

How to Exploit Abstract User Interfaces in MARIA

Presence and IM: Reduce Distractions and Increase Productivity

Building toward a unified communications strategy

Software interoperability in the NGN Service layer

Networking interview questions

HP Instant Support Enterprise Edition (ISEE) Security overview

This tutorial will help you in understanding IPv4 and its associated terminologies along with appropriate references and examples.

NGN: Carriers and Vendors Must Take Security Seriously

RiverInk An Extensible Framework for Multimodal Interoperable Ink *

XEP-0412: XMPP Compliance Suites 2019

Wide Area Network Device Presence Protocol (WAN DPP)

Intended status: Informational. B. Wyman October 2, 2007

USER GUIDE. Lync Standard. Contents. This guide will take you through the step by step features of Lync Standard. 1. Starting Lync

AQU Information Systems Fundamentals Spring 2012 Pg. 9.1

A Plexos International Network Operating Technology May 2006

This document is a preview generated by EVS

ptop: A Process-level Power Profiling Tool

[MS-TURNBWM]: Traversal using Relay NAT (TURN) Bandwidth Management Extensions

Integrating Contextual Video Annotation into Media Authoring for Video Podcasting and Digital Medical Records

Integrated Quick Messaging System for Mobile Phones Priya Dingria, Babita Doda, Rohini Temkar VES Institute of Technology, Chembur, Mumbai

XEP-0042: Jabber OOB Broadcast Service (JOBS)

Device Independent Principles for Adapted Content Delivery

XEP-0033: Extended Stanza Addressing

Jabber, Inc. August 20, 2004

XEP-0290: Encapsulated Digital Signatures in XMPP

Mobility and Media. How mobile computing is evolving at HP. Mark Smith Mobile and Media Systems Lab Hewlett Packard Laboratories

Handwriting recognition for IDEs with Unicode support

Guide to TCP/IP, Third. Chapter 6: Basic TCP/IP Services

(5) Affiliation (10) XML (15) Web Augmentation (20) Gateways. (4) Kernel (9) ES test (14) SSL. (1) Portal (6) EDI (11) Web Directories (16) W3C

Video Conferencing & Skype for Business: Your Need-to-Know Guide

Contextion: A Framework for Developing Context-Aware Mobile Applications

Lecture 14: Multimedia Communications

Lecture (03) Network Model

BroadSoft UC-One User Experience Apps for the Anywhere Workplace

ORACLE COMMUNICATIONS INSTANT MESSAGING SERVER

The Adobe XML Architecture

Lab 1 MonarchPress Product Description. Robert O Donnell. Old Dominion University CS411. Janet Brunelle. November 23, 2015.

How Cisco IT Introduced Cisco Jabber

Voice over IP Consortium

Interactive Distance Learning based on SIP

Designing Workspace of the Future for the Mobile Worker

Report of Otago Contributions to Telecom LifeLink Project

Management Intranet: Integrating Web-based Network Management Applications

eportfolio Requirements Request

[MS-RDPEMC]: Remote Desktop Protocol: Multiparty Virtual Channel Extension

2/24/2015. What are File Formats? Types of File Formats. Sustainable Formats. File formats can be grouped into three categories:

The Power of Metadata Is Propelling Digital Imaging Beyond the Limitations of Conventional Photography

Chat and Instant Messaging

COMET, HTML5 WEBSOCKETS OVERVIEW OF WEB BASED SERVER PUSH TECHNOLOGIES. Comet HTML5 WebSockets. Peter R. Egli INDIGOO.COM. indigoo.com. 1/18 Rev. 2.

draft-ietf-sip-info-method-02.txt February 2000 The SIP INFO Method Status of this Memo

Authors Martin Eckert Ingmar Kliche Deutsche Telekom Laboratories.

Load Balancing Technology White Paper

MicroStrategy Desktop MicroStrategy 10.2: New features overview. microstrategy.com 1

USER GUIDE. Lync Voice Standard. Contents. This guide will take you through the step by step features of Lync Voice - Standard. 1.

Introduction to Wireless Networking ECE 401WN Spring 2009

JMWeb Online Help

Web Access of DICOM Objects (WADO)

Intelligent ranking for photo galleries using sharing intent

Web 2.0: Crowdsourcing:

Lab 1 MonarchPress Product Description. Robert O Donnell CS411. Janet Brunelle. September 20, Version #2

HP Service Manager. Software Version: 9.41 For the supported Windows and UNIX operating systems. Collaboration Guide

Introduction to GT3. Introduction to GT3. What is a Grid? A Story of Evolution. The Globus Project

Status of IEEE SSSWG and ANSI/AIIM MS71 Standards. Presented at the THIC Meeting at the DoubleTree Hotel Del Mar CA on January 18, 2000

Chapter 8 Networking and Digital Communication

ETSI TS V ( )

A cross-application architecture for pen-based mathematical interfaces

An RDMA Protocol Specification (Version 1.0)

Ericsson D. Willis. Cisco Systems. April 2006

Cisco Collaborative Knowledge

For more information about the Cisco Jabber suite of products, see

Introduction to Web Services & SOA

Open ebook File Format 1.0. DRAFT VERSION 001 November 5, 1999

XEP-0293: Jingle RTP Feedback Negotiation

CONSTRUCTION AND EVALUATION OF MESHES BASED ON SHORTEST PATH TREE VS. STEINER TREE FOR MULTICAST ROUTING IN MOBILE AD HOC NETWORKS

Hello everyone. My name is Kundan Singh and today I will describe a project we did at Avaya Labs.

Transcription:

Peer-to-peer Ink Messaging across Heterogeneous Devices and Platforms Manoj Prasad A, Muthuselvam Selvaraj and Sriganesh Madhvanath HP Laboratories India, Bangalore HPL-2007-202 December 20, 2007* Digital Ink Markup Language, Ink Messaging, XMPP Pen and touch interfaces for personal and shared devices are becoming increasingly relevant today, in the context of mobility and ease of use. A key capability enabled by pen-interfaces is that of messaging using handwritten, as opposed to text messages. Not only are ink messages easier to enter than text messages (especially when a full keyboard is not present), they allow the incorporation of other elements such as drawings and doodles into instant messaging. However since ink formats are typically platform-specific and proprietary, messaging across different platforms such as Tablet PCs and Linux-based PDAs poses an interoperability problem. In this paper, we show how Ink Markup Language (InkML), an open draft standard from W3C, can be used to address this problem. In particular, we propose an Ink messaging protocol, and a system architecture for implementing the protocol operations. We have implemented this protocol as an extension to the Extensible Messaging and Presence Protocol (XMPP), an open IETF standard. Internal Accession Date Only To be published and presented at ACM COMPUTE 2008, Bangalore Copyright 2007 Hewlett-Packard Development Company, L.P. Approved for External Publication

Peer-to-peer Ink Messaging across Heterogeneous Devices and Platforms Manoj Prasad A ο, Muthuselvam Selvaraj* and Sriganesh Madhvanath OST/HP Labs India and HP GDAS* Bangalore, India {manoj.prasad, muthuselvam.selvaraj, srig}@hp.com ABSTRACT Pen and touch interfaces for personal and shared devices are becoming increasingly relevant today, in the context of mobility and ease of use. A key capability enabled by pen-interfaces is that of messaging using handwritten, as opposed to text messages. Not only are ink messages easier to enter than text messages (especially when a full keyboard is not present), they allow the incorporation of other elements such as drawings and doodles into instant messaging. However since ink formats are typically platform-specific and proprietary, messaging across different platforms such as Tablet PCs and Linux-based PDAs poses an interoperability problem. In this paper, we show how Ink Markup Language (InkML), an open draft standard from W3C, can be used to address this problem. In particular, we propose an Ink messaging protocol, and a system architecture for implementing the protocol operations. We have implemented this protocol as an extension to the Extensible Messaging and Presence Protocol (XMPP), an open IETF standard. input mechanism of the specific device (Figure 1). Ink can also be overlaid on text and graphic content to enable new kinds of collaboration and social networking experiences. For example, one can imagine a group of friends using ink messages to interact over a city map on their GPS-enabled mobile devices, or over textbook content in a classroom. Categories and Subject Descriptors H.4.3 [Communications Applications]: Messaging using handwritten messages. Keywords Digital Ink Markup Language, Ink Messaging, XMPP 1. INTRODUCTION Instant Messaging has overtaken email as the most common application on the internet, and is rapidly becoming available on a number of portable devices and platforms. In addition to its social uses, messaging is also finding widespread use in domains ranging from customer support and remote healthcare, to active learning in classrooms. Digital ink is an important modality for messaging along with text, images and voice. The incorporation of digital ink in the popular IM application greatly enhances the power of the application in more ways than one. For instance, a user can communicate rapidly using handwritten messages in any language as well as drawings, without having to learn the text Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Compute 2008, Jan 18-20, Bangalore, Karnataka, India. 2008 ACM ISBN 978-1-59593-950-0/08/01...$5.00 Figure 1: Peer-to-Peer ink messaging scenario across different devices Unfortunately since ink formats are typically platform-specific and proprietary; messaging across different platforms such as Tablet PCs and Linux-based PDAs poses an interoperability problem. For example, User 1 may, have a Windows PC with an external graphics tablet as digitizer, while User 2 may use a Linux PDA with built-in digitizer (Figure 1). In order to provide digital ink-based instant messaging capability in a heterogeneous environment, one must necessarily address the following issues: (i) Representation of digital ink captured so that it may be understood by different ink-enabled platforms, (ii) Differences with respect to the constituent channels of ink data (such as X, Y, pressure, and so forth) captured by the devices, and differences in the resolution and range of their channel values, (iii) Differences in form factor and display size, and implications for rendering of ink, and (iv) An efficient protocol for messaging of ink messages that deal with the above differences. The paper is organized as follows. Section 2 of the paper briefly introduces the two standards used in our solution: InkML and XMPP. Section 3 of the paper describes related work. Section 4 describes the ink messaging protocol we have devised. ο Formerly intern at HP Labs India

Architectural and implementation details of our solution are provided in Section 5. The paper concludes with a discussion of next steps and future research directions. 2. INK MESSAGING USING INKML and XMPP Our proposed solution for peer-to-peer ink messaging addresses issues identified earlier, by leveraging Digital Ink Markup Language (InkML) [1], a draft specification from W3C for the platform and device-independent description of digital ink. InkML is an XML based markup language for representing digital ink envisioned as an open alternative to the proprietary ink data formats from device vendors. InkML is easily extensible to meet application specific requirements. In addition to allowing accurate and platform-independent representation of the various channels or dimensions of digital ink such as position, pressure, color, width, and so on, InkML includes elements for grouping ink, transforming ink in various ways, and attaching metadata and semantic interpretation to ink. InkML also supports archival and streaming modes of using digital ink. The reader is referred to the most recent draft specification of InkML [1] for details of these, and the other core components of InkML. For our implementation, we chose the Extensible Messaging and Presence Protocol (XMPP) [2] as the basic protocol for implementing our Ink messaging protocol. XMPP is an open XML communications protocol developed by the Jabber opensource community in 1999, formalized by the IETF in 2002-2004, and continuously extended through the standards process of the XMPP Standards Foundation. The core XMPP protocol provides the basic instant messaging and presence features. Beyond instant messaging, it provides a generalized, extensible framework for incrementally exchanging XML data which can be applied to develop a variety of distributed application services. We have implemented our ink messaging protocol as an XMPP Extension Protocol (XEP) [3] to support InkML based Ink messages. 3. RELATED WORK Messaging applications with support for digital ink messages may now be found on ink-enabled platforms such as TabletPC; however their realm of applicability is limited in scope by the proprietary formats of digital ink used for ink messages (e.g. Microsoft s Ink Serializable Format (ISF)), and the assumptions they make regarding the device s capabilities (such as support for.net or the ability to capture certain channels of digital ink at a certain sampling rate and resolution. We believe that while ink as a data type has been investigated deeply in the context of Tablet PCs, the use of it for other devices and platforms is likely to grow. Among solutions aimed at supporting interoperability across platforms and devices, XEP-0113 [4] is an extension to XMPP that uses the path element of Scalar Vector Graphics (SVG) to represent ink messages. It was aimed at providing basic whiteboard capabilities for XMPP based (chat) applications. This extension supports only X and Y channels and does not address differences in digitizer capabilities. The RiverInk Framework [5] proposes the use of a subset of InkML [1] (trace and brush) to be used as the common intermediate ink data format for interoperability. It does not provide a messaging solution, but adopts a multi-part xml format containing (i) the ink data in PNG image format (suitable for rendering on non-ink aware platforms), (ii) native platform ink format (e.g. ISF in the case of Windows) as well as in (iii) InkML format, for interoperability between heterogeneous devices (including non pen enabled devices). This solution may work well for LAN environments but may be too bulky for mobile networks given the multiple representations that need to be transmitted. Further, the approach focuses only on the capture of X & Y channels of ink stroke data, and does not capture all relevant contextual information, or device capabilities and attributes such as additional channels, screen size and resolution. 4. INK MESSAGING PROTOCOL In this section, we briefly describe the protocol we have developed for peer to peer ink messaging. As mentioned earlier, our implementation uses XMPP, however a standard protocol such as HTTP, or a custom protocol may instead be used as the underlying protocol to transport ink messages. For reasons of brevity, we do not describe the common processes associated with messaging applications, such as user authentication and user state management. The protocol has two phases of operation: Initialization Phase and Data Transfer phase. The protocol uses elements to wrap the InkML data fragments corresponding to ink messages. The aggregation of all InkML data fragments for the entire messaging session including both of these phases is structured as a single InkML document. 4.1 Initialization Phase The ink messaging application is intended to work across a wide variety of ink-enabled platforms such as PDAs, desktop PCs with graphics tablet peripherals, Tablet PCs and Smart phones. As described earlier, the digital ink generated by these devices differs with respect to the channels of ink captured by their respective digitizers, and the resolution and range of their channel values. This mandates careful transformation of the ink data from one device so that it may be consumed by another device. These differences are resolved in the initialization phase, as follows 4.1.1 Trace Format (Channel) Negotiation To begin with, the initiator and the recipient of the messaging session exchange their <inksource> information. Then, based on the <inksource> information received, they exchange a <context> element containing a <traceformat> having the common subset of channels supported by both. This <traceformat> defines the format of the <trace> data to be exchanged in the Ink Messages. The idea here is to exchange only those channels of ink that both clients can capture and interpret. The <inksource> and <traceformat> elements are wrapped in <definitions> blocks and are persisted throughout the messaging session. Details of the ink messages exchanged in this phase are shown in Figure 2. Initiator describes its Trace Format and supported channels: <definitions> <inksource id = src-a >

<traceformat> <channel name= X type= integer max = 300 min = 0 <channel name= Y type= integer max = 150 min = 0 <channel name= F type= integer max = 1024 min= 0 units= dev /> </inksource> </definitions> Recipient replies with its InkSource Definition: <definitions> <inksource id = src-b > <traceformat> <channel name= X type= integer max = 200 min = 0 <channel name= Y type= integer max = 100 min = 0 <channel name= T type= integer max = 1000 min= 0 units= dev /> </inksource> </definitions> Initiator sends its context with the derived common TraceFormat: <context id = ctx-a > <traceformat> <channel name= X type= integer max = 300 min = 0 <channel name= Y type= integer max = 150 min = 0 </context> Recipient sends its context with common TraceFormat: <context id = ctx-b > <traceformat> <channel name= X type= integer max = 200 min = 0 <channel name= Y type= integer max = 100 min = 0 </context> Figure 2: Initialization Phase channel negotiation 4.2 Data Transfer Phase Ink data corresponding to a single message must contain the context of the sender, any brush changes (color and stroke-width) and a collection of <trace> elements. If the application performs layout analysis on digital ink data in order to group related traces into logical units such as a word or drawing unit, then the traces are grouped using <tracegroup> elements and the metadata information is captured using <annotationxml> elements. The Layout analysis is implemented using a heuristic algorithm, explained below. The high shift in y-coordinate position of consecutive traces in different lines is used to detect the line break. The minimum and maximum x-coordinate position of each trace is found. The space between consecutive traces in the same line is found as the difference between the minimum x-coordinate position of the second trace to the maximum x-coordinate position of the first trace. The average value of the space between traces is used as the threshold to decide the space between words. Thus the related traces that belong to a word are placed in a <tracegroup>. The traces captured in drawing mode are simply grouped in to a single <tracegroup> without any layout analysis. The structure of an example InkML ink message is shown in Figure 3. <context contextref= ctx-a /> <tracegroup id= group-1 > <trace>12 23, 2 2, 3 5, 6 7, 8 4... </trace> <trace>. </trace> <trace>. </trace> <annotationxml type="diagram"> <height>40</height> <width>50</width> </annotationxml> </ tracegroup> <context> <brush id= red10pen > <color> #FF0000 </color> <width> 10 </width> </brush> </context> <tracegroup id= group-n1 > <trace>. </trace> <annotationxml type="word"> <height>40</height> <width>50</width> </annotationxml> </tracegroup> <tracegroup id= group-n2 >

. </tracegroup> <annotationxml> <messageid>message05042007112244</messageid> </annotationxml> At the receiving end, the InkML payload is parsed and rendered. The context (including the traceformat) of the ink is first constructed with reference to the definitions set up during the Initialization Phase. Trace data is interpreted with reference to the implicit current context, which is updated by brush events and other context changes encountered during parsing. The coordinates of the various ink channels are computed by taking into account the range and resolution of the source ink and the target display. <tracegroup>s tagged as words are rendered by wrapping around the available column width of the application interface (we prefer a scrollbar only in the vertical direction). <tracegroup>s tagged as drawings are rescaled to fit within the column width while preserving their aspect ratio. Thus the third issue mentioned in the introduction is addressed in this phase of the protocol. 5. SOLUTION ARCHITECTURE The implementation of the protocol involves the development of the Ink Processor, the logical component in each messaging client that implements the protocol described above, and an XEP to extend XMPP to support InkML messages as payload. The basic messaging and presence services of XMPP are utilized. 5.1 Ink Processor From a conceptual standpoint, the Ink Processor needs to deal with ink messages captured locally, as well as received from its peer. The architecture of this component is shown in Figure 4, and described further below. InkML stream UI Figure 3: Example of an Ink message Brush change Current context and definitions Ink Capturer Digital ink Digitizer Ink Processor Ink Interpreter Ink Renderer Display Figure 4: Ink Processor Architecture 5.1.1 Ink Capturer The Ink Capturer component captures the ink strokes from the digitizer of the device and represents them using <trace> entities. It receives the brush change events from the Application User Interface (UI) and represents those using InkML <brush> entities. It also groups ink traces into logical units such as Words/Diagram based on explicit or implicit cues, and creates <tracegroup> entities to represent these logical units. It generates <ink> messages as shown in Figure 3 and sends them to the Ink Interpreter component. 5.1.2 Ink Interpreter This component, as the name suggests, interprets InkML messages received from both the Ink Capturer (local ink) as well as from the peered messaging client. As it interprets the InkML messages, it constantly updates the Current Context and maintains Definitions. It also applies transformations to the digital ink based on the current context and sends ink in a renderable form to the Ink Renderer component. 5.1.3 Ink Renderer The Ink Renderer component renders the digital ink data from the interpreter onto the display area of the device. In cases where the digital ink data does not fit the display area, the Ink Renderer makes scaling (drawings) and reflow (words) decisions based on the type of ink data received. 5.2 InkML Message XEP This component is responsible for adding InkML messages to the XMPP message payload. It intercepts all the XMPP packets sent from the XMPP server to the client, extracts the InkML fragment data of the ink message and sends it to Ink Interpreter component. The client users use the unique Jabber Id (JID) to log into the XMPP server. This component also handles client login and messaging session management. 6. CONCLUSIONS AND FUTURE WORK In this paper, we have proposed a solution to the problem of peerto-peer ink messaging across heterogeneous devices and platforms. In particular, we have proposed the use of InkML as an interoperable digital ink format, and proposed a protocol for the use of InkML messages to support peer-to-peer ink-based messaging, and architecture for the Ink Processor component that implements these protocol operations over XMPP. We have implemented and tested peer to peer ink messaging solution across different ink platforms such as between a Linux desktop with an external graphics tablet, and a Windows PDA. Future work will focus on extending this protocol to support multiple clients, wherein a message from one client is broadcast to all others, and the participating devices could be either homogenous or greatly different, and studying performance in WAN settings. We also plan to explore the transmission of digital ink annotations of images and text documents along with the underlying content, and voice as an additional modality apart from ink. 7. REFERENCES [1] Ink Markup Language (InkML), http://www.w3.org/tr/inkml/ [2] EXtensible Messaging and Presence Protocol (XMPP), http://www.xmpp.org/rfcs/. [3] XMPP Extension Protocols (XEP), http://www.xmpp.org/extensions/ [4] XEP-0113: Simple Whiteboarding, http://www.xmpp.org/extensions/xep-0113.html

[5] Jonathan Neddenriep, William G. Griswold, "RiverInk--An Extensible Framework for Multimodal Interoperable Ink," hicss, p. 258b, 40th Annual Hawaii International Conference on System Sciences (HICSS'07), 2007.