Pet Shop3.0代码组织和体系结构

l          Pet Shop3.0的逻辑模型分为三层,如下图所示:
threetier.gif

设计的中心是在表示层使用 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+ 企业服务处理的分布式事务混合。

 

l          体系结构分层如下图所示,接着介绍各部分的含义。
threeStruct.gif

组件

介绍

ASP.NET Web Forms

ASP.netWebFormCode Behide处理、用户控件、自定义控件和服务器控件等比ASPJSP FormAction Html Form的方式在代码结构上更清晰,代码更少。

User Interface Processing

用户状态和购物车状态处理。

Business Components

业务逻辑组件。

Enterprise Services

企业服务组件,主要指分布式自动事务处理。

DAL Interface

所有类型数据库的数据层类必须实现的接口。

DAL Factory

创建某类型的数据访问层实体的工厂类。

Oracle DAL

针对Oracle数据库的数据访问层。

Oracle DAAB

针对Oracle数据库的DAAB1.0的工具类库。

SQL Server DAL

针对SQLserver数据库的数据访问层。

SQL DAAB

针对SQL server数据库的DAAB1.0的工具类库。

 

l          解决方案和资源组织情况如下图所示,接着介绍各项目的含义。
projects.gif

项目

用途

BLL

业务逻辑组件存放之处

ConfigTool

用来加密连接字符串和创建事件日志源的管理应用程序

DALFactory

用来确定加载哪一个数据库访问程序集的类

IDAL

每个 DAL 实现都要实现的一组接口

Model

瘦数据类或业务实体

OracleDAL

Oracle 特定的 Pet Shop DAL 实现,使用了 IDAL 接口

Post-Build

运行编译后操作的项目,比如将程序集添加到 GAC COM+

Pre-Build

将程序集从 GAC 删除或从 COM+ 注销程序集的项目

SQLServerDAL

Microsoft SQL Server 特定的 Pet Shop DAL 实现,使用了 IDAL 接口

Utility

一组帮助器类,包括 DPAPI 的封装

Web

Web 页和控件

Solution Items

用来构建应用程序的杂项,比如用来签署应用程序程序集的 Pet Shop.snk 密钥文件

 

l          物理部署Pet Shop3.0,可以采取如下图所示的结构:deploy.gif

这里使用网络负载平衡 (NLB) 或者可能是硬件实现的负载平衡技术将入站的网络通信量分到了两台应用程序服务器上。 在网络请求达到群集中的一台机器时,针对该请求的所有工作都会在这台特定机器上进行。 业务逻辑和数据访问组件将以程序集的形式安装在两台服务器上,它们本质上是完全相同的。 如果负载平衡软件配置为使用“Sticky IP”,则每台服务器都有自己的会话-状态存储,因为要保证第二个请求返回到实现第一个请求的那台服务器。 如果解决方案所需的容错要求更高,两台应用程序服务器可以共享一个公共会话-状态存储比如 SQL Server 或者一台专用的会话服务器(图中没有显示)。 会话-状态存储的类型和位置由每个站点‘web.config’文件里‘system.web’元素‘sessionState’子节点中的值决定。

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值