CN107193556A - 一种linux下层次式输入法 - Google Patents

一种linux下层次式输入法 Download PDF

Info

Publication number
CN107193556A
CN107193556A CN201710328047.4A CN201710328047A CN107193556A CN 107193556 A CN107193556 A CN 107193556A CN 201710328047 A CN201710328047 A CN 201710328047A CN 107193556 A CN107193556 A CN 107193556A
Authority
CN
China
Prior art keywords
layer
interface
input method
interface frame
kernel service
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201710328047.4A
Other languages
English (en)
Other versions
CN107193556B (zh
Inventor
余杰
马俊
刘晓东
彭欢
吴孝夷
皮水露
李剑峰
杨祖洵
李�浩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianjin Kylin Information Technology Co Ltd
Original Assignee
Tianjin Kylin Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tianjin Kylin Information Technology Co Ltd filed Critical Tianjin Kylin Information Technology Co Ltd
Priority to CN201710328047.4A priority Critical patent/CN107193556B/zh
Publication of CN107193556A publication Critical patent/CN107193556A/zh
Application granted granted Critical
Publication of CN107193556B publication Critical patent/CN107193556B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/22Procedural

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)

Abstract

一种linux下层次式输入法,包括交互界面层、接口框架层、内核业务层和监控模块,所述交互界面层、所述接口框架层和所述内核业务层之间相互通信连接且还相互监控连接;所述监控模块分别与所述交互界面层、所述接口框架层和所述内核业务层监控连接;所述接口框架层与X Server信号连接。本申请的有益效果是:输入法各层是相互独立的进程,一个进程崩溃时其他进程或者监控模块可以将该进程重启,避免重启整个输入法,且该输入法在系统稳定性和内存消耗方面也得到很大改善。

Description

