2008年4月6日星期日

Service-Oriented Programming on MicroKernel

Linux内核是一个单块软件,内核的所有部件都包含在系统上运行已大块特殊的程序上。有关内核状态的任何信息都可以立即共所有内核部件使用。如下图所示:

740)this.width=740" border="undefined">
现代操作系统中的一类内核结构是微内核。这种微类核把大多数关键的控制功能分开。
状态信息不再可供左右功能立即使用,而是作为一个功能传递到另一个功能。

如下图所示

740)this.width=740" border="undefined">

Richard Stallmas使用这种基于微内核的架构开发了GNU系统的内核GNU Hurd,Linus 说这种微内核结构增加了控制模块间消息传递的复杂性使人们更难找出内核中的软件缺陷。Richard承认开发和诊断GNU Hurd内核的复杂性大大延缓了该内核的开发。

如果我们把这种微内核思想应用到应用软件开发中来,让微内核扮演一个中介者的角色,各个组件(模块)之间通过微内核聚集在一起,在整个系统中,模块将是可扩展的,能够在任何时刻融合到系统中,而不影响系统本身的体系结构。


如果把这些组件看做是一种服务,服务间的耦合通过微内核来建立,系统就变换成一种面向服务的结构,这种面向服务是面向代码级的,并不是平时提到的更高层次的SOA, 系统内部服务调用就形成了如下的方式:

740)this.width=740" border="undefined">


代码示例:

740)this.width=740" border="undefined">


没有评论: