JMS概要(Java Message Service Overview)
这个关于JMS(Java Message Service)的概要回答了下面几个问题:
1.什么是消息?
2.么是JMS API?
3.如何使用JMS API?
4. JMS API是如何与J2EE平台一起工作的?
1.1什么是消息?
消息是软件组件或者应用之间交流的一种方法。消息系统是一个点对点的功能,一个消息客户端可以发送和接受从别的客户端发过来的消息,这些客户端连接到一个消息代理,这个代理提供创建、发送、接受和读取消息。
消息让分布式通讯变得松散耦合。一个组件发送一个消息到目的端,接受着可以从目的地查询消息。但是,发送者和接受着不用同时在线。实际上,发送者没有必要知道关于接受着的任何信息,接受着也不需要。发送者和接受者只需要知道消息的格式和目的地。从这个方面来看,消息和一些紧密耦合的技术比如RMI有区别,RMI需要知道远程应用的方法。
消息也有区别于Email,Email是人和人,软件和人交流的手段。而消息是软件应用或者组件之间交流的手段。
1.2 什么是JMS API?
JMS API是一个Java API,它允许应用创建、发送、接受和读取消息。JMS API是Sun和其他几个公司合作编写的,提供有一系列的接口和语义,允许Java语言和其他消息实现通信。
JMS最小化了开发人员需要学习消息系统需要使用的概念,而且提供了足够的功能来支持复杂的消息应用。而且最大化了JMS的可移植性。
JMS不仅仅降低了通信的耦合,而且有以下特性:
· 异步的
JMS提供者可以把消息传递给客户端,客户端不用去主动请求
·可靠的
JMS API可以保证消息会被传递而且只传递一次。应用可以处理丢失消息和接受到重复消息的情况
JMS说明在1998年第一次出版,最新版是1.0.2b,是2001年发行的。
1.3什么时候可以使用JMS
企业应用提供商趋向于选择JMS API来替代紧密耦合的技术比如RPC,基于下面的原因:
·提供商不想让组件依赖其他组件,这样组件可以轻松替换
·提供商想让应用运行在不管其他组件是不是可用的情况下
·应用的业务模型允许组件发送信息到其他组件,而不需要实时的响应比如,一个汽车制造商的企业应用的组件可以在下面的情况下使用JMS
·当存货不足的时候,存货组件可以发送一个消息到工厂组件,这样工厂就可以开始生产
·工厂组件可以发送消息到零件组件,这样零件组件就可以汇集他需要的零件
·工厂组件和零件组件都可以发送消息到会计组件来更新预算数
相关文档:
Java学习从入门到精通
一、 JDK (Java Development Kit)
JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握JDK是学好Java的第一步。最主流的J ......
create PROCEDURE pagelist
@tablename nvarchar(50),
@fieldname nvarchar(50)='*',
@pagesize int output,--每页显示记录条数
@currentpage int output,--第几页
@orderid nvarchar(50),--主键排序
@sort int,--排序方式,1表示升序,0表示降序排列
......
public class Test2 {
public static void main(String[] args) {
// 简单认识正则表达式的概念
/*
* p("abc".matches("...")); p("a8729a".replaceAll("\\d", "-")); Pattern
* p = Pattern.compile("[a-z]{3}"); Matcher m = p.match ......
用java开发邮件接收程序需要用到javamail包,资源地址:http://java.sun.com/products/javamail/,最新版是 JavaMail 1.4.3 ,下载地址是:http://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/VerifyItem-Start/javamail-1.4.3.zip?BundledLineItemUUID=gqFIBe.oRjUAAAEl1r4 ......
1.背景、形势
能够进行Web开发的编程语言和技术很多
(1) 动态解释语言
PHP; Perl; Python (Zope, Plone); Ruby (Ruby on Rails);
(2) 编译语言
Java; .net
Java Web开发远非一枝独秀:
除了受到来自.net 这个重量级对手的最大挑战之外,更受到Zope, Ruby on Rail 等新式轻骑兵的冲击(当然,也继续受到老式轻 ......