一种linux下层次式输入法
技术领域
本申请属于linux操作系统技术领域,具体地说,涉及一种linux下层次式输入法。
背景技术
在linux操作系统现有技术中,输入法是基于XIM(X Input Method)协议采用Client/Server模型来实现的。当用户运行一个待输入的目标进程时(XIM客户端),XIM客户端会与X服务(X Server)通信,当用户通过键盘输入拼音串时,X Server会将键盘序列传给输入法,输入法再将按键序列转换成候选词并供用户选择,用户选择了想要的候选词后输入法再将结果回传给XServer,X Server再传递给XIM客户端,达到输出文字的效果。
在传统Linux输入法中,输入法框架、核心业务逻辑、显示界面都在同一个进程。当输入法自身存在缺陷、或者用户对输入法词库进行复杂操作、或者更新了不兼容词库、或者安装了不兼容皮肤等情况下,都有可能造成输入法产生异常突然崩溃。一旦输入法崩溃,用户将无法正常输入,用户必须手动重启输入法或者重启操作系统才能正常使用,从而给用户带来诸多不便。
发明内容
有鉴于此,本申请所要解决的技术问题是提供了一种linux下支持自动故障恢复的输入法层次式加载方法,能够在Linux输入法发生异常时自动故障恢复,防止用户在输入过程中因输入法异常崩溃而不能正常输入。
为了解决上述技术问题,本申请公开了一种linux下支持自动故障恢复的层次式输入法,并采用以下技术方案来实现。
一种linux下层次式输入法,包括交互界面层、接口框架层和内核业务层;所述接口框架层与X Server通信连接,并暴露一系列接口供所述交互界面层和所述内核业务层使用;所述交互界面层用于与用户的交互,所述内核业务层用于输入法内核业务的处理,所述交互界面层、所述接口框架层和所述内核业务层之间相互通信连接。
所述交互界面层、所述接口框架层和所述内核业务层之间还相互监控连接。
所述linux下层次式输入法,还包括监控模块,所述监控模块分别与所述交互界面层、所述接口框架层和所述内核业务层监控连接。
一种如上所述linux下层次式输入法的使用方法,其步骤包括:S1、用户通过键盘输入字符串;S2、X Server将接收到的按键事件传递给应用程序;S3、所述应用程序将收到的所述按键事件回传给所述X Server,询问所述X Server所述接口框架层是否打开,若否本次输入结束,若是则进入S4;S4、所述X Server将所述按键事件发送给所述接口框架层去处理;S5、所述接口框架层调用所述内核业务层解析所述按键事件,并在词库中检索候选词,然后将所述候选词返回到所述接口框架层;S6、所述接口框架层通过进程间通信将所述候选词传递给所述交互界面层;S7、用户通过所述交互界面层在所述候选词中进行选择;S8、所述交互界面层通知所述接口框架层用户的最优选词;S9、所述接口框架层将所述最优选词返回给所述X Server;S10、所述X Server得到所述最优选词后,再通知应用程序输出所述最优选词。
所述S1-S10任一步骤中出现所述输入法存在异常层或者崩溃层时,由监控模块或者所述异常层的监控层重启所述异常层或者所述崩溃层。
与现有技术相比,本申请可以获得包括以下技术效果:输入法的接口框架层、内核业务层、交互界面层是相互独立的进程,并且相互通过监控协议监控彼此运行状态。当输入法哪个层次出现崩溃时,其他层次或者监控程序会拉起这个层次。由于其他层次运行正常,不必重启整个输入法,各层次通过进程间通信可以快速相互连接上,输入法即可正常运行。避免了传统linux输入法出现异常崩溃时,必须重启整个输入法才能使用的弊端;整个系统在稳定性和内存消耗方面也得到很大改善。
当然,实施本申请的任一产品必不一定需要同时达到以上所述的所有技术效果。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本申请输入法层次结构图。
图2是本申请输入法工作逻辑流程图。
图3是本申请故障恢复逻辑流程图。
具体实施方式
以下将配合附图及实施例来详细说明本申请的实施方式,藉此对本申请如何应用技术手段来解决技术问题并达成技术功效的实现过程能充分理解并据以实施。
如图1-2所示,一种linux下支持自动故障恢复的层次式输入法,该方法包括交互界面层、接口框架层、内核业务层。接口框架层与X Server通信连接,并暴露一系列接口供交互界面层和内核业务层使用;交互界面层用于与用户的交互;内核业务层用于输入法内核业务的处理。三个层次相互独立,即分属于不同的进程。交互界面层、接口框架层、内核业务层之间相互通信连接,通过进程间的通信技术进行信号以及数据的传递。三个层次之间还基于监控协议相互监控连接。
接口框架层与X服务端(即X Server)连接,X Server与当前需要输入的应用程序(即XIM Client)连接。它们之间的通讯是利用XIM的协议来实现的。
输入法自启动后,接口框架层与X Server和XIM Client交互,并暴露一系列接口(即接口模块)供交互界面层和内核业务层使用。接口框架层会启动内核业务层和交互界面层。然后接口框架层会主动连接交互界面层和内核业务层,以保证能够完成三层次间的信号和数据的交换。此时输入法已经准备就绪。
当用户按下键盘输入字符串,X Server将接收到按键序列事件传递给应用程序窗口即XIM客户端;XIM客户端将收到的按键回传给X Server,询问X Server关于XIM Server(也就是输入法接口框架)的相关信息。倘若输入法是打开的,X Server会将事件发送给接口框架去处理。接口框架再调用内核业务(例如拼音输入法引擎)解析并且在词库中检索候选词,然后将候选词返回到输入法接口框架,输入法接口框架通过进程间通信将候选词传递给交互界面。用户选择后,通过交互界面通知接口框架所选字符串,接口框架再将字符串返回给X Server。X Server得到字符串后,再通知窗口输出字符串。
linux下支持自动故障恢复的层次式输入法还可以包括监控模块。若包括监控模块,则监控模块分别与交互界面层、接口框架层、内核业务层连接,且为基于监控协议的监控连接。
操作系统启动以后,自启动输入法的接口框架层,接口框架层启动内核业务层、交互界面层和监控模块。监控模块实时监控接口框架层、内核业务层和交互界面层。接口框架层、内核业务层和交互界面层也会相互监控。本实施例选用的监控流如图3所示,交互界面层监控接口框架层,接口框架层监控内核业务层,内核业务层监控交互界面层。本实施例选用监控模块和三层次相互监控两种监控方式同时应用。需要说明的是,三层次之间的相互监控和外部监控模块对三层次进行的监控,这两种方式并不是一定要同时使用,只要可以达到有效的监控,从而实现自动故障恢复就属于本申请的核心发明思想。
以本实施例为例,如果在使用过程中内核业务层崩溃,监控模块或者接口框架层会重启内核业务层,重启内核业务层后,接口框架层重新连接交互界面层和内核业务层,达到快速故障恢复效果;如果在使用过程中接口框架层崩溃,监控模块或者交互界面层会重启接口框架层,重启接口框架层后,接口框架层重新连接交互界面层和内核业务层,达到快速故障恢复效果;如果在使用过程中交互界面层崩溃,监控模块或者内核业务层会重启交互界面层,重启交互界面层后,接口框架层重新连接交互界面层和内核业务层,达到快速故障恢复效果。
本申请的有益效果是:相较于linux传统输入法,本申请输入法的接口框架层、内核业务层、交互界面层是相互独立的进程,并且相互通过监控协议监控彼此运行状态。当输入法哪个层次出现崩溃时,其他层次或者监控程序会拉起这个层次。由于其他层次运行正常,不必重启整个输入法,各层次通过进程间通信可以快速相互连接上,输入法即可正常运行。避免了传统linux输入法出现异常崩溃时,必须重启整个输入法才能使用的弊端;整个系统在稳定性和内存消耗方面也得到很大改善。
以上对本申请实施例所提供的一种linux下支持自动故障恢复的输入法层次式加载方法,进行了详细介绍。以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
如在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技术人员应可理解,硬件制造商可能会用不同名词来称呼同一个组件。本说明书及权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包含”为一开放式用语,故应解释成“包含但不限定于”。“大致”是指在可接收的误差范围内,本领域技术人员能够在一定误差范围内解决所述技术问题,基本达到所述技术效果。说明书后续描述为实施本申请的较佳实施方式,然所述描述乃以说明本申请的一般原则为目的,并非用以限定本申请的范围。本申请的保护范围当视所附权利要求所界定者为准。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
上述说明示出并描述了本申请的若干优选实施例,但如前所述,应当理解本申请并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述申请构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本申请的精神和范围,则都应在本申请所附权利要求的保护范围内。

