中间件简介
中间件
中间件(middleware)是基础软件的一大类,中间介处于操作系统与用户的应用软件的中间。中间件在操作系统,网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效的开发和集成复杂的应用软件。
应用-----中间件-分布式系统服务-----硬件、操作系统
为什么使用中间件:从硬件来看:CPU速度越来越高,处理能力越来越强;从软件来看:应用程序的规模不断扩大,许多应用程序需要在网络环境的异构平台上运行。在这种异构环境中,通常存在多种硬件系统平台(如pc,工作站,小型机等),在这些硬件平台上又存在各种各样的系统软件,(如不同的操作系统,数据库,语言编译器等),以及各种各样的用户界面,这些硬件系统平台还可能采用不同的网络协议和网络体系结构连接。
优点:
屏蔽操作系统底层系统,方便快速开发;
满足大量应用需要,提供三层架构的应用模式;
运行于多种硬件和OS平台;
支持分布式计算,提供跨网络、硬件和OS平台的透明性的应用和服务的交互;
支持标准的协议;
支持标准的接口;
分类:对象中间件、应用服务器中间件、消息中间件、事务/交易处理中间件、应用集成中间件、数据库中间件、财务中间件、无线移动中间件、嵌入式中间件、XML中间件、安全中间件
1> 应用服务器中间件:
便于开发、部署、运行和管理基于多层结构的应用,需要以网络和分布式计算的底层技术为基础,构建一个完整的应用框架,提供相应的支撑平台作为多层应用的基础设施。
应用服务器是一个创建、部署、运行、集成和维护多层分布式企业级应用的平台。
主要产品有:weblogic server、websphere server、tomcat等
2> 消息中间件:
用来屏蔽掉各种平台及协议之间的特性,实行在不同平台之间通信,实现分布式系统中可靠、高效、实时的跨平台数据传输,实现应用程序之间的协同。
主要产品有:东方通科科技公司的TongLINK、BEA公司的BEA elink、IBM公司的MQSeries
3>对象中间件:
在分布、异构的网络技术环境中,可以将各种分布对象有机的结合在一起,完成系统的快速集成,实现对象重用,在这个方面遵循的标准是CORBA。
--------------------------------------------------------------------------------------
J2EE应用服务器中间件:
weblogic、IBM websphere、Oracle application server、tomcat、jboss、jetty、resin ......
J2EE应用中间件技术:
原理:浏览器---Internet---web 服务器---中间件---数据库
1> CGI:公共网关接口
公共网关接口是一种web站点上可以用来访问web站点的用户交互的各种程序的标准。(交互主要是指允许用户在浏览器上访问数据库,完成各种数据库的操作。)
CGI最大的缺点就是执行效率低,因为web服务器支持并发访问,对每个数据库查询请求都要启动一个CGI的进程,这样极大浪费服务器资源。
在这种结构中,用户使用标准的浏览器通过internet和http协议访问服务器提供的web服务器,web服务器分析用户浏览器提出的请求,如果是页面请求,则直接用http协议向用户返回要浏览的页面;
如果有数据库查询操作请求,则需将这个请求传递给web服务器和数据库之间的中间件,由中间件再向数据库系统提出操作请求,得到结果后再返回给web服务器,web服务器把数据库操作的结果形成html页面,再返回给浏览器。
2> JSP:java server page
java是SUN公司开发的一种面向对象的程序设计语言,支持多线程、跨平台。
JSP的工作方式:客户端浏览器首先访问web服务器,从web服务器上下载Java小程序,以及相关的类和JDBC接口的字节码文件,然后和web服务器脱离,再根据数据库服务器的地址、端口号、账号和数据库服务器连接,进行交互操作;JSP技术具有可操作性、可维护性、安全性、高效性;
3> ASP:active server pages
ASP是一种开放的应用程序环境,支持将html脚本和可重用的Active Server组件结合在一起构建交互式网页。
4> JDK:JDK是整个Java的核心,是一个Java开发包、开发工具、是Java应用程序的程序开发环境。
SUN JDK、IBM JDK
JDK的最重要的命令行工具:
java:启动JVM执行class
javac:Java编译器
jar:Java打包工具
javadoc:Java文档生成器
5> JVM:Java virtual Machine,Java虚拟机
是一个虚构出来的计算机,是通过在实际计算机上仿真模拟各种计算机功能来实现;
Java虚拟机与自己完善的硬件架构,如处理器、堆栈、寄存器、相应的指令系统;
JVM屏蔽了与具体操作系统平台相关的信息,使得java程序只需生成在java虚拟机上运行的目标代码,java虚拟机在执行目标代码时,实际上最终还是把目标代码解释成具体平台上的机器指令执行;
6> DataSource:数据源
数据源定义指定数据源的方式,即数据来源;如:安装oracle客户端后,配的监听服务名,访问oracle数据库一般通过这个监听服务名和相应的用户名,密码。
7> JDBC:java database connectivity :Java数据库连接API
JDBC对应一个数据库连接池。客户程序可以通过数据源绑定的JNDI名字得到该数据源的引用,并且通过数据源对象得到的数据库连接;
JDBC有java语言特性,使用JDBC开发的程序可以跨平台运行,而不受数据库供应商的影响。
8> JNDI:Java Naming and Directory Interface:是SUN公司提供的一种标准的java命名系统接口;
JNDI是一个应用程序设计的API,为开发人员提供了查找和访问各种命名和目录服务器的通用、统一的接口,应用程序能够通过制定一个逻辑的名称来访问一个DataSource对象。
9> Connection Pool:
存放connection对象的容器;
减少连接数据库的开销;
程序请求连接时,在connection pool中取连接;
连接使用完后,放回connection pool,不释放;
connection pool对连接进行管理:计数,监控连接状态;
10> transaction:事务
事务是访问并可能更新数据库中各种数据项的一个程序执行单元;
事务是为解决数据安全操作提出的,事务控制实际上就是控制数据的安全访问;
事务要么成功,要么失败,并回复原状;
11> JMS:Java Message Serveice
JMS是访问企业消息系统的标准API,它便于消息系统中的java应用程序进行消息交换,并且通过提供标准的产生、发送、接收消息的接口、简化企业应用的开发;
12> Tread线程:
程序执行的基本单元。一个进程可以由多个同时运行的线程,每一个执行不同的任务;当一个线程完成任务后,这个线程就会被挂起或消灭;
-----------------------------------------------------------------------------
WebSphere Application Server:
是一个基于Java的web应用程序服务器,构建在开放标准的基础之上,能够部署和管理从简单的Web站点到强大的电子商务解决方案的诸多应用程序。
遵循J2EE并未Java组件、XML和Web服务提供了一个可移植的Web部署平台,这个平台能够与数据库交互并提供动态的Web内容。
应用服务器:WebSphere Application Server
WebSphere结构:
单元(cell)
配置管理(Deployment Manager)
节点(Node)
节点代理(Node Agent)
概要文件(Profile)
集群(Cluster)
WebSphere基础:
Applicaton Server:一个为J2EE应用提供了web容器、EJB容器、Naming、JMS等服务,同时提供配置和管理功能的运行平台。在Windows、Unix等分布式操作系统上,一个Server单只一个JVM实例,看到的就是一个java进程。
1> WebSphere Profile:一个Applicaton Server所需要用到的User files的集合,包括如环境变量的设定、资源的配置、日志文件的记录格式.....所有的这些构成applicaton server的运行环境。
2> 单元:(cell):是一个逻辑上的管理域的称呼,提供了对节点的单独管理入口,这个域由跨多台主机上的NOde和一个DM组成;一般情况来时,可以将单元看作是最大的域。单元是一个逻辑上的配置概念。
3> 配置管理(Deployment Manager):是管理代理程序;Deployment Manager为单元中所有元素提供了单一的管理控制中心点;每一个单元都会包含一个Deployment Manager。
4> 节点(Node):是受管服务器(Server)的逻辑分组;节点通常与具有唯一IP主机地址的逻辑或物理计算机系统对应,节点不能夸多台计算机。
5> 节点代理(Node Agent):将管理请求路由至服务器的管理代理程序。DM通过NOde Agent把配置和管理动作传达到每个Node中的Server上。
在WAS ND环境下,一个节点对应一个概要文件,一个节点内可以有多个Server