iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >三层架构
  • 817
分享到

三层架构

2024-04-02 19:04:59 817人浏览 泡泡鱼
摘要

一.三层架构图 二.系统各层次职责1.UI(User Interface)层的职责是数据的展现和采集,数据采集的结果通常以Entity object提交给BL层处理。Service Interfa

一.三层架构图
三层架构
 

二.系统各层次职责
1.UI(User Interface)层的职责是数据的展现和采集,数据采集的结果通常以Entity object提交给BL层处理。Service Interface侧层用于将业务或数据资源发布为服务(如WEBServices)。
2.BL(Business Logic)层的职责是按预定的业务逻辑处理UI层提交的请求。
(1)Business Function 子层负责基本业务功能的实现。
(2)Business Flow 子层负责将Business Function子层提供的多个基本业务功能组织成一个完整的业务流。(Transaction只能在Business Flow 子层开启。)
3.ResourceAccess层的职责是提供全面的资源访问功能支持,并向上层屏蔽资源的来源。
(1)BEM(Business Entity Manager)子层采用DataAccess子层和ServiceAccess子层来提供业务需要的基础数据/资源访问能力。
(2)DataAccess子层负责从数据库中存取资源,并向BEM子层屏蔽所有的sql语句以及数据库类型差异。
DB Adapter子层负责屏蔽数据库类型的差异。
ORM子层负责提供对象-关系映射的功能。
Relation子层提供ORM无法完成的基于关系(Relation)的数据访问功能。
(3)ServiceAccess子层用于以SOA的方式从外部系统获取资源。
注: Service Entrance用于简化对Service的访问,它相当于Service的代理,客户直接使用Service Entrance就可以访问系统发布的服务。Service     Entrance为特定的平台(如Java、.net)提供强类型的接口,内部可能隐藏了复杂的参数类型转换。
(4)ConfigAccess子层用于从配置文件中获取配置object或将配置object保存倒配置文件。
4.Entity侧层跨越UI/BEM/ResourceManager层,在这些层之间传递数据。Entity侧层中包含三类Entity,如下图所示:
三层架构
 
三.Aspect
 Aspect贯穿于系统各层,是系统的横切关注点。通常采用aop技术来对横切关注点进行建模和实现。
1.Securtiy Aspect:用于对整个系统的Security提供支持。
2.ErrorHandling Aspect:整个系统采用一致的错误/异常处理方式。
3.Log Aspect:用于系统异常、日志记录、业务操作记录等。

四.规则
1.系统各层次及层内部子层次之间都不得跨层调用。
2.Entity object 在各个层之间传递数据。
3.需要在UI层绑定到列表的数据采用基于关系的DataSet传递,除此之外,应该使用Entity object传递数据。
4.对于每一个数据库表(Table)都有一个DB Entity class与之对应,针对每一个Entity class都会有一个BEM Class与之对应。
5.有些跨数据库或跨表的操作(如复杂的联合查询)也需要由相应的BEM Class来提供支持。
6.对于相对简单的系统,可以考虑将Business Function子层和Business Flow 子层合并为一个。
7.UI层和BL层禁止出现任何SQL语句。

五.错误与异常
        异常可以分为系统异常(如网络突然断开)和业务异常(如用户的输入值超出最大范围),业务异常必须被转化为业务执行的结果。
1.DataAccess层不得向上层隐藏任何异常(该层抛出的异常几乎都是系统异常)。
2. 要明确区分业务执行的结果和系统异常。比如验证用户的合法性,如果对应的用户ID不存在,不应该抛出异常,而是返回(或通过out参数)一个表示验证结果 的枚举值,这属于业务执行的结果。但是,如果在从数据库中提取用户信息时,数据库连接突然断开,则应该抛出系统异常。
3.在有些情况下,BL层应根据业务的需要捕获某些系统异常,并将其转化为业务执行的结果。比如,某个业务要求试探指定的数据库是否可连接,这时BL就需要将数据库连接失败的系统异常转换为业务执行的结果。
4.UI层(包括Service层)除了从调用BL层的api获取的返回值来查看业务的执行结果外,还需要截获所有的系统异常,并将其解释为友好的错误信息呈现给用户。

