日期:2012-10-30  浏览次数:20556 次

关于 PHP/Oracle 开发模型如何在Myers Internet缩短应用程序生命周期的案例研究。

对于主要由应收款业务模型驱动的公司而言,其核心的业务功能之一是输入、跟踪和记录订单。在这方面比较出色的公司可以伸缩它们的机构,并提高它们的利润,而不会遇到基础架构的限制。当订单处理很麻烦、容易出错或不一致时,公司将因为直接的成本和降低的生产效率而蒙受经济上的损失。

在我的公司 Myers Internet,核心的业务事项围绕着建立客户基础,为 Myers 提供持续的服务并帮助它在客户问题出现时解决问题。公司正使用许多不同的系统来处理订单输入和实施周期的各个方面。这些系统既不是彼此集成的,也不具备确保每一份订单都得到正确记帐的机制。

Myers 订单跟踪系统 (MOTS)

就像其它许多机构一样,Myers 从一个小型公司成长为一个中型公司,同时在它的整个成长期间始终保留了相同的过程和系统。大多数这些过程在建立时,所有的事务处理都通过电子邮件、纸质记录和实地拜访来人工地完成。5 或 6 年前,Myers 的一个工程师利用 Allaire 的 Cold Fusion 和一个 Microsoft SQL Server 数据库组装了一个系统来跟踪订单实施,这个系统称为 MOTS (Myers 订单跟踪系统),它允许销售和帐目管理部门输入订单,然后由支持、工程、设计、信息系统和会计部门实施这些订单。虽然这个系统是向前迈进的重要的一步,但它仍然留有许多人工的步骤,并且没有和任何其它的业务系统集成在一起。

大概在同一时间,还创建了一个系统,在这个系统中客户和销售代表可以在线订购 Myers 网站的产品。这个系统可以创建新的 Web 站点,并计算提供的 Web 站点程序包的安装和重复性费用的总和。然后它发送电子邮件给各个部门,各个部门可以将订单输入到 MOTS 中,并在帐目管理系统中创建记帐信息。

体系结构障碍

这种类型的体系结构饱受几种系统问题之苦。在 Myers,较明显的问题之一包括启动订单跟踪所需的人工数据输入,以及作为这种人工过程的结果而产生的错误。另一个问题是公司中的订单输入、订单跟踪和记帐系统之间的脱节、订单丢失、信息遗漏和其导致的错误。

另一个仅偶而出现的问题是 MOTS 系统本身有内在的缺陷。由于编写 MOTS 的方式,可以输入没有部门分配信息或者丢失了部门分配信息的订单。当这种情况发生时,订单最终将在系统中丢失。当订单丢失时,准确、及时的记帐就更难实现了。

随着业务的成长,体系结构中的缺陷变得越来越明显,并且随着客户和订单数量的增加,丢失和错误输入的订单出现的频率越来越高,从而给公司收入带来了难于估量的影响。此外,人工输入的数据的数量导致了延迟和处理效率低下。

由于在实施机构内对收入的影响加大和效率降低,很明显必须要有一个替换系统来将一切联系起来,并提高效率和降低错误率。旧系统图示如下。

 

Oracle与PHP实例开发Myers订单跟踪系统

图 1:旧的系统体系结构

该图显示了需要人工数据输入的所有区域。由于这些系统都不是集成的,所以数据丢失或失真的可能性非常大。全局需求马上变得明显起来。

订单系统需要直接和实施跟踪系统联系起来。该系统需要安全保护来防止订单在未经处理之前脱离系统。需要保持精确性,以确保准确的记帐和正确的订单实施。系统需要使内部成本最小化。所以,要达到那个目的,需要快速地创建系统,但系统必须拥有完整的功能。

虽然一个好的订单输入和跟踪系统可以帮助降低成本,但它本身并不创造收入。

深入结构

在开始模式设计之前,需要解决一些基本的体系结构问题。第一个底层的技术需求是系统必须可配置,且无需额外的编码。本质上,这意味着需要把工作流嵌入到数据库中,而不是用解释/处理代码来进行硬编码。第二,数据库需要包含足够的信息,以便能够表现订单输入界面的主要(和可更改)的方面以及实施处理。

在努力解决上述问题的过程中,该系统逐渐适合于两个部分 — 订单输入和订单跟踪,并在两者之间提供了明确定义的联系。订单输入系统需要知道如何用准确的产品代码、折扣和定价条款来表示订单。订单实施系统需要知道如何跟踪各种类型的任务、相关的作业和各个部门,以处理和记录每份订单。最后,需要定期和可预测地把订单转化成实施作业。下图显示了目前存在的新系统的结构。

Oracle与PHP实例开发Myers订单跟踪系统
 

图 2:新的系统体系结构

该图显示了通向新的订单系统的所有信息路径,新的订单系统位于后端的门户管理站点。所有的初始数据输入都仅一次性完成,并且只需要每个小组在处理的各个阶段验证数据。通过引入从订单系统到帐目管理系统的自动数据传输,至关重要的数据传输的另一个主要的领域也变为自动化。

依赖 PHP

在纯技术的层面上,早期决定使用 PHP 作为主要的开发语言和 Oracle 作为系统的数据信息库,这有几个主要的原因。首先,Myers 现有的后端门户几乎完全是用 PHP 根据一个现有的 Oracle 数据库编写的,这消除了一个产生不兼容性的潜在来源。这还意味着要创建这个新的系统,Myers 可以利用自身的能力,这些能力创建了现有的后端门户。

第二,实验测试显示,与其它开发语言相比,PHP 提供了一个比较高的性能水平。因为 PHP 是作为一个动态加载的资料库驻留在 Apache 服务器内部的,所以每一次与系统连接都无需额外的启动时间。此外