随着网络的广泛普及和用户计算机的剧增,各种操作系统平台也更为多样化,特别在中高端计算机系统中已形成Unix、Linux和Windows三足鼎立之势。因此,计算机程序设计者就需要更好地认识到应用系统的跨平台性对系统重要性。Sun公司推出的Java语言正是这样一种可跨平台的语言。1998年Sun公司推出的Java2平台企业版(J2EE)使得Java语言的使用更加标准和广泛。
JavaMail API作为J2EE中邮件设计功能的组成部分,定义了一整套供程序开发者设计代码的接口。这些接口使代码与具体的协议或邮件服务相分离,使Internet邮件代码因为跨平台、跨协议移植而具有更高的效率。
系统平台
本文构建的邮件系统采用Linux SendMail作为邮件服务器,使用JSP编写客户端程序。其核心邮件传输部分是在EJB容器上利用JavaMail编写“发送组件”和“接收组件”进行邮件发送和接收。其邮件地址列表采用Oracle数据库进行存放,用于管理人员进行邮件和人员管理,系统拓扑图见图1。系统采用标准接口和协议进行连接,各模块既可在同一个服务器上,又可分别位于不同的物理位置,通过局域网或Internet相连接。
图1 系统拓扑图 系统三层开发模式
系统采用较为先进的3/N层模式开发,可以实现逻辑中间层平衡系统负载,提高效率。具体模式如下:
1. Servlet/Jsp Web服务器在JSP中用HTML和Java语言对用户界面进行开发,实现三层结构中的表示层,生成友好界面。使用者通过该层来完成收发邮件,系统管理员进行系统设置。
2. EJB JavaMail实现商务逻辑层,通过对无状态会话Bean进行封装,实现Bean连接池,调用Javamail API进行邮件传输;通过对实体Bean的封装完成数据库的连接和数据操作。
3. 数据层,通过实现逻辑层与Oracle数据库服务器的接口和对Oracle的后台管理,实现数据层(见图2)。
图2 3/N层模式体系结构
系统模块
系统根据功能不同分为四大模块:1.Servlet/JSP Web服务器建立用户界面;2.EJB上利用Javamail设计Javabean;3.数据库与邮件系统接口;4.数据库设计及数据管理系统。其中核心为第二部分。对这四模块细化如下:
Servlet/JSP进行Web页面编程
该模块(见图3)通过JDBC技术和加载于Apache服务器上的Tomcat对JSP进行解析,JSP转化为Servlet程序后在服务器端运行,然后运行结果重新返回客户端。本模块可细分为登录、接收、发送三个实施模块,是用户主要操作的部分。此部分的具体内容根据用户的需求不同而不同,如教师主要工作是接收学生作业和进行课程教学,而学生主要工作是接收多媒体课程和提交作业等。
图3 Servlet/Jsp用户界面模块
EJB上利用Javamail设计Javabean
本模块(见图4)利用J2EE中的Javamail API对本邮件系统中的邮件发送接收规则进行封装。在应用服务器EJB容器中建立三个主要用于邮件传输的组件:接收组件、存储组件和传送组件,并分别建立相应的组件池,借此优化系统配置,节省服务器资源。
图4 JavaBean和数据库接口模块
邮件系统与数据库接口
因为本邮件系统既有JavaMail组件与数据库服务器接口,又有JSP与数据库连接接口,故采用实体Bean的方式对数据库的表空间进行抽象。这样可以对数据进行组合、计算。将数据实体放在中间层,既保证了数据访问的灵活,又可以对中间层进行控制,提高数据访问效率。通过该接口组件,可实现前两个模块与数据库的透明访问。
数据库及数据管理系统
本模块为本系统的辅助设计部分。数据库建立邮件列表、组列表和用户权限三个基本表单,基于Web的数据管理系统根据邮件系统的规则,对表单进行添加、删除和修改,完成对权限的管理。
系统特点
邮件系统在目前开发已经相对成熟,但基于Windows平台的邮件系统,大多数都以Exchang Server或Lotus Domino为邮件服务器,采用标准C/S两层模式,利用Outlook和Foxmail等客户端来收发邮件。基于Unix/Linux平台的邮件系统,大多数使用C语言编写邮件系统来完成邮件传递。以上两种方式都是标准邮件系统,几乎不对外开放,不采用通用标准编写,造成应用集成困难,尤其在大型企业平台的综合集成时,表现特别突出。本邮件系统主要有以下四个特点。
1. 可扩展性
本系统一方面根据J2EE标准编写,为系统集成提供标准接口,甚至可与COBRA (Common Object Request Broker Architecture, 通用对象请求代理结构)系统相兼容,实现系统互联互通;另一方面,根据EJB易于与其它同构系统相结合的特性,易构成大型企业应用。
2. 可移植性
本系统不仅可与同构系统相结合,还可与不同硬平台、不同软平台的系统集成,而且还可以移植到这些平台上。该特性可支持当前大部分的主流平台。
3. 3/N层结构
在邮件系统中,引用3/N层结构,使系统更符合当前企业系统趋势,易于集成。更重要的是,可在应用层更好地进行优化来提高系统功能。
4.高伸缩性
本邮件系统是以Oracle大型数据库为平台设计。这就保证了其大容量数据处理的能力,特别是这种用户峰值相对明显的系统。在登录高峰期,优良的中间件设计、可靠的应用服务器和性能优越的后台数据库是系统获得高性能和高稳定性的保证。
结束语
该邮件系统以远程教育传递邮件为设计模块,但在设计中未采用任何专用模块进行设计。因此,该邮件系统可广泛移植于与邮件相关的多种平台上的系统中。随着J2EE标准的完善和Javamail API的丰富,这种邮件设计模式将成为趋势。