六.项目组织目结构
 以BAS系统为例。
1.主目录结构:
 三层架构
2. 命名空间命名:每个dll的根命名空间即是该dll的名字,如EAS.BL.dll的根命名空间就是EAS.BL。每个根命名空间下面可以根据需求的分类 而增加子命名空间,比如,EAS.BL的子空间EAS.BL.Order与EAS.BL.Permission分别处理不同的业务逻辑。
3.包含众多子项目的庞大项目的物理组织:
 三层架构
核心子项目Core的位置:
三层架构
 
Core子项目中包含一些公共的基础设施,如错误处理、权限控制方面等。

七.发布服务与服务回调
以EAS系统为例。
 三层架构
1.同UI层的Page一样,服务也不允许抛出任何异常,而是应该以返回错误码(int型,1表示成功,其它值表示失败)的形式来表明服务调用出现了错误,如果方法有返回值,则返回值以out参数提供。
2. 如果BAS系统提供了WebService(Remoting)服务,则BAS必须提供BAS.Entrance.dll。 BAS.Entrance.dll封装了与BAS服务交换信息的通信机制,客户系统只要通过BAS.Entrance.dll就可以非常简便地访问BAS 提供的服务。
3.如果BAS需要通过WebService(Remoting)回调客户系统,则必须提供仅仅定义了接口的BAS.CallBack.dll,客户系统将引用该dll,实现其中的接口,并将其发布为服务,供BAS回调。
4. 当WebService的参数或返回值需要是复杂类型――即架构图中的Service Entity,则Service Entity应该在对应的BAS.EntranceParaDef.dll或BAS.CallBackParaDef.dll中定义。 WebService定义的方法中的复杂类型应该使用Xml字符串代替(注意,Entrance和CallBack接口对应服务的方法的参数是强类型 的),而Xml字符串和复杂类型对象之间的转换应当在BAS.Entrance.dll或BAS.CallBack.dll中实现。

此文章谢绝转载,如有抄袭,按法律程序惩处!      

                                                                                                   Writer:  XiuQuanShi


您可能感兴趣的文档:

--结束END--

本文标题: 三层架构

