中间件体系结构系列:数据管理和持续性
中间件体系结构系列
9 周中的第 2 周:数据管理和可持续性
可持续性在美国国防部的应用处于黄金阶段
|
| Jim Scott,Northrop Grumman |
考虑到您面临着数据管理和可持续性的挑战了吗?设想为整个美国国防部构建一个可以跟踪所有危险物质的使用以及一切危险人物的出现这一级别的应用程序,而完成这项任务可以不向数据库中添加任何代码。对于 Northrop Grumman 内部的一个小组,他们正是借助 Oracle Application Server 及其可持续性功能完全做到了这一点。
Clearfield,UT:Jim Scott 是 Northrop Grumman 的数据库应用程序开发小组的软件开发经理,大约有 100 人承担了为美国国防部构建新的应用程序的任务。Scott 说:“我们最新的国防部应用程序称为 EESOH,专门处理危险物质的采购和危险废物的控制管理。EESOH 还管理库存,并能使某个人跟踪正在使用的物质、有什么风险以及需要采取什么样的保护措施。”
Scott 解释道,商务问题是内部提出的几个解决方案进行现代化和合并所要考虑的因素之一,其中的一些解决方案由国防部的一个部门使用,而其余的则由其他系统使用。Scott 说,“一些系统有重叠,做着同样的事情。国防部认为,构建一个中央数据库并通过 Web 发布内容和应用程序的时机已经到了。为此,国防部构建了一个本质上的 ISP,配有健壮的骨干,新的系统可以发布于其上(世界范围)。”
 |
| 图:流程体系结构图 |
净室代码
对 Scott 的小组而言,最大的挑战之一是国防部对新系统在体系结构上的严格要求。“他们规定在数据库中不得使用代码和商务逻辑。我们可以使用触发器,但只能用于纯粹的数据管理 — 在其中不会有 PL/SQL 代码。我们必须将那种代码完全移植到中间件。”
这样规定的一个原因是,将来添加的项目涉及到在野外使用移动设备,要与应用程序本身分离。“如此一来,国防部不必使后端数据库和中间层中的代码同步。所有的代码都在中间层,经过事务处理后返回数据库。”
另一个挑战是,Scott 的小组不能访问实际的运行时环境。
| “我们有两大问题需要解决。其中一个是可持续性。另一个是事务处理速度,也可粗略的理解为可持续性。”
| “他们在使用运行许多国防部系统的大型 Sun/UNIX 设备。因此我们不能对其自如的使用。我们必须构建一个能够移交给其操作小组使用的应用程序。我们的代码和部署必须非常干净,经过很好的脚本处理并且结构非常合理。”
要构建这样的应用程序,Scott 的小组购买了 Dell 设备作为机架式 Linux 服务器,将它们集群在一起,便于该应用程序立即可用于国防部同样采用了集群的独特 ISP。在开发方面广泛运用了开放源代码 — 主要体现在 Eclipse 和 CVS 以及 Apache 和 Struts。对于 UML,小组使用了被称为 Enterprise Architect 的澳大利亚的工具;在构建和部署方法方面广泛使用了 ANT。
Scott 解释道,“所有这一切组合在一起成为一个非常干净的应用程序,可处理许多的用户、极大量的数据,所有操作都必须在中间层完成。”
 |
| 图:软件体系结构 |
大规模委托
Scott 说:“我们有两大问题需要解决。”“其中一个是可持续性。另一个是是事务处理速度,也可粗略的理解为可持续性。”根据 Scott 的说法,该应用程序必须应对 70,000 至 80,000 用户,其中有 6000 至 8000 名用户随时处于并发状态。Scott 补充道:“而且我们必须跨越全世界的时区。这是 24/7 的全天候操作。“
该应用程序还需要高度的事务处理性能。Scott 受委托要实现 4 秒种的平均事务处理时间,任何查询或更新事务处理的最长时间为 9 秒种。
决定采用 Oracle Application Server
Scott 的小组针对如何更好的设计可持续性(处理大量用户需求并满足严格的事务处理速度要求)进行了决策分析。Scott 说:“首先我们必须做出决定:应该编写自己的持续性管理器还是购买一个。”
鉴于对事务处理速度和稳定性要求的情况和范围,小组决定购买一个。
| “我们认为,仅仅提供功能性体系结构方面的难题就足够我们应付了,不需要在其上增加自定义可持续性引擎的维护、保养和提供。” |
Scott 的小组还创造性地采用了实体组件,但很难找到处理大量事务的大型系统的实际例子。
Scott 说:“针对这些委托标准和大量的并发用户,我们必须将事务处理的问题移交给容器,而不是试图自己进行管理。然后我们必须设计代码并调整应用服务器,以便能够提供支持。也就是说,重点使用缓存和容器可以帮助我们管理事务处理。”
在一个专业级的产品中运用缓存以及容器管理的可持续性 (CMP) 后,Oracle9iAS 就自然成为首选。
Scott 说:“在允许继续进行事务处理之前,我们希望写入缓存,而不是将其完全交给数据库。我们必须使用稳健的高速缓存。没有别的选择。”
 |
