OSGi原理与最佳实践:第二章 基于Spring-DM实现Petstore(3)

Petstore 是一个 Web 应用,我们知道,构建基于 OSGi 的 Web 应用有两种方式,一种是采用 Bridge 方式进行部署,也就是把 OSGi 框架嵌入到 Web 服务器中,另外一种是把 Web 服务器嵌入到 OSGi 容器中,我们这次采用的是把 Web 服务器嵌入到 OSGi 容器中的方式。 从“即插即用、即删即无”的部署角度来看,要增加什么新的模块来支持现有的功能模块的部署:


OSGi原理与最佳实践:第二章 基于Spring-DM实现Petstore(4)

在前面一节,我们完成了 Petstore 功能模块的设计,这在一节中,我们就动手来实现这个即插即 用、即卸即停的 Petstore。首先,我们要准备开发环境。在前面一章,我们已经详细介绍了在 Eclipse 环境下如何准备开发环境,也介绍了如何基于 Spring-DM 进行开发,这里就不再赘述。下面就列出 Petstore 需要用到的 Bundle。


OSGi原理与最佳实践:第二章 基于Spring-DM实现Petstore(5)

ProductDal模块 在 Petstore 中,我们有两个数据访问的模块,一个就是当前要实现的 ProductDal 模块,另外一个是 ShoppingCarDal 模块。数据访问模块也是基础的模块,不依赖内部的其他模块,而本身是提供服务给其他模块使用。下面就来看一下 ProductDal 模块的实现。


Java应用架构设计:模块化模式与 OSGi(序)

“分而治之”是解决复杂问题的有效方式。 面对业务功能复杂的企业级软件,我们会寻找各种方式和标准进行拆分,其目的无非是降低每一部分的复杂性并提高软件重用的便利性。在本书中,作者提供了解决这类问题的另一种方案,那就是模块化。借助模块化技术,我们可以提升软件的架构水平,填补架构师和开发人员在相互理解上的鸿沟,同时又能提升软件的可重用性,控制软件的复杂性。


Java应用架构设计:模块化模式与 OSGi(1)

模块化的理由: 市面上从来不缺乏软件设计方面的图书。有很多的书会教导你面向对象设计的基本和高级 理念。你还会发现几乎有同等数量的书来教导你 面向服务架构的基本和高级概念。但是,这里缺失了一部分:模块化。将系统的最高层架构和内部代码结合起来的深刻讨论,你应该很少见到。 在本书第一部分中,我们首先在模块这个词上达成共识。然后马上会讨论模块化的两个方 面:运行时模型和开发模型。从这里开始,将会考 察模块化怎样帮助我们实现“自上而下的架构”,这是通过将重要的 高层架构组件与更具体的实现结合在一起做到的。复杂性是我们要征服的怪兽,而重用是我们想得到的灵丹妙药,模块化在这两个方面都会给我们提供帮助,我们会讨论它在这个过程中所扮演的重要角色。最后,在进入模块化模式之前,会通过一个样例练习介绍模块化的收益。在整个过程中,我们为使用模块化找到了充分的理由。


Java应用架构设计:模块化模式与 OSGi(2)

模块化包含两个方面:运行时模型和开发模型。现在,关注的重点是运行时模型,出现了一些支持运行时模块化的框架。但最终,随着运行时模型的采用,开发模型的重要性将会占据主导地位。在本书中,关注开发模型的模式称为设计范式(design paradigm)。


Java应用架构设计:模块化模式与 OSGi(3)

模块化在软件架构中扮演着重要的角色。它填补了自从用Java开发企业软件系统以来就一直存在的空白。本章将会讨论这个空白领域并探讨模块化是如何作为重要的中间技术填补这个空白的。


《OSGi与Equinox》第三章

要想了解OSGi和Equinox的功用,最好是构建一个真实的系统。本书的这部分内容将指导你构建这样的系统。我们从零开始,先为OSGi开发设置Eclipse环境,然后创建一个功能合理完备的车辆管理系统Toast,然后运行并给予调试与优化。下图截屏展示了将构建的Toast系统中车辆内客户端示例。


《OSGi与Equinox》第四章

任何一个项目在建立初期都充满了诱惑。我们会设计一整套复杂的bundle,以此证明在编写代码之前我们的应用如何做到功能全面。但是这种做法不利于一个敏捷项目的演进。当项目结束时再来审视当初所写的代码,往往会发现那些代码早已面目全非。 所以我们并不会在一开始就讨论架构设计,而是仔细分析一种远程信息管理领域的简单场景。实际上,构建Toast应用的第一步甚至和OSGi没有一点儿关系。本章结论部分将设计bundle构建Toast。在后续章节中,我们将会为Toast增加OSGi以及远程信息管理领域的相关功能。


《OSGi与Equinox》第二章

OSGi联盟①(http://osgi.org)是一个独立组织,其使命是:“致力于创建统一的中间件市场。”这表明它本身就包括一系列规范、参考实现以及测试工具,且都围绕Java中的动态模块化展开。模块化系统形成“服务平台”的基础,继而支持创建并执行松耦合、动态的模块系统。OSGi起源于嵌入式技术领域,延续了其精简的结构,仅仅27个Java类型便构成了OSGi的核心规范。


最受欢迎的文章

最新评论