Jboss SOA纵览#高级教育

上传人:hs****ma 文档编号:567601026 上传时间:2024-07-21 格式:PPT 页数:56 大小:2.42MB
返回 下载 相关 举报
Jboss SOA纵览#高级教育_第1页
第1页 / 共56页
Jboss SOA纵览#高级教育_第2页
第2页 / 共56页
Jboss SOA纵览#高级教育_第3页
第3页 / 共56页
Jboss SOA纵览#高级教育_第4页
第4页 / 共56页
Jboss SOA纵览#高级教育_第5页
第5页 / 共56页
点击查看更多>>
资源描述

《Jboss SOA纵览#高级教育》由会员分享,可在线阅读,更多相关《Jboss SOA纵览#高级教育(56页珍藏版)》请在金锄头文库上搜索。

1、Jboss SOA纵览2主题概要SOA的基本概念JBoss SOA简述JBoss Esb基本概念JBoss Esb的体系结构3为什么要SOA?IT基础设施越来越昂贵、越来也复杂,对于从事IT的人技能要求越来越高4为什么要SOA?目前的做法存在摩擦新的业务需求重新设计业务流程人工实现流程更改IT系统或基础设施达到业务目的寻求更有效方法新的业务需求调整业务流程整合新的需求到SOA节省下来的时间用户需求的快速变更5什么是SOA?SOA不是Web ServiceESB具体架构具体实现技术而是一种架构风格关注业务流程包含运行环境、编程模型、架构风格和相关方法论在内的分布式软件构造方法和环境。6SOA是什

2、么从建模和设计的角度,SOA更侧重在业务层次上,也就是通过业务建模把业务组件抽象为业务服务。从架构的角度:SOA侧重于如何把企业内部的系统连接起来如何将它们的功能数据封装为服务如何通过服务中介保证服务之间以松耦合的方式交互如何把服务封装为流程7SOA的目标首要的目标:IT与业务对齐,支持业务的快速变化IT架构的灵活性IT资产的重用8SOA架构风格-服务服务是最核心的抽象手段服务可以组装为流程业务来驱动IT,以粗粒度的服务为基础来对业务建模9服务的特性相对独立松耦合可重用位置透明可交互10SOA架构风格-消息从松耦合角度的考虑,在SOA里,服务间的通信最好的方式就是通过异步消息。异步消息:能快速

3、稳定频繁的传输各种格式的消息。异步消息必须具备以下特性:异步消息不能要求通信双方同时处于运行的状态异步消息能在传输过程中进行转换而不需要发送者或接受者的参与异步消息必须传输非常快速高效消息系统必须保证消息的可靠性和事务性11SOA机构风格-企业服务总线(ESB)企业服务总线是SOA服务架构方式的一种实现,它通过使用异步消息服务、内容转换服务、注册中心等等服务把业务服务整合成自动的业务流程。12企业服务总线它是面向服务架构的实现。它支持Web服务标准。它支持消息传递(同步、异步、点对点、发布-订阅)。它包含基于标准的适配器(如J2C/JCA),用于集成传统系统。它包含对服务编制(orchestr

4、ation)和编排(choreography)的支持。它包含智能、基于内容的路由服务(itenerary路由)。它包含转换服务(通常是使用XSLT),在发送应用和接收应用之间转换格式,简化数据格式和值的转换。13如何SOA以服务来抽象业务,使得业务成为一一个相对独立的业务服务。定义好服务交互的消息格式。(消息内容定义)有很多服务,并且服务种类多样(ejb、webservice等等),这时就应该考虑使用ESB。业务流程组织服务。14一个真实的例子15ESB的解决方案16企业内部的ESBs17服务聚集18总结SOA是一种架构风格,是分布式应用的架构方法论和计算环境,而不是具体的实现技术。服务是SO

