Pet_Shop_3.x_的设计模式与体系结构【官方】[1]
51CTO下载-PetShop_5.0_详解

Petshop5.0详解之一(系统架构设计)前言:PetShop是一个范例,微软用它来展示.Net企业系统开发的能力。
业界有许多.Net与J2EE之争,许多数据是从微软的PetShop和Sun的PetStore而来。
这种争论不可避免带有浓厚的商业色彩,对于我们开发人员而言,没有必要过多关注。
然而PetShop随着版本的不断更新,至现在基于.Net2.0的PetShop5.0为止,整个设计逐渐变得成熟而优雅,却又很多可以借鉴之处。
PetShop是一个小型的项目,系统架构与代码都比较简单,却也凸现了许多颇有价值的设计与开发理念。
本系列试图对PetShop作一个全方位的解剖,依据的代码是PetShop5.0,可以从链接/library/default.asp?url=/library/en-us/dnbda/html/bdasamppet4.asp中获得。
一、PetShop的系统架构设计在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。
微软推荐的分层式结构一般分为三层,从下至上分别为:数据访问层、业务逻辑层(又或成为领域层)、表示层,如图所示:图一:三层的分层式结构数据访问层:有时候也称为是持久层,其功能主要是负责数据库的访问。
简单的说法就是实现对数据表的Select,Insert,Update,Delete的操作。
如果要加入ORM的元素,那么就会包括对象和数据表之间的mapping,以及对象实体的持久化。
在PetShop的数据访问层中,并没有使用ORM,从而导致了代码量的增加,可以看作是整个设计实现中的一大败笔。
业务逻辑层:是整个系统的核心,它与这个系统的业务(领域)有关。
以PetShop为例,业务逻辑层的相关设计,均和网上宠物店特有的逻辑相关,例如查询宠物,下订单,添加宠物到购物车等等。
如果涉及到数据库的访问,则调用数据访问层。
表示层:是系统的UI部分,负责使用者与整个系统的交互。
在这一层中,理想的状态是不应包括系统的业务逻辑。
试析PetShop 4.0层次式架构设计

试析PetShop 4.0层次式架构设计
季永炜;徐洁洁;喻晓;宋云鹏
【期刊名称】《电脑编程技巧与维护》
【年(卷),期】2016(0)9
【摘要】PetShop软件分层架构设计是微软公司的一个开源项目.通过阐述PetShop的业务表现层、业务逻辑层和数据访问层的架构设计,揭示许多颇有价值的软件设计和开发理念,进一步印证分散关注、松散耦合、逻辑复用、标准定义仍是软件设计的重要思想.
【总页数】2页(P27-28)
【作者】季永炜;徐洁洁;喻晓;宋云鹏
【作者单位】浙江省电子信息产品检验所软件评测中心,杭州310007;浙江省电子信息产品检验所软件评测中心,杭州310007;浙江省电子信息产品检验所软件评测中心,杭州310007;浙江省电子信息产品检验所软件评测中心,杭州310007
【正文语种】中文
【相关文献】
1.基于多层次指标体系的电网综合态势感知体系架构设计 [J], 李峰;王珂;徐鹏;潘玲玲;李卫东;杨胜春
2.试析“阶段性层次化递进式”素质教育内涵 [J], 宋晓燕
3.基于Petshop的Web系统架构设计 [J], 冯健文
4.一种基于AXI4.0总线的互联架构设计 [J], 余红江;袁国顺;孔德伟;雷蕾
5.论B/S和C/S架构相结合的多层次系统架构设计和开发模式的选择 [J], 赵卓君;张晓燕
因版权原因,仅展示原文概要,查看原文内容请购买。
软件工程---软件设计模式与体系结构

所有依赖关系,均应终止于抽象类或者接口
依赖倒转原则
依赖倒转原则分析(如何实现依赖倒转?)
✓ 类之间的耦合
• 零耦合关系
• 具体耦合关系 • 抽象耦合关系
依赖倒转原则分析
✓ 依赖注入 • 构造注入(Constructor Injection):通过构造函数注 入实例变量。 • 设值注入(Setter Injection):通过Setter方法注入实 例变量。 • 接口注入(Interface Injection):通过接口方法注入 实例变量。
依赖倒转原则
✓ 其英文定义为:
• High level modules should not depend upon low level modules, both should depend upon abstractions. Abstractions should not depend upon details, details should depend upon abstractions.
✓ 其英文定义为:
• Functions that use pointers or references to base classes must be able to use objects of derived classes without knowing it.
依赖倒置原则的根本
里氏代换原则
✓ 实例解析
设计模式的诞生与发展
模式的诞生与定义
✓ 模式起源于建筑业而非软件业 ✓ 模式(Pattern)之父——美国加利佛尼亚大学环境结构中心研究所
软件体系结构与设计模式笔记

