本文主要针对Java EE涉及的一些概念做一些整理。
-------------------------------------------------------------------------------
1.中间件
中间件是企业级开发中常用的术语,一听貌似很难懂,不着急,我们就解决两个问题:
为什么需要中间件?
什么是中间件?
早先企业级应用程序的体系结构为两层体系结构,两层体系结构分为客户层与服务器层,即常常被提到的C/S模式。
在C/S模式中,客户层几乎包揽了除数据服务之外的其他所有职能,包括用户交互、应用逻辑、数据访问等,而服务器层仅提供数据服务。
明显这样的体系结构分工不合理嘛,存在的缺陷有n,这里列举三点:
1.客户端应用程序一般体积肥大,部署极其麻烦,业务需求稍有变更就得更新客户层。
2.客户端直接与数据库交互,上来就直接刚,极不安全。
3.大量客户端与数据库服务器交互,服务器表示压力山大。
啊?两层不行就多加一层嘛。0.0简单粗暴
于是于是,就有了三层体系结构应用程序,不要看到三层就说什么MVC啊,我只能说,你太天真了。
这里的三层体系结构,就是在前面的客户层与数据库服务层之间加了一层,应用服务器,主要用于实现应用逻辑、数据访问。这样客户端就不能直接接触到数据库,安全性大大提高啦,又由于客户端常是由计算机的浏览器扮演,所以客户端的部署基本就不关应用程序什么事了。更有其他优点自己百度啦。
那么,重点来啦,在三层体系结构中,应用服务器层又被称为“中间件服务器”或“中间件”。
当然,在后续的发展中人们又将中间件按应用逻辑划分为若干个子层,这样就有了多层体系结构的应用程序。
(这里补充一点,所谓的体系结构,就是指应用程序中各个组件之间的组织方式)
2.Java EE
首先,JavaEE是一个标准中间件体系结构,说到底,J2EE就是一套规范中间件的标准,那么问题来了
为什么需要JavaEE这套标准呢?
JavaEE这套标准到底规范了些什么?
刚刚也提到了中间件为何存在,但是我们说的中间件这时候还是个抽象概念,像一个未被实例化的类,首先我们需要定义一个类,其次我们需要去实例化。
于是,我们也需要去定义“一个”中间件,其次我们才能去实现这个中间件。
任何人任何厂商都可以实现自己的中间件,自己捣鼓几下,让程序跑起来不就得了。
确实,在J2EE未被提出之前,存在几家主要的中间件开发商各自为政,你整一套中间件我整一套中间件,互不兼容。
于是,J2EE出现了,J2EE就是为了统一中间件的开发标准而出现的。
典型的J2EE结构的应用程序包括四层:客户层,表示逻辑层(web层),业务逻辑层和企业信息系统层。
J2EE定义了一些标准组件,如jsp,jsf,servlet,EJB等,这些组件运行在实现了J2EE标准的应用服务器上,如JBoss,Tomcat,Websphere,GlassFish等,同时也是J2EE中的“容器”。
组件运行在容器之中,容器由各个厂商根据J2EE标准各自实现,组件由程序员根据业务逻辑需求自行实现。这也是J2EE的一个“组件-容器”编程思想。