企业级应用解决方案架构设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 服务是指一个经过封装的业务流程 • SOA的目标是提供一种松耦合的业务集成和运 行架构 • SOA不是一套产品
什么是SOA:对象和服务
面向对象
• 本地保存完整的对象 • 界限难以划分 • 共享类型,而不是schema
• 紧耦合 • 通常需要部署客户端和服 务器,并同步 • 开销不大,通信透明 • 对象的维护由基础平台承 担
– 与流程的区别
• 它是无状态的 • 它不依赖内部的存储,需要发起者给定所有的信息
SOA中服务的分类——中介服务
• 技术网关
– 技术特点
• • 填补技术差异,它们包含两种或两种以上的通讯或数据编码的技术 扩展现有的遗留应用程序,又不能因遗留技术使新组件受到‘污染’
– 适用范围
•
适配器
– 技术特点
• • 将一个服务的签名和消息格式与客户端的要求匹配起来 为同一功能不同实现统一起来
SOA中企业级别的层
• 企业层
– 包含应用前端和公共企业服务,是访问SOA的端点 – 最终用户和SOA发起通讯的起点
• 流程层
– 包含以流程为中心的服务(最高级别的服务)
• 中介层
– 包含中介服务
• 基本层
– 提供业务逻辑和数据,是SOA最基本的服务
通往SOA的基本阶段
• 基础SOA
– 实现‘基本层’和‘企业层’ – 技术上简单,是好的起点 – 共享的服务基本清除了数据重复
– 适用范围
•
外观
– 技术特点
• 显示一个或多个现有服务的不同视图
– 适用范围
•
添加功能的服务
– 技术特点
• • 原始服务是第三方产品,而且无法获得源代码 需要在不更高服务自身的情况下,添加新功能
– 适用范围
SOA中服务的分类——流程服务
• 特点
– 技术上复杂 – 业务上流程总是专用的,可重用性很少 – 它不是必须的,必须权衡利弊来选择
– 功能
• 处理持久数据,包括存储和检索数据、锁定机制和事务管理 • 处理和使用物理存储设备,如关系数据库、文件系统或磁带库
– 与传统数据访问层的区别
• • • • 只处理一个主要业务实体。 任何访问该实体必须经过该服务。 它是垂直分层 它明确实体所有权
• 以逻辑为中心的服务
– 功能
• 封装复杂计算或业务规则的算法。
– 现有很多可用于分层的架构,Spring、iBatis、 Ajax等
从业界关注设计问题的热点谈起(4)
SOA架构(进入21世纪到最近) • 更多面向业务设计描述 • 技术上更多的是联合/联邦/集成软件设计技术 • 更多的关注流程设计、面向未来业务设计理论 • 回归本质——构造最好解决方案以获取最大投 资回报率 • 现有的能力
– 各种企业服务总线和通讯集成技术
从业界关注设计问题的热点谈起(5)
总结 • 关注点由小变大
– 软件规模越来越大 – 参与的人员越来越多 – 应用间协作的情况越来越多
• 设计面临的问题
– 所有的设计问题还同样存在,只是分工更加细致 – 大处着眼小处着手 – 用不同的设计方法解决不同的问题,并为彼此适应 做适当调整
• 工作流平台
– 基于.NET Framework的定制应用
• 工作流开发平台
– VisualStudio2008 – 依据VS2008的扩展
• Customized Activity • Domain Specific P ackage for Workflow Designer
产品和技术——应用授权服务
皖通高速业务分析——组织关系
• 高速公路总公司、结算中心
– 有软件被部署
• 路段管理分中心
– 有软件被部署
• 收费站
– 有软件部署,不属于结算单元
• 车道
– 有软件部署,不属于结算单元
• 特点
–。
皖通高速业务分析——业务网络
• • • • 收费结算网 监控网 办公网 特点
– 个各节点局域网下各网被合并 – 上传、下达时被物理分开
• 层次架构设计依然是独立软件解决的通用方法
层次架构模式在SOA架构中的应用
•关注可联邦性 关注可联邦性 •可接入 可接入ESB 可接入
什么是SOA
• SOA是一种架构设计方法,建立可以集成服务 的解决方案,它遵循以下4个原则:
• • • • 服务边界明确 服务自治 服务共享schema和contract,而不是类型 服务的兼容性是基于策略的
• 两种实现方式
– 基于.NET Framework的定制应用 – Windows Authorization Manager(AzMan)
• 定制开发
– .NET Framework 3.5 – Windows Server/SQL Server
• AzMan
– Windows内嵌的基于角色的授权模型和服务
产品和技术——门户和总线
• BizTalk Server 2006 • MOSS 2007
产品和技术——组合展现框架
• MSDN Pattern & Practice
– Composite Application Block(CAB) – Smart Client Software Factory (SCSF) – Composite Application Guidance for WPF
• 数据加密
– 微软数字证书服务,目录服务整合数字证书 – 微软数据加密技术
产品和技术——配置和日志服务
• 配置服务
– MSDN Patterns & Practice – Enterprise Library –Configuration Block
• 操作/应用日志服务
皖通高速软件架构蓝图——分级
皖通高速软件架构蓝图——单级
• 区分办公门户和社会服务门户,办公门户个人可定 制
大公司要有大视野
微观上改变一些习惯
• 不是一个项目,只有一个应用 • 如车道上可以有:车道收费业务软件,软 件加载外壳,远程管理和监控服务
微软提供哪些技术支持
微软企业开发平台–核心产品/技术
高速公路为例如何应用架构设计 原理
从一般企业信息系统分析谈起(1)
• 企业组织-人员、规则、物财、业务、效益
从一般企业信息系统分析谈起(2)
• 企业信息系统的需求领域
从一般企业信息系统分析谈起(3)
• 企业信息系统领域区划
皖通高速业务分析——闲话
• 最近看《郑和下西洋》,听朱棣说的一句 话‘对外可以亦真亦假,心里一定要黑白 分明’ • 我们是否真的做到了?
• 身份生命周期管理
– Identity Lifetime Manger2007
• 企业SSO服务-身份和凭证影射
– BizTalk Server Enterprise SSO Service – MOSS SSO Service
产品和技术——工作流引擎
• 基础技术平台
– .NET Framework 3.5 – Windows Workflow Foundation
从业界关注设计问题的热点谈起(2) 面向对象设计与设计模式(90年代中期及以前) • 更多的是针对技术描述 • 业务方面面向模块和功能组件开发 • 更多的是对象设计理论 • 现有的能力
– 4人帮已经做了很好的总结 – 已有很多现成的组件可以使用
从业界关注设计问题的热点谈起(3) 层次架构(90年代中后期) • 更多的是针对技术的描述 • 业务上面向独立软件应用的开发 • 更多的是通讯技术理论和分布式计算理论 • 现有的能力
• 好处
– 封装流程复杂性,简化应用前端 – 支持负载平衡,应用前端专注于表示,服务可以在另一台机 器上执行 – 利用多渠道应用程序,可为不同应用共享 – 分离流程逻辑,将流程逻辑与核心业务逻辑和对话控制逻辑 分开。以流程为中心的服务就序后,可将核心业务逻辑指派 给基本服务,并在应用程序前端实现对话控制
• 我们能找到这样的全才吗? • 我们需要的是多位专业的员工,工作需要时做必要的协 作 • SOA也是让不同的软件做自己专长的,并提供需要协作 的服务 • 关键是:如何协作,这是SOA架构要解决的根本问题
SOA中服务的分类
• 基本服务(无状态)
• 它们表示垂直领域的基本元素。 • 以数据为中心的服务、以逻辑为中心的服务或介于两者 之间。
• 整合目录服务
– 活动目录/活动目录应用模式
产品和技术——数据通讯服务
• 程序设计
– .NET Framework 3.5 – Windows Communication Foundation
• 通讯技术
– HTTP/HTTPS, SOAP/Web Service – MSMQ, Remoting Over HTTP/TCPIP
皖通高速应用分析——存在的问题
• 横向上,业务应用以部门为导向建设,缺乏跨部门跨流程的业务应用 建设支持,缺乏企业级业务应用建设的思考。 • 纵向上,更多的考虑了数据传输而不是业务规范或流程的整合。 • 业务应用建设模式多样,缺乏统一有效的技术架构、数据架构、数据 规范的支撑,造成不同应用间集成困难。 • 相同数据保存在不同应用,难以保障数据的一致性。 • 相同的功能在不同的应用实现多份,造成不必要的浪费。 • 部分领域缺乏有效的信息系统支持,特别是在综合管理和协同办公等 业务领域。 • 高级的分析功能建设不足 • 提供的运维诊断和管理功能不足 • 应用系统的稳定性以及硬件资源的整合需进一步提高 • 内部项目管理职责划分不清 • 以收费系统为核心的思维没有改变,甚至是以车道系统为核心 • 部分技术已经老化
面向服务
• • • • 降低服务间的依赖 边界明确 共享schema,而不是类型 自治
• 必须有安全和故障隔离 • 明确的通信方式 • 独立部署的客户端与服务
• 基于策略的兼容性
• 没有平台兼容性
使用SOA的必然性
• 我需要招一位需要下列能力的员工
– – – – – 精通项目管理 精通Java 、.NET、SqlServer、Oracle等 精通交互设计 精通财务 …
• Foundation Technology
– .NET Framework 3.5/WF/WPF/WCF – Add-in Architecture & Technology – Office套件 – .NET Framework Compact
产品和技术——SSO服务
• 目录服务
– Windows Server活动目录服务 – Windows Server活动目录应用模式
• 中介服务(无状态)
• 分为技术网关、适配器、外观和功能添加服务。
• 以流程为中心的服务(有状态)
• 封装组织业务流程知识,维护流程的状态。
• 公共企业服务(视服务功能而定)
• 为跨企业集成提供接口。他们的粒度更大,并必须提供 合理的解耦合、安全、健壮性机制。
SOA中服务的分类——基本服务
• 以数据为中心的服务
将这些连接起来的SOA基础架构:ESB
ESB的关键能力
• Service 管理
– Service注册 – Service版本管理 – Service仓库维护
• • • • • •
跨防火墙通讯和支持灵活的连接方式 消息发布和订阅 单点登陆服务(SSO) 访问权限控制 跟踪和监控服务 工作流服务(可选)
• 网络化SOA
– 网络化SOA处理后端复杂性,并完成技术和概念集成 – 应用程序前端的量级更轻,隐藏后端系统的复杂性 – 允许企业在独立于底层技术的情况下,灵活地集成软件资产
ห้องสมุดไป่ตู้
• 流程支持SOA
– 封装流程的复杂性,进一步减轻应用程序前端的负担,仅需要考 虑用户交互。 – 在多客户端之间共享状态 – 处理长期使用的流程 – 分离流程逻辑、对话控制、业务逻辑
企业级应用解决方案架构设计
主要内容
一般架构设计问题 高速公路为例如何应用架构设计原理 微软提供哪些技术支持
一般架构设计问题
从业界关注设计问题的热点谈起(1) 算法与数据结构(90年代初期及以前) • 更多的是针对技术描述 • 业务方面针对功能级 • 更多的是过程化设计理论 • 现有的能力
– 各个开发工具都提供了很多现有库 – 很多服务软件如数据库提供了相应的功能
面向服务的优势
• 架构和部署
– 通用的互动模式——简单、正确、执行独立、服务之间 依赖关系的管理
• IT和运行维护
– 明确的interaction points易于发现和操作 – 清晰的服务部署 – 独立部署、版本控制、管理、拓扑结构
• 商业
– – – – 业务可以服务模式化 系统为业务服务,而不是相反 跨部门间和组织内部可以通过服务交互 有利于外包,专注于核心竞争力