面向服务的开放式平台架构(6)
时间:2017-02-18 09:52 来源:毕业论文 作者:毕业论文 点击:次
4.2.1.1.2. 内核契约 内核契约定义了微内核、内核扩展、内核监视器间进行交互的消息格式。内核中 各组件的交互通过请求——响应的模式进行。内核契约中给出了系统中所需要用到的 所有的请求——响应报文对的格式,并提供了统一的接口用以协调所有的内核扩展和 内核监视器。微内核、内核扩展和内核监视器仅依赖于内核契约,三者之间并不存在 互相依赖。 4.2.1.1.3. 内核监视器 内核监视器负责监视内核中的请求——响应的过程,并依据各个监视器的不同关 注点给出不同的操作,如进行性能监测、错误和异常监测、事件记录等操作。内核监 视器只负责监视,并不修改整个请求——响应的流程。 4.2.1.1.4. 内核扩展 内核扩展主要用于实现核心业务。内核扩展向微内核表明自己可以处理的请求类 型,并实现相应的请求处理逻辑,从而实现核心业务。整个系统的体系结构并不关心 各个业务模块的数据持久化操作,内核扩展需要自行处理数据的持久化操作。 一个内核扩展可以通过微内核发出特定请求,从而实现与其他内核扩展之间的交 互。内核扩展同时可以关注指定类型的请求——响应的处理结果,并在响应给出时得 到通知。这一设计可以允许内核扩展监视指定事件,从而丰富内核扩展之间的交互。 4.2.1.2. 基本流程 内核中的主要有如下几个基本流程。这些基本流程负责文护内核中各组件的生命 周期。 4.2.1.2.1. 加载内核扩展 加载内核扩展时,系统将会执行如下操作,具体示意图如图 4-3所示。 图 4-3:内核扩展加载过程 1. 发现内核扩展 微内核发现所有可用的内核扩展并加以装配。 2. 注册内核扩展 微内核扫描各内核扩展的元数据,并依据各内核扩展声明的可处理的消息类型将 内核扩展放入各消息类型对应的内核扩展队列中。 3. 连接内核扩展 微内核调用内核扩展的相关方法,将自身与内核扩展进行连接,从而允许内核扩 展与微内核进行交互。 4. 初始化内核扩展 微内核调用内核扩展的初始化方法,以完成内核扩展的初始化操作。 4.2.1.2.2. 加载内核监视器 加载内核监视器的操作与加载内核扩展类似,如图 4-4所示。 图 4-4:内核监视器加载过程 1. 发现内核监视器 微内核发现所有可用的内核监视器并加以装配。 2. 注册内核监视器 微内核扫描各内核监视器的元数据,并依据各内核监视器声明的需要监视的消息 类型将内核监视器放入各消息类型对应的消息监视器队列中。 4.2.1.2.3. 自定义处理器 系统允许内核扩展注册处理器以监控指定的请求——响应报文对。当一个内核扩 展注册处理器时,系统会将该处理器加入指定消息类型所对应的处理器队列中,当消 息所对应的请求——响应过程成功完成后,系统将会调用处理器队列中的所有处理器 的相应方法。 4.2.1.2.4. 请求处理 内核中进行请求处理的流程如图 4-5所示: 图4-5:请求处理流程 1. 发出请求 上层模块或内核扩展向微内核发出指定请求。 2. 检索内核扩展、内核监视器和处理器 微内核依据请求所对应的消息类型检索相应的内核扩展、内核监视器和处理器。 3. 若没有可用的内核扩展用于处理请求,微内核将会抛出异常。 (责任编辑:qin) |