SOA 快速指南 1 2 3,第 6 部分: 以服务为中心的业务活动管理与监控

来源:百度文库 编辑:16楼社区 时间:2020/12/05 16:05:59

文档选项

将此页作为电子邮件发送

级别: 初级
金 戈, IBM软件部企业集成解决方案架构师, IBM 中国软件开发实验室 SOA设计中心
姚 辉 (yaohui@cn.ibm.com), IBM 中国SOA 设计中心高级工程师, IBM 中国软件开发实验室
赵 勇 (zhaoyong@cn.ibm.com), IBM 中国SOA 设计中心工程师, IBM 中国软件开发实验室
谭 佳, IBM 中国SOA 设计中心工程师, IBM 中国软件开发实验室
2007 年 2 月 06 日
《以服务为中心的业务活动管理和监控》是本系列文章的最后一个部分,将结合本系列文章所使用的汽车贷款实例介绍如何实现构建企业的业务流程管理模型。本文的组织方式是:第 2 部分介绍业务活动监控的基本概念,即什么是业务监控,它与传统商业智能之间的关系是什么;第 3 部分描述创建业务流程管理模型的基本步骤,即从何入手建立一个完整的企业业务活动监控模型,第 4 部分则结合本系列的业务场景使用 IBM 最新推出的 WBI Modeler 6 来介绍如何构造一个业务活动监控模型,最后是总结。希望通过本文的介绍,能够帮助读者理清基本的概念脉络,了解构建业务活动监控模型主要的实施步骤,从而为在将来的项目中实现业务活动管理奠定良好的基础。
以服务为中心的业务活动管理与监控是最近出现的一种热门的IT技术,它的目的在于帮助企业管理人员实时获悉企业运营状况,了解企业的战略实施进展。《SOA 快速指南 1 2 3》系列文章是笔者近年来在 SOA 项目实施中的经验结晶。该系列文章结合一个汽车贷款流程, 介绍了在 SOA 的环境下如何基于 IBM 的现有产品构造业务活动管理解决方案,详细阐述了每个实施步骤中使用的 IBM 的方法学、技术和产品。希望通过本文的介绍,能够帮助读者理清业务流程管理所包含的基本概念,并了解构建解决方案所需要的基本步骤。




回页首

