开放组体系结构框架(TOGAF)

开放组体系结构框架(TOGAF)是一个行业标准的体系架构框架,它能被任何希望开发一个信息系统体系架构在组织内部使用的组织自由使用。TOGAF 企业版v8是为开发企业架构 的一个详细的方法和相关支持资源的集合。
开放群组企业架构框架,有4 种被接受为企业架构的子集的架构,TOGAF 都支持:

  • 业务架构
  • 定义了商业策略,管理,组织和关键业务流程。
  • 应用架构
  • 这种结构为待配置的个人应用系统提供一个蓝图,从他们的交互,他们的关系到该组织核心的业务流程。
    应用架构(Application Architecture)是描述了IT系统功能和技术实现的内容。应用架构分为以下两个不同的层次:
    企业级的应用架构:企业层面的应用架构起到了统一规划、承上启下的作用,向上承接了企业战略发展方向和业务模式,向下规划和指导企业各个IT系统的定位和功能。在企业架构中,应用架构是最重要和工作量最大的部分,他包括了企业的应用架构蓝图、架构标准/原则、系统的边界和定义、系统间的关联关系等方面的内容。
    单个系统的应用架构:在开发或设计单一IT系统时,设计系统的主要模块和功能点,系统技术实现是从前端展示到业务处理逻辑,到后台数据是如何架构的。这方面的工作一般属于项目组,而不是企业架构的范畴,不过各个系统的架构设计需要遵循企业总体应用架构原则。
    应用架构主要以架构图的方式描述系统的组成和框架,一般从系统功能和系统技术层次两个架构视角进行设计:
  1. 系统功能视角的应用架构图


    应用架构图-功能视角
  2. 系统技术层次视角的应用架构图


    应用架构图-技术层次视角
  • 数据架构
  • 这个描述一个组织逻辑的和物理的数据资产和数据管理资源的结构。
  • 技术架构
  • 它描述了支持核心部署和关键任务应用的软件基础设施。这种软件有时也叫做中间件。

谈下应用架构和技术架构的关系边界问题

这里的说明和标准的TOGAF会有一些区别,仅为个人理解的一些点滴记录。

  1. 首先再说下应用架构,应用架构是和业务架构有强烈的映射关系的一个架构,应用架构要说明的是整体企业内部信息化建设和规划应该分为哪些应用系统去建设,应用系统间的集成关系是如何的。即我们常说的应用架构和应用集成架构。业务架构只关系核心的业务流程,业务域,业务组件识别出来即可,应用架构在业务架构的基础上多考虑两个事情,一个是究竟如何来划分业务系统,业务系统的划分粒度如何?如何满足划分后的业务系统间的高内聚松耦合;第二个是在业务架构转换到应用架构去规划后续建设实施的时候,应该有哪些内容可复用的识别,将可复用的内容和资源共享的内容下沉到我们说的平台层,将业务系统间需要协同和整合分析的内容上升到我们常说的门户层和BI展示层。解决完这两个问题即完成业务系统朝应用架构的转化。简单来将应用架构中的所有点都是应该后续可以规划建设的应用系统或平台。企业后续需要建设一个安全管理平台,虽然和业务无关,但是应该体现在应用架构的PaaS平台层。企业整个应用建设需要考虑IT基础设施资源池虚拟化和整合,需要体现在应用架构的IaaS基础平台层。企业没有这种单独抽出来独立建设的规划,就不用体现到应用架构中,而该点仅仅变化为应用系统中建设需要考虑的一个技术点,直接在技术架构中解决。我原来一直强调过在产品开发里面的一个重要思路,即分为产品,平台和技术三个层面的内容。如果和这个分类方法对应,则产品和平台都应该体现在应用架构总体框架中,平台本身又分了IaaS层平台和PaaS层平台。而技术则体现在技术架构这个概念里面。即我们谈到技术架构和产品架构,平台架构都是一种松耦合的关系。技术架构本身不能形成平台或产品,而是需要在应用建设,平台建设中考虑究竟需要使用哪些技术,如何使用。产品中需要使用平台,也还需要使用平台中未涵盖的额外技术,平台建设中也需要使用各自关键技术,这些都需要体现在技术架构中进行统一的规划和考虑。应用架构本身只关心需要有哪些应用系统,哪些平台来满足业务目标的需求,而不会关系在整个构建过程中你需要使用哪些技术;技术架构是接应用架构的技术需求,并根据识别的技术需求,进行技术的选型,并把各关键技术和技术之间的关系描述清楚。大家可以关注下互联网上各自技术架构分享资料,你最多知道一个大的业务场景,其它内容全是采用了什么样的技术,什么样的开源组件,这些技术融合在一起解决了哪些问题。而实际的应用系统长什么样子,有哪些具体的功能点在技术架构中是完全看不到的。再回来看技术架构,技术架构解决的问题包括了如何进行纯技术层面的分层,开发框架选择,语言选择,涉及到各自非功能性需求的技术点(安全,性能,日志,异常,缓存,消息,大数据量)等需要使用的关键技术。由于我们的应用架构体系本身是分层的,那自然有和其对应的技术架构体系,大的分层包括了SOA参考架构分层模型,小的分层则是单个应用的技术分层多层框架。这些都考虑清楚的剩下的问题就简单了,即根据实际的业务场景模拟来验证各个技术点间的协同,各技术点最终形成技术组件,各个技术组件间也需要高可靠集成。技术架构是对应用架构的一个完整支撑,应用架构和技术架构都描述清楚后还应该考虑和验证当前技术架构是否可以完整的支撑应用建设。应用架构是给技术架构输入具体的应用建设需求变转换为具体的技术需求点,各个技术点的分析,方案选型,最终形成关键技术清单,关键技术清单考虑应用架构本身的分层逻辑形成一个完整的技术架构图。对于IT基础设施架构我们常常将其纳入技术架构范畴,但是不是全部。对于单个应用系统建设的时候谈到应用本身的MVC模式分层框架更加仅仅是技术架构的一部分内容。

推荐阅读更多精彩内容