前面谈了多篇技术架构方面的文章,本篇做一个简单的总结。
在产品开发里面的一个重要思路,即分为产品,平台和技术三个层面的内容。如果和这个分类方法对应,则产品和平台都应该体现在应用架构总体框架中,平台本身又分了IaaS层平台和PaaS层平台。而技术则体现在技术架构这个概念里面。 即我们谈到技术架构和产品架构,平台架构都是一种松耦合的关系。技术架构本身不能形成平台或产品,而是需要在应用建设,平台建设中考虑究竟需要使用哪些技术,如何使用。产品中需要使用平台,也还需要使用平台中未涵盖的额外技术,平台建设中也需要使用各自关键技术,这些都需要体现在技术架构中进行统一的规划和考虑。
应用架构本身只关心需要有哪些应用系统,哪些平台来满足业务目标的需求,而不会关心在整个构建过程中你需要使用哪些技术; 技术架构是接应用架构的技术需求,并根据识别的技术需求,进行技术的选型,并把各关键技术和技术之间的关系描述清楚。
技术架构本身是和业务无关的架构设计部分内容 ,从企业架构的来说偏向于IT基础设施架构,而实际的技术架构应该包括了整体技术架构和业务系统技术架构两个部分的内容。
对于整体技术架构重点是在谈从整个企业IT来看,整个技术架构体系是如何的,里面更多的是谈包括什么样的一个技术平台,平台和应用系统间的集成关系,应用系统间的集成关系,涉及到的关键技术体系等。因此整体技术架构更加宏观,比如下图(来自网络)可以做为整体技术架构的一个参考:
当然在前面几篇文章中谈到的PaaS平台整体架构体系,基于SOA和ESB的服务集成架构体系都可以做为企业整体IT的技术架构内容。即只要非业务相关的架构设计都可以纳入技术架构,IT基础设施和资源层只是一部分。
到了系统内部,我们往往很少单独谈技术架构这个文档,一般是在系统整体的架构设计文档中包括了技术架构设计部分的内容。当然如果把技术架构文档单独出来,核心思路仍然一样,即业务系统的技术架构文档重点是解决业务无关的架构设计部分的内容,具体可能包括了如下内容:
1. 整个开发框架和开发技术的选择
2. 开发如何分层,当然主流的是数据层,应用层和展现层使用什么框架和技术,各层间如何协同
3. 接口实现方法和技术,组件间集成是否基于SOA服务化架构思想来做
4. 非功能性需求如何设计(安全,日志,性能,扩展性,可靠性等)
5. 有哪些公共的技术组件需要抽取和统一实现
6. 整个技术框架中涉及到哪些关键技术点,这些关键技术点的核心实现方案是如何的
到业务系统层级,以上都应该做为关键的技术架构设计的内容。可以看到技术架构一定下来,那么我们开发一个新的业务系统,究竟应该采用什么样的工具,语言,框架,开发标准和流程等都应该全部订下来基于统一的标准来实现。那么一个熟悉CRM的技术架构的人,就很容易快速的熟悉MES系统的代码实现和结构,只要两者采用同样的技术架构和标准体系。
一个典型的业务系统内的架构设计,可以参考下图(来自网络):
要意识到的就是,一个业务系统的技术架构不仅仅是简单的MVC模式,SSH分层框架,这些这是业务系统技术架构中很少的一部分内容。更加重要的包括了上面谈到各个点都需要在技术架构设计中考虑清楚。
来源: http://www.tuicool.com/articles/NZRFnuz