大多数企业IT运营主要依赖批处理操作。这种依赖在你升级到SOA的时候也不会消失,尽管SOA仅意味着向许多人提供在线交易处理。IBM软件实验室服务部门主管IT设计师Sridhar Sudarsan遇到过这些问题。他曾指导过一些全球客户的企业架构解决方案。这些客户包括在金融、公共部门和汽车行业的一些大企业。
对于Sudarsan的客户来说,在这些客户转移到SOA的同时,批处理问题仍是一个大问号。
Sudarsan在J2EE平台上与其他人共同创建了IBM的批处理编程模型,在批处理现代化工作方面花了许多时间。他还演示了诸如“在SOA中的批处理最佳做法:转变状况”等主题。
批处理和实时处理
在批处理能够一夜之间简单地运行的时候,这个架构是简单的。它由工作申请、调度(使用一个调度程序和一个分配程序)和执行等组成。你有大量的数据流,使用某种类型的检查点机制反复进行处理。
现代批处理必须要发生,同时每一件都将或多或少地发生。因此,你必须要处理批处理窗口缩小的问题以及伴随的需要调度和优化IT资源的问题。你必须要把批处理集成到现代设计方式中,在Java/多平台上处理,把一些处理转移到Unix平台以降低成本计算。
对于某些用户来说,把批处理集成到现代设计方法的逻辑结论意味着所有的处理都将成为可处理的。
Sudarsan说,如果我遇到一个SUBMIT,我要立即得到答案。但是,他坚持认为这种事情不会很快实现。他解释说,你不能同时处理许多请求。这是你要严格的调度的原因。
Sudarsan并不认为在线交易处理(OLTP)将取代批处理。然而,他发现选择竞争优势的企业(或者仅仅为了生存的企业)需要把批处理与实时/在线处理结合起来。
在把批处理与实时处理集成在一起之后,企业通过维护较少的系统和通过进行技能的整合实现了成本优势。使用批处理和OLTP系统的人员可以使用一种开放的和灵活的架构。处理系统能够分布到各个地方。因此,批处理会更经常地、少量地、在更多的地方与OLTP一起使用。Java程序员不知道批处理
Sudarsan承认,在谈到有关企业批处理系统的时候有一个令人担心的因素。他承认,人们确实害怕接触老式的系统。15或者20年前编写这些系统代码的人正在退休。新的程序员没有这些方面的技能,包括批处理以及如何把批处理与当前的系统和商业环境集成在一起的技能。
他解释说,客户没有财力为Java应用程序和批处理工作维护两个代码库。这两个代码库需要使用相同的逻辑,但是却不能使用。
每周7天每天24小时的处理需求意味着使用老方法的批处理应用程序必须要更换。此外,你不能让一切东西都是OLTP的,因为当前的硬件和软件不允许这样做。Sudarsan知道这些限制,因为他曾设法创建一个实时解决方案。
Sudarsan说,我也是这些情况的受害者。你在这种情况下可以提出一个雄心勃勃的架构。我们设法让整个事情都是实时的。但是,当我们经过测试并且升级到生产阶段时,一切都崩溃了。然而,他发现批处理与OLTP的集成是有用和必要的。
SOA实现了批处理/OLTP集成
Sudarsan总结了在一个现代化的努力中实现集成对SOA的需求。市场研究公司Gartner在研究报告中引述他的话说:
“...在线处理中使用的商业功能与在批处理中使用的商业功能是相同的。因此,机构应该考虑自己的IT现代化战略并且考虑把SOA当作一个标准化的应用程序集成机制。”
Sudarsan现在使用服务组合以便在SOA环境中使用批处理。
他说,一个批处理环境可作为一个轻型的包装物用于现有的OLTP应用程序基础设施。因此,你的处理编排使批处理成为一个商务处理步骤--另一种老式的集成方法。你不再需要从早上8点至晚上8点做OLTP工作并且从晚上8点至早上8点进行批处理工作。相反,你每天24小时都可以做批处理工作。
在概念上,你要把基于SOA的批处理工作量管理分为三个部分:批处理客户、批处理调度程序和工作量资源管理器。这个客户需要规划、调度、执行、监视和管理批处理工作的服务。批处理调度程序进行计划、优化、启动和编排无人管理的执行工作或者工作网络。这个批处理调度程序提供坚实和管理批处理工作的服务。然后,工作量资源管理在全部可用的资源中分配应用程序工作量以满足工作政策和服务水平协议的要求。