关于软件架构的定义本人比较模糊,于是结合网上的定义总结了一下
软件架构(software architecture)是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。 软件架构是一个系统的草图。软件架构描述的对象是直接构成系统的抽象组件。各个组件之间的连接则明确和相对细致地描述组件之间的通讯。在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象。在面向对象领域中,组件之间的连接通常用接口(计算机科学)来实现。 软件体系结构是构建计算机软件实践的基础。与建筑师设定建筑项目的设计原则和目标,作为绘图员画图的基础一样,一个软件架构师或者系统架构师陈述软件构架以作为满足不同客户需求的实际系统设计方案的基础。
【一个架构关注与结构和行为,尽管关注重要决定,受涉众和环境的影响,两外架构定义有两个重要概念:接口和组件,可以说逐渐是整个系统组成的基本元素,而接口是这些组件之间的联系】
关于三层架构,最早出现java中的J2EE三次架构体系,后台.net也随之诞生。
【微软的DNA架构定义的三层架构分别是表示层(Web)、业务逻辑层(BLL层)、数据存储层(DAL层)】
【表示层(Web/UI层)】:
1):从用户端收集信息。
2):将用户信息发送到业务逻辑层处理。
3):从业务逻辑层接受处理结构
4):将结构显示个用户。
【业务逻辑层(BLL层)】:
1):从表示层接收处理信息。
2):与数据层交互执行已设计的业务。
3):操作业务逻辑、系统服务等。
4):将处理结构发送给表示层。
【数据层(DAL)】:
1):数据存储、操作、维护。
2):将处理好的数据传送给BLL层。
关于三层结构的优势:分散关注、松散耦合、逻辑复用等。
关于MVC和Web From三层
MVC 【浏览器】=(HTTP请求)=》 【控制器】=》【模型】
MVC 【浏览器】《=(HTTP页面) 【视图】 《=【模型】
WebFrom 【浏览器】=(HTTP请求)=》 【表示层】=》【业务逻辑层-数据层】
WebFrom 【浏览器】《=(HTTP页面) 【表示层】 《=【业务逻辑层-数据层】
可以看出 MVC和WebFrom三层的不同之处在于MVC的Model完成了WebFrom 业务逻辑层和数据层的功能