Utl_Http 包增强功能
概述
电子商务的 B2B 组件依赖于公共互联网间的商务站点之间的通信。HTTP 传输机制用来发送请求和接收回复。虽然具有特别 B2B 关系的合作伙伴可以从头开始为他们的协议定义标准,但实际的标准都是用 XML 来进行请求和回复。当然我们可以期望在今后改进标准,使之扩展到覆盖 XML 编码的细节。
Oracle 技术允许发送者和接收者直接实现 Oracle9i 数据库支持的服务,且仅使用按产品分类的 API 上的 PL/SQL。 为接收程序编码的最简单方法是使用 mod_plsql — 直接通过 Oracle9i 数据库的 HTTP 监听器组件,或者通过 Oracle9iAS — 来编写 PL/SQL 数据库程序,该程序作为表示请求的 URL 出现。解码表示请求的 XML 文档,然后访问数据库来提供回复信息并将数据库适当更新,回复经编码后通过 Htp.Print 或类似命令发送。对话的这一端不在本文档论述的范围内。
请求一般在数据库触发器的正文内发送(或者更可能进行排队后将来发送),触发器在发生像库存水平下降超过重新订购的规定下界之类的事件时触发。表示请求的 XML 文档通过访问当前的数据库数值进行编码后发送,一般使用 "POST" 方法确保任意大的 XML 请求可以分段发送。验证信息(如 用户名和口令)可能需要作为请求的一部分。也可能请求头标需要进行显式设置以反映适合的协议。然后(开始)获取响应,对状态码进行查错,并检查消息头是否服从协议。然后分段获取本身表示响应的任意大的 XML 文档,并解码。得到的信息用来更新数据库。强健的实施可能需要在出现错误时自动创建电子邮件并向系统管理员发送生成的邮件。Oracle 具有编码和解码 XML以及从数据库发送电子邮件的功能,但这些超出了本文档论述的范围。
根据工作流程的设计,可能需要对状态进行描绘。例如,一个顾客可能为给定数量的商品向几个卖主询问了价格和交货时间。每个卖主将答复价格、交货日期和“可供货”截止日期。当顾客站点向所选卖主发送明确下订单的请求时,需要参考特定的供货情况。如果在单个组织内使用这种模式,例如在不同国家的当地办事处之间进行通信,通信协议可以从头开始设计,那么供货参考号很可能作为 XML 编码的一部分进行交换。然而,如果具有 B2B 关系的合作伙伴是完全独立的,尤其如果关系是临时的,那么请求者必须遵从接收者定义的任意协议。有可能接收者已经使用 cookies 实现了表示对话正在进行的状态。在这种情况下,发送者需要通过编程来做相应处理。
Oracle9i 增强功能
商务利益
- 允许执行全功能的 B2B 应用程序,充分增强了功能