Claims (6)

1.一种linux下层次式输入法,其特征在于:包括交互界面层、接口框架层和内核业务层;所述接口框架层与X Server通信连接,并暴露一系列接口供所述交互界面层和所述内核业务层使用;所述交互界面层用于与用户的交互,所述内核业务层用于输入法内核业务的处理,所述交互界面层、所述接口框架层和所述内核业务层之间相互通信连接。
2.根据权利要求1所述linux下层次式输入法,其特征在于:所述交互界面层、所述接口框架层和所述内核业务层之间还相互监控连接。
3.根据权利要求1所述linux下层次式输入法,其特征在于:还包括监控模块,所述监控模块分别与所述交互界面层、所述接口框架层和所述内核业务层监控连接。
4.根据权利要求2所述linux下层次式输入法,其特征在于:还包括监控模块,所述监控模块分别与所述交互界面层、所述接口框架层和所述内核业务层监控连接。
5.一种如权利要求1-4所述linux下层次式输入法的使用方法,其步骤包括:S1、用户通过键盘输入字符串;S2、X Server将接收到的按键事件传递给应用程序;S3、所述应用程序将收到的所述按键事件回传给所述X Server,询问所述X Server所述接口框架层是否打开,若否本次输入结束,若是则进入S4;S4、所述X Server将所述按键事件发送给所述接口框架层去处理;S5、所述接口框架层调用所述内核业务层解析所述按键事件,并在词库中检索候选词,然后将所述候选词返回到所述接口框架层;S6、所述接口框架层通过进程间通信将所述候选词传递给所述交互界面层;S7、用户通过所述交互界面层在所述候选词中进行选择;S8、所述交互界面层通知所述接口框架层用户的最优选词;S9、所述接口框架层将所述最优选词返回给所述X Server;S10、所述X Server得到所述最优选词后,再通知应用程序输出所述最优选词。
6.如权利要求5所述输入法使用方法,其特征在于:所述S1-S10任一步骤中出现所述输入法存在异常层或者崩溃层时,由监控模块或者所述异常层的监控层重启所述异常层或者所述崩溃层。
CN201710328047.4A 2017-05-11 2017-05-11 一种linux下层次式输入法 Active CN107193556B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710328047.4A CN107193556B (zh) 2017-05-11 2017-05-11 一种linux下层次式输入法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710328047.4A CN107193556B (zh) 2017-05-11 2017-05-11 一种linux下层次式输入法

Publications (2)

Publication Number Publication Date
CN107193556A true CN107193556A (zh) 2017-09-22
CN107193556B CN107193556B (zh) 2020-07-31

Family

ID=59872963

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710328047.4A Active CN107193556B (zh) 2017-05-11 2017-05-11 一种linux下层次式输入法

Country Status (1)

