petstore结构的解读摘要(一)

petstore:zip包中的安装程序使用了ant对其进行编译
    编译petstore前需要修改/src/bulid.properties
    编译方法和步骤参考http://java.sun.com/blueprints/code/jps131/docs/building.html

    特殊配置:可以使用j2ee的deploymenttool(修改完后保存而不需要重新编译?)或者直接修改发布的描述文件(xml配置文件)后重新编译
    本地化:添加新的jsp页+创建本地屏幕定义文件+添加新的目录数据(修改/src/apps/petstore/src/docroot/populate/Populate-UTF8.xml)
    数据库配置:可以用其他数据库替换默认的cloudscape,,主要修改一系列xml文件

    以上来自:http://java.sun.com/blueprints/code/jps131/docs/configuring.html

    petstore的四个模块:
        e-commerce web site:web应用程序
        petstoreadmin(管理程序):使用xml消息传输的rich client,而不是使用brower
        opc(订单处理中心):基于过程的应用程序
            通过JMS接收和处理xml文档数据(包括订单)
            使用XML消息通过http提供包括有订单数据的管理程序
            使用JavaMail向客户发送订单通知
            通过JMS向客户发送XML订单文档
            维护订单数据库
        供应商服务:基于过程、管理商品-客户运输的程序
            通过JMS从opc获取XML格式订单
            向客户运送商品
            通过web提供手动货物管理
            维护货物数据库
    petstore的文档:http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/sample-app/sample-app1.3.1a3.html
    高级设计选择:
        应用程序框架的使用:MVC
        web端的业务逻辑VS企业beans组件:业务逻辑的分离
        本地与分布的架构
        可描述的VS程序化的转移控制?指应用程序部署时可手动控制或者用程序控制保持数据的一致性
        同步与非同步通信:如对目录结果的返回是同步进行的(实时),对订单的发送是非同步的;
    petstore的结构:
        WAF(web application framwork):请求过滤与分发+外观模板继承+可复用自定义标签+屏幕流控制
    模型设计:
        控制:被WAF实现成为WAF的扩展(与用户直接互动的唯一模型);可实现任意类型的response;可维护;业务逻辑可修改;
        购物筐:用户选择的保存
        登录:登录确认和管理登录后的过程
        消息传递:把订单传给OPC,非同步的
        目录:提供基于用户搜索目的的页面视图
        客户:各种客户信息
   
    request Filter(属于servlet filters):包括EncodingFilter和SignOnFilter

HTML动作:是开发者定义的一个接口类(实现了com.sun.j2ee.blueprints.waf.controller.web.action.HTMLAction)
    请求处理器收到一个请求,就从URL对应表中去寻找相应的HTML动作,随后创建这个HTML动作的一个实例;

     订单的例子说明:
        OrderHTMLAction通过给RequestProcessor返回一个包含订单数据的OrderEvent来创建订单;
        RequestProcessor把这个event送给EJB控制器;
        EJB控制器使用这个事件来创建并执行一个OrderEJBAction(实际上是这个动作通过用JMS向订单处理中心发送XML消息来创建订单);
        返回一个包含订单确认的OrderEventResponse;
        WAF在session中保存这个响应。
    
    业务逻辑执行完毕后WAF选择需要的视图来显示。视图的选择依靠开发者对屏幕流的配置(包含屏幕流管理的XML文档mappings.xml)
    请求与下一个要显示的视图的关系通常是静态的(也可以用程序来控制:使用一个WAF钩子:interface com.sun.j2ee.blueprints.waf.controller.web.flow.FlowHandler)

    WAF包括一系列可复用的自定义标签/可提供统一外观的模板;
    jsp页可用模板或者自行编写,模板可实现cleanly-structured jsp页;

    控制转移功能由程序来控制,通过TemplateServlet

    用户登录/注册管理:只有匿名拥护和注册用户两种;
    应用程序中的用户:J2EE系统的用户/程序定义的用户;petstore中使用后者,属于一个J2EE系统用户;其他特殊权限的用户最好用J2EE的系统用户功能实现
    J2EE系统用户不能通过程序自动添加

你可能感兴趣的:(Java)