关于JpetStore(http://www.jfox.cn/jpetstore/ http://www.ibatis.com/jpetstore/jpetstore.html)
JPetStore是Sun公司开发的,在大众化的宠物商店程序基础上完全重写的,最早的基于J2EE平台的宠物商店网络应用服务程序。与其它的PetStore最本质的不同是JPetStore使用了类似Microsoft网络宠物商店的设计,但是在骨子确是完全不一样的网络服务构架,可以说这种构架完全体现了Java程序在网络应用方面的优势,故在此以它为例,从Java的底层实现方面来分析 J2EE在Web层的应用。
系统架构概览
JPetStore以一个小型宠物商店电子商务平台为原型向大家展示了一个带有简单数据库连接的J2EE Web层的应用,它集成了Web层应用领域所必须具备的要素,如:用户ID认证、商品信息查询、商品信息列表等等。总之,JPetStore是一个集客户购物,下订单,管理为一体的简单且典型的电子商务的例子。
当然,现实中的系统不会如此简单,大多数的系统要和多个数据源和其他的EIS(企业信息系统)相连通的,有着比较复杂的数据库系统的设计与连接。比如说,订单的提交可能是一个公司,信用卡服务可能另外的公司,运送又是一个公司,这样的话,数据系统的设计就很复杂(一般来说这就需要专门的DBA进行数据库的设计)。然而作为窥探J2EE的一个窗口,了解J2EE的运作,JPetStore足以胜任。
JPetStore划分成了多个模块,采取了松耦合的设计架构,允许存在多个数据源及EIS进行信息交互。它的结构相对简单,总共包括4个部分:
· 购物站点
· 管理。如:销售统计,手工接受/拒绝订单
· 订单处理
通过JMS接受/处理订单消息
用java mail来通知客户
通过JMS发订单给供应商
并修改订单数据库的相应信息
· 供应商
通过JMS接受订单
派送货物给用户
提供一个基于web的库存管理
维护库存数据库
系统架构解析
宠物商店的网站服务采用自上而下的构架,其最上层是由WAF(Web Application Framework)控制应用屏幕的跳转,进而产生视图,然后再调用商业组件来实现流程的处理(整体结构如图1所示)。
图1 JPet Store 总体框架结构
WAF提供众多Web应用所需的服务,其中包括请求过滤和分发、产生模板视图、可重用的Taglib,以及屏幕流程控制等等。应用组件封装了处理的逻辑,它们代表了商业的数据,并且可以对这些商业数据进行必要的操作;实体EJB代表了商业应用的实体,包括客户、地址、账目等;会话EJB提供了一些方法,如用户登陆、输出用户信息、管理购物车等;其它会话EJB提供了一些通用的方法,如产生唯一标示符等。传统的JavaBean组件演变成了值对象,在EJB