基于模式的体系结构设计与开发,第2部分: 使用体系结构模式

开始之前

这个系列分为两部分,可以供所有对改善软件应用程序设计感兴趣的程序员、架构师 、开发人员和技术爱好者阅读。完成本系列的学习之后,您将能够使用其中介绍的最佳实践,并选择正确 的设计模式来解决具体的问题。

关于本系列

本系列教程通过铁路订票案例研究说明如何将设计模式应用于解决体系结构设计问题。

第 1 部分介绍了一个铁路订票系统,带您了解了设计中的几项注意事项,它们可以帮助您决定在何处使用设计 模式以便改善设计并进而提高系统的整体性能。

本教程讨论了应用程序的非功能需求,并阐述了软件架构师为什么必须处理这些会对应用程序的性能 、可用性、可伸缩性和增强性造成影响的需求。另外还将概略地讨论灾难恢复和故障恢复功能的注意事项 。本教程的最后将讨论在您的设计中使用框架的问题。

关于本教程

体系结构模式能帮助您为软件系统定义一个基础结构组织或模式。它还能提供一组预定义的子系统, 为系统中使用的每个组件指定相应的责任,而且它还包含一些在组织子系统之间的关系时使用的规则和指 导原则。设计模式提供了一个模式,旨在细化那些用来定义整个软件应用程序的子系统或组件。它还提供 了一套词汇表,可以定义子系统之间的关系。设计模式用于描述某个特定环境下出现的一般设计问题的解 决方案。

本教程对第 1 部分中讨论的铁路订票系统进行了扩充,在其中应用了几种体系结构模式 。体系结构模式可分为不同的类型。部署体系结构模式是最为重要的,因为应用程序的部署方式对于所有 非功能需求(如性能和可用性)都具有关键的意义。

在本教程中,您将从架构师的视角来了解铁路订票系统的非功能需求。您会学习如何使用不同的体系 结构模式来改进系统的基本设计。本教程还将讨论使用 MVC、Struts 和 Spring 等框架处理其他设计问 题,包括利用一种框架(或多种框架的组合)进行应用程序开发时的代码重用和总体时间问题。

本教程中讨论的一些体系结构注意事项有:

高性能

高可伸缩性

故障转移和故障反 馈功能

灾难恢复

先决条件

本教程假定您熟悉设计模式,并了解基本的面向对象的概念。如果您对统一建模语言 (Unified Modeling Language, UML) 有一定的了解,这将有所帮助,但并不是必需的。示例代码采用 Java 编写,但其内容非常简单,可以方便地转换为您选择的语言。

如果需要,可以下载 Java 5.0。

时间: 2025-01-26 00:34:34

基于模式的体系结构设计与开发,第2部分: 使用体系结构模式的相关文章

基于模式的体系结构设计与开发:第1部分:使用设计模式 已经有了模式?

设计模式是共享设计思想的最好方法之一.设计模式可向软件架构师和设计人员提供所需的工具或语 言,以通过系统的方式解决经常出现的问题,从而获取一些经验.本系列包括两个部分,将讨论使用设计 模式解决您的日常设计问题的方式.本系列教程将通过铁路订票系统案例研究来说明在设计系统的体系结 构时可能出现的设计问题.通过阅读本教程,可了解如何使用设计模式来解决问题和改进自己的设计. 本系列包括两个部分,目标读者是希望改进其软件应用程序设计的所有程序员.架构师.开发人员和 技术爱好者.完成本系列的学习之后,您将能

XDE中模式驱动的设计与开发(一)

摘要: 软件模式,特别是设计模式在现今的软件开发中越来越重要.在许多的标准,工具,以及开发方法中都引入了模式的概念.本文介绍了如何在UML中对软件模式进行建模,并结合具体的工具Rational XDE,对如何定义,如何应用模式作了详细地介绍,并指出了一些相关的问题. 第一部分:模式的UML表示 1.1 软件模式 软件模式(Software Pattern)的概念由来已久,当初软件业从建筑业等其他的工程行业中汲取模式的概念,并把它演化成为软件模式的时候,无疑的是软件工程领域中一项革命的成果.而Go

基于后处理模式与传统B/S开发模式的总结

