企业级java开发与架构(程序员在实战中的蜕变)
?????????????? ??????????-----J2EE框架
?
Java虽然具有完美的语言体系,但是仅靠Java语言完成大系统的构建会非常的复杂。现在软件系统是在一系列标准系统的基础上搭建的,为了架构一套企业应用开发所需要的系统,Sun提出J2EE标准,J2EE包括一系统的规范来架构这套体系。
J2EE本质上是企业计算的分布式框架,这个框架中定义了许多规范。这些规范通常分为两部分,一部分是对容器的要求,另外一部分是对应用开发的要求。容器提供商必须提供符合规范的J2EE容器,应用开发商也必须遵循规范的要求进行开发。
客户端可以是浏览器,浏览器通过HTTP协议与Web容器的JSP或者Servlet进行交互,而JSP或者Servlet可以和Java类、EJB等进行交互,通常的做法是JSP通过Java类和别的任何一种应用进行交互,当然,JSP也可以直接和其他应用或者数据库进行交互,但是我们并不提倡在JSP中完成业务逻辑,那样会使代码混乱而无法管理,不是做项目的良好方式。
上图所描述的层次结构只是一些基本层次结构,并不涉及到其他系统的交互。就这些模式来说,在开发中一般会根据项目的性能要求、规模、数据准确性、业务模式、业务复杂度、开发能力行等实际情况选择某种层次模型。根据J2EE应用开发的经验,我们尽量避免采用第1、4两种模式,也就是说不要让呈现层直接和数据层和EJB进行交互,这样的模型会使项目代码显的很混乱,而且随着项目规模的扩大,其可靠性和可管理性会迅速下降,最终使用项目变得不可控制。
标准数据中间件的使用要小心,数据中间件会给系统带来额外的复杂度,很多时候数据中间件也会带来不确定因素,如果导致性能下降、数据处理能力严重下降、无法处理动态数据库(表会随着时间的变化而增加),甚至出现定期连接中断的情况。因此,在选择和使用数据中间件的时候,一定要咨询有经验的开发人员,对于关键系统龙其是这样。
CLASS基本上是必不可少的,和数据库交互,和EJB交互,和数据中间件交互,都需要CLASS层。
了解J2EE应用的分层模式,下面我们看一下J2EE中各种应用和规范的具体含义。
一、??????? Web和Web容器
当前的企业应用界面形式几乎都是以网页的形式呈现的,也就是系统都采用B/S的模式。B/S模式是指标准和浏览器通过HTTP协议和Web服务器进行交互,在浏览器端展现功能页面和结果页面。Web就是提供这种“页面”服务的,Web容器就是Web服务器,在J2EEn体系中的Web容器就是能够提供JSP和Servlet服务的Web服务器。
二、??????? EJB和EJB器
EJB全称 Enterprise JavaBean即JavaBean。JavaBean是什么?JavaBean本身没有什么具体的规范来定义,JavaBean是一种概念,一个JavaBean其实就是一个Java类,我们认为,JavaBean在目前已经没有什么意义了,EJB借用了JavaBean的名称,而EJB的严格的规范,EJB的规范对EJB容器开发商和应用开发商都提出了具体的要示和标准、EJB是Java组织定义的一种规范,这种规范的制定正是为了解决电子商务、企业计算中潜在的问题、包括事务、安全性、伸缩性、稳定性、并发、通信、资源管理、持久化、错误处理、分布式系统、操作系统无关、软件开发的可管理性等。EJB规范定义了EJB容器开发者、EJB开发者、EJB使用者应该遵守的规范,遵从这个规范的EJB容器可以发布任何符合这个规范的EJB,而EJB的调用者也必须按这个规范定义和调用EJB。
EJB容器是加载EJB应用的服务器,Sun为EJB容器制定了严格的标准,使用EJB可以在任何的容器中移植,类似的标准和规范正是Java强大的基础之一。EJB只有在EJB容器中才能发挥作用。要使用EJB,则需要通过容器提供的JNDI查找到EJB,然后才能调用,EJB对于J2EE体系来说一个非常重要的部分,它是大中型系统的最佳解决方案。
三、??????? J2EE中的重要元素
1.??????? Servlet
Servlet是Java Web服务器用来处理用户请求以及其他基于Web服务的Java类。他配置在Web服务品中,根据用户的请求和传递过参数进行运算,返回处理后的结果。开发Servlet类必须按照Servlet的要求继承HttpServlet类,实现相应的方法。
2.??????? JSP
JSP以脚本 的方式处理用户的请求度返回结果。JSP可以与HTML代码相互嵌套,从而更为快速的为Web应用开发JSP实质还是Servlet,JSP页面最终都将被编译为Servlet
3.??????? JDBC
JDBC,全称为Java Database Connectivity 即Java数据库连接。JDBC是Java定制的数据库访问协议。Sun为JDBC提供了一套完整的接口,数据为厂商根据JDBC协议和Sun的JDBC接口(java.sql包 javax.sql包)实现JDBC驱动 ,我们常用的MySQL、MS SQL 、Oracle等JDBC驱动就是实现了这些协议的数据库连接类系。应用程序最终必须使用JDBC驱动才能访问数据库。
4.??????? Web ?Service
Web Service并不是Java特有规范,但是Web Service应用日益广泛,J2EE已将Web Service作为一个重要内容收录到其规范中。J2EE体系的容器也早已支持了这项具有很多优势的技术。可以说Web Service开拓了布式计算的新时代。Web Service是一项具有革命意义的技术。Web Service其实并不复杂,它可以使用应用程序之间利用HTTP、XML协议包装的SOAP信封进行交互。Web Service可以替代RPC(远程过程调用)和Socket通信的应用程序,使用应用程序之间的交互通过Web服务器提供的服务来完成,而这些服务需要开发者按照Web Service规定的标准进行开发。基于Web Service的应用不受防火墙的限制(一般的防火墙不限制HTTP协议)基于Web Service的应用使得分布式应用更容易实现;Web Service也不受开发语言、应用程序形式、系统限制,因为它调用是基于Web接口,调用Web Service接口的实质就是发送一个Http请求。
5.??????? JMS
JMS,全称Java Messages Service,即Javsa消息服务。消息服务提供了应用程序之间数据和事件和异步交换。消息服务对于具有实时性的应用系统不说是一种非常有用的技术。通常的实时性应用中都会建立自己的消息服务,以使各模块间能够协同工作和传递数据,例如我们在一个基于Socket的聊天系统的例子中,正是程序 内部建立了一个消息队列,使得聊天消息能够在各个聊天线程之间传递。Java正是总结这样的应用,制定了标准的JMS规范,对JMS容器(通常和别的容器集成在一起)、JMS配置、JMS应用开发都提出了相应的规范,按照这些规范开发相应的JMS应用会使你的应用系统更加高效、便捷地运行。
6.??????? JNDI
JNDI,全称 Java Naming Directory Interface 即Java命名服务和目录服务接口,是J2EE的一个重要规范。JNDI的服务通常集成在其他容器之中。JDNI在J2EE 中扮演了一个相当得要角色。对于我们的应用系统来说,最常用的就是利用JNDI来帮助我们将名称和对象进行“绑定”,这种绑定通过系统进行配置,利用这种绑定关系,可以通过JNDI服务器查找我们需要的对象。这些对象可以是数据库连接、EJB对象、JMS服务队列或者主题。
7.??????? JTA
JTA,全称为Java Transaction API,即Java事务应用接口。JTA是事务服务的J2EE解释方案。本质上,安是描述事务接口的J2EE模型的一部分。JTA具有三个主要接口,分别是UsrtTransaction接口、TransactionManager接口和Transaction接口。这些接口共享公共的事务操作,但是也包含特殊的事务操作,他们也只出现在特定的接口上,以便在实现中请允许一定程度的访问控制。例如,UserTransaction能够执行事务划分和基本的事务操作,而TransactionManager能够执行上下文管理。JTA通常由窗口实现,应用开发通过上下文获得容器提供的JTA实例完成事务处理。
?
小结:
J2EE本身得为个来系统而制定的规范,J2EE几乎可以适合任何企业系统。J2EE是一系列规范,任何厂商甚至个人都可以按照J2EE规范提供J2EE的容器。在J2EE的容器最为重要的是Web容器和EJB容器。J2EE是按照分层技术进行架构的,这种层次架构使得J2EE可以适合各种企业应用,不同的项目可以根据项目的特点对J2EE进行适当的裁剪,采用最合适的技术到应用到项目中。
?
?