1 Proposal of Next Generation Input Method framework IM-BUS project James Su.

Slides:



Advertisements
Similar presentations
ShortTalk - XMPP messaging in a peer to peer manner Instructed by: Edward Bortnikov Supervisor: Dr. Ilana David Developed.
Advertisements

Centralized Architectures
WNT Client/Server SDK Tony Vaccaro CS699 Project Presentation.
System Architecture.  Windows Phone 7  Mobile Phone Application  User – End Perspective  Google App Engine  Administration Console  Handles authentication,
Appendix A Starting Out with Windows PowerShell™ 2.0.
Mobile Topic Maps for e-Learning John McDonald & Darina Dicheva Intelligent Information Systems Group Computer Science Department Winston-Salem State University,
John Daintree Chief Architect Dyalog Andy Shiers Chief Operations Officer Dyalog RIDE.
Embedded Software SKKU 17 1 Embedded Software Lab. Tizen v2.3 Input Service Framework.
11 CORE Architecture Mauro Bruno, Monica Scannapieco, Carlo Vaccari, Giulia Vaste Antonino Virgillito, Diego Zardetto (Istat)
3-1 JXTA Platforms. 3-1 Learning Objectives ● Learn about the different platform implementations of the JXTA protocols – Features provided by each implementation.
Web Services Based on SOA: Concepts, Technology, Design by Thomas Erl MIS 181.9: Service Oriented Architecture 2 nd Semester,
Towards an Experience Management System at Fraunhofer Center for Experimental Software Engineering Maryland (FC-MD)
Performance evaluation of component-based software systems Seminar of Component Engineering course Rofideh hadighi 7 Jan 2010.
GAAIN Virtual Appliances: Virtual Machine Technology for Scientific Data Analysis Arihant Patawari USC Stevens Neuroimaging and Informatics Institute July.
X-WindowsP.K.K.Thambi The X Window System Module 5.
J. Scott Hawker p. 1Some material © Rational Corp. Rational Unified Process Overview See and use the RUP Browser on lab machines.
Presentation.
Convert generic gUSE Portal into a science gateway Akos Balasko.
Shibboleth Working Group, Fall 2010 Scott Cantor, OSU Chad LaJoie, Itumi, LLC.
PIX/PDQ – Today and Tomorrow Vassil Peytchev Epic.
Jeremy Cowles, Eric Heien, Adam Kornafeld, Yusuke Takata, Kenichi Hagihara, Nicolás Alvarez.
Copyright © 2007 Eclipse Foundation, Inc., Made available under the Eclipse Public License v What is Eclipse?  Wayne Beaton, Eclipse Foundation,
SE Linux Implementation Russell Coker. What is SE Linux? A system for Mandatory Access Control (MAC) based on the Linux Security Modules (LSM) framework.
WebYaST Remote Web Based System Management
SDN controllers App Network elements has two components: OpenFlow client, forwarding hardware with flow tables. The SDN controller must implement the network.
Local Monitor And Control SADT.NMGR
The Holmes Platform and Applications
Architecture Review 10/11/2004
Existing Service Specifications
Integrating ArcSight with Enterprise Ticketing Systems
UI and Graphic EG Get Synergy from Application vendors who CAN NOT contribute app as open source. Multimedia, Car Navigation, HomeScreen AGL would evolve.
Training for developers of X-Road interfaces
Integrating ArcSight with Enterprise Ticketing Systems
Designing software applications
Updatecenter Module 3 Application Server SE/EE 8.1 Installation
Building Distributed Educational Applications using P2P
The Internet Communications Engine (Ice)
Avraham Leff James T. Rayfield IBM T.J. Watson Research Center
Updatecenter Snjezana Sevo-Zenzerovic
Cross Platform Development using Software Matrix
Chapter 3 Internet Applications and Network Programming
NE-Asia OSS trends Hiroshi Miura Kobe Institute of Computing
Transport Layer.
DCR ARB Presentation Team 5: Tour Conductor.
XMPP messaging in a peer to peer manner Instructed by:
Chapter 9 – RPCs, Messaging & EAI
AppArmor Update 2014 Linux Security Summit
Ishan Sharma Abhishek Mittal Vivek Raj
PHP / MySQL Introduction
The Power Of Generic Infrastructure
The OMG Approach (continued)
Using the Checklist for SDMX Data Providers
Standardization in Automotive Infotainment with GENIVI and CCC
Interacting with Database
Starting Design: Logical Architecture and UML Package Diagrams
Rob Hanson Jacques Crocker
An Introduction to Software Architecture
Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta
Object Networks—ATLAS' Future Control Framework For Offline?
TA: Donghyun (David) Kim
Guided Research: Intelligent Contextual Task Support for Mails
PaP Product Definition
J2EE Lecture 13: JMS and WebSocket
System Reengineering Restructuring or rewriting part or all of a system without changing its functionality Applicable when some (but not all) subsystems.
4/5 May 2009 The Palazzo dei Congressi di Stresa Stresa, Italy
NIEM Tool Strategy Next Steps for Movement
Network Diagnostics Framework
CCNA 4 v3.1 Module 6 Introduction to Network Administration
Interoperability Test Message Patterns for IEC
To Brihaspathi. Software Development Services
Presentation transcript:

1 Proposal of Next Generation Input Method framework IM-BUS project James Su

2 Profile James Su  Maintainer of SCIM project (  Member of NEA-OSS WG3/SWG1 input method standard working group  Engineer of Google Linux Client Team. NEA-OSS WG3/SWG1  A working group dedicates to develop a new input method SPI specification for Linux.  IM-BUS is the infrastructure project of the SPI.

3 Members of NEA-OSS WG3/SWG1 Chairman:  Roger So (Sun Wah Linux, Debian developer) Secretary:  Hiroshi Miura (NTT Data Corp. and IPA OSS Center) Technical members:  Hideki Hiura (Justsystem, Inc. Creator of XIM and IIIMF)  Choe Hwanjin (Hannsoft. Developer of Hangul input method)  James Su (Maintainer of SCIM project)  Many others.

4 Current situation Many different Input Method protocols and frameworks for Input Method developers.  XIM – Only available in X Window, full of problems.  IIIMF – Successor of XIM, though not so successful.  SCIM – Used by many distros, has many known issues.  UIM – Mainly focus on Japanese and embedded os. Many different APIs for application developers  XIM / GTK immodule / QT immodule /... Many limitations, problems, bugs...

5 New approach: IM-BUS Inspired from the design of D-BUS Written in pure C to avoid compatibility issues Fully object oriented Extensible Compatible with XKB Dynamic / modulized Platform and GUI independent Support almost all requirements of existing Input Method Engines and applications

6 Overall architecture of IM-BUS IM- BUS Daem on App 1 GUI modul e Other modul e IME modul e 1 IME modul e 2 App 2 One IM-BUS Daemon per desktop session

7 Technical details (1) Overall architecture  IM-BUS daemon: Forward events between components Maintain states and informations of components  IM-BUS components: Include Input method Engines, Applications, UI modules, etc. Communicate with each other by sending/receiving events via IM-BUS daemon  Communication between IM-BUS daemon and components are asynchronous by using Unix domain socket

8 Technical details (2) Events and Event roles of a component  Events are the basic communication elements between components, for example: Create/destroy Input Context events Key press/release events Focus In/Out events UI related events  A component can act as three different kinds of roles for an event: Producer, Consumer and Observer eg. an Application is producer of key press/release events An Input Method Engine is consumer of key press/release events  Components can be categorized by different set of events and event roles.

9 Technical details (3) Component registration and communication  Components provide necessary descriptive information and a list of supported events and roles when connecting to IM-BUS daemon  IM-BUS daemon allocate an unique ID to each component  A component can query information of other components from IM-BUS daemon  A component can communicate with other components by component's unique ID  IM-BUS decides whether to deliver an event or not by corresponding event roles of source and destination components

10 Technical details (4) Input Context and Event structure  IM-BUS daemon maintains information of all ICs: Associated Application and Input Method Engine Is focused or not  An event can be sent to a specified IC, which will be sent to corresponding component associated to it.  An event which is sent to an IC instead of a specified component, can be observed by other components. An event includes:  Source component ID, Dest component ID or Input Context ID.  An event type, timestamp and serial number  Arbitrary data

11 Technical details (5) A sample workflow  An application send create IC event to IM-BUS daemon  IM-BUS daemon forward it to default IM Engine and record the information of this IC, then return an IC ID to the application  The application send Focus In event to IM-BUS daemon for the IC  IM-BUS daemon forward it to corresponding IM Engine and record the state  The application send a key event to IM-BUS daemon for the IC  IM-BUS daemon forward it to corresponding IM Engine as well as the components which want to observe it  The IM Engine send arbitrary UI related events to IM-BUS daemon  IM-BUS daemon forward them to corresponding UI components  The application send more key events to the IM Engine via IM-BUS daemon  The IM Engine send commit string event to the application via IM-BUS daemon

12 Roadmap 2004:  NEA-OSS WG3/SWG1 established :  Technical investigation  Draft specification of feature requirements :  IM-BUS project development undergoing. End of 2007:  Release the first prototype of IM-BUS (hopefully).