5、A的核心抽象手段,它可以让我们从业务、业务流程的角度来构建我们的系统。服务间的通信最佳的方式是使用异步消息。ESB是SOA风格架构的一种实现。19Jboss SOA简介JBoss企业SOA平台的核心是Rosetta,Rosetta是一个任务评估站点部署的商用ESB实现,至今已经运行了4年多。20Rosetta为了通过简单的配置即可与多种传输机制协同工作,如电子邮件和Java消息服务。为了提供一个通用对象库为了提供可互换的数据转换机制。为了支持当流通过框架时,这些互动的日志记录,(包括业务和处理事件)。为了更方便的隔离传输业务逻辑和触发机制。为了给业务逻辑和数据转换提供灵活的插件。为了将来用户替

6、换或扩展框架的标准基础类提供一个简单的方式。为了提供触发机制和传输不能识别的自定义触发类21JBOSS SOA22JBoss Esb基本概念重要概念Services 服务Actions Listener 监听器Providers 传输资源提供者endpoint references (EPRs) 服务地址Messages 消息23服务(Services)在JBoss企业总线中,服务的定义是:按照顺序处理消息的action类列表;这个类列表被称为“action管道”。一个服务可以定义一个“监听器”列表。监听器作为服务的访问路由,把消息路由到action管道。24Services和Actions2

7、5Action管道26ActionAction是Esb服务的实体,即这个服务能做什么是由action来定义的。Actions能用作于:控制消息流向代理已经存在的业务组件调用架构组件调用业务规则组件保存消息Action能在多个服务里被共用27如何编写一个Action你编写的Action:implements org.jboss.soa.esb.actions.ActionPipelineProcessorextend org.jboss.soa.esb.actions.AbstractActionPipelineProcessor28如何编写一个Action编写的无状态action的生命周期都会

8、被正确管理。在每一个服务中配置的action,都有自己的一个生命周期。可以在初始化的方法里,缓存一些资源。在销毁的方法里,释放这些资源。实现的Action类,必须存在一个接受消息参数和返回消息值的方法该方法名称可以在配置服务action的时候引用,比如Process=“myMethod”实现的Action类,必须存在一个接受ConfigTree参数的构造方法29ConfigTree是什么ConfigTree代表配置action property的xml。可以通过configTree.getAttribute(propertyName)获取xml的值。30ConfigTree例子31HelloW

9、ord Action32Jboss Esb提供很多可用的ActionRouters/NotifiersAggregatorContentBasedRouterStaticRouterNotifierMessageFilterJMSRouterHTTPRouterTransformers and ConvertersByteArrayToStringObjectToCSVStringObjectToXStreamSmooksAction33Jboss Esb提供很多可用的ActionBusiness Process ManagementBpmProcessorScriptingGroovyAct

10、ionProcessorWebServices/SOAPSOAPClientBusiness RulesBusinessRulesProcessorMiscellaneousSystemPrintlnMessagePersisterBeanConfiguredAction34监听(Listener)Listener的作用是负责监听传输端点;一般来说,客户端是发送消息到Listener,然后有Listener把消息传递给action管道, 我们可以把Listener看做是inbound router. 在JBossESB中,我们是叫GatewayListener, 它一般来说做两件事情. 监听M

11、essage. ESB-unaware message和ESB-aware message的互转.35监听器监听器可以分为两类:Gateways监听器(Gateway Listeners),这种监听器目的是接受外部节点的消息,并把消息转为esb内部消息,然后路由给非gateways监听器。非gateways监听器(ESB Aware Listeners),目的是处理Esb内部消息,并把消息传递给action管道处理。任何一个esb服务都必须配置一个非gateways监听器。监听器主要配置属性:36Gatesway 监听器37Invm监听器Invm监听器是非gateways监听器。InVM监听器