第1章软件体系结构概述✓SEI软件体系结构讨论群定义如下:一个程序/系统构件的结构,它们之间的相互关系,以及在设计和交付的整个过程中的原则和指导方针。
✓Mary Shaw和David Garlan认为软件体系结构包括构成系统的设计元素的描述,设计元素的交互,设计元素组合的模式,以及在这些模式中的约束。
✓软件体系结构包括构件(Component)、连接件(Connector)和约束(Constrain)或配置(Configuration)三大要素。
✓国内普遍接受的定义:软件体系结构包括构件、连接件和约束,它是可预制和可重构的软件框架结构。
✓构件是可预制和可重用的软件部件,是组成体系结构的基本计算单元或数据存储单元✓连接件也是可预制和可重用的软件部件,是构件之间的连接单元✓构件和连接件之间的关系用约束来描述✓软件体系结构= 构件+ 连接件+ 约束软件体系结构的优势容易理解、重用、控制成本、可分析性第2章软件体系结构风格♦软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。
♦体系结构风格定义了一个系统家族,即一个体系结构定义一个词汇表和一组约束。
词汇表中包含一些构件和连接件类型,而这组约束指出系统是如何将这些构件和连接件组合起来的。
♦体系结构风格反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效地组织成一个完整的系统。
♦数据流风格: 批处理序列; 管道/过滤器。
♦调用/返回风格:主程序/子程序;面向对象风格;层次结构。
♦独立构件风格:进程通讯;事件系统。
♦虚拟机风格:解释器;基于规则的系统。
♦仓库风格:数据库系统;超文本系统;黑板系统。
♦过程控制环路♦C/S风格体系结构有三个主要组成部分:数据库服务器、客户应用程序和网络。
♦B/S风格浏览器/Web服务器/数据库服务器。
优点:C/S体系结构具有强大的数据操作和事务处理能力,模型思想简单,易于人们理解和接受。
将大的应用处理任务分布到许多通过网络连接的低成本计算机上,以节约大量费用。
.Net23种设计模式

.Net23种设计模式C#常见的设计模式⼀、概要:模式分为三种,设计模式、体系结构模式与惯⽤法。
其中惯⽤法是⼀种语⾔紧密相关的模式,例如,定界加锁模式其实是⼀种惯⽤法。
在C#项⽬开发过程中,很多情况下您已经使⽤了某些模式,但或许您并不知道⾃⼰所使⽤的这种解决⽅案是⼀种已经被总结归纳的模式。
⼯⼚、策略、桥接、模板⽅法、代理等等23种Gof经典模式是属于设计模式,设计模式的粒度相对较⼩,基本上⽤于提⾼模块内部的可扩展性和可维护性需求三层、MVC、IoC/DI等属于体系结构模式,粒度⽐设计模式⼤,它是从项⽬的整体⾓度去看项⽬的架构。
设计需要合理性,架构同样追求合理性,这就是架构模式的⽤途。
C#的经典样例petshop中,采⽤分层思想构架了整个⽹站,这⾥的分层就是体系结构模式;⽽在数据库访问层,则采⽤⼯⼚模式来泛化数据库操作,使得业务层不需要关⼼您现在的数据库是SQL server的,还是oracle的。
这就是设计模式的使⽤。
模式应⽤不是⼀两句话能够说清楚的,也不是⼀天两天能够体会的,需要楼主慢慢体会与学习。
⼆、分类⽬录:创建型:1. 单件模式(Singleton Pattern)2. 抽象⼯⼚(Abstract Factory)3. 建造者模式(Builder)4. ⼯⼚⽅法模式(Factory Method)5. 原型模式(Prototype)结构型:6. 适配器模式(Adapter Pattern)7. 桥接模式(Bridge Pattern)8. 装饰模式(Decorator Pattern)9. 组合模式(Composite Pattern)10. 外观模式(Facade Pattern)11. 享元模式(Flyweight Pattern)12. 代理模式(Proxy Pattern)13. 模板⽅法(Template Method)14. 命令模式(Command Pattern)15. 迭代器模式(Iterator Pattern)⾏为型:16. 观察者模式(Observer Pattern)17. 解释器模式(Interpreter Pattern)18. 中介者模式(Mediator Pattern)19. 职责链模式(Chain of Responsibility Pattern)20. 备忘录模式(Memento Pattern)21. 策略模式(Strategy Pattern)22. 访问者模式(Visitor Pattern)23. 状态模式(State Pattern)C# 23种设计模式China Document 4 Colors1.1节⼯期How are you1.1.1 完成⽇期1.2节创建型模式1.2.1 单件模式(Singleton Pattern)动机(Motivation):在软件系统中,经常有这样⼀些特殊的类,必须保证它们在系统中只存在⼀个实例,才能确保它们的逻辑正确性、以及良好的效率。
体系结构的设计模式

