JMS、RMS、JDBC及JNDI都是为了满足在远程或本地不同的服务调用和信息交换而产生的,按照老规矩还是一个一个的来解析他们各自的用途和范围。
JMS:在说JMS前要先提一下相关的背景,jms既Java消息服务(Java Message Service),何为消息,是指动态的、可流动或者说是可传递的,这个过程就是Messaging,jms的消息传递和常用的通信协议适用的场景是不一样的。Jms有着自己定义的消息格式和消息传递的模式,消息的格式由10个头字段、property的可选头字段和消息体组成,如下图:
Header和properties都是键值对,body是具体要传递的内容,properties可以放一些自定义的附加信息。消息需要由生产者产生,同样的道理,消息也需要传递到需要它的消息消费者手中,其实,这其中还有一个叫jms Server的东西,也称为Destination,它专门在生产者和消费者中间中转和保存消息,这样就构成了3点结构,和咱们学过的MVC非常相似。
消息传递的模式分为两种point to point(点对点),意思就是生产者产生一条消息,只能传递给一个消费者,就好像一个苹果只能给一人一样,前提当然是苹果不可再分了。
但是ptp的传递方式不能达到消息的共享,因此publish/subscribe模式出现了,他可以达到多人共享消息,消息的发送者叫发布者,拿到消息的人叫订阅者,发布者发出消息后,暂存在中间服务器上,供订阅者接收,达到了消息的异步,就好像我说了一句,XXX是泡妞高手被大家听到了一样。
除了传递消息,还要保障消息的可靠性和高效性。因此,JMS引入了确认和事务,就像JDBC那样,一次会话过程,可以手动完成事务,处理完成后,提交,确认所有的消息,但是发送不支持事务,这只能交给消息中间件来完成了。
JDBC:有些编程基础的童鞋一看JDBC就基本明白它是干什么的,怎么干的,下面简单介绍一下,JDBC是sun公司的一个商标,但外界大多数人不这么认为,仍然认为JDBC是Java Database Connectivity的首字母简写,它不仅和微软的ODBC形似还有几分神似,用来完成应用程序和数据的交互,也就是MVC中M层和数据库之间的联系。
从下图可以看出JDBC的体系结构,他也是利用MVC的思想,JDBC API给上层应用(也就是程序员)提供统一的接口,下层再各自去管理不同的数据库。
JDBC工作流程:
1.注册JDBC驱动程序:JDBC-ODBC桥驱动模式、本地接口与Java驱动程序相结合的驱动模式、面向数据库中间件的驱动模式、直接连接的驱动模式。
2.获取数据库连接:DataSource和DriverManager
3.生成数据库语句:Statement、prepareStatement和CallableStatement。
4.在数据库语句中嵌入SQL语句并执行
5.关闭数据库语句和数据库连接
(接下篇)