|
IIIMF Project Detail - What is IIIMF?
|
IIIMF stands for Internet/Intranet Input Method Framework.
IIIMF is designed by Hideki Hiura who designed XIM, to be the next generation of input method framework
eventually replacing XIM, which provides the following capabilities;
Multiplatform, platform independent.
Multlingual and Full UNICODE support, but satisfactory for native speakers.
Windowing System Independent.
Multiple language engines concurrently run.
Multiuser.
Distributed, lightweight clients and scalable server.
Extensible in multiple means.
Input method protocol efficient enough to be used over low-speed modem connection.
Easy input method engine development with plugin API.
Easy input method enabling with libiiimcf, even on console apps.
Small core part to start from.
|
IIIMSF - IIIM Server Framework
|
The IIIM Server Framework(IIIMSF) is, unlike XIM Server, a platform
independent, Windowing system independent, multilingual and multiuser
input method server framework. IIIM Server can run as a system daemon
on UNIX, or as a system service on Windows, Unlike XIM server which
requires to run the server always as per-user server, single IIIM server process
can provide input method service to multiple users in multiple
languages simultaneously. Of course IIIM server can also be invoked as
per-user server if a user wants to do so. At this moment,
IIIM Server is known to run on UNIX flavored OSs and Microsoft Windows.
Also, IIIMSF provide standard plugin input method engine API(LEIF). All input method engines
are written as shared object/DLL. Unlike XIM Server, you do not have to write entire
IM Server to use your own input method engines, but just to create an shared object containing
your core im logic part with the code to interface with LEIF, and drop shared object into the
language engine directory(usually /usr/lib/im/leif).
Unlike XIM, IIIMF separates platform/window system specific part out
from server, and the client side is responsible for handling such specifics,
so IIIMF needs client side framework per platform/windowing system.
IIIM Client Framework(IIIMCF) are built for several platforms and
Windowing systems. Here is the list of IIIMCF currently available or
in development.
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
libiiimcf - IIIM generic C client Framework library
In additon to those client frameworks, there are unique components
have developed or in development.
Win32Bridge - IIIM Bridge service for Windows IME.
Cascade Engine - Pseudo language engine connecting to the other
IIIM server as if an IIIM client.
|
IIIM Language Engine(input methods
|
The IIIM Server Framework(IIIMSF) provides a pluggable language
engine(aka input method engine or input method module) interface called
LEIF, stands for Language Engine InterFace.
Multiple language
engines can be installed and simultaneously run under this LEIF
interface. There are several language engines currently available or in
development both in opensource and commercial forms.
Because of the LEIF, input method engine developpers no longer have
to understand all the micro detail of IM Server, IM protocol, and
client side implementation. To provide flexibility and controll for
an engine developper, the LEIF interface carries slightly more than
just a simple RPC type of regular API set, but more like event
driven model type of API set. Its basic model is "an input method engine
receives an event, and replies to it by fabricating multiple events."