本系列是 IBM 中国软件开发实验室 SOA 设计中心近年来在 SOA 项目实施中的经验结晶。
项目概述 第 1 部分:SOA 采纳步骤和价值分析 第 2 部分:服务建模 第 3 部分:服务实现及架构设计 第 4 部分:快速实现服务集成模型 第 5 部分:逐步实现服务和持续集成 第 6 部分:以服务为中心的业务活动管理与监控
在当前激烈竞争的市场环境下,企业管理人员面临着巨大的压力提高生产率和削减运营成本。从战术执行的角度来考虑,公司管理人员需要一种手段来帮助自身从纷繁复杂的表象中获取知识,实时获悉企业战略实施情况,及时了解企业运营过程中存在的风险,并做出及时地响应,从而将公司打造成为能够快速适应外界环境变化的有机实体。业务流程管理(Business Process Management, BPM)为实现这一目的提供了有针对性地解决手段。据InformationWeek统计,85%的企业CIO都认为业务流程管理将成为公司利润提升的主要手段。但是,从现有的企业IT环境来看,当前信息技术很难为构建灵活的业务流程解决方案提供直接地支持,这其中存在两个问题:首先是技术异构问题,从长期来看,企业出于保护投资或是选择项目实施合作伙伴的原因,企业信息系统建设通常采用了不同的技术。在经过多年的积累后,企业内部的每一个应用都形成了一个小的信息孤岛,IT本身就成为了一个大麻烦;其次是实时性和适应性的问题,当前市场上存在的商业智能软件能够以数据报表的形式为管理人员提供决策支持,但是传统的商业智能软件主要是对于企业运营历史数据的分析和处理,它能够为企业高层管理人员制定合理的战略提供量化的支持,但是无法反映企业战术层面的执行问题,无法快速响应业务流程执行的异常情况,也无法按照需求的快速变化调整公司运营策略,这种情况被David Luchham称为"IT Blindness"。
面向服务的业务流程管理为解决以上问题提供了可能性。从概念上来看,业务流程管理可以划分为三个层面的内容:业务流程建模、流程执行和流程指标监控。流程建模用于构建公司的业务运营流程模型,它从公司日常的生产经营活动入手,使用业务活动之间的序列关系描述企业的业务模型,帮助业务分析人员识别流程中的瓶颈,从而为流程优化奠定良好基础。业务流程建模是整个过程的第一步,也是最关键的一步,它不仅需要确定业务活动之间的序列关系,还需要确定业务模型中所包含的业务绩效指标信息。在分析人员确定企业的流程模型之后,软件架构师需要将流程模型转化为以服务为单元的体系结构模型,并由开发人员和集成人员加以实现。需要指出的是,业务流程的运行平台通常是企业服务总线,它体现形式可能是BPEL,也可能是MQ Flow,它们一个共同的特点是跨越了多个应用系统。最后是流程监控,流程监控是对于业务操作的记录,它一方面保存了业务运行的业务数据,如销售金额,另外一方面也保存了流程本身的信息,如时间信息和异常情况等。从运行的角度来看,流程监控软件会按照分析人员规约的流程监控模型收集系统业务事件,加以分析处理,进而将其转化为对于业务人员具有明确含义的关键业务指标,并以图形化的方式将分析结果展现在用户面前。流程建模、流程执行与流程监控构成了一个闭环的回馈系统,该系统使得企业能够根据自身业务流程特点,准确识别企业运行过程中存在的种种问题,并快速适应外界环境的变化。
业务流程管理主要包含业务目标、关键业务绩效指标和业务度量等基本概念。业务目标是整个业务流程管理构建过程的起点,它描述了机构为达成良好增长所需要达到的条件,其描述方式通常是使用自然语言,如"本年度公司销售额增长率为10%"、"本季度公司利润增长率为5%"、"专利申请总数达到1000件"等。业务目标可以认为是公司高层管理人员按照公司的战略规划为整个组织所设定的里程碑,它不仅可以作为公司业绩的体现,也可以作为员工绩效考核的基础。业务目标具有如下几个特点:首先是可分解性,即整个公司拥有一个总体目标,其下属机构应该根据其自身环境确定每一个分部门的目标取值,每一个员工也会确定自己在本年度的个人绩效指标;其次是可实践性,业务目标必须建立在高层管理人员对于公司实际情况以及整个市场环境的精确判断上,它必须是可操作的;最后是风险性,业务目标只是一种预期,而市场环境瞬息万变,所以管理人员也必须意识到业务目标只是一种手段来帮助企业更好的成长。业务目标的确定不能仅仅局限于公司领导的经验,同时还需要行业咨询人员的帮助。在设计整个公司战略规划时,领导通常需要在业内资深咨询人员的帮助下构建企业总体执行战略,同时将业务目标作为一种战术手段推进执行的力度和激励员工的士气。
在确定公司的业务目标后,如何推进公司能够顺利地达成该目标成为执行的关键。业务流程管理认识到每一个公司所从事的业务活动都可以被划分为若干具有明确业务含义的业务流程,从流程出发度量整个公司的运营状况比单纯从数据出发更加容易,而且也拥有更加丰富的监控内容。所以,IT业界纷纷推出构建在SOA基础上的业务流程管理软件。为了从IT层面上支撑整个业务流程管理框架,业务流程管理还需要一组细化概念的帮助,其中最为重要的是关键业务绩效指标(Key Performance Indicator)和业务度量(Metric)。关键业务绩效指标是对于当前企业运营流程的度量,它通常是从高层描述了企业运营的某一个侧面,如贷款申请中的业务增长率和不良贷款变化率等。KPI是业务目标在特定流程层面上的细化,通常可以使用数值来度量,并且业务人员会为其设定变动的上限和下限范围。业务度量则是对于KPI的细化,它代表了一个可独立计算的数据项,但是可能在业务上并没有明确的含义,如贷款申请流程的启动时间和结束时间,而业务人员可能真正关心的是所有流程的平均处理时间。通常而言,每一个业务度量都代表了一次业务流程执行实例的特定侧面,而关键业务指标则是对于这些侧面的统计度量。所以,关键业务指标从IT层面上提供了一种可量化可操作的手段帮助公司高层管理人员实时获悉企业战略执行情况,了解运营过程中存在的风险,并为构建快速适应外界环境变化的机构奠定良好基础。
为了实现以上需求,从运行层面来看,面向服务的业务流程管理需要提供如下功能:首先,业务流程管理必须支持从各种数据源提取有意义的业务数据,并将它们组合成为具有明确业务含义的关键绩效指标(KPI),这些数据源可能是关系型数据库,也可能是企业服务总线中的消息Hub;其次,业务流程管理需要针对流程运行的异常情况及时发送相关预警消息。业务人员在访问界面上设定某些关键绩效指标的阀值,当指标取值一旦超出预期范围,系统需要为业务人员发送预警消息,其手段可以采用邮件、即时消息或是短消息等;最后,业务活动监控需要以报表的形式对于历史数据做出相应的统计,系统按照特定的纬度对于数据做分类计算,如按照产品种类、时间范围或是空间范围等,这些统计数据以仪表盘(Dashboard)的方式为管理人员提供了直观的交互界面。
理清了业务流程管理所包含的基本概念内涵,接下来我们来看业务流程管理与商业智能(Business Intelligence, BI)之间的关系。商业智能为公司高层管理人员提供了一种量化的决策分析支持手段,它从公司历史业务数据入手,通过挖掘当前数据模式与预测未来趋势,BI为管理人员制定公司长期的经营战略奠定了良好基础。而业务流程管理则关注公司流程执行层面,它注重的是公司短期战术的执行,为公司运营提供了更加精细的监控手段。从本质来看,商业智能关注的是公司长期战略规划的问题,而业务流程管理解决的是公司短期战术执行的问题。业务流程管理与商业智能的区别在于:首先,从实施目的来看,业务流程管理更加着重于流程的管理与再造,通过使用流程建模工具将公司日常操作形式化,业务流程管理可以帮助管理人员更好的识别流程中的活动瓶颈,为流程优化奠定基础;而商业智能则着重于从现有数据集合众挖掘有意义的业务指标,为管理人员做出正确的长期战略决策提供帮助。其次,从建模内容来看,业务流程管理的内容包括流程建模、服务建模和业务对象建模等,而商业智能的基本实现步骤主要是基于现有数据库定义规约数据的挖掘维度,从中提取有明确业务含义的内容。再次,从操作对象来看,业务流程管理主要针对的是系统存在的服务和流程,而商业智能主要操作的对象则是数据库中当前存储的数据。最后,从实现手段来看,业务流程管理主要基于实时从业务流程中获取的业务事件,并将其转化成为有意义的业务数据,而商业智能则需要按照数据挖掘模型,从数据库中提取有意义的数据。另一方面,业务流程管理与商业智能之间又存在着紧密的联系,商业智能为业务流程管理的数据分析与聚合提供了良好的实现手段。在涉及到业务指标的多维计算与挖掘时,商业智能作为一种成熟的技术实现手段可以为业务流程管理提供良好的支持。