本文链接: https://www.lsjlt.com/news/39896.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • asp.net三层架构是什么
    ASP.NET三层架构是一种常用的软件开发架构,用于组织和管理ASP.NET应用程序的代码和功能。它将应用程序划分为三个主要层次:表...
    99+
    2023-08-28
    asp.net
  • MVC模式与三层架构
    目录1. 前言2. MVC模式3. 三层架构4. MVC和三层架构5. 总结5.1 IDEA 小技巧1. 前言 前面我们探讨了 JSP 的使用,随着计算机技术的不断更新迭代,JSP ...
    99+
    2023-03-21
    MVC模式 三层架构结构和作用
  • 如何解析.NET三层架构
    如何解析.NET三层架构,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。所谓三层架构,是在客户端与数据库之间加入了一个“中间层”,也叫组件层。这里所说的三层体系,...
    99+
    2023-06-17
  • Asp.Net三层架构怎么搭建
    搭建Asp.Net三层架构可以按照以下步骤进行:1. 创建项目:在Visual Studio中创建一个新的Asp.Net项目。2. ...
    99+
    2023-09-08
    Asp.Net
  • JavaWeb三层架构如何配置
    这篇文章主要介绍了JavaWeb三层架构如何配置,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、软件下载:1、java这里使用的是jdk1.4.2。下载地址:http://...
    99+
    2023-06-17
  • MySQL三层逻辑架构是什么
    小编给大家分享一下MySQL三层逻辑架构是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!MySQL三层逻辑架构MySQL的存储引擎架构将查询处理与数据的存储/...
    99+
    2023-06-27
  • 怎么理解.NET三层架构应用中的十层框架
    这篇文章给大家介绍怎么理解.NET三层架构应用中的十层框架,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。凡是接触.net开发的,***要理解的就是三层架构的重要思想。关于三层架构的概述 我就不多说了,相信大家都早已明白...
    99+
    2023-06-17
  • MVC模式与三层架构是什么
    这篇文章主要介绍“MVC模式与三层架构是什么”,在日常操作中,相信很多人在MVC模式与三层架构是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MVC模式与三层架构是什么”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-07-05
  • 三层架构和MVC的区别是什么
    本篇内容主要讲解“三层架构和MVC的区别是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“三层架构和MVC的区别是什么”吧!三层架构:1:数据访问层:主要是对...
    99+
    2024-04-02
  • 简单介绍三层架构工作原理
    目录前言一、什么是三层架构各模块功能划分表:三层架构运作流程图:三层架构中各功能模块如何联系?Entity在三层架构中的作用: 三层及实体层之间的依赖关系:二、为什么使用三层架构三、...
    99+
    2024-04-02
  • java三层架构原理与作用小结
    三层架构  三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合”的思想。概念简...
    99+
    2023-05-31
    java 三层架构
  • 深入解读MVC模式和三层架构
    MVC模式 MVC 是一种分层开发的模式,其中: M:Model,业务模型,处理业务V:View,视图,界面展示C:Controller,控制器,处理请求,调用模型和视图 控制器(...
    99+
    2023-05-18
    spring MVC MVC模式 三层架构
  • web三层架构工作原理是什么
    这篇文章主要讲解了“web三层架构工作原理是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“web三层架构工作原理是什么”吧!一、什么是三层架构三层架构就是为了符合“高内聚,低耦合”思想,...
    99+
    2023-06-21
  • java开发MVC三层架构上再加一层Manager层原理详解
    目录MVC三层架构MVC架构弊端Manager层的特征Manager层使用案例MVC三层架构 我们在刚刚成为程序员的时候,就会被前辈们 “教育” 说系统的设计要遵循 MVC(Mode...
    99+
    2024-04-02
  • java开发MVC三层架构上再加一层Manager层原理的示例分析
    这篇文章主要为大家展示了“java开发MVC三层架构上再加一层Manager层原理的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“java开发MVC三层架构上再加一层Manager层原理...
    99+
    2023-06-25
  • 三层网络结构(核心层、汇聚层 、接入层)
    三层网络结构:三层网络结构是采用层次化架构的三层网络。三层网络架构采用层次化模型设计,即将复杂的网络设计分成几个层次,每个层次着重于某些特定的功能,这样就能够使一个复杂的大问题变成许多简单的小问题。三层网络架构设计的网络有三个层次:核心层(...
    99+
    2023-06-04
  • C#使用三层架构开发Winform的详细案例
    目录一、案例需求二、项目结构三、实体类编写四、数据访问层编写五、业务逻辑层编写六、界面UI层代码编写三层架构将整个业务应用划分为: (1)界面UI层(2)业务逻辑层(3)数据访问层 ...
    99+
    2024-04-02
  • 高通音频架构(三)
    一、Kernel层 音频由于其特殊的工作,使得它的结构特别的复杂,而且在自己的结构基础上还引入了ALSA架构,不过在android系统上所引入的并非完整的ALSA架构而是精简版的tinyalsa,但是就算精简版也是内容相当丰厚。除此,音频还...
    99+
    2023-08-18
    音视频 android 驱动开发
  • 浅谈架构模式变迁之从分层架构到微服务架构
    目录前言单体架构分布式架构软件设计中的谬误谬误1:网络是可靠的谬误2:时延是0谬误3:带宽是无限的谬误4:网络是安全的谬误5:网络拓扑一成不变谬误6:只有一个网络管理员谬误7:通信成...
    99+
    2024-04-02
  • web前端三层结构是什么
    本篇内容介绍了“web前端三层结构是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!web前端的三层结构分别是:1、结构层,由HTML或X...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作