示例代码展示了多种解决互联网应用程序开发的方法 开发互联网应用程序是非常复杂的你不仅要实现定义应用程序的行为和逻辑还必须在分布式环境下将多种产品技术层次和标准结合在一起 例如考虑一个几乎任何希望进行在线销售的Web站点(PayPal等类似的)都必须实现的特性信用卡校验主要包括如何验证用户联系验证公司并安全地进行交易处理所有这些都将一个基于Web的瘦客户端一个数据库一个应用服务器和独立验证公司提供的功能之间的交互很好地结合起来 OTN提供了示例应用程序使用不同的产品技术和标准组合来解决这样复杂的问题一些示例采用了它们自己的验证机制另一些则利用了内置到Oraclei应用服务器(OracleiAS)中的单一登录(Single SignOn SSO)特性OTN还提供了一个利用了Oraclei数据库的XML DB特性的后端应用程序示例 Web服务这一技术被用于每个信用卡示例应用中通过使用Web服务OTN开发人员可以有效地将需要的功能内置到分立的组件中这种方法实现了应用程序的模块化而不是整体化因此更加灵活且更易于维护开发人员可以在不影响主应用程序的情况下改变组件的实施或者只需修改几行代码就可以使用不同的组件因此Web服务可以在应用程序之间被共享和重复使用并且在时机成熟时可以轻松地被移植到企业级网格计算环境 OTN会员可以下载以下示例代码(和OTN上任何其他示例代码)研究它们根据自己的开发需求混合和搭配使用这些解决方案 使用JEE设计模式的VSM 虚拟购物商场(Virtual Shopping MallVSM)示例应用程序使厂商能够建立在线商店客户可以浏览所有商店系统管理员则可以批准和拒绝新商店的申请并维护商店类别列表为了构建VSMOTN开发人员实现了几个有名的JEE设计模式包括Session Fa?ade和模型视图控制器(ModelViewController MVC) VSM指南系列的一个模块描述了OTN开发人员如何通过Web服务重复使用一个软件组件VSM的信用卡服务组件通过三个Java文件来实现一个定义了该组件方法的接口(CCServices)一个实现了该接口的类(CCServicesImpl)以及另一个负责处理信用卡校验失败时抛出的异常的类(CCException)关键操作校验信用卡号由方法CCServicesImplvalidateCard来执行该方法使用了LUHN算法(也被称为模算法)银行企业和其他实体现在在公共领域中广泛采用了这一规则来生成和校验信用卡账户和身份证号码 使用框架的VSM BCJVSM示例应用程序提供与VSM相同的功能性但它是使用用于构建组件和基于组件的应用程序的Oracle框架Oraclei JDeveloper Business Components for Java (BCJ)来实现的BCJ提供了现成的JEE设计模式的实施否则你将需要手工编写代码在BCJVSM中信用卡服务组件通过多个文件实现然而OTN开发人员只需创建并填写一个表并为一个Java类编写一个方法JDeveloper就可以生成所有需要的东西 表CC_MASTER是通过脚本webstoresql创建和填写的如下所示 CREATE TABLE cc_master ( provider VARCHAR() ccstart NUMBER() ); INSERT INTO cc_master VALUES(VISA); INSERT INTO cc_master VALUES(MASTER); INSERT INTO cc_master VALUES(DINERS); INSERT INTO cc_master VALUES(AMEX); 接下来OTN开发人员使用JDeveloper向导来创建一个基于CC_MASTER表的实体对象(CcMaster)这些向导还为相应的视图对象(CreditCardValidationView)和视图对象实现(CreditCardValidationViewImpl)生成代码 关键操作校验信用卡号由方法CreditCardValidationViewImplvalidateCard来执行在这个示例应用程序中并不是像在商业应用程序中那样对信用卡号进行校验然而校验代码却保证了用户输入数字的正确位数等 在线产品商店和Web服务安全性 在线产品商店(Online Product Store)是另一个示例应用程序它显示了如何确保Web服务的安全有两个方法可以实现这个目标 XML级别的安全性: 选项包括XML加密XML数字签名APIXKMS(XML密匙管理规范)和SAML(安全性声明标记语言Security Assertion Markup Language) 传输级别的安全性:通过确保Web服务通信所使用的网络协议的安全来实现SSL是业界认可的通过TCP/IP进行安全加密通信的标准协议在这个模型中Web服务客户端使用SSL来打开一个到Web服务的安全套接口然后客户端在这个安全套接口上通过HTTPS发送和接收SOAP消息SSL实现通过对套接口上所有的网络通信进行加密而确保了私密性SSL还可以利用PKI基础架构来验证提供给客户端的Web服务 因为在XML级别实现安全性的标准仍然在制定当中所以OTN开发人员选择使用SSL和PKI基础架构在传输级别实现安全性OracleiAS利用基于Apache的Oracle HTTP 服务器OracleiAS Containers for JEE(OCJ)和OracleiAS 门户为构建和部署Web应用程序提供了一个坚实的框架这些产品都使用了由OracleiAS基础架构提供的高级安全功能性 (OracleiAS基础架构包括OracleiAS 元数据信息库Oracle 互联网目录OracleiAS SSO和Oracle 管理服务器) 通过提供正确的用户名和密码在线产品商店的用户可以查看产品目录并向购物车中添加产品在为购买的产品付账时用户应输入信用卡号应用程序就会通过SSL与信用卡Web服务建立联系从而说明如何安全地访问一个Web服务 在线产品商店和单一登录 为了阐明另一种方法一个独立的在线商店模拟使用了OracleiAS SSO来验证用户SSO使用户只需注册一次就可以登录到OracleiAS及其他Web应用程序这个示例应用程序使用数字证书来注册到通过JAZN被置于OracleIas SSO服务器的保护之下的Web应用程序JAZN是Oracle对Java验证和授权服务(Java Authentication and Authorization Service JAAS)的实现JAAS则是使服务能够对用户进行验证并授权他们使用应用程序资源的Java包 SSO服务器使用一个加密的SSL通道为客户端Web浏览器提供一个cookie应用程序可以使用这个cookie对用户进行验证而无需用户登录一旦用户通过了验证授权过程就会启动为用户授予访问特权资源的权限如在数据库中插入行或对文件进行写操作 这个示例提供了一个要求用户登录到在线办公用品商店的Web应用程序访问该应用程序主页URL的用户被重定向到SSO服务器由JAAS进行验证这个示例使用数字证书对用户进行验证用户无需提供用户名和密码就可以登录 成功登录后用户可以购买产品并通过信用卡支付这个示例使用一个信用卡Web服务来校验用户的信用卡号它还确认用户拥有足够的资金额来购买产品Web客户端通过SSL通道与Web服务通信并使用数字证书来验证Web服务 使用XML DB的信用卡支付网关 信用卡支付网关示例应用程序使用了Oraclei XML DB (在Oraclei数据库第版及更高版本中提供)的特性来模拟信用卡公司在互联网上提供的一些后端功能这个应用程序在XMLType表中以XML文档的方式管理客户简档账户余额和信用卡持有者及商家的其他数据通过模拟实际商店中的信用卡采购而生成购买请求 对于每次购买经销商都会使用一个客户端应用程序来提交具体数据包括信用卡号和金额以及商家的账号客户端调用Web服务由Web服务根据信用卡持有者的账号对请求进行校验并返回结果 Web服务是部署到OCJ上的用Java编写的无状态远程过程调用形式的Web服务客户端Java类通过JSP接收输入数据并调用Web服务的方法然后Web服务调用一个PL/SQL过程来校验请求并将来自PL/SQL过程的结果回复给客户端该应用程序将合法的交易存储在事务处理表CPG_TRANSACTIONS中 |