Country Link
CN (1) CN107193556B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111651211A (zh) * 2020-05-06 2020-09-11 珠海格力电器股份有限公司 一种防止示教器系统崩溃的方法、计算机可读存储介质及示教器

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101694603A (zh) * 2009-10-20 2010-04-14 中央民族大学 基于Unicode的跨平台蒙古文显示及智能输入方法
CN102073542A (zh) * 2010-12-22 2011-05-25 浙大网新科技股份有限公司 Linux应用在Android手机上运行时整合中文输入法的方法
CN102681780A (zh) * 2012-04-26 2012-09-19 中标软件有限公司 Linux 智能装置及其输入法切换方法
CN102981954A (zh) * 2012-11-28 2013-03-20 百度国际科技(深圳)有限公司 一种输入法的兼容性测试方法及电子装置
US20130173812A1 (en) * 2011-12-30 2013-07-04 Avaya Inc. Sip transfer in a back-to-back user agent (b2bua) environment
CN104267829A (zh) * 2014-10-16 2015-01-07 浪潮软件集团有限公司 一种基于嵌入式qt的输入方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101694603A (zh) * 2009-10-20 2010-04-14 中央民族大学 基于Unicode的跨平台蒙古文显示及智能输入方法
CN102073542A (zh) * 2010-12-22 2011-05-25 浙大网新科技股份有限公司 Linux应用在Android手机上运行时整合中文输入法的方法
US20130173812A1 (en) * 2011-12-30 2013-07-04 Avaya Inc. Sip transfer in a back-to-back user agent (b2bua) environment
CN102681780A (zh) * 2012-04-26 2012-09-19 中标软件有限公司 Linux 智能装置及其输入法切换方法
CN102981954A (zh) * 2012-11-28 2013-03-20 百度国际科技(深圳)有限公司 一种输入法的兼容性测试方法及电子装置
CN104267829A (zh) * 2014-10-16 2015-01-07 浪潮软件集团有限公司 一种基于嵌入式qt的输入方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王丽君: ""基于SCIM架构的输入法的设计与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111651211A (zh) * 2020-05-06 2020-09-11 珠海格力电器股份有限公司 一种防止示教器系统崩溃的方法、计算机可读存储介质及示教器

Also Published As

Publication number Publication date
CN107193556B (zh) 2020-07-31

Similar Documents

Publication Publication Date Title
US10033584B2 (en) Automatically reconfiguring physical switches to be in synchronization with changes made to associated virtual system
US20200372224A1 (en) Contextual communication and service interface
US9514160B2 (en) Automatic recovery of a failed standby database in a cluster
US10768977B1 (en) Systems and methods for editing, assigning, controlling, and monitoring bots that automate tasks, including natural language processing
US20140137095A1 (en) Server and method for updating firmware of server
JP6325001B2 (ja) 階層データ構造のノードにおいて再帰的イベントリスナを用いる方法およびシステム
CN105245603B (zh) 集群服务器控制方法及系统
CN102834819A (zh) 客户端-服务器输入法编辑器体系结构
US20150026323A1 (en) State Synchronization in a Service Environment
US11853340B2 (en) Clustering using natural language processing
WO2011106079A1 (en) Hot deployment of software
US9268662B2 (en) Method and system for a high availability framework
US10824724B2 (en) Detecting runtime tampering of UEFI images in an information handling system
WO2022036901A1 (zh) 一种Redis副本集的实现方法及装置
CN112114761A (zh) 一种无线投屏控制方法、装置、终端设备及可读存储介质
CN113656147B (zh) 一种集群部署方法、装置、设备及存储介质
US20070234032A1 (en) System and method for chassis management
CN113726566A (zh) 一种服务网关装置
CN106226102A (zh) 一种冰箱商品性能检测装置、系统、方法及冰箱
CN107193556A (zh) 一种linux下层次式输入法
CN111209265A (zh) 一种数据库切换方法和终端设备
CN110574006B (zh) 用于自动同步设备上响应与条件的系统和方法
CN100395708C (zh) 一种实现同步初始化的多单板系统及方法
US11588693B2 (en) Migrating networking configurations
EP4250119A1 (en) Data placement and recovery in the event of partition failures

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Peng Huan

Inventor after: Wu Xiaoyi

Inventor after: Pi Shuilu

Inventor after: Li Jianfeng

Inventor after: Yang Zuxuan

Inventor after: Li Hao

Inventor before: Yu Jie

Inventor before: Ma Jun

Inventor before: Liu Xiaodong

Inventor before: Peng Huan

Inventor before: Wu Xiaoyi

Inventor before: Pi Shuilu

Inventor before: Li Jianfeng

Inventor before: Yang Zuxuan

Inventor before: Li Hao

CB02 Change of applicant information
CB02 Change of applicant information

Address after: 6-8 / F, building 3, Xin'an venture Plaza, Tanggu marine science and Technology Park, Binhai high tech Zone, Tianjin 300450

Applicant after: Kirin Software Co.,Ltd.

Address before: 300459 in Tianjin Binhai Xin'an marine hi tech Development Zone Business Plaza Building 3 layer 6-8

Applicant before: TIANJIN KYLIN INFORMATION TECHNOLOGY Co.,Ltd.

GR01 Patent grant
GR01 Patent grant