如四物的名 1系统架构统览 12宠物店网上商店 1.2.1 宠物店走一遭… 12..1开始窗口.… 12.1.2 欢迎窗口 121.3种类窗口( Category Screen) 1214货架庐品窗口 121.5货物item窗口 121.6购物车窗口 12.1.7登陆窗口 1218账户信息窗口 121.9订单信息窗口 12.1.10订单完成窗口 2234455567899 1.22 概要,高层设计吧,我有何选择? 12.3 宠物店的结构 124 宠物店网站的结构 1.2.5 宠物店模块设计 各个模块的设计方面的深入 12.6.1控制模块. 1262用户登陆,和客户登记模块. 12.63异步消息模块 错误!未定义书签 12.64货架目录模块 错误!未定义书签 1265客户模块( ustomer Module) 错误!未定义书签。 126.6 购物车模块 错误!未定义书签。 1.2.7 宠物店的组件这里仅仅总结一下宠物店用到的各种组件和文件类型:错 误!未定义书签 1.27.1 宠物店的EJB 错误!未定义书签 1272宠物店的JSP页面 错误!未定义书签 127.3宠物店的过滤器fter 错误!未定义书签 1.274 宠物店的xml文件 错误!未定义书签 1.2.75 异步信息发送 错误!未定义书签 12.76数据产生 Servlet 错误!未定义书签 13资源和引用. 错误!未定义书签
Sun J2EE 宠物店例子 1.1 系统架构统览 .......................................................................................... 2 1.2 宠物店网上商店.......................................................................................2 1.2.1 宠物店走一遭.............................................................................2 1.2.1.1 开始窗口..............................................................................2 1.2.1.2 欢迎窗口..............................................................................3 1.2.1.3 种类窗口(Category Screen)..................................................4 1.2.1.4 货架/产品窗口.....................................................................4 1.2.1.5 货物 item 窗口.....................................................................5 1.2.1.6 购物车窗口..........................................................................5 1.2.1.7 登陆窗口..............................................................................5 1.2.1.8 账户信息窗口......................................................................6 1.2.1.9 订单信息窗口......................................................................7 1.2.1.10 订单完成窗口......................................................................8 1.2.2 概要,高层设计吧,我有何选择?.........................................9 1.2.3 宠物店的结构.............................................................................9 1.2.4 宠物店网站的结构...................................................................10 1.2.5 宠物店模块设计.......................................................................10 1.2.6 各个模块的设计方面的深入...................................................11 1.2.6.1 控制模块............................................................................11 1.2.6.2 用户登陆,和客户登记模块............................................14 1.2.6.3 异步消息模块......................................错误!未定义书签。 1.2.6.4 货架目录模块......................................错误!未定义书签。 1.2.6.5 客户模块(CustomerModule)...............错误!未定义书签。 1.2.6.6 1 购物车模块......................................错误!未定义书签。 1.2.7 宠物店的组件 这里仅仅总结一下宠物店用到的各种组件和文件类型:.错 误!未定义书签。 1.2.7.1 宠物店的 EJB......................................错误!未定义书签。 1.2.7.2 宠物店的 JSP 页面..............................错误!未定义书签。 1.2.7.3 宠物店的过滤器(filter) .......................错误!未定义书签。 1.2.7.4 宠物店的 xml 文件 .............................错误!未定义书签。 1.2.7.5 异步信息发送......................................错误!未定义书签。 1.2.7.6 数据产生 Servlet .................................错误!未定义书签。 1.3 资源和引用...............................................................错误!未定义书签
1.1系统架构统览 petstorel3是一个集客户购物,下订单,管理一体的例子 现实的系统不会是这样单贝儿的,大多数的系统要和多个数据源和其他的ES(企业信息系统)打交道的。 这些外部系统可能是资产信息,ERP。也有可能是一个别的公司的 Webservice(这东东最近太XX热了) 屁如说,订单的提交可能是一个公司,信用卡服务可能另外的公司,运送又是一个公司 PetstoreI.3划分成了多个模块,松耦合的设计架构,允许可以和多个数据源,EIS进行交互。这个例子,分 成4个部分: wb购物站点 管理 看销售统计,手工接受拒绝订单,界面也是个web应用 订单处理 通过JMS接受/处理订单消息(xml的) 用 java mail来通知客户 通过JMS发订单给供应商 为何订单数据库 供应商 通过JMS接受订单 派送货物给用户 提供一个基于web的库存管理 维护库存数据库 1.2宠物店网上商店 通过浏览器,让客户可以浏览,把货物放入购物车,创建账户/登陆账户,创建订单,通过信用卡 支付 121宠物店走一遭 这章代表了一个用户的视图,他看到的是个啥东西,也就是所说的业务建模 1.211开始窗口 开始界面吧,呵呵,干啥呢:很多功能,运行管理程序:进入宠物店:等,你一点的
1.1 系统架构统览 petstore1.3 是一个集客户购物,下订单,管理一体的例子! 现实的系统不会是这样单贝儿的,大多数的系统要和多个数据源和其他的 EIS(企业信息系统)打交道的。 这些外部系统可能是资产信息,ERP。也有可能是一个别的公司的 WebService(这东东最近太 XX 热了)。 屁如说,订单的提交可能是一个公司,信用卡服务可能另外的公司,运送又是一个公司。 Petstore1.3 划分成了多个模块,松耦合的设计架构,允许可以和多个数据源,EIS 进行交互。这个例子,分 成 4 个部分: • web 购物站点 • 管理 看销售统计,手工接受/拒绝订单,界面也是个 web 应用 • 订单处理 通过 JMS 接受/处理订单消息(xml 的) 用 java mail 来通知客户 通过 JMS 发订单给供应商 为何订单数据库 • 供应商 通过 JMS 接受订单 派送货物给用户 提供一个基于 web 的库存管理 维护库存数据库 1.2 宠物店网上商店 通过浏览器,让客户可以浏览,把货物放入购物车,创建账户/登陆账户,创建订单,通过信用卡 支付 1.2.1 宠物店走一遭 这章代表了一个用户的视图,他看到的是个啥东西,也就是所说的业务建模。 1.2.1.1 开始窗口 开始界面吧,呵呵,干啥呢:很多功能,运行管理程序;进入宠物店;等,你一点的
恋接吧,就激活了 mail. screen”的URL请求诶。 JavaTM Pet Store Demo 1.3 Java Pet Store Demo s a sample applicaton brought to you by the Java 2 Platform, Entepnse Edton Blue Prnts 2EEIN BlePrmts) program at Java Software, Sun Microsystems Thus sample applcaton demonstrates how to use the capabalnes of the J2EE platform to develop feeble, scalable, cross-platform nes wth full source code and documentation, so you can expenment wth JCEE technology and leam how to use it to budd your own enterpnse solutions To start using the demo, enter the store. Iyou are uaing this demo for the wery first time, the demo database will be pared to wait for a while as the database is populate You may also forcefully repopulate the demo's database (Be prepared to wat for a whle as the database is populated) About J2EE Blue Prints The J2EE BluePnmts progam defines the apphcaben progamming model for the J2EE platform It prowdes best practce gudelmes applcatons urn J?EE technology The JEE Ble Prnts program and the Java Pet Store Demo are showcased n the upcoming second ebon of Dagning Enterprise Applications with the ava 2 Platform, Enterpnse Edition. The first editon of ths best-seing book, is avauable at bookstores everywhere, mcluding Digtal Guru and Amazon com CheckouttheJeeBhepnntsWebsteathetn://awva.sun.com/iee/Blueprintsl 1212欢迎窗口 这些可爱的宠物的数据都有了,准备一下,得,显示吧,就下面的这个画面。这个画面其实 是个模板组装的,布局挺好看的吧,呵呵 这个屏幕允许你浏览大类,登录,维护帐户信息(如果你已经登录),改变语言设置。语言切 换是通过一个美国,日文国旗图标恋接实现的,可惜没中文⑧。动物图标代表了种类,鱼代 表鱼,狗代表狗,。,点点狗,一看,嘿,恋接是 /product. screen?product id=DOGS JavaTM Pet store account I Cat I J2EE BluePrints Sample Application cava pet sst h e emeI aems sep se ap icanon tom the ee Berms For mo e2001 Sn M5=是e是wsem
恋接吧,就激活了”mail.screen”的 URL 请求诶。 1.2.1.2 欢迎窗口 这些可爱的宠物的数据都有了,准备一下,得,显示吧,就下面的这个画面。这个画面其实 是个模板组装的,布局挺好看的吧,呵呵。 这个屏幕允许你浏览大类,登录,维护帐户信息(如果你已经登录),改变语言设置。语言切 换是通过一个美国,日文国旗图标恋接实现的,可惜没中文。动物图标代表了种类,鱼代 表鱼,狗代表狗,。。。,点点狗,一看,嘿,恋接是”/product.screen?product_id=DOGS
1213种类窗口( Category Screen 得,列出这个种类下,都有哪些产品,点某个产品,就进去看看这个产品的条目下,有哪些 具体的货物在架,选个吧,然后就可以进去看了 ③ JavaTM Pet store ' Accour J2EEBluePrints Sample Application Products for this category dog tom England companon dog The Java Pet store Demo is a fctonal sample applcaton tom te J2EE Blue Pnts Fc ea01nin超8NB6mem6 1214货架广产品窗口 产品屏幕显示所有的产品内容,右面列出了单价,并且有一个 Add to cart的加入购物车的链 ③ JavaTM Pet Store J2EEBlue Prints Sample Application Items for this product Reptiles The Java Pe more tomato a wisi ne seE B uepimnas et site at kts teRms. For
1.2.1.3 种类窗口(Category Screen) 得,列出这个种类下,都有哪些产品,点某个产品,就进去看看这个产品的条目下,有哪些 具体的货物在架,选个吧,然后就可以进去看了 1.2.1.4 货架/产品窗口 产品屏幕显示所有的产品内容,右面列出了单价,并且有一个 Add to Cart 的加入购物车的链 接
121.5货物item窗口 显示每个内容(tem)的详细信息,有个链接可以让你把它放入购物车 JavaTM Pet store Accoun Tea 2EE" Prints Sample Application Adult Male Chihuahua List Price: $125 50 nake e2am19n导超等8含 oense tem 121.6购物车窗口 允许用户更改iem数量,还有个 remove,可以删除tem,“ Proceed to Checkout”链接带你 去订单屏幕,当然,如果你没有登录,登录窗口会在你点击之后出现。 ③ JavaTM Pet store J2EE BluePrints Sample Application Your sh。 pping Cart Adn Mae Chihuahua Hemowe @$12550 Subtotal: $125.50 more nformaton, vsit the p是bge是Ea ea0tn59是wmem 1217登陆窗口 登录窗口允许存在的用户登录,或者创建一个新的帐户和客户
1.2.1.5 货物 item 窗口 显示每个内容(item)的详细信息,有个链接可以让你把它放入购物车。 1.2.1.6 购物车窗口 允许用户更改 item 数量,还有个 remove,可以删除 item, “Proceed to Checkout”链接带你 去订单屏幕,当然,如果你没有登录,登录窗口会在你点击之后出现。 1.2.1.7 登陆窗口 登录窗口允许存在的用户登录,或者创建一个新的帐户和客户
JavaTM Pet Store AccouIt I Cat I seam J2EE Prints Sample Application Pets Are you a returning customer? lw。 uld like to sign Password. Sgnn Create New Acount The Java Pet Store Demo is a sonal sample applicaton tom the J2EE BuePints For more ntomalon, vsitheJ2eeBluepntsWebsiteathttp://-aya,nn.sgnaess/blsnzintn/ 62001 sn Maosyslems nc a ugh ts reserved, use s subsea s oense terms 121.8账户信息窗口 用来填写新创建的账户的详细信息,同时也用来维护某个帐户的详细信息
1.2.1.8 账户信息窗口 用来填写新创建的账户的详细信息,同时也用来维护某个帐户的详细信息
③出 aTm Pet store Acount'iCan t Pets Your Account Information street [1234 Moon way city sunni Provnce [Califonia a Postal Code「tuou Country United States扌」 E-Mail aaaobbbaoc Credit Card Information Card Type [Java(TM Card A Profile Information I want MyPetstore to be n English a My tavote category is Birds a per yos as you shop, wnm ae based an your lamone /ems 1219订单信息窗口 用来让用户填写订单的发送信息,默认值是当前登录的用户的客户信息中的地址信息,当然 你可以修改。一旦点 submit.,就会创建一个订单,发送到订单处理中心
1.2.1.9 订单信息窗口 用来让用户填写订单的发送信息,默认值是当前登录的用户的客户信息中的地址信息,当然 你可以修改。一旦点 submit,就会创建一个订单,发送到订单处理中心
出 vam Pet store Account icant图 Your Account Information steas [234Anywhere steer City [PaO Al [United States a 555555 Shipping Information Name yz Name [ABc Asteet Fsr Anywhere sheer city [Palo Ald A p。 stal Code [1000 Country (United Stares a respone 2298253535 rentoamalon, war e e eeE aeons web s e pp bason m te ee means, ot more 20Bnk超器吧瓷 lense em 1.2110订单完成窗口 ③ JavaTM Pet Store J2EE BluePrints Sample Application Your Order is Complete ttlesnake Reptiles Your order id s 1001 You should recerve a confirmation e-mail soon at Thank you for shopping with the Java Pet Store Demo
1.2.1.10 订单完成窗口
122概要,高层设计吧,我有何选择? 使用应用框架 小的应用经常不使用应用框架,管理简单的请求转发凌乱的编码习惯大的应用常常使用 MvC应用框架,譬如WAF这样的架构和MVC的功能分离使得应用程序具有更好的重用 性和可维护性 ·wEB层处理商业逻辑 VS EB层处理 许多应用把商业处理逻辑放到了web层而更大规模的应用常常把处理逻辑放到EJB层, 来提供一个稳定的,大规模的,基于组件的开发模式,以及各种稳定的企业特性如持续性 管理,安全管理,异步通讯事务处理等特性 ·本地v分布处理企业EJB在一个分布架构中 通过远程接口来访问EB远程EJB提高了稳定性和性能,同时因为是远程调用,要求 EJB必须是粗谷粒的。而本地EJB和客户端再同一个虚拟机上由于速度快,可以做到细 谷粒。 petstore大量采用了 local EjB来提高性能 ·声明的或者是编程实现事务控制 声明的方式,使得管理更容易,但是呢,编程的方式提供了更高的控制。宠物店在显 数据的时候使用了程序控制,而在更新数据的时候,采用了声明方式 同步和异步通讯 同步应用适用于适当的时间完成一个特定结果。异步呢,管理起来比较复杂,但对于松 耦合以及可信度不是很高的,并行的操作,很适合。大多数应用使用同步异步结合的方 式。例如,宠物店使用同步方式读取货品的目录 catalog。而对于发送订单,使用了异步 方式,因为这需要很长时间,而且,订单处理中心不一定在运作过程中。 123宠物店的结构 宠物店的服务从上而下。最上层是WAF( web application framework,来控制应用的屏幕跳转,产 生视图,调用商业组件来完成商业处理 图11> Pet Store Application 三引 omponents s Logic and Data. J2EE Platform System Services WAF提供了许多WEB应用所需的服务,包括,请求的过滤和分发,模板视图的产生 一系列可重用的 taglib,以及屏幕流程控制
1.2.2 概要,高层设计吧,我有何选择? • 使用应用框架 小的应用经常不使用应用框架,管理简单的请求转发,凌乱的编码习惯.大的应用常常使用 MVC 应用框架,譬如 WAF.这样的架构和 MVC 的功能分离使得应用程序具有更好的重用 性,和可维护性. • WEB 层处理商业逻辑 vs EJB 层处理 许多应用把商业处理逻辑放到了 web 层.而更大规模的应用常常把处理逻辑放到 EJB 层, 来提供一个稳定的,大规模的,基于组件的开发模式,以及各种稳定的企业特性,如,持续性 管理,安全管理,异步通讯,事务处理等特性. • 本地 vs 分布处理. 企业 EJB 在一个分布架构中 通过远程接口来访问 EJB.远程 EJB 提高了稳定性和性能,同时因为是远程调用,要求 EJB 必须是粗谷粒的。而本地 EJB 和客户端再同一个虚拟机上,由于速度快,可以做到细 谷粒。petstore 大量采用了 local EJB 来提高性能。 • 声明的或者是编程实现事务控制 声明的方式,使得管理更容易,但是呢,编程的方式提供了更高的控制。宠物店在显示 数据的时候使用了程序控制,而在更新数据的时候,采用了声明方式。 • 同步和异步通讯 同步应用适用于适当的时间完成一个特定结果。异步呢,管理起来比较复杂,但对于松 耦合以及可信度不是很高的,并行的操作,很适合。大多数应用使用同步异步结合的方 式。例如,宠物店使用同步方式读取货品的目录-catalog。而对于发送订单,使用了异步 方式,因为这需要很长时间,而且,订单处理中心不一定在运作过程中。 1.2.3 宠物店的结构 宠物店的服务从上而下。最上层是 WAF(web application framework),来控制应用的屏幕跳转,产 生视图,调用商业组件来完成商业处理。 WAF 提供了许多 WEB 应用所需的服务,包括,请求的过滤和分发,模板视图的产生, 一系列可重用的 taglib,以及屏幕流程控制
应用的组件封装了处理的逻辑,他们代表了商业的数据,并且操作这些商业数据,实体 EJB代表了商业实体,如, Customer, Address, Account. session ejb提供了一些方法,如 登陆一个用户,登出一个用户,管理购物车等。别的 session ejb提供了一些共同的方法, 如产生唯一 identifier。传统的 Javabean组件变成了值对象,用来在EJB组件和应用间传 递数据。XML文档类则用来处理订单信息 12.4宠物店网站的结构 12.5宠物店模块设计 宠物店是一堆接口定义清晰的独立模块组成 ·控制模块它来分发请求到各个业务处理逻辑,屏幕跳转控制,对应的组件处理,以及用户 登录和注册控制模块由WAF实现和扩展 购物车模块-购物车跟踪用户购物过程 登录模块需要用户登录在某些页面登录 ·.消息模块-从宠物店到等单中心用来异步传输订单 类别模块-根据用户查询需求提供一个类别视图 ·客户模块表示客户信息地址,信用卡,联系方式等 User oduct Sign On Cart Custome Account Database Shipping 上图所示,控制模块总控所有的交互和执行,每个用户 session有一个购物车对应
应用的组件封装了处理的逻辑,他们代表了商业的数据,并且操作这些商业数据,实体 EJB 代表了商业实体,如,Customer, Address, Account。Session EJB 提供了一些方法,如 登陆一个用户,登出一个用户,管理购物车等。别的 session ejb 提供了一些共同的方法, 如产生唯一 identifier。传统的 JavaBean 组件变成了值对象,用来在 EJB 组件和应用间传 递数据。XML 文档类则用来处理订单信息。 1.2.4 宠物店网站的结构 1.2.5 宠物店模块设计 宠物店是一堆接口定义清晰的独立模块组成. • .控制模块 它来分发请求到各个业务处理逻辑,屏幕跳转控制,对应的组件处理,以及用户 的 • 登录和注册.控制模块由 WAF 实现和扩展. • .购物车模块-购物车跟踪用户购物过程 • .登录模块-需要用户登录在某些页面登录 • .消息模块-从宠物店到等单中心用来异步传输订单 • .类别模块-根据用户查询需求提供一个类别视图 • .客户模块-表示客户信息:地址,信用卡,联系方式等 上图所示,控制模块总控所有的交互和执行,每个用户 session 有一个购物车对应