问题描述 本文对JavaB/S开发模式做一个总结,对JSP+JDBC.JSP+JavaBean以及基于MVCFramework等JavaB/S开发模式的发展做一些回顾和思考,从而更好的理解和使用SimpleFramework.B/S作为如今最为流行的体系结构模式,也是受到了广大开发人员以及客户的认同,其开发模式也在不断的发展着,在这里主要就JavaB/S的开发模式做一番回顾和探讨,也算是自己对于JavaB/S开发模式的一种总结.JSP+JDBC在JavaB/S开发模式中最简单的一种开发模式是页面

也谈基于NodeJS的全栈式开发

前言 为了解决传统Web开发模式带来的各种问题,我们进行了许多尝试,但由于前/后端的物理鸿沟,尝试的方案都大同小异.痛定思痛,今天我们重新思考了"前后端"的定义,引入前端同学都熟悉的NodeJS,试图探索一条全新的前后端分离模式. 随着不同终端(Pad/Mobile/PC)的兴起,对开发人员的要求越来越高,纯浏览器端的响应式已经不能满足用户体验的高要求,我们往往需要针对不同的终端开发定制的版本.为了提升开发效率,前后端分离的需求越来越被重视,后端负责业务/数据接口,前端负责展现/交互逻

基于NodeJS的全栈式开发

随着不同终端(Pad/Mobile/PC)的兴起,对开发人员的要求越来越高,纯浏览器端的响应式已经不能满足用户体验的高要求,我们往往需要针对不同的终端开发定制的版本.为了提升开发效率,前后端分离的需求越来越被重视,后端负责业务/数据接口,前端负责展现/交互逻辑,同一份数据接口,我们可以定制开发多个版本. 这个话题最近被讨论得比较多,阿里有些BU也在进行一些尝试.讨论了很久之后,我们团队决定探索一套基于NodeJS的前后端分离方案,过程中有一些不断变化的认识以及思考,记录在这里,也希望看到的同学参

基于J2EE架构的企业应用开发新思维:Web应用以谁为中心

基于J2EE架构的企业应用开发新思维:Web应用以谁为中心?浏览器?服务器 企业Web应用,指的是企业内部使用B/S架构搭建的企业信息系统,用户一般局限在企业内部,为了适应企业某个业务流程而设计开发使用的系统. 出于跨地域部署升级的考虑,一般采用B/S模式进行开发,避免在每个客户端安装配置的麻烦. 一般情况下,前台浏览器特指IE浏览器,前台操作系统选择Windows操作系统. 非Windows操作系统的客户机与非IE的浏览器不在本文讨论范围之内. 本文主要讨论以J2ee架构为基础的Web应用,其

XDE中模式驱动的设计与开发(二)

第二部分:XDE中的模式机制 1 概述 在前一期的系列文章中,我们对模式,特别是设计模式在UML中的建模方法作了简要地,理论上的介绍.现在该要进行实践了.现在支持模式建模并能够基于模式进行应用程序开发的工具并不是很多.Rational XDE是其中最为著名的一个,并且确实提供了极为优秀的功能. XDE的Java版有两种,一种是基于Eclipse内核的独立运行版本(目前只支持Eclipse1.0).另为一个是集成在WASD中的,作为WASD的一个插件同其以其运行(目前只支持WASD 4.0).实际

基于唯一状态的前端组件开发

facebook的react的框架提出了一个基于唯一状态来渲染前端组件的想法,什么是唯一状态,采用唯一状态渲染到底有什么好处.希望大家看到这篇文章以后不用任何框架也可以写出基于唯一状态渲染的前端组件. 基于唯一状态的组件的开发模式就是组件内部永远只存在一份数据来表示组件的状态,并且更新组件时只只使用这一份数据. 这种开发模式的好处,主要体现在以下两个方面 减少事件与Dom元素的联系 便于保存和恢复组件的状态 减少事件与Dom元素的联系 我们先来看一段传统开发页面交互逻辑时写的代码: <span

基于php的微信公众平台开发入门实例_php实例

本文实例讲述了基于php的微信公众平台开发方法.分享给大家供大家参考.具体如下: 最近在做微信公众平台开发,一口气写了二十几个功能,挺有意思的- 今天来分享一下开发经验~ 微信公众平台提供的接口很简单,先看看消息交互流程: 说的通俗一些,用户使用微信发送消息 -> 微信将数据发送给开发者 -> 开发者处理消息并返回数据至微信 -> 微信把返回数据发送给用户,期间数据交互通过XML完成,就这么简单.   下面写个实例,开发微信智能聊天机器人:  1. 注册微信公众平台账号 微信公众平台: