这部分主要是架构师综合知识的介绍,相关系列文章如下所示。
在实际应用中,面对安全威胁,可以通过如下5个方面进行准备:认证鉴别、访问控制、内容安全、冗余回复和审计响应。
相关信息安全标准:TCSEC(美国)、ITSEC(欧洲)、加拿大(CTCPEC)、ISO7498-2-1989标准。我国的信息安全主管部门包括公安部、信息产业部和国家技术标准局。
1.信息系统安全体系
验证(Authentication):验证用户是否可以获得访问权,认证信息包括用户名、用户密码和认证结果。
授权(Authorization):授权用户可以使用哪些服务,授权包括服务类型及服务相关信息等。
审计(Accounting):记录用户使用网络资源的情况,用户IP地址、MAC地址掩码等。
2.网络安全体系架构设计
国家标准《信息处理系统工程开放系统互联基本参考模型—第二部分:安全体系结构》给出了基于OSI参考模型的7层协议之上的信息安全体系结构。
网络安全体系结构的基础包括:多点技术防御,网络和基础设施、边界、计算环境;分层技术防御,公钥基础设施、检测和响应基础设施。
网络安全体系结构的相关框架包括:鉴别框架(验证)、访问控制框架(授权)、机密性框架(加密)、完整性框架、抗抵赖框架。
此外,数据库系统的安全性主要通过数据库完整性设计来解决。
ODP(Open Distributed Processing)从5个标准的视角来分析系统的架构,如下图所示。
企业业务架构:企业业务和战略目标、企业组织机构、业务的分类、各类业务之间的关系、阻止机构和业务的关系、企业与外部机构的关系。
逻辑信息架构:标识出系统必须知道什么,通过一个对象模型,强调定义系统状态的属性。
计算接口架构:它定义了顶层的应用程序接口,这是完全工程化的子系统边界的接口,其对于支持变化和复杂的系统来说非常重要。
分布式工程结构:其定义了低层结构的需求,独立于所选择的技术。它很好的解决了一些最复杂的系统策略,包括物理位置、系统规模可变性和通信服务质量,在实践中,需要注意对象复制、多线程和系统拓扑等问题。
技术选择架构:确定实际的技术选择,所有其他视点都独立于这些决定。
VRAPS是为时间软件架构的组织管理原则提出的,包括构想、节奏、遇见、协作和简化5个相关联的原则。
构想原则:说明了如何向架构的收益人描述一幅一致的、有约束力和灵活的未来图景。
节奏原则:刻画了一种在整个组织范围内的协调程度,即定期的根据可预测的速度、内容和质量对制品生产进行检查和规划。
预见原则:要在预测未来与检查并适应现状之间做出平衡。
协作原则:解决了如何识别对架构成功关键的团体,以及如何确保这些合作伙伴的有效支持。
简化原则:要求理解组织的结构,了解架构最小的基本特征并最小化架构。
接下来,通过一个图表描述准则到模式和反模式的映射。
准则 |
反模式 |
模式 |
架构师的构想与发起人、用户和最终用户期望实现的目标是否保持一致 |
风险后置 |
前后一致 |
实施人员是否新人并使用架构 |
墙头草 |
三个臭皮匠 |
关于架构和构建的潜藏知识对其用户是否是可见的、可获得的 |
一叶障目 |
轮转工作 |
经理们定期的再评估、同步和调整架构 |
一步成功 |
发布委员会 |
架构用户对架构发布的进度和内容具有高度的信心 |
超敏捷 |
弃卒保帅 |
通过节奏协调明确活动 |
销售未检验的产品 |
同步发布 |
不断增强架构的响应能力:预见风险和市场的演变 |
遗漏细节 |
示范区 |
战略性业务方向的改变,通过快速复审和开发周期,评估技术和业务上的风险和机会 |
品尝未熟的果实 |
架构复审 |
当认识到关键的估计或假设有错时,及时调整功能特性、预算 |
创造奇迹 |
外包 |
架构师不断的努力了解谁是最关键的收益人,他们如何贡献价值以及需要什么 |
光说不做 |
了解你的受益人 |
受益人之间达成明确和强制性的契约 |
不记录讨论结果 |
互惠互利 |
通过社会行为制度和非正式规范强化合作 |
非正式时间做正式工作 |
杜绝意外,和HR合作 |
开发人员长期不断使用架构,减少了总成本和复杂性 |
简单复制并修改 |
由慢而快 |
架构小组明确理解关键最小需求并将其构造成多应用共享的核心元素 |
缺乏有效的抽象 |
迁移途径 |
通过长期的预算和行动确保相关元素没有被共享和增加不必要的复杂性时,去除该元素 |
编码大于架构 |
统计构件变更 |
一般来说,层次架构基本上分为三层,分别是表现层、业务逻辑层和数据访问层。
表现层架构设计:使用MVC模式设计表现层;使用XML设计表现层,统一WebForm和WinForm的外观;表现层中的UIP设计思想;表现层动态生成设计思想。
中间层架构设计:业务逻辑层组件设计、业务逻辑层工作流设计、实体设计、业务逻辑层设计。
持久层设计:5中数据访问模式,在线访问、DAO、DTO、离线数据模式、ORM。
信息时代的企业集成需要在一个开放的计算机支撑环境下实现,企业集成平台(EIP,Enterprise Integration Platform)技术是近年用来企业信息集成的一种先进的计算机技术,其目的是能根据业务的变化对信息系统进行调整,使得不同系统、服务、人员之间顺畅的互操作,提高企业适应市场变化的能力,提高其生存能力。
企业集成平台的主要功能包括:通信服务、信息集成服务、应用集成服务、二次开发工具、平台运行管理工具。
实现技术的发展趋势:集成的技术从2层到n层过渡;集成支持的方式从面向信息集成扩充到面向过程集成、服务集成;集成规范的标准化程度不断提高;所支持的集成耦合度及集成的粒度的变化。
集成主要技术:CORBA,COM+,J2EE,Web Service。
企业模型在整体解决方案中的作用:企业模型在整体解决方案中的作用;建模和基于模型的分析师企业信息化工作的入手点和建立有效的实施途径的基础;建模可以对信息系统规划方案进行预评价;基于模型的工作流执行可以导航和监控个信息系统之间及信息系统与外界的交互。
最部分是本问最最很重要的SOA部分,因为其在实际的工作中使用的最多。Massimo Pezzini, Gartner Group说过,"当有一天,所有应用都写成了Web服务,继承也许可以变得更容易"。面向对象的体系结构(Service-Oriented Architecture, SOA)从应用和原理的角度,目前有两种业界工人的标准定义。从应用的角度来看,可以认为SOA是一种应用架构,它着眼于日常的业务应用,并将它们划分为单独的业务功能和流程,即所谓的服务。从软件的基本原理定义,可以认为SOA是一个组件模型,它将应用程序的不同功能单元通过这些服务之间定义良好的接口和契约联系起来。
业务流程是指为了实现某一业务目而进行的流程或一系列活动。BPEL(Business Process Execution Language For Web Services)表示面向Web服务的业务流程执行语言,其提供一种相对简单易懂的方法,将多个Web服务组合到一个新的复合服务(称为业务流程)中。
SOA的发展历史包括三个阶段:萌芽阶段,XML技术的出现;标准化阶段,包括3个著名的Web服务标准和规范:简单对象访问协议(SOAP)、Web服务描述语言(WSDL)以及通用服务发现和集成协议(Universal Discovery Description and Integration, UDDI);成熟应用阶段,包括SCA/SDO/WS-Policy等三个重量级规范。
接下来将IBM的Websphere业务集成架构作为参考,来分析以服务为中心的企业集成架构,其通过"分离关注点"的方式规划企业集成中的各种架构元素,同时从服务视角规划每种架构元素提供的服务,以及服务如何被组合在一起完成某些类型的继承,如下图所示。
业务逻辑服务:包括实现业务逻辑的服务和执行业务逻辑的能力,其中包括业务应用服务,业务伙伴服务以及应用和信息资产。
控制服务:包括实现人、流程和信息集成服务,以及执行这些集成逻辑的能力。
连接服务:通过提供企业服务总线提供分布在各种架构元素中服务间的连接性。
业务创新和优化服务:用于监控业务系统运行时服务的业务性能,并通过及时了解到业务性能和变化,采取措施适应变化的市场。
开发服务:贯彻整个软件开发生命周期的开发平台,从需求分析、到建模、设计、开发、测试和维护等全面的工具支持。
IT服务管理:支持业务系统运行的各种基础设施管理能力或服务,如安全服务、目录服务、系统管理和资源虚拟化。
企业服务总线ESB是过去消息中间件的发展,采用了"总线"这样一种模式来管理和简化应用之间的继承拓扑结构,以广为接受的开发标准为基础来支持应用之间在消息、事件和服务级别上动态的互通互联。其基本特征和能力为:描述服务的元数据和服务注册管理;在服务请求者和提供者之间传递数据,以及这些数据的转换能力,并支持由实践中总结出来的一些模式如同步模式、异步模式;发现、路由、匹配和选择的能力,以支持服务之间的动态交互,结构服务请求者服务提供者。高级一些的功能,包括对安全的支持、服务质量保证、可管理性和负载平衡。
SOA的主要技术和标准:Web服务是实现SOA中服务最重要的手段,首先来了解跟WebService相关的标准,它们大多以WS-作为名字的前缀,可以统称WS-*。其最基本的协议包括UDDI、WSDL和SOAP,通过它们,可以提供直接而又简单的WebService支持。
UDDI计划是一个广泛的、开放的行业计划,使得商业实体能够彼此发现;定义它们怎样在Internet上相互作用,并在一个全球的注册体系中共享信息。此外,其包含服务描述与发现的标准规范。UDDI规范利用了W3C和Internet工程任务组织的很多标准作为其实现基础,如XML,HTTP和DNS等协议。
WSDL规范,是一个用来描述Web服务和说明如何与Web服务通信的XML语言,描述了Web服务的三个基本属性:服务做些什么--提供的操作;如何访问服务—和服务交互的数据格式以及协议;服务位于何处—协议相关的地址。这部分的学习可以很好的为WCF等的使用建立完备的方法论体系。
SOA的特性包括:文档标准化;通信协议标准;应用程序统一登记与集成;服务品质(Quality of Service, Qos),包括可靠性、安全性、策略、控制、管理。
SOA的作用:在企业内部,可能存在不同的应用系统,而这些系统由于开发时间和工具等的不同,一个业务请求很难有效调用所有应用程序。用简单的的语言来讲,就是这些应用是孤立的,也就是常说的信息孤岛。在过去,企业通过EAI企业应用整合的方式进行处理,不过这种类似的中介者的模式当应用很多时,会变得异常的复杂,因而通过SOA将应用和资源转化为服务,并将服务转化为标准的服务,形成资源共享。
SOA的设计原则:无状态、单一实例、明确定义的接口、自包含和模块化、粗粒度、服务之间的松耦合性、重用能力、互操作性、兼容和策略声明。
SOA的设计模式(这部分还有不少困惑,例如公司的SOA1.0和SOA2.0的具体差异)
服务注册表模式主要用于SOA设计阶段,其支持驱动SOA治理的服务合同(ServiceContract)、策略(Binding)和元数据的开发、发布和管理。它提供一个主控制点(endpoint?),或者成为策略执行点,在这个点上,服务可以在SOA中注册和被发现。
企业服务总线模式:ESB可以将程序组件以服务单元的方式"插入"到平台中运行,且组件之间能够以标准的消息通信方式交互,其定义为"企业服务总线是由中间件技术实现的支持面向服务架构的基础软件平台,支持异构环境中的服务以基于消息和事件驱动模式交互,且具有适当的服务质量和可管理性"。其核心功能包括:提供位置透明性的消息路由和寻址服务;提供服务注册和命名的管理功能;支持多种消息传递泛型;支持多种可以广泛使用的传输协议;支持多种数据格式及其相互转换;提供日志和监控功能。在设计时,需要注意服务粒度的控制和无状态服务的设计(如EJB的Session bean)。