Java电子商贸结构

  1.什么是JECF?
  典型的通过Internet进行电子交易的应用,必须解决一系列潜伏的棘手问题,例如如何保证当网络传输不正常,出现暂时中断时,交易的正常进行。因为缺乏标准,各个电子购物应用程序必须独自重复地解决这些问题。大多数现有的应用程序,都依赖于大型中央计算服务器,这些服务器能够容纳大量用户同时加载的峰值量。使用基于Java的解决办法,使在这些独立的back-end计算机上执行的计算可以被转移到客户机平台上,同时还能节约昂贵的back-end资源,使最终用户更为方便地使用计算功能。由于这个方法是基于Java的,因而它的好处是可以在任何支持Java的平台上运行。
  随着在Internet上进行的商业活动不断增多,Internet的商贸用途日益重要,对于商业交易管理安全性、标准化方面的技术要求也更高了。现在已有了信用卡、借贷卡等付款工具。除此之外,上述技术还应支持诸如电子现金、电子支票和智能现金卡等新兴技术。为此,JavaSoft提出了Java电子商贸结构———Java Electronic Commerce Frame-wo rk(JECF),使用这一安全的可扩展结构,可在Internet上管理商贸业务。
  2.网上购物实例
  作为网上购物者,你需要一种支持Java的Internet浏览器,以便从含有购物小程序(Applet)的主页上进行购物选择。大多数的销售商可能会选择使用他们自己的购物程序,但每一个基本的Java分配工具中都会包括一个基本的购物工具,它们的基本构成是一致的。所以,你只需明白一种购物工具,其它的就好办了。
  首先,购物者把所有需要的货物列到购物清单上。然后,按下该页上的<Pay>按钮,以调用JECF开始付款过程。客户的身份最先被证实,同时其私人交易信息数据库打开。在购物者主机上,有一块被称为“Cassette”的软件模块,它含有一种执行支付协议功能的工具。如果可能,Cassette将被局部装载。当然,它也可根据Internet上的命令,如Ap plet中的语句调用来装载。一个付款箱(A Payment Cassette)可以根据特殊协议,通过Intern et传送信息,读取或保存数据库的信息,并保护这些信息不被其它Cassette或外界所获取,确保客户活动的保密性。
  其次,购物者将看到付款主页,包含3个不同Applet:一个识别A pplet,用以对销售商进行确认;一个记录Applet,显示购买的货物和服务的情况,例如购买的总额;一个选择付款方式Applet,向购物者提供销售商接受的付款方式。
  当购物者看过了货物的详细介绍,选择了付款方式,并点击了发送付款窗口的按钮,最后确认窗口将出现在屏幕上。与销售商提供的付款主页不同,确认窗口是由JECF提供并显示的。通过这个窗口,保证了JECF所获得的购物总额,与前面显示在付款窗口上的由记录Applet提供的数字相同。
  一旦客户确认这笔交易,付款箱将初始化实际的付款过程,把数据传送给相应的远程服务器。此过程依赖于付款箱使用的协议,只需几分钟甚至几秒钟即可完成。在其执行过程中,有关购物的信息被传递到尚未处理的交易列表中。如果在付款过程中出现问题,例如系统阻塞、网络联系中断等,这些信息可用来恢复交易。
  在所有关于付款过程的活动完成后,一个确认主页出现在购物者眼前,以显示这次交易成功完成了。这次交易的信息将从交易列表上删除,而被保存在永久交易记录上,供客户随时察看过去购买商品的详细情况。而且,永久交易记录中的数据还可作为新的数据,出现在提供其它付款过程的服务箱中。因为,大多数个人清算帐目软件包的开发者,很可能选择把他们的软件做成服务箱形式,在交易列表中使用与现行的普遍的支票本结算程序相同或相似的界面,以提供强大的数据处理能力。这种服务箱会作为Package出售,它或者仅使用JECF作为一种便捷的分配方法,或者与付款箱结合在一起。
  另外,JECF还包括一系列配置对话框,进行各种设置处理,例如:记录基本私人信息,向环境增加付款方式,登记付款箱中的付款方式等,来控制JECF环境。
  3.JECF的基本结构及作用
  JECF是软件的一个虚拟销售点设备器件,用户通过浏览器或其它支持Java的环境使用它。JECF提供了以下支付方法框架:
  ·安全电子贸易协议(SETP);
  ·智能卡;
  ·小型交易(提前审议的小金额付款);
  ·电子支票;
  ·在线游戏和服务;
  ·Procurement卡;
  ·息票。
  另外,除了处理付款,JECF可以被扩展,提供其它财务服务类型,例如:
  ·金融分析;
  ·清算帐目;
  ·财政预算;
  ·税务报告;
  ·经纪事务。
  简单说来,JECF的作用是:
  (1)增加Internet上商贸交易的数量;
  (2)使购买商品和服务成为网络浏览过程的一部分;
  (3)建立劳动市场,促进技术人员不断创新,改进技术;
  (4)在重要的领域包括购买、银行、私人和专业财务管理方面,建立一个开放的、多方面的平台。
  从结构的角度来看,JECF由以下几部分组成:
  ·基础下部组织。此结构框架决定了JECF的其它部件的相互作用。
  ·数据库。客户私人信息、支付方式和交易历史都被永久地保存在这里。加密支持使得数据库可以被不同的服务提供者所共享。
  ·付款箱。实现个人支付方式和服务提供者支持的各种协议的模块。当客户往环境中添加新的支付方式时,增加对其的支持。
  ·服务箱。建立在基本JECF服务上的更有效的服务,特别是数据库服务。
  ·管理界面。客户的基本信息、支付方式、局部有效付款箱和服务箱等,都使用一系列配置对话框。这些对话框被用来设置JECF的执行动作和外观。
  任何在Internet上转移资金的应用程序都需要一个安全环境。考虑到大范围的潜在攻击,并为此设计了专门的策略,JECF在三个层次上实现了十分有效的安全模式。
  第一层:依赖于Java 1.0的安全工具,包括:语言特性、运行规则、名字空间的控制。
  第二层:利用了Java 1.1的安全工具,包括:
  ·标记Applet。JECF对它的使用,使得数字标记类可信,并可执行有些本来被禁止的确定操作。JECF还利用标记代码来防止代码出错及获取某些系统的资源。
  ·代码确认。在Java代码执行以前,编辑后的字节流会被检查一遍,保证它与Java语言的特殊执行规则相符。
  第三层:JECF还扩展了Java的核心标准安全工具,它提供了以下结构:
  ·用户识别。在JECF用户的名称将保持不变。对于共用一台计算机的多个用户,将为他们建立独立的数据库。用户名不必是全局变量。
  ·用户鉴定。用户须输入密码,以使用JECF功能或连接数据库。每个密码都是局部有效的,因此不存在任何网络上的、任何形式的密码传输过程。
  ·用户授权。所有用户都可适当地使用付款箱。而其它功能的Cassette只有具有此特殊授权的用户才可使用。
  ·代码及环境识别。这是一个调用程序,它确认基于其它数字信号或调用者的任务。
  ·数据库访问控制。访问控制列表列举了可用的数据库对象,这些都是Cassette和数字信号需要读出或写入的。
  ·类库使用控制。使用数字标记任务,可决定某一个类使用其它类。被调用的类检查调用者的任务。
  4.JECF代码编写
  具备了以上有关JECF的基础知识,就可以尝试开始编写JECF和Java Wallet的代码了。
  (1)Cassette简介
  服务箱根据用户的命令被下载到Java Wallet,向用户提供Inter net付款、保存记录、核算帐目等商业服务。Wallet是一个动态环境,新的组件和服务可以很方便地装载进去,同时旧的可以升级或删除。它由称作Cas-sette的组件构成。每个Cas sette实际上是一个或几个Java Package组成的,它遵循Java Wallet Cassette结构规则。Java Package被简化到一个Java Archive文件中,并由可信授权数字标记。注意,Cassette不是Jav a语言的一部分,而仅仅结合了特定的Java特性和JECF环境。
  Cassette具有以下几种功能:使用户可识别Assette的来源;表明一些可信授权已检验并改正了代码,证实Cassette没有处于错误之中;安全地授予Cassette当其它Cassette使用服务器时保有特定作用的特权。例如,Cas-sette实现备份和重新安装时,就需要作标记,以便被数据库保持任务所接受。此任务使Cassette可任意读写工作台,而不必管它们之间是否存在所有关系。一个Cassette必须被授权标记才能装载进Wallet。
  (2)Cassette标志符
  每个Cassette都要有一个标志符,用来在Cassette被授权访问某些对象时鉴别它。例如Wallet数据库管理器需要知道Cassette的标志符,以确定它是否可被授予工作台的所有权。另外,Ticket类的一个对象还可用来重新定义标志符。
  (3)访问控制
  Cassette的另一重要方面是访问控制。一个Cassette可以使所有人使用其服务,但它经常需要控制对其类库的访问,要进行确认。#role使得不同单元的代码可以相互联系。例如,一个税务计算程序可以拥有一个税务规则工作台。Cassette对于Wallet数据库还起着关键性的作用。而安全性也取决于代码是否能恰当地实现某个特定任务。
  (4)命名规则
  Wallet遵循通常的Java命名规则,但同时也包括它自己的特殊命名权限和作用。访问控制使命名复杂化了,因为需要5项不同的相关#命名:role、Ultim ate Object、Permit Interface、Permit和Gate Method。后面3项的命名是以role和Ultimate Objec t的命名为基础的。
  有关JECF代码编写的具体内容,可参看JavaSoft公司就此方面的介绍,本文只介绍上述几点需注意的问题。