系统集成的读书笔记
一、运用模式解决集成问题
1.企业有成千上万个应用组成,途径各不相同,如何管理企业的这些资源。
2.ERP(enterprise resource planning)企业资源计划
3.目的:更好的处理企业的各个应用之间的资源,使用集成
4.SOA(Service-Oriented Architecture)面向服务架构:服务和协议
5.松耦合:传递信息的双方在传递信息时尽量减少对对方做出的假设。假设多了,虽然效率会高,但是不能适应服务的中断和变化
6.数据包装成为消息后再传递,解决了各子应用之间的相互限制的问题
7.集成模式:文件传输,共享数据库,异步消息传递等
二、集成方式
1.企业集成是指让不同的应用协同工作,提供一组统一的功能
2.决策标准:应用耦合、干扰性、技术选择、数据格式、数据的时间性、数据或功能、远程通信、可靠性
3.集成方式:文件传输、共享数据库、远程过程调用、消息传递
4.使用文件传输,能够共享数据,但是缺乏时间特性,共享数据库有较好的时间特性
5.远程过程调用共享函数的方法或操作,以服务的形式共享
6.运用消息传递,可以使用可定制的格式频繁地、立即的、可靠地、异步地传输数据包
三、消息传递系统
1.管道、消息、管道和过滤器体系、路由、转换、端点
2.消息:消息首部和消息体
3.消息:JMS消息、.NET消息、SOAP消息(XML)
4.管道和过滤器:把较大的处理任务划分为一系列较小的独立处理的步骤(过滤器),这些步骤由通道连接
5.路由:存储转发。转换:把一种格式转换为另一种格式
6.应用和消息传递系统是两组单独的软件
7.消息端点把应用与消息通道连接起来,它是消息传递系统的客户,应用可以使用它发送或接收消息
四、消息传递通道
1.通道不是单向的也不是双向的,它更像是一个桶,有往桶里加入数据的应用,有消费桶中数据的应用,是多种应用协作的方式
2.通道决策:(1)一对一或一对多
(2)确定数据类型
(3)非法和无用消息
(4)崩溃恢复
(5)非消息传递客户
(6)通信中枢
3.点对点通道:对于任何给定的消息只有一个接收者能接收。
4.发布-订购通道:消息发送给每一个接收者。采用观察者模式
5.数据类型通道:接收者根据数据类型,确定应该产生什么操作
6.可考传输:在存储转发中,一般存储在内存中,这样数据是很容易丢失的,所以消息应持久保持,增强了可靠性
7.适配器:如何把应用连接到消息传递系统,发送和接收消息,适配器可访问应用的API或数据,基于此发布消息
8.消息传递桥:把多个消息传递系统连接起来
9.消息总线:是由规范数据模型、公共命令集和消息传递基础设施组成,能让不同系统通过共享的接口集通信
五、消息构造
1.命令消息:如何把请求转换为可存储、可传递的对象。实现可靠调用。
一般采用点对点通道发送,这样每个命令只能被消费和调用一次
2.文档消息:使用文档消息在应用之间可靠地传输数据结构,只向接收者传递数据(命令消息告诉接收者必须调用某个操作)。
3.事件消息:传递事件。
(1)当主体需要通知事件时,它会创建一个事件对象,把这个对象封装在消息中,然后作为一个事件消息发送到通道中。
(2)观察者接受事件消息、获取事件、并处理事件。
(3)消息传递不会修改事件,只是传递事件。
4.请求/应答:请求通道/应答通道
请求者接收应答的方式:同步阻塞、异步回调。
5.返回地址:请求消息中应该包含返回地址,它指出应该把应答消息发送到哪里。
6.关联标识符:每条应答消息都应该包含一个关联标示符,这是一个唯一的标示符,指示了该应答消息对应哪一个请求消息
这样就能使请求者在接收多个应答消息时,更快速度地查找每一条请求的应答
7.消息序列:处理数据量过大时,无法在一个消息中传递。
把一大块数据分解为消息大小的数据块,就可以将数据作为消息序列发送,并用序列表示字段编辑每个消息
(1)一种方法是:让序列中的每个消息指示出序列的总大小
(2)另一种方法:让每个消息都指示出它是否是序列中的最后一个消息
8.消息到期:
在很多时候,消息到达的时间是不确定的,所以,对于接收者来讲消息在某个特定时间内没有被接收,则视为消息到期
经常用于可靠传输,发送者发出消息后,等待应答,对于接收到的应答消息,进行时间判断,是否为消息到期
六、中场演练:简单的消息传递
1.JMS请求/应答示例---java例子,参考JMS教程
请求者:请求者定义三个队列:请求队列、应答队列、非法消息队列
----实现initialize()方法:
(1)对于会话(session):
应用中每个想要发送和接收消息的组件都必须建立各自不同的会话
连个线程不能共享同一个会话
(2)请求队列通过JMDI标示符查找队列
(3)请求队列的工作:
(1)创建一个MessageProducer,把消息发送到请求队列
(2)创建一个MessageConsumer,从应答队列接收消息
(3)创建一个Producer负责把消息转移到非法消息队列
----实现send()方法
(1)TextMessage消息的内容
(2)reply-to指示返回地址,告诉应答者如何返回应答消息
(3)使用requestProducer发送消息,生产者与请求队列连接,所以会把消息发送到请求队列
----实现了receiveSync()方法
(1)使用replyConsumer接收应答。
(2)消息是一个TextMessage,接收应答消息
(3)如果消息不是一个TextMessage格式,则会把它发送给非法消息队列,重发消息会改变消息ID
应答者:指定了请求和非法消息队列,不需要指定应答队列(会由消息的返回地址提供)
----实现了initialize()方法
(1)不用查找应答队列,也不用创建生成者
(2)应答者是一个事件驱动的消费者,所以它实现了MessageListener
----应答者实现了初始化之后,等待请求者请求,通过reply-to把TextMessage格式的消息返回给应答队列
2.JMS实现发布-订购实例
使用观察者模式:主体发布消息,观察者监听消息队列,并接收消息
(1)消息传递系统管理员创建发布-订购通道(在java中,这表示为一个JMS Topic)
(2)作为主体的应用创建一个TopicPublisher(这是一种MessageProducer),由这个发布者向通道发布消息
(3)作为观察者的各个应用创建一个TopicSubscriber(这是一种MessageConsumer),以接收通道中的消息
相关推荐
### Apache Camel与企业集成模式(Enterprise Integration Patterns, EIP) #### 概述 Apache Camel 是一个强大而灵活的开源框架,用于简化企业级应用程序中的消息传递和数据处理流程。它支持大量的企业集成模式 ...
《企业集成模式》是信息技术领域中的一本经典著作,由Gregor Hohpe和Bobby Woolf合著,深入探讨了在大型企业系统间进行有效集成的各种策略和设计模式。这本书是商业资料的重要组成部分,对于理解和实施企业级系统...
《企业集成模式》一书由Addison Wesley出版,是一本深度探讨企业级系统集成方法论的经典著作。本书围绕“企业集成模式”这一核心主题,详细阐述了如何利用设计模式解决复杂的集成问题,提供了丰富的理论与实践指导。...
企业集成模式(Enterprise Integration Patterns,简称EIPs)是设计、构建及部署消息传递解决方案的核心思想与实践方法。消息传递系统在企业级应用集成中发挥着至关重要的作用,它允许不同的应用程序通过交换消息...
企业集成模式(Enterprise Integration Patterns,EIP)是一种解决企业集成问题的模式,旨在帮助企业实现应用程序之间的集成和数据交换。EIP 提供了一系列的模式和架构风格,以帮助开发人员和架构师设计和实现高效、...
这个框架的主要目标是简化微服务、系统和服务之间的通信,遵循Enterprise Integration Patterns (EIP)这一经典集成理论。EIP 提供了一系列经过验证的设计模式,帮助开发者在分布式系统中有效地处理异步消息传递和...
Spring Integration框架借鉴了企业集成模式(Enterprise Integration Patterns, EIP)的思想,将这些模式以一种直观的方式映射到Spring编程模型中。这使得开发者可以使用Spring的编程和配置模型来实现企业集成解决...
spring-integration是一个功能强大的EIP(Enterprise Integration Patterns),即企业集成模式。对,spring-integration是一个集大成者。就我自己的理解,集成了众多功能的它,是一种便捷的事件驱动消息框架用来在系统...
Spring Integration 是一个基于 Spring 框架的开源项目,它为开发者提供了在 Java 应用程序中实现企业级集成模式(Enterprise Integration Patterns,EIP)的简便方式。EIP 是一种设计模式集合,用于解决在分布式...
Spring Integration的核心概念是基于EIP(Enterprise Integration Patterns),这是一种在集成领域广泛认可的设计模式集合。通过使用这些模式,开发人员可以构建松散耦合、可扩展且易于维护的系统。EIP中的关键模式...
Spring Integration基于企业集成模式(Enterprise Integration Patterns,EIP),这是一种被广泛认可的在不同系统间传递消息和数据流的最佳实践模式。EIP主要通过以下几种组件来实现系统间的通信和数据交换: 1. ...
Apache Camel 是一个强大的开源集成框架,基于广泛认可的企业集成模式(Enterprise Integration Patterns,简称 EIP)。它提供了一种智能的 Bean 集成方式,允许开发者在 Java 基于的领域特定语言(Domain Specific ...