回页首
在用户实施业务流程管理解决方案的过程中,第一步通常是明确企业的流程模型和服务模型。流程模型是具有明确业务含义的业务活动序列,它是对于企业日常操作的抽象,流程分解对于服务识别具有极其重要的意义。每一个服务都代表了系统中具有明确业务意义并且可复用的功能。本系列前述文章已经详细描述了如何从需求入手构造企业的流程模型和服务模型,本文不再赘述,下面本文将详细介绍如何基于已有流程模型构造企业的业务流程管理解决方案。
WBI Modeler 6.0业务指标规约主要可以分为三个方面:业务指标规约、数据纬度分析和预警消息定义,这三个方面各有侧重,分别用于解决不同问题。
业务指标规约:业务指标定义最主要的目的是解决从问题域的业务目标描述到解域的业务指标规约的问题。在业务人员看来,业务目标通常是使用自然语言描述的业务陈述,如"本年度公司利润率预期增长10%","货物订单处理时间不超过三天"等。但是计算机通常无法识别以上陈述,其中的概念鸿沟就是通过业务指标定义来弥补。业务咨询人员或是业务分析员按照预先规约的业务流程与业务对象,建立形式化的业务指标规约模型,并将其与业务事件相互映射。在本阶段,相关人员使用WBI Modeler提供的关键绩效指标(KPI)、业务度量(Metric)、触发器(Trigger)、秒表(Stopwatch)和计数器(Counter)等基本概念来建模公司的业务度量指标。其中,关键绩效指标和业务度量是最核心的概念,而其它概念则是对于以上概念的延伸和扩展。 数据维度分析:实时数据维度分析是整个业务监控模型构建中重要的一环。业务指标规约解决了模型定义的问题,但是公司真正关心的是如何更好的从这些数据中挖掘出与绩效考核和流程优化相关的信息,这些系统通常是基于某些可比较的维度,所以为业务指标模型定义合适的数据分析维度非常重要。大致而言,数据分析维度的定义通常是基于一些分类信息,如产品类别、处理时间和销售地点等。业务流程管理基于这些分析类别,帮助公司管理人员按照区域或时间段实时展现和分析整个公司的运营情况,比如全国哪一个区域客户投诉率最低,哪一个区域取得了最大增长等,然后据此调整公司战术,为关键绩效指标的实现奠定良好的基础。 预警消息定义:预警消息是业务异常在流程执行层面的具体体现。当关键绩效指标未满足业务人员预先设定的区域变动阀值时,系统会自动提示业务操作人员,警告用户当前流程执行出现问题,需要人工干预加以解决。流程异常可能来自于多种原因,从流程实例运行的角度来看,可能是由于实例运行时间超过了最大服务时间,如贷款申请时间超过了银行预先申明的5个工作日等;从业务数据的角度来看,可能是由于业务数据统计数值未达到预先设定的目标,如某一个特定时间段银行的不良贷款率快速增长,超过了预先设定最大限额。所以,识别并定义这些预警消息是创建实时企业极其重要的一个环节。构建一个良好的预警消息模型依赖于两个方面的能力,首先业务人员需要清楚什么是真正的业务异常,什么样的异常需要用户及时的处理,另外一个方面则需要设定良好的变动阀值,阀值变动范围过窄会使得用户每天会收到大量的预警消息,从而降低用户处理业务异常的意愿和能力。
业务目标、关键绩效指标和业务度量是整个业务流程管理框架的核心概念,它们覆盖了整个业务层面对于流程管理的需求。但是,从技术实现的角度来看,这些概念过于抽象,仍然无法保证实现一个良好的可操作的业务流程管理框架,这其中的问题主要是业务领域与IT域之间存在的差距。为了解决该问题,IBM WebSphere Modeler 6.0在以上三个概念的基础上构建了一个更加丰富的概念集合,如计数器、触发器和环境事件等,这些内容为开发人员实现基于流程的业务监控奠定了良好的基础。整个实施模型的概念框架如下图所示:

关键业务绩效指标(KPI):KPI是对于业务目标的量化规约,在WBI Modeler中每一个KPI都对应于一个业务流程类型,而不是业务流程实例。缺省情况下,KPI定义至少应该包含以下属性:名称、类型、计算函数、度量数据来源以及波动范围边界(通常包含上边界与下边界两种)等。 业务度量(Metric):业务度量是对于流程实例运行过程中某一个侧面的记录,同时也是对于KPI的细化,它可能并不具有明确的业务含义,但是多个业务度量指标合起来可以计算一个业务绩效指标。比如,银行贷款流程实例的启动时间和终止时间对于业务人员是无意义的,但是该流程的平均处理时间对于业务人员而言则是有意义的。大致而言,WBI Modeler中的业务度量可以分为三类:业务数据度量、实例度量和聚合度量等。业务数据度量记录了流程执行过程中业务数据的属性变动,或是业务数据自身;实例度量则记录了流程执行的结果;聚合度量是对于其他度量数据的统计和计算,它用于发现以上度量集合中的最大值、最小值或是平均值。 秒表(Stopwatches):秒表是一种特殊的业务度量类型,它记录了流程、活动或是活动集合执行所花费的时间。秒表具有两个特殊的属性:启动时间和终止时间,当接收到启动时间时秒表开始计时,接收到停止事件时终止计时,接收到重置时间则将计数值清零。所以,秒表可以接收多种触发事件。 计数器(Counters):计数器也是一种特殊的业务度量类型,它记录了业务事件发生的次数。计数器的一个基本属性是计数值,它通常根据某一个预先设定的条件来确定是否将计数值加一、减一或是清零。 触发器(Triggers):触发器提供了一种机制能够启动某些动作的执行,比如,开发人员能够通过触发器来执行业务度量数据更新的动作。大致而言,触发器有两种:外部触发与内部触发。外部触发是指当流程状态被改变或是接收到某一个活动的输入时,流程实例显式发出一条触发消息,推动整个业务流程管理的执行,而内部触发则是指模型内部的业务度量值被更新或是计数器发生变化并且满足某一条件后触发器被执行。触发器提供了一种机制使得开发人员能够灵活的定义整个监控模型的执行步骤,从模型整体来看,触发器会最终会构成一条执行链。 事件(Events):事件可以分为两类:输入事件(Inbound Event)与环境事件(Situation Event)。输入事件是指流程监控引擎所接受到的外部事件,该事件一般会触发整个监控过程的执行,如流程开始运行,或是贷款被批准时,流程引擎都可能产生输入事件,从而启动触发某些外部触发器的执行。环境事件则是指由流程引擎主动发出的事件,如果关键业务指标或是业务度量满足特定的边界条件,则监控引擎会自动发出业务事件提醒业务人员,此时发出的事件就是我们之前讨论的预警消息。




