JMS1.1规范介绍PPT
- 格式:pptx
- 大小:184.66 KB
- 文档页数:34
JMS概述jms即Java消息服务(Java Message Service)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。
Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JM S提供支持。
jms同时也可以指Journal of Marketing Science,《营销科学学报》的简称。
此外,佳木斯、姐妹们的拼音缩写也是jms。
目录[隐藏]定义历史体系架构JMS模型JMS应用程序接口JMS提供者实现营销科学学报其他缩写定义历史体系架构JMS模型JMS应用程序接口JMS提供者实现营销科学学报其他缩写[编辑本段]定义JMSJMS(Java Messaging Service)是Java平台上有关面向消息中间件的技术规范,它便于消息系统中的Java应用程序进行消息交换,并且通过提供标准的产生、发送、接收消息的接口简化企业应用的开发,翻译为Java消息服务。
[编辑本段]历史Java消息服务是一个在Java标准化组织(JCP)内开发的标准(代号JSR 91 4)。
2001年6月25日,Java消息服务发布JMS 1.0.2b,2002年3月18日Jav a消息服务发布 1.1,统一了消息域。
[编辑本段]体系架构JMS元素JMS有以下元素组成。
JMS提供者连接面向消息中间件的,JMS接口的一个实现。
提供者可以是Java平台的JMS 实现,也可以是非Java平台的面向消息中间件的适配器。
JMS客户生产或消费消息的基于Java的应用程序或对象。
JMS生产者创建并发送消息的JMS客户。
JMS消费者接收消息的JMS客户。
JMS消息包括可以在JMS客户之间传递的数据的对象JMS队列一个容纳那些被发送的等待阅读的消息的区域。
队列暗示,这些消息将按照顺序发送。
一旦一个消息被阅读,该消息将被从队列中移走。
JMS主题一种支持发送消息给多个订阅者的机制。
1 JMS在介绍ActiveMQ之前,首先简要介绍一下JMS规范。
1.1 JMS的基本构件1.1.1 连接工厂连接工厂是客户用来创建连接的对象,例如ActiveMQ提供的ActiveMQConnectionFactory。
1.1.2 连接JMS Connection封装了客户与JMS提供者之间的一个虚拟的连接。
1.1.3 会话JMS Session是生产和消费消息的一个单线程上下文。
会话用于创建消息生产者(producer)、消息消费者(consumer)和消息 (message)等。
会话提供了一个事务性的上下文,在这个上下文中,一组发送和接收被组合到了一个原子操作中。
1.1.4 目的地目的地是客户用来指定它生产的消息的目标和它消费的消息的来源的对象。
JMS1.0.2规范中定义了两种消息传递域:点对点 (PTP)消息传递域和发布/订阅消息传递域。
点对点消息传递域的特点如下:每个消息只能有一个消费者。
消息的生产者和消费者之间没有时间上的相关性。
无论消费者在生产者发送消息的时候是否处于运行状态,它都可以提取消息。
发布/订阅消息传递域的特点如下:每个消息可以有多个消费者。
生产者和消费者之间有时间上的相关性。
订阅一个主题的消费者只能消费自它订阅之后发布的消息。
JMS规范允许客户创建持久订阅,这在一定程度上放松了时间上的相关性要求。
持久订阅允许消费者消费它在未处于激活状态时发送的消息。
在点对点消息传递域中,目的地被成为队列(queue);在发布/订阅消息传递域中,目的地被成为主题(topic)。
1.1.5 消息生产者消息生产者是由会话创建的一个对象,用于把消息发送到一个目的地。
1.1.6 消息消费者消息消费者是由会话创建的一个对象,它用于接收发送到目的地的消息。
消息的消费可以采用以下两种方法之一:同步消费。
通过调用 消费者的receive方法从目的地中显式提取消息。
receive方法可以一直阻塞到消息到达。
HTTP1.1协议规范(中⽂归纳版)⼀、介绍(introduction)1. ⽬的——HTTP/0.9-〉HTTP/1.0-〉HTTP/1.12. 要求——MUST、REQUIRED、SHOULD3. 术语——连接(Connection)、消息(Message)、请求(Request)、应答(Response)、资源(Resource)、实体(Entity)、表⽰⽅法(Representation)、内容协商(Content Negotiation)、变量(Variant)、客户机(Client)、⽤户代理(User agent)、服务器(Server)、原服务器(Origin server)、代理服务器( Proxy)、⽹关(gateway)、⾼速缓存(Cache)、可缓存(Cacheable)、直接(first-hand)、明确终⽌时间(explicit expiration time)、探索终⽌时间(heuristic expiration time)、年龄(Age)、保鲜寿命(Freshness lifetime)、保鲜(Fresh)、陈旧(Stale)、语义透明(semantically transparent)、有效性判别器(Validator)、实体标记(entity tag)或最终更改时间(Last-Modified time))、上游/下游(upstream/downstream)、向内/向外(inbound/outbound)4. 总体操作——请求/应答、中介⼆、符号惯例与⼀般语法(notational conversions and generic grammar)1. 扩充BNF——name = definition,"literal",rule1 | rule2,(rule1 rule2),*rule,[rule],N rule, #rule,; comment, implied *LWS2. 基本规则——OCTET,CHAR,UPALPHA,LOALPHA,ALPHA,DIGIT,CTL,CR,LF,SP,HT,<">三、协议参数(protocol parameters)1. HTTP版本——HTTP-Version = "HTTP" "/" 1*DIGIT "." 1*DIGIT2. 统⼀资源标⽰符(URI)——统⼀资源定位器(URL)和统⼀资源名称(URN)的结合,http_URL = "http:" "//" host [ ":" port ] [ abs_path [ "?" query ]]3. ⽇期/时间格式——Sun, 06 Nov 1994 08:49:37 GMT ; RFC 822, updated by RFC 1123,Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036,Sun Nov 6 08:49:37 1994 ; ANSI C's asctime() format4. 字符集——本⽂档中的术语"字符集"指⼀种⽤⼀个或更多表格将⼀个⼋字节序列转换成⼀个字符序列的⽅法,charset=token失踪字符集5. 内容编码——内容编码主要⽤来允许⽂档压缩(信源编码)content-coding= token注册表包含下列标记:gzip,compress,deflate,identity6. 传输编码——⽬的是能够确保通过⽹络安全传输(信道编码)transfer-coding = "chunked" | transfer-extensiontransfer-extension = token *( ";" parameter ),成块传输代码7. 媒体类型——media-type = type "/" subtype *( ";" parameter )type = tokensubtype = token规范化和原⽂缺省多部分类型8. 产品标记——product = token ["/" product-version]product-version = token9. 质量值——qvalue = ( "0" [ "." 0*3DIGIT ] )| ( "1" [ "." 0*3("0") ] )10. 语⾔标记——language-tag = primary-tag *( "-" subtag )primary-tag = 1*8ALPHAsubtag = 1*8ALPHA11. 实体标记——entity-tag = [ weak ] opaque-tagweak = "W/"opaque-tag = quoted-string12. 范围单位——range-unit = bytes-unit | other-range-unitbytes-unit = "bytes"other-range-unit = token四、 HTTP消息(HTTP message)1. 消息类型——HTTP-message = Request | Response ; HTTP/1.1 messagesgeneric-message = start-line *(message-header CRLF) CRLF [ message-body ]start-line = Request-Line | Status-Line2. 消息头——HTTP头域包括常规头,请求头,应答头和实体头域message-header = field-name ":" [ field-value ]field-name = tokenfield-value = *( field-content | LWS )field-content = <the OCTETs making up the field-value and consisting of either *TEXT or combinations of token, separators, and quoted-string>3. 消息体——message-body = entity-body| <entity-body encoded as per Transfer-Encoding>4. 消息的长度——决定因素5. 常规头域——general-header = Cache-Control| Connection| Date| Pragma| Transfer-Encoding五、请求(request)⾸⾏包括利⽤资源的⽅式,区分资源的标识,以及协议的版本号Request = Request-Line * (( general-header| request-header| entity-header ) CRLF) CRLF [ message-body ]1. 请求⾏——Request-Line = Method SP Request-URI SP HTTP-Version CRLF⽅法——⽅法标记指的是在请求URI所指定的资源上所实现的⽅式Method = "OPTIONS"| "GET"| "POST"| "PUT"| "DELETE"| "TRACE"| "CONNECT"| extension-methodextension-method = token请求URL——请求URL是⼀种全球统⼀的应⽤于资源请求的资源标识符Request-URI = "*" | absoluteURI | abs_path | authority请求⾏举例:GET HTTP/1.1GET /pub/WWW/TheProject.html HTTP/1.1Host: 2. 请求定义的资源——⼀个INTERNET请求所定义的精确资源由请求URL和主机报头域所决定3. 请求报头域——request-header = Accept| Accept-Charset| Accept-Encoding| Accept-Language| Authorization| Expect| From| Host| If-Match| If-Modified-Since| If-None-Match| If-Range| If-Unmodified-Since| Max-Forwards| Proxy-Authorization| Range| Referer| TE| User-Agent六、应答(response)接收和翻译⼀个请求信息后,服务器发出⼀个HTTP应答信息Response = Status-Line*(( general-header| response-header| entity-header ) CRLF) CRLF [ message-body ]1. 状态⾏——Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF状态码——状态码是试图理解和满⾜请求的三位数字的整数码,1xx,2xx,3xx,4xx,5xx,100-〉505-〉扩展码2. 应答报头域——response-header = Accept-Ranges| Age| Location| Proxy-Authenticate| Retry-After| Server| Vary| WWW-Authenticate七、实体(entity)在未经特别规定的情况下,请求与应答的消息也可以传送实体。
GB/T 1.1标准的编写国家标准讲解讲解人教授级高级工程师刘文华第一章标准编写的基本规定❖第一节标准的结构❖标准的结构即是标准中的部分、章、条、段、表、图、附录的编排顺序。
❖部分:例:GB/T 1.1 –2009 标准化工作导则第1部分标准的结构和编写规则❖GB/T 20001.10 –2014标准编写规则第10部分产品标准❖(这部分不详细展开)一、单独标准的内容划分❖1、根据要素的性质划分要素类型要素的编排作用资料性概述要素封面标示、介绍标准目次前言引言规范性一般要素标准名称描述标准范围规范性引用文件规范性技术要素术语和定义符号、代号和缩略语要求……规范性附录核心内容必须执行资料性补充要素资料性附录附加信息规范性技术要素规范性附录必须执行资料性补充要素参考文献附加信息索引2、由要素的必备或可选的状态来划分封面❖必备要素前言❖名称❖标准的要素范围❖可选要素---除上述四个要素之外的其他所有要素二、标准的层次❖表3-1标准的层次及其名称名称编号示例部分9999.1章3条 3.1条 3.1.1段(无编号)附录A❖表3-1只是标准可能具有的层次❖下面分别说明❖(一)部分(略)❖(二)章❖例:1范围❖2规范性引用文件❖3术语和定义❖4要求❖┄┄❖这是标准中常见的章的情况。
❖章构成标准的基本单元,形成标准结构的基本框架。
♦编号用阿拉伯数字从1开始编♦数字后不加标点♦章都应有标题♦单独占三行。
黑体字❖(三)条❖条是对章的细分。
例:❖4XXXX❖4.1XXXXXX❖4.1.1XXXXXXXXX ❖4.1.2XXXXXXXXX ❖4.1.2.1XXXXXXXX ❖4.1.2.2XXXXXXXX ❖┄┄❖4.2XXXXXX ♦从编号看条的层次好几层,但均称为条。
需要时可分到5层。
♦层次间加下脚点(圆点))♦第一层次的条最好给出标题♦单独占二行,黑体♦第2层后的条可根据情况决定是否设标题♦同一层次的条,有无标题应统一♦同层次有两个以上的条才可设条(四)段5.3XXXXXXXXXXXXXXXXXXXXXXX。
JMS1.课程知识点讲解1.1.消息服务引入:什么是消息服务?[给出问题]主题:1.消息服务的基本概念消息服务(Message Service)支持软件组件或应用程序之间的松耦合分布式通信。
消息服务的基本概念就是,两个或更多的客户机能够通过发送和接收消息即以对等的方式通信。
消息是指通过消息服务器由一个客户机发送到另一个客户机的“一块”数据。
[简述消息和消息服务的概念]2.使用消息服务的原因消息服务在目前面向企业的环境中大量应用的原因是什么?其主要的理由包括如下几点:(1)松散耦合但高内聚(cohesion)。
[解释耦合与内聚的概念](2)避免直接通信。
(3)保证消息传递。
(4)异步通信。
(5)一对多、多对多和多对一通信。
[简单讲述消息服务的使用原因]1.2.JMS的基本概念引入:JMS(Java Message Service,Java消息服务)是使应用程序创建、发送、接收和阅读消息的Java API,它是由SUN和几个合作公司设计。
主题:JMS API定义了一组通用接口和相应的语义,可以使用Java程序设计语言编写的应用程序与其他消息传递实现进行通信。
JMS API不仅使松散耦合之间的通信成为可能,而且可以:(1)异步(2)可靠JMS是J2EE主要组成部分。
在J2EE平台中的JMS具有下面这些特性:①应用程序客户端、企业JavaBean组件和Web组件可以发送或者同步接收JMS消息。
此外,应用程序客户端还可以异步接收消息。
②消息驱动Bean是企业Bean的一种,它允许异步消费消息。
通过消息驱动Bean,JMS提供者可以有选择地实现消息的并行处理。
③消息发送和接收操作可以共享分布式事务,允许JMS操作和数据库访问在单个事务内发生。
[简单介绍JMS的基本概念、功能和特性]1.3.JMS的应用场景[5 ]引入:主题:在下述情况下,企业应用程序提供者很可能在紧密耦合的API中选择一个消息传递API,如远程过程调用(RPC)。
1 JMS在介绍Act iveMQ之前,首先简要介绍一下JMS规范。
1.1 JMS的基本构件1.1.1 连接工厂连接工厂是客户用来创建连接的对象,例如Acti veMQ提供的Act iveMQ Conne ction Facto ry。
1.1.2 连接JMS Connec tion封装了客户与JMS提供者之间的一个虚拟的连接。
1.1.3 会话JMS Sessio n是生产和消费消息的一个单线程上下文。
会话用于创建消息生产者(produc er)、消息消费者(consum er)和消息(messag e)等。
会话提供了一个事务性的上下文,在这个上下文中,一组发送和接收被组合到了一个原子操作中。
1.1.4 目的地目的地是客户用来指定它生产的消息的目标和它消费的消息的来源的对象。
JMS1.0.2规范中定义了两种消息传递域:点对点(PTP)消息传递域和发布/订阅消息传递域。
点对点消息传递域的特点如下:•每个消息只能有一个消费者。
•消息的生产者和消费者之间没有时间上的相关性。
无论消费者在生产者发送消息的时候是否处于运行状态,它都可以提取消息。
发布/订阅消息传递域的特点如下:•每个消息可以有多个消费者。
•生产者和消费者之间有时间上的相关性。
订阅一个主题的消费者只能消费自它订阅之后发布的消息。
JMS规范允许客户创建持久订阅,这在一定程度上放松了时间上的相关性要求。
持久订阅允许消费者消费它在未处于激活状态时发送的消息。
在点对点消息传递域中,目的地被成为队列(queue);在发布/订阅消息传递域中,目的地被成为主题(topic)。
1.1.5 消息生产者消息生产者是由会话创建的一个对象,用于把消息发送到一个目的地。
1.1.6 消息消费者消息消费者是由会话创建的一个对象,它用于接收发送到目的地的消息。