Windows Sockets规范和结构关系
▪ Windows Sockets API的服务函数
• Socket创建、关闭、控制 socket(), shutDown(), closeSocket()
• Socket参数读取和设置 setSockOpt(), getSockOpt(), …
• 数据读取和发送 accept(), bind(), connect(), send(), recv(), …
MVC的实现
▪ Step 2 : 实现视图
• 设计显示形式 draw()
• 实现update虚函数 e.g. 对指定区域更新
• 设置到模型和控制器的引用
• 初始化函数
initialize()
生成控制器
• 构造函数 向模型进行注册
• 析构函数 撤销注册
SetController:对控制器的安装与撤除
• 与协议无关。
Windows Sockets规范和结构关系
▪ Windows Sockets的通信种类
• 流套接(Stream sockets,TCP) 面向连接
• 数据包套接(datagram sockets,UDP) 无连接
• SOCK_RAW原始套接 支持通信底层操作,主要用于协议的开发和测试
MVC的变化及其他
▪ MVC的优点和不足
• 优点
▪ 一个模型可以同时建立和使用多个视图
▪ 视图与控制器的可接插性
▪ 模型的可移植性
▪ 潜在的框架结构
MVC的变化及其他
▪ MVC的优点和不足
• 缺点
▪ 增加了系统结构和实现的复杂性
▪ 视图与控制器之间结合紧密
▪ 视图对模型数据的低效率访问
软件设计与体系结构知识点
软件设计与体系结构知识点软件设计与体系结构是软件开发过程中非常重要的两个环节。
设计是指通过分析需求,确定软件系统所需的各个组成部分及其相互关系,以及确定各个组成部分的详细设计方案的过程。
体系结构是指软件系统的整体架构,包括各个组件之间的关系,以及软件系统与外部环境的交互方式。
软件设计的主要知识点包括:1.需求分析:分析用户需求,明确软件系统的功能、性能、可靠性等方面的要求。
2.设计原则:包括开放封闭原则、单一职责原则、里氏替换原则、接口分离原则等。
3.设计模式:是一套被反复使用的、经过验证的、用来解决在软件设计过程中常见问题的解决方案。
常见的设计模式有工厂模式、单例模式、观察者模式、策略模式等。
4.UML(统一建模语言):是一种用于软件系统建模的标准化语言。
包括用例图、类图、时序图、状态图等。
5.架构模式:是一种包含一组满足特定需求的技术决策,指导解决软件系统中基本设计问题的模式。
常见的架构模式有分层架构、客户端-服务器架构、发布-订阅架构等。
软件体系结构的主要知识点包括:1.分层架构:将软件系统分为若干层,每一层负责处理特定的功能或任务,层与层之间通过接口进行通信。
2.客户端-服务器架构:将软件系统分为客户端和服务器两部分,客户端向用户提供界面和交互功能,服务器处理客户端发送的请求并返回相应结果。
3.分布式架构:将软件系统的各个组件分布在不同的物理节点上,通过网络进行通信。
4.微服务架构:将软件系统拆分为若干个小型服务,每个服务负责一个特定的功能,通过接口和消息进行通信。
5.事件驱动架构:系统中的各个组件通过发布-订阅模式进行通信,一个组件发生变化时通知其他相关组件。
在实际应用中,软件设计与体系结构的知识点通常会结合起来使用,以满足软件系统的需求。
同时,不同的项目可能有不同的设计与体系结构要求,开发人员需要根据具体项目的需求来选择适合的设计和架构模式。
软件体系结构设计模式ppt课件
问题: 你想使用一个已经存在的类,而它的接口不符合你的需求。 你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类 (即那些接口可能不一定兼容的类)协同工作。
17
类的适配器(Adapter)模式
4
设计原则
面向接口编程的原则
面向接口编程,而不是面向实现编程。
可变性封装的原则
在设计时应当考虑系统中什么可能会发生变化,或者什 么特性具备多变的特征。这种变化不应该散落在代码中 的各个角落,而是应该被适当的封装起来,以便于维护 以及扩展;
开-闭原则
软件中的实体(包括类,模块,函数等等)应当是可扩 展的(开),而不应被修改(闭)。
9
工厂方法
10
抽象工厂
11
抽象工厂
意图:为特定的客户(或情况)提供特定系列的对象。提供一个创建一系列相关或相 互依赖对象的接口,而无需指定它们具体的类。
问题:一系列相关的对象需要被实例化。
12
建造模式
13
建造模式
14
单例/单子模式
15
单例/单子模式
16
类的适配器(Adapter)模式
22
桥梁(Bridge)/柄体(Handle and Body)模式
当具有抽象的层次结构和相应的实现层次结构时, Bridge模式是非常有用的。除了可以将抽象和实现组 合成许多不同的类,该模式还可以动态组合的独立类 的形式实现这些抽象和实现。
优点: (1)可以将接口与现实相分离 (2)提高了可扩展性 (3)对客户端隐藏了实现的细节
设计模式使人们可以更加简单方便地复用成功的设计和体 系结构。
体系结构总结报告范文(3篇)
第1篇一、引言随着信息技术的飞速发展,系统架构在软件工程中的地位日益凸显。
体系结构设计作为系统开发过程中的关键环节,对系统的性能、可维护性、可扩展性等方面具有重要影响。
本报告旨在总结和回顾近年来在体系结构领域的研究成果、发展趋势及实践经验,为我国软件工程领域的发展提供参考。
二、体系结构设计概述1. 体系结构设计概念体系结构设计是指将系统分解为多个模块,并定义模块之间的交互关系和约束条件,从而形成一个合理的、可维护的、可扩展的系统结构。
体系结构设计是软件开发过程中的第一步,也是最重要的一步。
2. 体系结构设计原则(1)模块化:将系统分解为多个功能模块,降低系统复杂性。
(2)抽象:将具体实现细节抽象化,关注系统结构。
(3)封装:将模块内部实现细节隐藏,降低模块之间的耦合度。
(4)分层:按照功能将系统划分为多个层次,实现模块之间的解耦。
(5)复用:设计可复用的模块,提高开发效率。
三、体系结构设计方法1. 软件架构风格(1)层次结构:将系统划分为多个层次,实现模块之间的解耦。
(2)事件驱动:以事件为中心,模块之间通过事件进行通信。
(3)管道-过滤器:模块之间通过数据流进行通信。
(4)客户端-服务器:客户端请求服务器提供服务。
2. 体系结构设计模式(1)MVC模式:将系统划分为模型(Model)、视图(View)和控制器(Controller)。
(2)观察者模式:模块之间通过观察者进行通信。
(3)工厂模式:创建对象实例时,将创建逻辑封装在工厂类中。
(4)策略模式:根据不同的业务需求,选择不同的策略实现。
四、体系结构设计工具与技术1. 体系结构描述语言(1)统一建模语言(UML):描述系统结构、行为和交互。
(2)XML:描述系统配置信息。
2. 体系结构设计工具(1)Eclipse:支持UML建模,提供代码生成功能。
(2)Microsoft Visio:绘制系统架构图。
(3)Rational Rose:提供UML建模、代码生成和项目管理等功能。
宠物医院管理系统的设计与开发
1 绪论1.1计算机管理信息系统的发展情况1958年美国首先提出了“管理信息系统”(即MIS:Management Information Systems),从而也引出了另外一个概念——“管理信息系统”。
综合其多种定义以及根据在实际中的应用,管理信息系统可以定义为是一个由人、计算机系统等组成的,能进行信息处理的人机系统,它反映企业的生产经营情况,利用过去、当前的数据预测未来,从企业全局出发辅助企业进行管理与决策。
它具有以下特征:现代管理信息系统是一个以计算机为基础的一个人机系统。
管理信息系统是一个集成化的系统。
管理信息系统是一个以数据库为中心的系统。
管理信息系统是一个网络化的系统。
管理信息系统不同于一般的数据处理系统。
[1]由于企业类型不同,企业的战略计划不同,企业的管理模式不径相同等因素,实际的管理信息系统的动能会不同。
但是从抽象意义上来说,无论什么企业,其管理信息系统的功能相同。
一般分为数据处理、辅助管理决策两大功能。
管理信息系统的数据处理功能以完成企业相关数据的收集、存储、加工、传输和输出,提供信息服务。
它是管理信息系统的基本功能;辅助管理决策功能即指对企业生产经营中的结构化决策问题,采用管理信息系统相关学科中提出的定量方法,建立问题的模型,求解问题,获得解决问题的方法。
斯隆认为用户对管理信息系统的需求分为四类:事务型:是一种例行处理要求,辅助日常事务。
例如商业企业的商品进销存的管理。
异常型:其处理要求是当某状态超出事先设置的阈值,则系统能够发出警报。
例如财务中对某些科目设置报警值,一旦超值则对该科目的开支进行控制。
查询型:要求管理信息系统具有灵活的查询能力,满足用户的信息需要。
分析型:提供强有力的分析能力,借助数据、模型支持决策,以回答“如果……那么……”诸如此类的问题。
自从管理信息系统这一新兴的管理方法引入我国,在我国企业管理中已有20多年时间。
而且,管理信息系统已经广泛应用于各行各业。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Microsoft .NET Pet Shop 3.x: .NET Pet Shop 的设计模式与体系结构 发布日期 : 4/1/2004 | 更新日期 : 4/1/2004 Gregory Leake Microsoft Corporation
James Duff Vertigo Software, Inc. 2003 年 5 月 适用于: Microsoft? .NET 框架 1.0 和 1.1 Microsoft? Windows 2000 和 Windows Server? 2003 Microsoft? Internet Information Services Microsoft? SQL Server? 2000 Oracle? 9i Database
摘要:.NET Pet Shop 3.x 版针对 .NET Pet Shop 2.0 的评论者给出的重要反馈进行了改进,开发时确保了应用程序与 Microsoft 提出的体系结构指导文档保持一致。(20 页打印页)
下载 Pet Shop 3.0 Installer.msi 代码示例. 本页内容 摘要 Java Pet Store 是 什么? Microsoft .NET Pet Shop 业务需求 应用程序数据模型 .NET Pet Shop 2.0 体系结构 .NET Pet Shop 3.0 体系结构 小结 附录 A: 从版本 2 到版本 3 的更改
摘要 最初研究 .NET Pet Shop 的目的是用 Microsoft .NET 实现 Sun 主要的 J2EE 蓝图应用程序 Sun Java Pet Store 同样
的应用程序功能。 根据用 .NET 实现的 Sun J2EE 最佳实践示例应用程序,各方面的客户可以直接地对 Microsoft 的 .NET 技术与基于 J2EE 的应用程序服务器进行比较,同时了解构建基于Web的应用程序中用到的各种建议的设计模式之间的异同。 .NET Pet Shop 应用程序现在已经是第三版了,旨在显示构建企业级 n 层应用程序(可能需要支持多种数据库平台和部署模型)的 .NET 最佳实践。 根据社区对 .Net Pet Shop 2.0 的反馈,.NET Pet Shop 3.0 遵照 MSDN 上发布
的 Microsoft《说明性体系结构指导》进行了重新设计。 第三版还完全符合了 Middleware 公司的应用程序服务器基准测试规范,将作为 Microsoft 参加今年春天即将进行的 Middleware Application Server Benchmark 的产品: 这
是Middleware 公司举办的第二轮测试活动,旨在比较 .NET 和 J2EE 平台在构建和承载企业级 Web 应用程序方面的可伸缩性。
返回页首 Java Pet Store 是 什么? Java Pet Store 是按 Sun 公司维护的 J2EE 蓝图开发的分
布式应用程序的一个参考实现。 示例应用程序最初的开发目的是帮助开发人员和架构师理解如何使用和利用 J2EE 技术,以及各个 J2EE 平台组件是如何配合的。 Java Pet Store 演示软件包括构建应用程序所需的Enterprise Java Beans (EJB) 体系结构、 Java Server Pages (JSP) 技术、标记库和 servlet 的完整的源代码及文档。 此外, Java Pet Store 蓝
图应用程序还通过具体示例说明了一些模型和设计模式。
完整的 Java Pet Store 包括三个示例应用程序: Java Pet Store: J2EE 蓝图主应用程序。 Java Pet Store 管理器: Java Pet Store 的管理器
模块
Blueprints Mailer: 在小一些的包中给出一些 J2EE 蓝图设计指南的一个小应用程序。
Java Pet Store 的最初版本旨在处理以下数据库: Oracle、
Sybase 和Cloudscape 。 IBM 已经开发了一个 DB2 版本的应用程序。 该应用程序可以从 Java 2 Platform Enterprise Edition Blueprints 公开获得。 主应用程序 Java Pet Store 是一个电子商务应用程序,可以通过它在线购买宠物。 启动应用程序后,可以浏览和搜索各种类型的宠物,从狗到爬行动物。
使用 Java Pet Store 的典型会话方案如下: 主页 — 这是用户第一次启动应用程序时加载的主页。 类别查看 — 有五大类: 鱼、狗、爬行动物、猫和鸟。 每一类都有几个相关的产品。 如果选择鱼作为类别,可以看到天使鱼等等内容。
产品 — 如果现在选择一个产品,应用程序将显示产品的所有类型。 通常产品类型是雄或者雌。
产品详情 — 每种产品类型(分别用不同项目表示)有详细的视图显示产品说明、产品图像、价格和库存数量。
购物车 — 用户可以通过它操作购物车(添加、删除和更新行项目)。
结帐 — 结帐页面以只读视图显示购物车。 登录重定向 — 当用户选择结帐页面上的―Continue‖时,如果还没有登录,将重定向到登录页面。
登录验证 — 通过站点的身份验证以后,用户被重定向到信用卡和记帐地址表单。 定单确认 — 显示记帐地址和送货地址。 定单提交 — 这是定单处理流程的最后一步。 定单现在将提交到数据库。
图 1. Java Pet Store 返回页首
Microsoft .NET Pet Shop .NET Pet Shop 的目标是把注意力仅仅放在 Java Pet Store 上(管理和Mailer 组件没有在 .NET 中实现)。 除了重现 Java Pet Store 应用程序的功能之外,还增加了两项目标:
比较 .NET 和 J2EE 通过最佳实践实现的真实应用程序中代码和代码大小上的异同。 提供用 .NET 和 J2EE 实现的典型的设计良好的应用程序能够支持多少用户的数据。
图 2. .NET Pet Shop .NET Pet Shop 的整体逻辑体系结构如图 3 所示,设计的中
心是在表示层使用 ASP.NET Web 窗体,与逻辑中间层中的 C# 业务组件通信。 业务组件继而通过 ADO.NET 和 SQL Server 名为数据访问应用块 (DAAB) (可以从此链接了解更
多 DAAB 信息并下载完整的 DAAB 源代码)的帮助器类访问后端数据库。 数据访问功能完全抽象到数据访问层 (DAL) 中,与业务逻辑层 (BLL) 相分离。 .NET Pet Shop 3.0 中的新颖之处在于,我们为 Oracle 9i 和 SQL Server 2000 数据库都引入了 DAL 层。 相应 DAL 层的类加载将根据 Web.Config 中的应用程序配置设置在运行时动态生成。注意 .NET Pet Shop 3.0 使用了两个后端数据库,定单处理中要涉及跨两个数据库的分布式事务。 使用简单的 Web.Config 应用程序设置,用户可以对 .Net Pet Shop 进行部署,使用一个或者多个后端数据库,还可以自由地将 SQL Server 和 Oracle 后端数据库与由 .NET 服务的组件通过 COM+ 企业服务处理的分布式事务混合。
图 3. .NET Pet Shop 高层逻辑体系结构 图 4 说明了 Microsoft .NET Pet Shop 物理上是怎样部署的。 这里使用网络负载平衡 (NLB) 或者可能是硬件实现的负载平衡技术将入站的网络通信量分到了两台应用程序服务器上。 在网络请求达到群集中的一台机器时,针对该请求的所有工作都会在这台特定机器上进行。 业务逻辑和数据访问组件将以程序集的形式安装在两台服务器上,它们本质上是完全相同的。 如果负载平衡软件配置为使用―Sticky IP‖,则每台服务器都有自己的会话-状态存储,因为要保证第二个请求返回到实现第一个请求的那台服务器。 如果解决方案所需的容错要求更高,两台应用程序服务器可以共享一个公共会话-状态存储比如 SQL Server 或者一台专用的会话服务器(图中没有显示)。 会话-状态存储的类型和位置由每个站点‗web.config‘文件里‗system.web‘元素‗sessionState‘子节点中的值决定。
图 4. .NET Pet Shop 的物理部署图 返回页首
业务需求 作为 Pet Shop 3 体系结构文档的一部分,我们给出了 .NET Pet Shop 的业务需求,这样开发人员和客户就可以理解我们在
做应用程序的设计决策时进行的一些选择。
Pet Shop 应用程序的功能性需求是什么? 应用程序应该使客户能够按类和通过关键字搜索浏览公司目录。