回页首
针对本文所使用汽车贷款流程,下面我们来介绍如何创建该银行的业务流程管理解决方案。从业务流程管理的整个生命周期来看,流程建模为运行时刻的流程监控提供了元模型,该模型会指导监控引擎从纷繁复杂的IT系统中抽取真正有意义的事件和数据,并最终汇集成为业务绩效指标数据。从汽车贷款流程来看,其基本的业务步骤包括:用户提交申请,信贷专员实行资信评估,信贷经理审批,最后知会申请人审批结果。我们现在的问题就是为这样一个简单的流程构造一个真正反应用户需求而且灵活易于扩展的业务监控解决方案。从实施步骤来看,整个过程可以被划分为如下步骤:识别业务目标、确定关键业务绩效指标、构建映射关系、建立预警规则和设计触发时间。
1) 识别业务目标:确定公司业务目标是整个方法中的第一步。分析人员通过与业务人员反复讨论,首先需要确定公司整体的业务目标规划。这一步骤中非常重要的一个原则就是分析人员需要与真正的业务人员紧密协作,需要由业务人员来确定什么是其公司的业务指标,而不能由分析人员越俎代庖。就汽车贷款流程而言,不良贷款比率与流程执行时间是两个比较重要的指标,其中不良贷款比率决定了公司的盈利状况,而贷款流程的执行时间则反映了贷款部门的工作效率,从而进一步影响了客户的满意度。本文将贷款流程执行时间的业务目标定义为5个工作日答复客户,不良贷款比率的业务目标设定为10%。公司整体业务目标规划的确定并不是本阶段的结束,开发人员还需要根据某些维度来细化业务目标,比如按照时间段、产品类别和公司机构等做进一步的细化分,确定每一个类别的业务目标。最后给出的结果是一份详细描述了客户需求的业务目标规约文档。
2) 确定关键业务绩效指标:在确定业务目标后,设计人员需要将业务目标转换为业务度量,即以量化的手段来描述业务目标。KPI可以是业务目标的量化体现,它从流程执行的层面定义了如何计算业务目标取值,以及该取值目标变动范围的大小。以汽车贷款流程为例,流程执行时间存在一个最大执行时间,一旦某一个申请案例处理时间超过该时间,需要及时通知相关的业务人员,并做出相应的决策以保证业务能够及时被完成。本文将贷款申请流程的关键绩效指标标准取值为4天,变动范围为-1~+1天。从运行的角度来看,KPI的标准取值与变动阀值通常是可配置的。
3) 构建映射关系:KPI定义了业务人员需要监测的内容,但是如何基于现有数据计算KPI还需要开发人员做进一步的映射。一般而言,KPI的计算公式是在业务度量数据上施加相关的聚合函数,如求最大值、最小值或平均值等。所以,第三步需要定义相关的业务度量模型,并在业务度量以及KPI之间建立相关映射。仍然以汽车贷款流程的平均处理时间为例,设计人员需要首先创建两个业务度量来保存贷款流程实例的启动时间和结束时间,然后创建一个实例度量来保存单个流程实例的处理时间,最后对于所有的实例度量求平均值,从而计算所需要的流程平均处理时间。
4) 建立预警规则:在确定KPI以及相关的映射关系后,开发人员还需要建立预警规则。预警规则通常是具有明确业务含义的提示信息,它用于在流程执行出现异常时向相关人员发送预警消息,如KPI取值超出其变动范围。在该步中,开发人员需要首先根据业务绩效指标,确定规则触发的条件,然后确定条件一旦被触发系统所需要采取的动作,可以采取的动作类型包括向业务人员发送电子邮件,发送手机短消息或是向应用特定的数据库中写入纪录等。以汽车贷款流程为例,预警规则可以定义为当汽车贷款申请流程执行时间超过5个正常工作日时会自动向相关业务人员发送警告消息。需要注意的是,预警消息不一定只能服务于关键绩效指标,开发人员同样可以为业务度量定义预警规则。
5) 选择触发事件:业务流程监控与传统商业智能的重要区别之一就在于其主动性,即能够实时响应外界环境变化,整个监控过程由触发事件来启动。触发事件来源有很多种,事件可能来自于流程运行所提供的状态事件,也可能是应用系统显式发出的异步消息。当触发事件发生时,系统启动业务绩效指标的计算,然后根据计算结果选择是否发出预警消息。从某种意义上来看,触发事件实际上是IT系统执行日志的体现。当某些动作发生时,IT系统显式的告诉业务活动监控构件,系统数据已经被改变,并且根据用户定义的监控模型需要采取某些行动。
下图是对于业务平均处理时间监控指标的建模。从图中我们可以看出,在流程启动即第一个活动开始运行时触发贷款申请启动触发器,该触发器直接启动了秒表计时。在流程运行结束时即最后一个活动完成时触发贷款申请结束触发器,该触发器结束秒表计时。所以,每一个流程实例都会拥有业务处理时间。KPI对于所有的业务处理时间执行平均值运算,获得的就是整个流程的平均业务处理时间,而且能够以图形化的方式显示给业务人员。





