建筑规范规定了卧室的窗子至少要30英寸高,20英寸长,这样一来,在发生火灾时,人员就可以通过;公交车上的黄色座椅为老有病残专座;还有教育孩子时经常说的给孩子自由,但是对于涉及安全等一定要干预。这些都是生活中的需要遵守的原则。那做架构时,是不是也需要遵守一些原则?这些原则有什么用?存在哪些原则呢?原则这个概念,我认为还是比较难理解的,看了TOGAF的文档后还是很模糊,以下我就把我个人现在对架构原则的理解和大家分享一下。
约束和原则
什么是约束
问题:有一只猪四百斤,一座桥承重两百斤,猪怎么过桥?
条件:
1.猪是活猪,任何解决方案都不得切割猪;
2.故事发生在猪王国,不要引入人的因素;
3.是过桥,不是过河,不要说是游泳过去;
4.是过桥,不是过涧,不要说是飞过去丫;
5.桥是承重两百斤的桥,把桥挪到平地上抑或过另一座承重超过四百斤的桥都属改变性状;
6.不是文字游戏,不要说“猪晕过去了”。
约束在我们以前做需求、架构时经常谈到,会比较容易理解,就是限制我们作出决定的一些条件,比如必须使用Delphi、使用SQL Server等。
什么是原则
原则:说话或行事所依据的通用规则和指导方针,是做某件事或解决某个问提或在某个领域里不能离开的禁止性规定。原则如宪法,我们必须遵守,如我们建设中国有特色的社会主义,比须坚持党的领导,坚持走社会主义道路,坚持民主集中制,坚持改革开放四项基本原则。
架构原则可以作为IT架构决策的依据,驱动架构定义,可以一开始通过头脑风暴来收集,后续还可以通过开发过程中增加。与规则有关的一个概念是指导方针,指导方针则尝试着根据一系列的常规程序来精简出特定的流程,指导方针永远不是强制性的。
约束和原则相比
约束受特定环境影响,可能有多种方案,但是基于特定的环境下我挑选出一些方案。而架构原则创造环境,像一把伞,影响着业务架构、信息架构、应用架构和技术架构,是比约束更高层的约定,它要求容易理解、一致、稳定、完整。
约束必须在架构原则范围内。企业现有网络环境以太网速度为10M,则约束就为网络速度为10M。如果企业架构中要求以太网的连接速度必须达到100M,从而可以让视频或声音的数据流可以很好的传输,考虑架构原则时,约束的作用力就没有架构原则强,此时就需要去除这个约束,提高以太网速度来满足架构。(如有不同观点请指正)
我理解的一些示例
- 架构原则
- 基于标准方法来做架构,如使用TOGAF架构方法
- 说不清的不做
- 没人上层持久推动的不做
- 达不成一致意见的不做
- 业务原则
- 业务持续性(对业务发展有长远计划,不能只考虑近期实现范围)
- 业务通用性(业务是否可以作为一个公用业务架构)
- 业务一致性
- 合法
- 数据原则
- 数据价值性>数据正确性>数据完整性
- 数据积累分析需要规范化数据
- 数据是安全的
- 数据不只是可以共享的数据,还包含业务规则和策略
- 应用原则
- 技术独立性,不绑定到特定厂商
- 易用
- 模块化设计
- 独立业务规则
- 统一授权,统一界面
- 技术原则
- 响应变化
- 可扩展
TOGAF示例
下面为TOGAF的一个示例,更多示例参考TOGAF Architecture Principles。
- Principle 9:
- Data is an Asset
- Statement:
- Data is an asset that has value to the enterprise and is managed accordingly.
- Rationale:
- Datais a valuable corporate resource; it has real, measurablevalue. Insimple terms, the purpose of data is to aiddecision-making. Accurate,timely data is critical to accurate, timelydecisions. Most corporateassets are carefully managed, anddata is no exception. Data is thefoundation of our decision-making, sowe must also carefully manage datato ensure that we knowwhere it is, can rely upon its accuracy, and canobtain it when andwhere we need it.
- Implications:
-
- This is one of three closely-related principles regarding data:data is an asset; data is shared; and data is easilyaccessible. Theimplication is that there is an education task to ensure that allorganizations within the enterprise understandthe relationship betweenvalue of data, sharing of data, and accessibility to data.
- Stewards must have the authority and means to manage the data for which they are accountable.
- We must make the cultural transition from “data ownership” thinking to “data stewardship” thinking.
- The role of data steward is critical because obsolete, incorrect,or inconsistent data could be passed to enterprise personnelandadversely affect decisions across the enterprise.
- Part of the role of data steward, who manages the data, is toensuredata quality. Procedures must be developed and used toprevent andcorrect errors in the information and to improve thoseprocesses thatproduce flawed information. Data quality willneed to be measured andsteps taken to improve data quality – it isprobable that policy andprocedures will need to be developedfor this as well.
- A forum with comprehensive enterprise-wide representation should decide on process changes suggested by the steward.
- Since data is an asset of value to the entire enterprise, datastewards accountable for properly managing the data must beassigned atthe enterprise level.
参考
Architecture principles: Creating the foundation for robust architecture