PowerPoint 簡報

Download Report

Transcript PowerPoint 簡報

Internet-Intranet Input Mehod
Framework(IIIMF)
報告人: 鄭維華
報告日期 : 2004/4/12
X window system input method(XIM)
• 架構在I18N(InternationizatioN)與Locale上的輸入法協定
• 目的是不需要更改原始碼本身就能接受各語系輸入法
• 用來處理非歐美語系的輸入法
• XIM Client : 應用程式
• XIM Server : 輸入法
XIM 架構
XIM Client與XIM Server之連線
• XIM Client 本身必須設定兩個變數
1. Locale名稱
2. Xim Server名稱
就可以與所需求的XIM server連線
XIM 輸入法控制流程
(1)鍵事件 : User在鍵盤輸入數鍵,由X Server(Xlib)接收.
(2)X Server將鍵事件傳給XIM Client.
(3)XIM Client詢問Xlib是否有XIM Server可連線,
此鍵事件是否為XIM Server所感興趣.
(4)Xlib將此事件傳給XIM Server處理.
(5)XIM Server組字完成,回傳給Xlib. Xlib傳給XIM Client.
Xcin (XIM version)
• 支援BIG5. BIG5HKSCS. GB2312等中文字集
• 只要在不同Locale下啟動,會自動採用該語系的編碼.
目標:
• Unicode與更多編碼系統的支援
• 輸入法模組功能改進
• 處理多區域化資料庫的XIM client請求
• 更多Unix平台支援
XIM v.s IIIMF
XIM
1. XIM結構與X Window緊密相連,故使用XIM之系統必須擁有
X Window. 不適用於Embeded System.
2. 不支援多種語言.
輸入法Server無法告知Client端 用戶輸入何種語言或編碼.
XIM v.s IIIMF
推出IIIMF輸入法架構的理由
1. 解決跨平台問題(將輸入法模組與GUI分離)
更完善的Server-Client架構
2. XIM受限於Locale , 不同語系輸入較麻煩(IIIMF與Locale無關)
3. 較容易發展新的Language Engine
4. 適用於嵌入式系統
5. 適用於在Internet環境,Client端對Server端要求輸入法服務
XIM v.s IIIMF
IIIMF
1. 不同平台部分由IIIM Client端處理,解決跨平台問題.
2. IIIMP用Utf-16傳送,可支援多語系與編碼輸入.
3. LE vendor 不需要再去著重於一些“non-language specific”,
only need to write the small portion to get fully featured multilingual
input method.
ex : context managements, Input Method Protocol,
platform secific input method interface, rendering
IIIM Framework
•
•
•
•
•
Multiplatform, platform independent.
Windowing System Independent.
Multiple language engines concurrently run.
Multiuser.
Input method protocol efficient enough to be used over low-speed
modem connection.
• Easy input method engine development with plugin API.
Component:
1.Server Framework
2.Client Framework
3.Language Engine
IIIMF
Internet/Intranet
IIIM Server
IIIM Protocol
IIIM Client 1
Windows
IIIM Client 2
X Window
System
IIIM Client3
QT
IIIM Server Framework
IIIM Server(Htt Server)
1. Runs as a system daemon on UNIX
2. Only one IIIM server running
3. Provide standard input method engine API (LEIF)
(/usr/lib/im/leif)
4. All input method engines are written as shared object/DLL.
提供一個LE的plugin介面
與Client端以IIIM Protocol來溝通
處理Client的要求(Input Event…)
IIIM Client Framework
IIIM Client
1. IIIMF separates platform/window system specific part out from server.
2. IIIMF needs client side framework per platform/windowing system.
3. Client 端也需處理LE的GUI部分
•
•
•
•
•
•
IIIMXCF - IIIM X Window System Client Framework
IIIMJCF - IIIM Java2 Client Framework
IIIMECF - IIIM Emacs Client Framework
IIIMGCF - IIIM GTK+ client Framework (aka iiimf-gtk immodule)
IIIMWCF -IIIM Windows Client Framework
IIIMQCF - IIIM Qt Client Framework
IIIMF輸入法控制流程
Server 端
IIIM Server
Client 端
(4)
(3)
IIIM Client
(2)
(1)
keyboard
(5)
Xiiimp.so
Xlib
AUX object
IIIM Server與IIIM Client連線狀態
(1) 鍵事件:由X server接收
(2) X server將鍵事件送給IIIM Client端處理
(3) Client將鍵事件送給Server
(4) Server作拼字工作,把候選字傳給Client端,並要求Client呼叫AUX物件
(5) Client呼叫AUX視窗
IIIM Protocol
1. Client送出IM Connect request給Server ---要求建立連線
2. Client->Server IM_FORWARD_EVENT
Client送出鍵事件給Server
3. Server端要求Client端做文本輸入轉換區(Preedit)
4. Server->Clinet IM_Preedit_Draw
讓客戶可以對Preedit緩衝區對某些操作
5. Server->Clinet IM_LOOKUP_CHOICE_START
Server提供Lookup功能給Client
6. Server->Clinet IM_AUX_START
Server要求Client做出輔助視窗(利用AUX object)
IIIMF v.s XIM
XIM
IIIMF
應Client端需求
可能產生多個Server
Daemon存在
只啟動一次
應用程式受Locale限制
轉換狀態需更換Locale變數
與Locale無關
直接切換
Locale切換較麻煩
不需切換Locale
輸入法engine等於XIM Server
輸入法engine以動態模組掛入
IIIM Server
必須有X Window system
platform independent
可相容於支援XIM之應用程式
Conclusion
1.未來輸入法架構將逐漸由XIM轉為IIIMF,以因應跨平台
與多語系輸入功能.
2. 由於Language Engine的發展簡易性,未來輸入法發展將
更多元化.
3. 嵌入式系統的中文輸入法也將擁有更好的環境來開發.
Conclusion
IIIMF目前發展狀況
1. Language Engine已提供亞洲多國語系版本.
2. IIIMF-xcin今年2月底推出第一版,提供拼音.倉頡輸入法
3. 目前功能與介面都還不夠強大
4. 目前只有Fedora Core 1成功安裝IIIMF LE,其他平台還未
安裝成功.
Conclusion
IIIMF未來可發展方向
•
廣泛用於Internet/Intranet環境.
•
移植到嵌入式系統上.
例 : 利用IIIMQCF移植到Qtopia平台的PDA.
3.
Language Engine的輸入法模組功能加強.
4.
大力推動IIIMF取代XIM為主流.