12、是企业服务总线提供的一个在同一Java虚拟机内运行的服务间通信的特性。这意味着,ServiceInvoker实例可以在同一个虚拟机内,通过名字调用任何服务,而调用过程中不存在任何网络和消息序列化的开销。只需要在服务配置加上invmScope=GLOBAL38Providers消息的传递是由各种Providers来传递的。监听器可以从Providers获取消息。目前,Jboss esb提供了各种常用的监听器jms provider, http provider, ftp provider等等。39消息在Jboss Esb的世界里,消息分为两大类:ESB unaware Message,即Jbos

13、s Esb服务没法直接识别,需要gatways转换后才可使用。这种消息大多指的是外部消息,比如jms 消息,soap消息,http报文、文件等等。ESB-aware message,即Jboss Esb服务可以直接识别消费的消息。接下来,假如没有没特别的说明,消息一般指的是ESB-aware message。40消息Jboss Esb的消息,其结构类似于SOAP Message。消息头部(header)包含了路由和地址信息,这个与ws-adress w3c规范一样。消息上下文(context)主要存放了会话相关的内容,比如事务上下文、安全上下文。消息体(body)主要存放了消息内容。Jboss

14、 Esb对消息内容序列化支持两种消息格式:MessageType.JBOSS_XMLMessageType.JAVA_SERIALIZED41ESB Message Structure Sample Schema 42Message APIPackage: org.jboss.soa.esb.messageAttachment a = myMessage.getAttachment();Body b = myMessage.getBody();Context c = myMessage.getContext();Fault f = myMessage.getFault();Header h =

15、 myMessage.getHeader();Properties p = myMessage.getProperties();43消息头Jboss esb消息头存放了路由和地址信息,这些信息定义为消息地址(ERPS),与WS-Addressingw3c标准时一样。消息头包含的信息地址(EPRs)如下:ToFaultToFromReplyTo44消息地址(EPRs)在Jboss Esb里,所有的客户端和服务都是通过EPRs来定位和交互的。EPRs 基于WS-Addressing (2004)标准实现的。EPRs是一个xml结构:Address:地址信息,只能一个,描述如何访问目标资源refer

16、ence properties:对应多个,传输一些资源实体的特殊描述。reference parameters:对应多个,传递一些如何与资源交互的信息。一个ERP,本质上就是一个地址,确定了资源的位置,并定义如何去访问资源。比如ftp ERP、jms ERP。地址描述类似: jms:/foo.bar。45消息头消息头,在开发服务和使用服务的时候,是需要考虑的。实现同步调用服务(请求响应方式)时,需要设置replyTo,或使用默认的地址。在JBossESB中,每种传输类型都有默认的ReplyTo值。在要求有响应,且ReplyTo为空的情况下,使用默认值。有些默认值需要系统管理员配置。在JBoss

17、ESB中,每种传输类型都有默认的ReplyTo值。在要求有响应,且ReplyTo为空的情况下,使用默认值。有些默认值需要系统管理员配置。46消息头replyTo,faultTo一般使用的是逻辑地址,逻辑地址是相对于物理地址而言的。如JMS-EPR。逻辑地址(LogicalEPR)是一个端点引用,只需指定ESB服务或端点的名称和类别。它不包含物理寻址信息。FaultTo,默认的情况下, FaultTo指向的是DeadLetterService EPR。也就是服务执行出错时,可以到这个地址找到该服务。47消息体是消息存放内容的地方。可以看做是一个Map。48消息体可以在客户端或Action中获取消息内容49服务的发布Jboss Esb服务,都在jboss-esb.xml里定义的:配置多个providers配置多个servicesJboss Esb配置工程需要打包成以.esb为后缀的。50HelloWorld 例子51Jboss Esb 概念总结服务的实体是Action管道。服务通过监听器获取消息监听器是从Provider里获取消息的监听器分为gateways监听器和非gateways监听器52JBOSS SOA53Jboss Esb体系结构54Jboss Esb体系结构55Gateways的本质接受到外部的消息。使用Jboss esb 的客户端ServiceInvoker。56答疑

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号