每天学一点!系统架构设计师之面向服务的架构(三)

3 篇文章 0 订阅
2 篇文章 0 订阅

一、SOA主要技术和标准
web服务作为实现SOA中服务的最主要手段,那我们先了解下web service 相关的标准,最基本的协议包括UDDI、WSDL和SOAP。
1.UDDI协议
中文解释为:统一描述、发现和集成协议,它是的商业实体能够彼此发现,定义他们怎么在互联网上进行互相作用,并可以在全球注册体系机构中共享信息。算是一种基础的系统构筑模块。同时它包含了服务描述和发现的标准规范。
2.WSDL规范
中文解释:Web服务描述语言,web服务的接口定义语言。用来描述web服务如何与web服务通信的xml语言。包括:服务做什么;如何访问服务;服务位于何处。
WSDL文档以端口集合的形式来描述web服务。分为两种类型:服务接口和服务实现,基本元素有 types(定义服务使用的所有数据类型集合);message(通信消息数据结构的抽象类型化定义);operation(描述一个访问入口的请求或响应消息对);portType(某个访问点类型所支持操作的抽象集合);binding(将抽象接口portType转为具体表示的细节);port(访问地址);service(服务访问点的集合)。
3.SOAP协议
定义:分散或分布式的环境中交换信息的简单的协议,是一个基于XML的协议。包括四个部分:封装、编码规则、RPC、绑定。主要的设计目标就是简单性和可扩展性。

二、SOA特性
1.文档标准化(xml文档)
2.通信协议标准(XML Schema来定义)
3.应用程序统一登记与集成;
4.服务品质(Qos):包括可靠性;安全性;策略性;控制性;管理性
三、SOA作用
在一个企业内部可能存在不同的应用系统,相对其他系统来说都是孤立的,也就是我们常说的“信息孤岛”。让每个应用系统重新建立一个新的基础环境是不可能的,但是为了和客户与供应商提供新的互动渠道,就必须引入SOA的框架。SOA框架凭借其松耦合的特性,是的企业可以按照模块的方式来添加新服务或者更新现有服务。最为核心的思路:把应用和资源转换成服务,并把这些服务变成标准的服务,形成资源的共享。
严格来说SOA不仅仅是一个技术,而是一个软件架构。我们在调用时只需要关注所需数据即可,不再关注其底层架构。
四、SOA设计原则
大致来讲,分为以下几条:
1.无状态。以避免服务请求者依赖于服务提供者的状态
2.单一实例。避免功能冗余
3.明确定义的接口
4.自包含和模块化。服务的功能实体是完全独立的
5.粒度大。服务数量不应过多
6.服务之间的松耦合性。只关心接口
7.重用能力
8.互操作性、兼容和策略声明。
五、SOA的设计模式
1.服务注册表模式
提供主控制点,使服务可以在SOA中注册和被发现。注册表包括有关服务和相关软件组件的配置、遵从性和约束配置文件。在服务注册产品中一般包括服务注册(服务提供者,向主持表发布他们的功能);服务位置(查询注册服务);服务绑定(将开发代码与注册的服务绑定)。
2.企业服务总线模式
为解决点对点集成方式管理性差和复用度差等问题的背景下产生的,其思想是提供一种标准的软件底层架构。各种程序组件能够以服务单元的方式“插入”到该平台上运行,而且组件之间能够以标准的消息通信方式来进行交互。实现方式通常是由中间件技术支持面向服务架构的基础软件平台,支持异构环境下的服务以基于消息和事件驱动模式的交互,并且具有适当的服务质量和可管理性。这种概念性的东西是在太难懂了,我们用白话说就是,各种程序组件暴露统一的接口到总线,还要使用统一格式的消息进行交互。当请求者需要调用组件的时候,先在总线目录中查找接口地址,然后将消息发送给对应的组件,最后把组件处理后的信息转到请求者。
六、构建SOA架构时应该注意的问题
1.原有系统架构中的集成需求
当我们想基于SOA来构建一个企业级的系统架构时,一定要注意对原有系统架构中的集成需求进行细致的分析和整理。通常基于SOA的企业系统架构都是在现有系统架构基础上发展起来的,因此最优先考虑的是如何重用现有的系统代码。
在分析原有系统中集成需求是,需要考虑的宽泛一些。包括:应用程序集成的需求、终端用户界面集成的需求、流程集成的需求以及现有系统消息集成。
2.服务粒度的控制以及无状态服务的设计
在SOA系统中服务的构建有两点需要注意的地方,一个是服务粒度的控制,还有一个就是无状态服务的设计。
通常来说对于暴露在整个系统外部的服务推荐使用粗粒度的接口。我们都知道细粒度的接口能为服务请求者提供更加细化和更多的灵活性,但是同时也意味着引入较难控制的交互模式易变性。而粗粒度服务接口保证了服务请求者将以一直的方式使用这个服务。
SOA系统架构中的具体服务应该是独立的,实现服务的时候不需要前一个请求的状态,无需依赖其他服务。
七、业务流程分析
1.建立服务模型
自顶向下分解法:从业务着手分析,逐层分解。业务组件模型将业务细分为业务领域、业务执行层次和业务组件。
业务目标分析法:通过关键性能指标分析来验证已有服务候选者以及发现遗漏的服务候选者。
自底向上分析法:利用已有资源来实现服务。可复用思想
2.建立业务流程
建立业务对象:是对数据进行检索和处理的组件,通常位于中间层或者业务逻辑层。
建立服务接口:最好提供无状态接口,方便重用。
建立业务流程:

(1)UML样例源文件(8个样例文件) uml/uml.mdl //01.UML快速入门 uml/usecase.mdl //02.用例图 uml/class.mdl //03.静态图——类图、对象图、包图 uml/component.mdl //04.实现图——组件图与部署图 uml/statechart.mdl //05.行为图——状态图 uml/activity.mdl //06.行为图——活动图 uml/sequence.mdl //07.交互图——序列图 uml/collaboration.mdl //08.交互图——协作图 (2)UML上机演练源文件(16个实例文件) uml/usecase_product.mdl //02.用例图——企业产品生产销售管理系统 uml/class_login.mdl //03.类图和包图——企业信息管理系统用户登录和注册模块 uml/component_emis.mdl //04.组件图与部署图——企业信息管理系统 uml/statechart_bug.mdl //05.状态图——Bug管理系统 uml/statechart_atm.mdl //05.状态图——ATM机存取款 uml/statechart_thread.mdl //05.状态图——Java线程类Thread uml/activity_bug.mdl //06.活动图——Bug管理系统 uml/activity_atm.mdl //06.活动图——ATM机存取款 uml/activity_thread.mdl //06.活动图——Java线程类Thread uml/sequence_bug.mdl //07.序列图——Bug管理系统 uml/sequence_atm.mdl //07.序列图——ATM机存取款 uml/sequence_tel.mdl //07.序列图——打电话 uml/collaboration_bug.mdl //08.协作图——Bug管理系统 uml/collaboration_atm.mdl //08.协作图——ATM机存取款 uml/collaboration_tel.mdl //08.协作图——打电话 uml/bug.mdl //09.综合实例——Bug管理系统 (3)设计模式样例(24个讲解样例程序) pattern/src/principle/liskovsubstitution//10.3.2里氏代换原则 pattern/src/creation/factorymethod //11.1工厂方法模式 pattern/src/creation/abstractfactory //11.2抽象工厂模式 pattern/src/creation/singleton //11.3单例模式 pattern/src/creation/builder //11.4建造者模式 pattern/src/creation/prototype //11.5原型模式 pattern/src/structure/adapter //12.1适配器模式 pattern/src/structure/decorator //12.2装饰器模式 pattern/src/structure/proxy //12.3代理模式 pattern/src/structure/facade //12.4外观模式 pattern/src/structure/bridge //12.5桥接模式 pattern/src/structure/composite //12.6组合模式 pattern/src/structure/flyweight //12.7享元模式 pattern/src/behavior/strategy //13.1策略模式 pattern/src/behavior/templatemethod //13.2模板方法模式 pattern/src/behavior/observer //13.3观察者模式 pattern/src/behavior/iterator //13.4迭代子模式 pattern/src/behavior/chainofresponsibility//13.5责任链模式 pattern/src/behavior/command //13.6命令模式 pattern/src/behavior/memento //13.7备忘录模式 pattern/src/behavior/state //13.8状态模式 pattern/src/behavior/visitor //13.9访问者模式 pattern/src/behavior/mediator //13.10中介者模式 pattern/src/behavior/interpreter //13.11解释器模式 (4)SOA(12个程序包) soa/JAXWSHelloWorldServer.zip //15.JAX-WS服务端——HelloWorld实例 soa/JAXWSHelloWorldClient.zip //15.JAX-WS客户端——HelloWorld实例 soa/AxisHelloWorldServer.zip //16.Axis服务端——HelloWorld实例 soa/AxisHelloWorldClient.zip //16.Axis客户端——HelloWorld实例 soa/SCAJavazip //19.SCA实例——计算器实例 soa/SCAWSServer.zip //19.SCA服务端实例——HelloWorld实例 soa/SCAWSClient.zip //19.SCA客户端实例——HelloWorld实例 soa/OSGiHelloWorld.zip.zip //21.OSGi实例——HelloWorld实例 soa/demo.sql //24.SOA服务架构实战——企业信息管理系统数据库脚本 soa/ssh2.zip //24.SOA服务架构实战——企业信息管理系统SSH2代码 soa/EmisWeb.zip //24.SOA服务架构实战——企业信息管理系统SCA服务soa/EmisService.zip //24.SOA服务架构实战——企业信息管理系统Web端
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值