| 图:数据体系结构 |
添加 TopLink
记住,该应用程序必须符合三个主要标准:数千个并发用户、快速的事务处理以及数据库中无代码。最后一个要求有助于体系结构具备一定的灵活度,以便保证前两个标准的严格实施。Java 事务处理绝对必须独立于数据库事务处理来进行管理。
但该应用程序也处理从若干自行开发的解决方案中移植过来的数据,其中每个解决方案具有不同的商务键和主键。Scott 的小组花费了大量时间和精力进行数据分析和移植,使所有当前的数据集中到一个数据源中。小组或者必须手工编码所有映射,或者需要使用映射工具。
小组再次意识到自己具备选择的条件,从而分析了适用于不同方法的工具。
| “人员更迭,记忆消退,如果没有正式的操作流程,则会落得不明就里。”
| 一个方法是使用 Java 数据对象 (JDO) 工具。他们还分析了可用于开放源代码的可持续性桥,比如 Apache 的那种。二者都遭到了否决。Scott 解释道:“映射非常重要。JDO 有自己的映射工具,但我们认为 JDO 的成熟度还不足以满足我们的标准范围。我们发现,开放源代码工具却不具备良好的缓存管理功能。”
Oracle 的 TopLink 产品迅速突现,成为 Scott 的首要分析对象。TopLink 解决了可持续性的内在问题。它将对象关系映射隔离到一个独立的层,恰当地将应用程序代码和数据库模式相分离,从而解决了数据库中无代码这个棘手的第三条标准。
本质上讲,TopLink 是一种数据库映射工具,根据 Java 标准编写,因此位于 JDBC 之上。当使用 TopLink 时,只有在 Java 事务处理提交时才需要数据库的参与。
 |
| 图:TopLink 映射工作平台 |
TopLink 的映射功能不可忽视。Scott 解释道:“TopLink 的映射工作台起着很大作用。”Scott 说,没有 TopLink,他的小组就必须编写代码。“那样将使几个设计人员花费几个月甚至超过一年的时间为我们提供一个好的产品,而且数据映射时间还不计算在内。可以说,正是由于 TopLink,我们在服务器端的开发少用了 20% 至 30% 的时间。”
TopLink 还很好地与 9iAS 应用服务器集成。“我们需要一起使用 TopLink 和 Oracle9iAS 容器。从那时起,我们就决定使用 CMP,并因为高速缓存功能而使用了 Oracle9iAS。毋庸质疑,它们都表现得非常好。”
事实上,Oracle9iAS/TopLink 的组合在性能上超出当初的预想。Scott 说:“事务处理时间甚至连我们都觉得惊奇,我们已经使用 9iAS 和 TopLink 有一段时间了。从我们开始压力测试起,我们就发现 Oracle9iAS 高速缓存和 TopLink 能够非常好地处理大量的事务。”
评估解决方案并做出决策
Jim Scott 的小组,及其开发 EESOH 应用程序的过程是一个完美的示例,它能够评估不同的方法和产品来确保构建符合要求的系统。Scott 说:“仅仅召集几个人、阅读一些贸易杂志、获得一些假数据,然后说‘这是我们的决策’,那也太容易了。”
Scott 建议评估需要更加面向流程。“开发人员和设计人员的最好做法是建立正式的评估流程。在我们的公司内部,我们具有涉及真实决策分析的稳健流程。我们将我们最好的设计人员和开发人员组织在一起,共同研究需求并制定出一个评估标准列表。然后我们根据这些标准,以非常系统化的方法评估多种产品和技术。人员更迭,记忆消退,如果没有正式的操作流程,则会落得不明就里。”
有了正式的流程后也更容易划分评估任务。Scott 的小组分成了三个评估组 — 一个负责评估可持续性技术,一个负责评估应用服务器,第三个则负责评估报表系统。
每组都分析不同厂家的不同解决方案,这些厂家包括 IBM、BEA、Sun、Oracle,甚至还包括象 Apache 和 Jboss 这样的开放源代码产品。在每种情况下 — 可持续性、应用服务器和报表 — Oracle 产品被证明是最好的,它能够以快速的事务处理支持大量的用户负载,同时保持数据库中无代码。
Scott 说:“对于 EESOH 应用程序,我们轻松的找到了三个不同的中间件厂家,一个针对可持续性,一个针对应用服务器,一个针对报表功能。但是经过我们的评估后,我们最终选择了三种 Oracle 产品。”
他还就国防部在 EESOH 的最初计划中提倡使用 IBM 产品发表了自己的许多看法。
Jim Scott (Jim.Scott@ngc.com) 于 1983 年获得了 Weber 州立大学 Ogden UT 的制造工程学士学位。他在随后的几年中作为制造工程师在国防领域工作,逐渐转移到软件开发领域。之后,Scott 做了 15 年的顾问,为 Motorola、Hughes Aircraft Company、Intel、American Express、Xerox、TRW 等公司服务,并在最近的三年中为 Northrop Grumman 管理软件开发。
请为我们提供您对中间件主题的反馈信息:您觉得这次讲座如何?请发送反馈信息至:architects_us@oracle.com
[返回中间件体系结构系列主页]
|