January 25, 2006

下一代的 SCIM 設計

蘇哲在 SCIM mailing-list 張貼了下一代的 SCIM (version 2.0) 的架構設計,可參考 [Some thought of the future of scim.],韓國開發者 krisna 在他的 blog [SCIM 2.0 design] 將 mailing-list 的 dia 轉換成圖檔: (click to enlarge)

在新的設計中,Message BUS 是相當重要的元件,摘錄蘇哲文字的重點:
  • Message BUS will be a separated process acting as a central message transfer hub. It'll be a socket server, lisening on a local unix socket.
  • IMEngine Provider is a special client of Message BUS, which loads all IMEngine modules and real Config module, and exports the services to Message BUS through socket.
  • Helper Module are also clients of Message BUS, which can communicate with applications and IMEngines through Message BUS.
  • All applications are also clients of Message BUS, which get input method services from Message BUS by a small wrapper (similar to Socket IMEngine).
  • All clients of Message BUS are reloadable, for example, IMEngine Provider can be reloaded without breaking any applications.
  • Message BUS is a process which has no binary dependency to any other modules or libraries, except c, c++ and scim core library. And it has very small footprint, so that it can be very stable.
  • All GUI components are independent Helper modules which run in separated processes. So that they are all reloadable and replaceable.
  • GUI Setup module will also be Helper modules, so that they can be implemented with any widget libraries.
乍看之下,有些 IIIMF 中 IIIM Protocol Resource/Transaction management 的意味,不過應該更為輕量級,或許,直接支援 D-Bus 來作為 message bus 也是個途徑?不過,我好像有點安於現狀,無暇去關心 IM Framework,現在我的問題都來自酷音輸入法本身 :(
由 jserv 發表於 January 25, 2006 10:04 PM
迴響

Comparing to IIIMSF, Message BUS runs on client side, actually all processes on the diagram run on client side. And Message BUS itself doesn't load and external module nor links to any external libraries.

While IIIMSF runs on server side and loads all LEIF modules directly.

James Su 發表於 January 26, 2006 09:39 AM