在开始之前,需要了解有关Java嵌入服务器,也就是JES的框架。JES 的框架完全是用Java编写的,所以必须在Java虚拟机里运行。
Java 嵌入服务器是一套核心服务,例如LogService 和HttpService。这些服务运行在框架的顶层。你可以按自己的实际需要来开发服务 (例如:传真服务或自动售货机服务)。自行开发的服务将与JES现有的核心服务一起工作。
在图1-1中你可以看到,JES 框架是一个宿主平台,各种服务在这个平台上面运行。服务是一组能够实现某种功能的Java 类和接口。例如,JES附带的核心HTTP服务提供了一个微型Web服务器,它能够响应来自HTTP客户的请求。而具体的服务,如自动售货机服务,可能会检测机器的内部温度,设置商品的价格,还要自动出售苏打水。
在开发服务的时候,是在开发平台上运行JES框架。开发完成后,就要把服务布署到某个嵌入设备服务器上的JES框架里。
在编写完服务,要把它布署到框架上时,首先要把服务打包到bundle(以下用中文后加英文注释表示,称为包,请注意与package鉴别)里。一个包(bundle)就是一个JAR文件,里面包含服务以及它所需要的其它文件、图片或资源。一个包(bundle)里可以包含多个服务,这些服务作为一个集成的单元共同工作。与其它JAR文件一样,包(bundle)里包含一个清单(Manifest)对象 (这个对象基于类java.util.jar.Manifest ),它的作用是描述JAR文件里的内容。

图 1-1 JES的结构
JES 框架负责管理它所容纳的服务。特别要注意的是:它登记服务、处理包(bundle)的生命周期、跟踪服务之间的依赖关系,发送事件通知。为了管理包(bundle)和服务, JES 框架建立了一个BundleContext (包环境)对象。这个对象让框架和包(bundle)能够相互作用。稍后在看实际代码时,我们会进一步讨论BundleContext (包环境)对象。
JES框架遵循并扩展了OSGi服务网关1.0框架规范,这个框架规范由Open Services Gateway Initiative开发。如果不了解这个规范,可以从http://www.osgi.org站点得到OSGI规范的拷贝,里面包含它的Javadoc API参考。在这个教程里,将看到对这份规范的引用。
用户评论