架构浅析 | 青训营笔记

88 阅读3分钟

这是我参与[第五届青训营]伴学笔记创作活动的第9天。

架构是对存储在Active Directory中的对象类别和属性的描述。对于每一个对象类别来说,该架构定义了对象类必须具有的属性,它也可以有附加的属性,并且该对象可以是它的父对象。

可以动态更新的Active Directory 架构。应用程序可以使用新的属性和类扩展该架构,并能立刻使用该扩展。通过在Active Directory 中创建或修改存储在 Active Directory 中的架构对象来完成架构的更新。与Active Directory 中的所有对象一样,架构对象能访问控制列表,因此只有授权的用户才可以更改架构。

架构设计目标

正如同软件本身有其要达到的目标,软件架构设计要达到如下的目标:

  1. 可靠性(Reliable)。软件系统对于用户的商业经营和管理来说极为重要,因此软件系统必须非常可靠。
  2. 安全性(Secure)。软件系统所承担的交易的商业价值极高,系统的安全性非常重要。
  3. 可扩展性(Scalable)。软件必须能够在用户的使用率、用户的数目增加很快的情况下,保持合理的性能。只有这样,才能适应用户的市场扩展得可能性。
  4. 可定制化(Customizable)。同样的一套软件,可以根据客户群的不同和市场需求的变化进行调整。
  5. 可伸缩 (Extensible)。在新技术出现的时候,一个软件系统应当允许导入新技术,从而对现有系统进行功能和性能的扩展。
  6. 可维护性(Maintainable)。软件系统的维护包括两方面,一是排除现有的错误,二是将新的软件需求反映到现有系统中去。一个易于维护的系统可以有效地降低技术支持的花费。
  7. 客户体验(Customer Experience)。软件系统必须易于使用。
  8. 市场时机(Time to Market)。软件用户要面临同业竞争,软件提供商也要面临同业竞争。以最快的速度争夺市场先机非常重要。

种类

根据我们关注的角度不同,可以将架构分成三种:

  • 逻辑架构、软件系统中元件之间的关系,比如用户界面,数据库,外部系统接口,商业逻辑元件,等等。系统被划分成三个逻辑层次,即表象层次,商业层次和数据持久层次。每一个层次都含有多个逻辑元件。比如WEB服务器层次中有HTML服务元件、Session服务元件、安全服务元件、系统管理元件等。
  • 物理架构、软件元件是怎样放到硬件上的,包括网络分流器、代理服务器、WEB服务器、应用服务器、报表服务器、整合服务器、存储服务器。主机等等。
  • 系统架构、系统的非功能性特征,如可扩展性、可靠性、强壮性、灵活性、性能等。系统架构的设计要求架构师具备软件和硬件的功能和性能的过硬知识,这一工作无疑是架构设计工作中最为困难的工作。