J2EE及其在电子政务中的应用

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

J2EE及其在电子政务中的应用胡舜耕王克宏柳西玲蔡月茹清华大学计算机系(Email:hushg@tsinghua.edu.cn)论文摘要:J2EE是支持开发基于Web的分布式事务应用的标准模型。本文概述了J2EE的体系结构和相关技术,介绍了一个基于J2EE的电子政务系统。关键词:J2EE,工作流,电子政务1.引言历史上,信息技术的重点是数据管理。大规模的数据管理系统允许各种组织聚集,分析和解析数据。随着Internet和的发展,信息技术的重点从数据管理转移到了应用。应用是企业与客户,供应商和合作伙伴建立安全健壮的联系的关键。激烈的竞争也要求各种组织具有快速高效地开发和部署基于Web的革新应用的能力。J2EE的目标是标准化基于Web的开发和部署,它提供支持开发分布式事务应用的标准模型。它为快速高效地开发和部署基于Web的应用提供强力技术支持。2.J2EE概述自从九五年Java语言发布以来,J2EE的技术就一直在演化之中。许多技术,如JavaServlets,JDBC和JavaIDL等被用来简化应用的开发。J2EE平台将这些技术整合成一个单一的、统一的标准,以便建立各种需求的应用。在没有一个统一的标准以前,应用的集成要用到各种编程模型、API和开发者技能。而J2EE平台提供一个统一的编程模型和一个标准API集。J2EE的体系结构是基于构件和容器的,通过在多层应用的各层部署构件,简化应用的开发。2.1构件和容器简单地讲,构件就是应用开发和部署的最小单元。它们提供标准化的功能,有严格定义的应用接口,能够根据特定商业目的,容易地进行开发和部署。J2EE平台包括Servlet,JSP和EJB等构件模型。支持构件的容器提供可靠的标准化服务,向各个产品供应商提供一致的环境。容器是一种机制,通过它,J2EE支持Java语言“WriteOnce,RunAnywhere”的承诺。容器提供对HTTP交互,事务管理和安全等的支持,构件能够利用这些服务完成自己的工作。J2EE容器以两种方式支持基于构件的应用编程模型。第一,它们使许多需要一定编程技能的标准功能自动化,如事务管理和安全。第二,它们提供了对构件有用的API,如消息传递(JavaMessageService)和数据库访问(JDBC)。容器的这些特征统一了J2EE编程模型,简化了应用开发,支持构件和应用级的可移植性。容器提供构件一个工作环境。它们提供方法使得其服务能够注入到构件的操作中去,而不需要构件开发者编写特定的代码。这在分布式应用开发中尤其重要,在那里,提供这些服务是非常复杂的。容器是基于J2SE的,所以自动提供Java运行时环境的标准性质,如支持跨平台开发。另外,J2EE平台和构件标准定义的容器还具有安全管理,事务管理,生命周期管理等其它性质。2.2JavaServlet技术Servlet提供了产生动态页面内容的机制。可以把它们想象成服务器的Javaapplets.Servlet是用来替代和改善CGI脚本的。CGI通常是平台相关的,支持交互的能力有限。从性能上来讲,服务器每接受到一个用户请求都要装载一次CGI,消耗内存和处理周期。而Servlet是基于Java编程语言的,因此具有可移植性,灵活性,且编程较简单。Servlet在第一次初始化的时候被装载到内存中,此后就可以服务于任何用户请求,所以,Servlet比CGI具有更好的性能。和所有的J2EE构件一样,Servlet运行在由J2EE平台提供者所实现的容器中。容器管理Servlet与客户的交互,并为Servlet访问各种基于Java技术的服务提供了丰富的环境。Servlet容器实现了J2SE的所有API.因此,Servlet可以采用Java编程语言的各种技术,包括JDBC,JNDI(JavaNamingandDirectoryInterface),RMI,JavaBeans等。容器也允许Servlet通过session获取特定客户的信息,解决了由于HTTP协议的无状态性而引起的客户信息的不透明性问题。BrowserServletContainerServletRequestObjectResponseObjectApplicationObjectContextObjectSessionObjectWebTierClient图1Servlet与Client的交互RequestResponse图1是一个典型的Servlet与Client的交互。一个客户通过HTTP向一个Web服务器发出一个请求。在Web服务器处理该请求时,将它传递给Servlet容器,由Servlet容器将请求传递给合适的Servlet.Servlet有一个请求对象,它提供给Servlet关于请求的信息,包括谁调用了该Servlet,传送了什么样的表单参数,以及关于HTTP请求的其它信息。Servlet通过一个响应对象向客户反馈数据。在请求处理期间的任何时候,Servlet能够利用一个上下文对象将发生的事件记入日志,获得资源的URL引用,设置和存储在同一上下文的其它Servlet能够使用的属性。同样,Servlet也能访问向它提供客户状态信息的一个session对象。在Servlet规范中,除定义Servlet及其容器外,还定义了Web应用。一个Web应用是部署在一起以提供完整的交互流程的Servlet,JSP,HTMLpage以及如图象等支撑内容的一个集合。这些资源被打包在一个Web应用档案文件中,而且能很容易地部署到Web应用容器中。就扩展性而言,Web应用能够分布在多个web应用容器中。2.3JavaServerPagesJavaServerPage(简称JSP)技术建立在JavaServlet技术基础上,目的是简化动态Web页面的开发。JSP支持基于Web页的多态性,能非常方便地分离动态和静态Web内容。JSP页面定义了一个静态的HTML模版,其中嵌入了用Java编程语言或JSP容器支持的任何一种语言编写的代码,以填充页面的动态部分。JSP页面包含四种类型元素,每一种元素在动态内容的表示中都扮演一个特殊的角色。(1)Text元素是通过标准HTML或XML格式化的内容,表示页面的静态部分。(2)Directives是JSP处理器的指令。当把JSP页面编译成可执行形式时,JSP容器处理这些指令。(3)Tags调用JavaBeans以产生动态内容或执行其它计算。(4)Scripting元素可以是declaration,scriptlet或expression.象Tags元素一样,脚本元素可以用来执行计算以产生动态内容。当标准的Tags元素没有被定义或不适用的时候,可以使用Scripting元素。在执行时,JSP被编译成Servlet,Servlet输出未被修改的模板文本,并处理JSP表达式。从结构上讲,JSP可以看作是Servlet的一个高层抽象实现,它已经成为开发动态网站的主要技术。页面开发者可以方便地使用HTML或XML工具开发JSP页面,而Servlet更适合于后端开发者使用,它们的的开发工具是IDE.JSP和Servlet也可以结合起来使用,采用JSP表现页面,Servlet完成各种处理。Servlet是一个控制者,负责响应客户的请求,而JSP页面中不需任何商业处理逻辑。这种设计模式使得页面的表现和逻辑得以分离。2.4EnterpriseJavaBeansServlet和JSP构件可以提供丰富的用户界面,J2EE平台还提供EnterpriseJavaBeans(简称EJB)模型以支持事务处理。EJB提供标准的体系结构以建立分布式的,面向对象的商业应用。与其它的J2EE构件一样,EJB支持Java语言的“WriteOnce,RunAnywhere”.EJB的客户视图与部署它的容器无关,任何容器向任何客户表现的是同样的接口。EJB的客户视图由两个接口提供:Home接口(Homeinterface)和远程接口(remoteinterface)。当部署一个EJB时,基于它提供的信息,由EJB容器构造的类提供这两个接口。Home接口提供了创建EJB实例的方法,而远程接口提供构件的商业逻辑方法。EJB客户通过Home接口和远程接口直接与EJB交互。在基于构件的应用中,EJB体系结构支持分布式事务。这种分布式事务能自动更新多个数据库中的数据,EJB模型把管理这些事务的复杂性从应用开发者转移到了容器提供者。EJB构件模型支持三种类型的bean:sessionbean,entitybean和message-drivenbean.sessionbean是一种通过Home接口创建并对客户端连接专有的bean.sessionbean分为无状态和有状态,sessionbean的部署必须声明该bean是无状态或有状态的。一个无状态bean在方法调用间不维护任何状态信息。它是多态的,一个无状态bean的任何实例能够在任何时间被任何客户使用。相反,有状态sessionbean常用来跟踪会话数据,代表客户保存状态。在线购物车是有状态sessionbean的典型例子。尽管sessionbean可以通过JDBC调用接收和存储数据,被一个有状态sessionbean跟踪的信息不必直接存储在数据库中。每一个有状态sessionbean与一个特定的客户相关联。在对有状态sessionbean的实例池的管理过程中,容器能自动保存和获取bean的状态。entitybean用来代表持久对象,如数据库中的记录或相关记录集。entitybean能用来表示商业记录,如一个客户(name,address,phone)或一个定货单(customer,itemspurchased,purchaseprice).entitybean的方法提供对表示这个bean的数据的操作。entitybean提供了一种机制,使得一个应用的多个用户能够共享对数据的事务访问。EJB2.0标准定义了message-drivenbean,与J2EE1.3兼容的产品提供对message-drivenbean的支持。message-drivenbean提供了一种机制,利用JMS可以创建不直接通信的松散耦合的应用。2.5J2EE标准服务针对分布式的企业应用的需求,支持J2EE构件的容器提供了大量标准化的服务,包括:(1)通信服务。支持RMI-IIOP,JavaIDL,JavaMessagingService和JavaMail.(2)企业服务。包括JDBC,JTA,JNDI与能把已有的企业构件封装成EJB的连接器API.(3)Internet服务。支持HTTP,SSL和XML.J2EE1.3支持XML功能。XML提供类似于HTML的标记数据,不过XML的标记描述的是数据,而不是数据布局的方式。在Internet上,XML常用来在应用或服务器之间转换格式化数据。XML和Java本来是独立发展的技术,但都是平台无关的。因此,Java和XML的结合将提供一个完善的平台无关的解决方案。J2EE1.3提供解析XML和将XML表示成对象的支持。3.基于J2EE技术的电子政务系统电子政务(俗称“电子政府”)是一个综合的信息系统,它既不同于传统的办公自动化,也不同于简单的网上信息发布。它是基于Internet面向社会的政府办公自动化系统。它的基本功能包括政府办公自动化,信息资源管理和信息安全管理。政府办公自动化包括批文,发文,政府决策分析支持和报表汇总统计分析等。实现电子政务的关键,很大程度上取决于能否实现政府行政、办公过程中的工作流程及相关信息流的自动化。BrowserBrowserWebServerJSPsServletsApplicationsServerEJBEJBEJBEJBEJBClientPresentationBusinessLogicJDBCJNDIDatabaseApplicationDataPersistenceEJB图2基于J2EE的电子政务系统体系结构RMI工作流是针对工作中具有固定程序的常规活动而抽象出的一个概念。通过将工

1 / 6
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功