SOA设计原则
一 PA阶段(pre-Architecture)
1 需求矩阵
软件需求=功能需求+质量属性+约束
按层次分为:业务级别,用户级别,开发级别
|
功能
|
质量
|
约束
|
业务级别需求
|
xxx
|
可扩展
|
业务环境约束
|
用户级别需求
|
xxxx
|
安全,高可用
|
使用环境约束
|
开发级别需求
|
xxxx
|
可定制,可重用
|
开发环境约束
|
二 CA阶段(Conceptual Architecture)
物理层架构设计:
定义就是,对高层组件的职责进行笼统定义,并给出高层组件之间的关系。并不设计到接口的细节
主要也是为三个阶段
a 基于关键的功能进行初步设计
b 综合初步设计,确认高层分割
c 考虑非功能需求做出相应决策
总结: 关键功能 + 关键质量 + 业务需求与约束
此步可以通过鲁棒图进行分析得出高层组件之间的关系
得出概念分层结构图为理想化架构

根据概念架构继续细化分析
目标
|
场景
|
决策
|
集成性
|
如何将大量的异构系统进行集成
|
指定系统集成标准。。。
|
高可用
|
考虑到磁盘,中间件,网络等等各个环节一旦发生故障,如何避免单点故障
|
磁盘阵列,故障转移集群,双链路网络
|
安全性
|
数据不丢失,个人隐私保护等等
|
数据备份,灾备方案,加密,存储,访问授权等等
|
三 RA 阶段

物理层架构设计:
数据库的架构设计:
难点是分布式方案设计,主要应该从三个方面考虑:垂直切分,水平切分,构建OLAP 和 离线数据处理
1) 垂直切分 就是按照系统功能进行数据切分,从系统,子系统,模块逐步深入进行切分,目的是实现数据存储级的功能解耦。由于数据存储层分开不能直接夸库访问,只允许通过程序级别的接口机型访问,可以是API,也可以是SOA架构中的服务。由于本身从代码上来讲,这些代码是相互独立的,所以数据如何存储影响不大,可以完全实现解耦设计。
2)水平切分 对相同的功能采用相同的数据结构定义,但会在数据级进行区分,如按照时间,按照不同的客户群,按照业务数据的某个属性,都是可以的。水平切分是实现SaaS系统Multi-Tenant`
3)构建OLAP 数据处理大致分为俩类:OLTP (联机事务处理)OLAP(联机分析处理)
