OTN 金融代理服务应用程序
日期:2003 年 9 月 01 日
目录
引言 应用程序概述 应用程序设计 示例应用程序文件
安装示例应用程序
引言
先决条件
要理解关于金融代理服务 (FBS) 示例应用程序的设计和工作方式、以及我们重点介绍的 EJB 2.1 特性的更多内容,我们希望您拥有基本的 EJB 知识,并且对 Web 服务有所了解。您可以经常阅读在 OTN 上提供的广泛的信息(以教程、文章或方法文档的形式提供)或 EJB 规范 来快速掌握此示例应用程序的技术先决条件。
技术概要
EJB(企业 JavaBean)规范由 Sun Microsystems、Oracle 和其他供应商开发,它定义一个体系结构,用于从称为企业组件或 EJB 的服务器端组件中创建应用程序。
简而言之,软件组件是未绑定到特定程序或应用程序的一种或一组可重用的对象(更确切地说,称为对象图)。任意数量的应用程序或进程都可使用某个给定的组件,且在同一时间多个实例都可处于使用状态。因此,组件可给开发人员带来许多好处。
使用组件创建应用程序,您可以:
通过为现实世界实体建模改善设计。
提高开发人员生产率。可由专家创建应用程序的每一部分(例如,数据模型、商务逻辑和用户接口)。
重用商务逻辑。一次编写,任意部署。
简化部署。
分发逻辑和功能。
服务器端组件被部署到服务器上,并在其上运行。与胖客户机应用程序相比,使用服务器端组件创建的应用程序可带来下列额外好处:
降低客户端处理负载。
减少网络往返次数。
清楚地分离商务逻辑和表示逻辑、接口和实现。
易于维护:将更新的组件部署到服务器时,各地的客户机马上可访问。
Enterprise JavaBeans (EJB) 2.0 在 J2EE 1.3 中有重大升级,性能的增强方面体现在本地接口、效率的增强方面体现在具有容器管理关系的实体组件的关系管理上,并且通过内置的对象查询语言 EJB QL 改善了可用性。由于这些以及其他变化,在过去的一年中对基于 EJB 的体系结构的采用明显增加。
在 J2EE 1.4 中,EJB 2.1 规范实现了对 EJB QL 的两项盼望已久的增强功能。其中包括新的 ORDER BY 子句支持的排序功能,而排序功能以前则由开发人员手工编码实现或通过专有扩展和 AVG、MIN、MAX 以及 COUNT 等新聚合函数提供。
由于 EJB QL 自然地映射到 SQL,所以很多开发人员认为这些新增的基于集合的操作内容非常重要,并且是规范所要求的。
EJB 2.1 规范中增加的其他内容包括定时器规范,它使开发人员能够建立支持通知或警告概念的商务过程。对于使用消息驱动组件 (MDB) 的开发人员,所支持的消息类型范围已经超出了 JMS 消息。增加的类型支持是使 MDB 支持 Web 服务消息类型的第一步,在 J2EE 将来版本中可能会在这方面开展进一步的工作。
FBS 演示了以下特性
由非会话状态组件实施的 Web 服务终端
EJB 定时器服务
消息驱动的组件
TopLink 可持续性框架
应用程序概述
金融代理服务 (FBS) 应用程序使各种金融机构 (FI) 能够为客户提供一个在线通道,用于管理他们的投资组合。换句话说,此应用程序是一个端到端的应用程序,
它为用户提供了协助交易股票、管理投资组合和访问实时数据的功能。由金融代理服务提供的重要功能包括:
建立、访问和管理帐户
交易(买/卖)股票
访问实时报价
访问金融新闻数据
将股票报价信息库作为服务提供
该应用程序识别三种用户 — FBS 管理员、公司用户和个人用户,他们分别具有不同的权限。
FBS 管理员
FBS 管理员负责每天将金融市场新闻和股票数据上载到 FBS 数据库中。
FBS 管理员还可以添加一些能够从这个特定的 FBS 进行交易的股票代码。FBS 管理员不需要手动上载市场数据,相反可以设置作业定时器来以特定的频率上载相同的市场数据。FBS 管理员可以通过设置报表时间间隔来监控交易活动。系统以指定的时间间隔(例如每 15 分钟)创建一个电子邮件消息,列出在该时间间隔内执行的交易,并将其发送给管理员。
公司用户
公司用户可以使用他们在系统上的帐户,并为员工建立各种 ESOP (职工优先认股计划)帐户。在建立员工帐户之后,他们的帐户的详情将通过在上载期间在 XML 中指定的电子邮件地址传送给员工。此后,员工可以使用建立的帐户来管理其资产。为了建立 ESOP 帐户,公司用户需要通过一个 XML 文件来上载与可查看的特定模式相关的权限信息。
个人用户
个人用户代表金融代理服务应用程序的最终用户。用户在这个系统中注册之后,可以登录包含根据股票代码和新闻的偏好挑选出的金融新闻和当前股票价格的个性化主页。用户可以根据需要设置他/她的偏好和警报。股票代码上的特定警报提醒用户某些关键的信息,例如:股票价格涨到某个值之上或跌到某个值之下等等。用户还可以编辑他/她的简介信息。用户可以查看当前的投资组合(持有的股票)以及在线交易股票。当用户买/卖一支特定的股票时,相关的信息将作为一条简化的消息发送给股票交易中心。还可以查看交易历史,以审查过去的交易。
要预览该应用程序,请参阅 UsingFBS.html 。
应用程序设计
FBS 示例应用程序使用 MVC 体系结构来处理客户请求。请求从用户界面(视图)中创建(由 Java 服务器页面创建),并由一个 servlet 过滤器截取。该过滤器为 FBS 应用程序提供授权和验证服务。它验证用户会话,以检查其是否是一个合法的系统用户,一旦用户会话通过验证,该过滤器将根据一个预先配置的控制文件为用户会话授予权限。这个控制文件有事件-角色映射,即哪一种角色能够运行/执行哪一种事件。如果用户会话有执行请求的事件所必需的权限,那么控制将被转发给控制器 (ControllerServlet)。控制器调用必需的帮助器类来处理请求。请求处理将由 Enterprise JavaBeans 层或帮助器类本身来控制。如果请求涉及到访问与股票报价或新闻相关的信息,那么帮助器类将使用 Toplink 可持续性框架来获取它们。如果请求是要执行一次交易操作或处理用户偏好,那么企业 JavaBeans 层将处理它,EJB 层可能使用 Toplink 框架来访问股票信息(如股票价格)。一旦请求得到成功处理,那么将通知用户操作状态。
示例应用程序文件
此部分将提供示例应用程序文件及其相应的目录位置,以及关于在应用程序的总体方案中它们将起什么作用的说明的一个表格化列表:
文档
目录
文件
说明
ibfbs/doc
Readme.html
本文件。
ibfbs/doc
Install.html
此文件包含部署和运行 FBS 示例应用程序所需的指导。
ibfbs/doc
UsingFBS.html
此文件包含关于如何使用 FBS 示例应用程序的指导。
Java Server Page
目录
文件
说明
ibfbs/web/public_html/jsps
*.jsp
此目录为浏览器客户端包含了这个完整的应用程序的所有 JSP 文件。这些 JSP 文件组成了浏览器客户端的视图层。
ibfbs/web/public_html/mobile
*.jsp
此目录为手持式设备客户端包含了这个完整的应用程序的所有 JSP 文件。这些 JSP 文件组成了手持式客户端的视图层。
ibfbs/web/public_html/WEB-INF
web.xml
FBS Web 应用程序的部署描述符。
ibfbs/web/public_html/WEB-INF/xml
Control.xml
此文件包含了 FBS 应用程序的事件-帮助器-视图映射。此文件还被 servlet 过滤器用来为用户会话授权。
ibfbs/web/public_html/WEB-INF/xml
Exception.xml
此文件包含了异常-错误页面映射。
ibfbs/web/public_html/WEB-INF/schema
corporateorder.xsd
此 XML 模式定义了由公司用户发布的一种公司订单的结构。
企业 JavaBean
目录
文件
说明
ibfbs/ejb/src/oracle/otnsamples/ibfbs/admin/ejb
*.java
此目录包含实施此应用程序的管理服务的 Java 文件。这些文件组成了管理功能的模型。
ibfbs/ejb/src/oracle/otnsamples/ibfbs/trademanagement/ejb
*.java
此目录包含实施此应用程序的交易管理服务的 Java 文件。这些文件组成了交易管理功能的模型。
ibfbs/ejb/src/oracle/otnsamples/ibfbs/usermanagement/ejb
*.java
此目录包含实施此应用程序的用户管理服务的 Java 文件。这些文件组成了用户管理功能的模型。
Web 服务文件
目录
文件
说明
ibfbs/webservices/src/oracle/otnsamples/ibfbs/admin/ejb
StockQuoteService.java
StockQuote JAX-RPC Web 服务的服务接口。
ibfbs/webservices/src/oracle/otnsamples/ibfbs/admin/ejb
StockQuoteBean.java
StockQuote 服务的组件实施。
帮助器文件(Web 应用程序)
目录
文件
说明
ibfbs/web/src/oracle/otnsamples/ibfbs/admin/helper
*.java
此目录包含组成管理员帮助器文件的 Java 文件。
ibfbs/web/src/oracle/otnsamples/ibfbs/admin/helper/wsclient
*.java
此目录拥有 StockQuote JAX-RPC Web 服务的 JAX-RPC 客户机 Stub 文件。
ibfbs/web/src/oracle/otnsamples/ibfbs/trademanagement/helper
*.java
此目录包含组成交易帮助器文件的 Java 文件。
ibfbs/web/src/oracle/otnsamples/ibfbs/usermanagement/helper
*.java
此目录包含组成用户帮助器文件的 Java 文件。
ibfbs/web/src/oracle/otnsamples/ibfbs/control
*.java
此目录包含实施模型视图控制器 (MVC) 体系结构的控制器部分的 Java 文件。
ibfbs/web/src/oracle/otnsamples/ibfbs/utils
*.java
此目录包含实用程序文件(如浮点数据类型到字符串数据类型的格式化、分析控制 xml 文件、分析异常 xml 文件等)。
Toplink 管理的文件
目录
文件
说明
ibfbs/toplink/src/oracle/otnsamples/ibfbs/toplink
*.java
由 Toplink 管理的域对象的 Java 源代码文件。
配置和部署描述符文件
目录
文件
说明
ibfbs
build.xml
构建和部署此应用程序的 ANT 配置文件。
ibfbs/config
Connection.properties
保存 FBS 应用程序所需的配置信息的属性文件。
ibfbs/config
project.xml
包含 FBS 应用程序的描述符和映射配置的 Toplink 项目文件。
ibfbs/config
session.xml
Toplink 会话配置文件。
ibfbs/config/META-INF
application.xml
部署描述符文件用来定义 FBS EAR,后者包含 EJB 模块和 Web 模块的详细信息。
ibfbs/config/META-INF
orion-application.xml
此文件用来配置应用服务器,以使用 data-source.xml,后者是 ear 文件的一部分。
ibfbs/config/META-INF
data-sources.xml
此文件用来定义应用程序连接的数据源。
ibfbs/ejb/src/META-INF
ejb-jar.xml
FBS 应用程序中的 EJB 的部署描述符。
ibfbs/ejb/src/META-INF
orion-ejb-jar.xml
FBS 应用程序中的容器专有的 EJB 部署描述符。它包含 MessageDriven Bean 的实体组件和 JMS 映射的数据源详细信息。
ibfbs/webservices/src/META-INF
webservices.xml
Web 服务终端的部署描述符。
ibfbs/webservices/src/META-INF
mapping.xml
Web 服务终端的映射文件。
ibfbs/webservices/src/META-INF
FBSStockQuoteService.wsdl
JAX-RPC StockQuote Web 服务的 WSDL 文件。
ibfbs/webservices/src/META-INF
ejb-jar.xml
StockQuote EJB 的部署描述符。
安装应用程序
请参阅 Install.html ,以获取关于解压缩文件、安装和配置 FBS 示例应用程序的逐步指导。
请在 OTN 示例代码 论坛上发布关于此应用程序的评论/反馈。