回页首
面向服务的业务流程监控是一种新型的IT技术,它以流程为基本监控单元,帮助业务管理人员实时获悉企业内部运营状况,分析未来趋势,挖掘业务运营风险,从而为创建快速响应的实时企业奠定良好基础。本文首先阐述了业务流程管理的基本概念,然后对于在SOA的环境下如何构造业务流程管理解决方案作了较为深入的说明,最后结合银行贷款流程场景的说明如何构造业务流程管理的解决方案。希望通过本文的介绍,能够帮助开发人员深入了解业务流程管理的基本概念,并为在将来的项目开发中正确使用相关技术做好准备。
WebSphere Process Integration V6 - Business Process Management Modeling through Monitoring,http://www.redbooks.ibm.com/abstracts/sg247148.html
Technical Overview of WebSphere Process Server and WebSphere Integration Developer,http://www.redbooks.ibm.com/abstracts/redp4041.html
The Beginning of IT Insight: Business Activity Monitoring, David Luckham,http://www.ebizq.net/topics/cep/features/4689.html

 

金戈, IBM 中国软件开发实验室 IBM 中国 SOA 设计中心客户服务经理, IBM 中国 SOA 设计中心架构师。多年软件设计和解决方案设计经验,精通软件工程、分布式中间件、Linux 以及系统管理,并拥有丰富的 Linux 和 SOA 架构、设计、开发技术经验。联系方式:jinge@cn.ibm.com。

 

姚辉,IBM 中国软件开发实验室 IBM 中国SOA 设计中心高级工程师。具有多年的面向对象设计与开发经验,目前专注于 SOA 的相关理论与项目实践。对 EA、SOA、BPM、EAI 等领域有浓厚的兴趣。联系方式:yaohui@cn.ibm.com。

 

赵勇,IBM 中国软件开发实验室 IBM 中国 SOA 设计中心工程师。具有多年的 J2EE 和 Web Service 开发经验,目前专注于 SOA 项目实践和相关的理论,工具的研究和开发。对 ESB、SCA、BPEL、自动化测试和极限编程等技术有浓厚的兴趣。联系方式:zhaoyong@cn.ibm.com。

 

谭佳,IBM 中国软件开发实验室 IBM 中国 SOA 设计中心工程师。拥有多个 SOA 项目实施经验,目前对于 J2EE、SOA、EAI、BPM、Data Mining 和语义网等相关技术有浓厚兴趣。联系方式:tanjia@cn.ibm.com。