[译]架构(一)

1.什么是架构?

首先了解一下什么是“设计”。设计是用于解决系统中的某些特定问题(费用,范围,资源,需求),即设计是有一定目的性的,设计是从一组可供选择的解中选择一个较优的解。

所有的架构都是设计,但并不是所有的设计都是架构。

架构代表了塑造一个系统的重大设计,其重要性以转化代价(更换架构需要花费的代价)来度量。

2.架构的分类

(1)应用架构

应用架构是程序员最熟悉的。它将焦点放在如何以正确,高效的方式开发应用。涉及如何将应用分解为组件和类,使用何种设计模式,使用哪些软件框架等等。从本质上来看,应用架构关注软件设计方面的问题,通常和特定的技术栈(java,.net等)相关。

[译]架构(一)

(2)系统架构

系统架构可以看作是应用架构的更高一层。例如,许多软件系统实际上都是由多个分层的软件技术及应用组成。你可能使用.NETSilverlight开发web客户端,访问JavaEE构建的web服务,而该服务依赖Oracle数据库。这些技术都有各自的应用架构,由不同领域的专业人员来设计它们的应用架构。然而,还需要有人设计一个大的架构,使得当所有的应用被合到一起时,整个系统能正常运作。系统架构就是将整个系统分解为大的组件(应用),使得它们具有合适的内聚和耦合性。换句话说,系统架构是保证系统以正确的方式建造。组成系统的组件(应用)之间能相互结合且具备良好的互操作性。

还需要指明的是,系统架构冲出了纯软件领域,同时考虑了硬件和其他基础设施。毕竟,这些应用需要被部署在真实的环境下运行。

[译]架构(一)

(3)企业架构

通常指企业中CTO和CIO相关的工作。关注如何组织和管理公司员工、过程、技术,使企业能高效地运作。它的意义和应用架构以及系统架构有很大不同,它不关注技术细节,它是更高层次的一种抽象。

[译]架构(一)

相关推荐