[转] 我所经历的IBM SOA与系统整合
2006年,一汽大众新上来一位总经理,新加坡人,整个一国际背景高端管理人才,是德国人和中国人博弈后取得的胜利。
一汽大众过去是从总部到区域到终端一体化的大盘管理模式,很僵化很粘稠,不利用快速反应。于是这位新任总经理就开始改革,大权从总部下方到区域,每个区域经理都是一方诸侯,各显神通。
那这就出现了一个问题,各个诸侯都在祖国980万平方公里烽烟折腾,你一个总经理待在总部高高在上怎么管理?
当然,想到的肯定是信息化。让信息化打通全国区域信息,终端信息,这样就在总部一查到底。
但是在要数据的时候,IT部门却汗流浃背,因为真实的情况是,一汽大众这么多年上了很多IT项目,每个部门都有若干个软件在使用,而且有些软件是某年的一个项目,目前已经不再使用了,但IT部门根本不知道。而且每个部门建设的信息系统,都或多或少存在些重复数据,当时做的时候也没想到和其他部门统一标准。而且由于部门隔阂,有些部门之间的数据还无法连通。这样多标准、多口径的数据,是没法给老板汇报的。怎么办?
总经理一生气,找到了IBM,让IBM想辙。IBM给出了这么几招:
1 到底有多少信息系统,这些信息系统的关系是什么,这些信息系统的使用者是谁,他们会产生什么信息,他们管理什么业务?这些东西都需要梳理一番。
2 理清现状,该整合的就整合,该统一的就统一,空白的没有IT支撑的业务该新上就要新上。
3 在这个整合完的新IT模式下,出老板需要的统计数据。
这个项目就是IBM树为典型的SOA项目。因为一汽大众够大,因为IBM正在猛推SOA概念。2006年,于是项目启动了。
IBM第一个要做的就是现状调研、梳理、然后诊断优化、规划。所以这一阶段,是个典型的IT诊断与规划的咨询子合同。(注意,这种模式,我接下来还会反复讲到IBM是什么样的打法)
IBM不梳理则好,一梳理发现了不少问题。
1 一汽大众和4S店的关系是若即若离的,不是强权管理的。所以一汽大众对4S店的IT应用也没什么要求。IT应用层次不齐。而且4S店是独立法人,属于连锁加盟形式,所以也害怕一汽大众看到他真实的经营状态,不愿意把数据上传给一汽大众。
2一汽大众建设的信息系统太多,所以引入的供应商也多。一个4S店,运行了最多达16套软件。而且每个系统都是各个业务总部垂直业务部门领导上的,当然各个系统之间的对接也不太好。
IBM东西南北中调研了够30家区域和4S店,因为每个地域要选择高中低三个层次的4S店,这就是工作量。根据调研,IBM做了一份非常详细的报告(够出一本书的厚度),描述了一汽大众目前的IT现状。从整体应用系统体系结构图,到各个层面各个业务部门各个子系统,到各个子系统的功能模块,流程,都梳理了个遍。现在这个资料被一汽大众IT部门视为财富,因为连他们自己都无法说清楚现在到底有多少IT系统在跑,到底关系是如何,到底功能如何?这个事情IBM好像就花了3个月时间,10多个人的团队全国奔波访谈、收集资料、编写报告,整天飞来飞去,还整天开会熬夜核对。
然后IBM就开始干第二个子合同,领导整合项目。这又是一个IT咨询项目。到底具体怎么整合,这个方案需要IBM出。而且还要IBM负责带领众多软件厂商来落实。
于是,IBM来了一帮项目经理和咨询顾问。项目经理们负责分解目标到可落实的任务,负责计划进度、报告、推动、记录、协调资源。咨询顾问们就按照项目经理安排的任务开始工作。需要一汽大众IT部门人干什么,需要哪些IT合作伙伴干什么,需要一汽大众哪些业务部门哪些人干什么,需要IBM咨询顾问干什么,都一一分解。每个星期五上午报告,一个个的子项目过,看进度是否符合计划。并且还要安排下一周的工作计划、落实到具体人身上。
这个整合咨询项目很具体,所以IBM要求每个IT合作伙伴把他们自己的软件的每个功能的UI字段信息,数据库结构说明、数据来源说明都要给IBM一份。这些咨询顾问就在梳理各个系统之间的数据是否关联、是否重复,是否统一编码规范,他们之间是如何保持同步的。
IBM最终出了一份报告,就是各个子系统需要整改什么,不统一的数据标准需要如何去慢慢替代或映射,以后基础信息如何保持一致化更新。
IBM是让各个业务系统之间连通、统一了。
于是,各个IT合作伙伴就开始修改自己的软件,符合要求。
接下来,IBM得到了第三个合同项目,还是个IT咨询项目。但这个项目也有些IT技术,不单纯是咨询写点方案什么的。这个合同项目就是要把4S店的、区域的数据上传到总部,和总部的SAP软件连接在一起。而且要把数据上传到总部后建设成全国大集中数据中心。
这里就用到了中间件,也用到了SOA技术。本来上一个合同的业务子系统之间整合,IBM就想使用中间件,但发现系统规模小,不可能拖那么重型那么昂贵的一个中间件。所以业务子系统之间整合,IBM没怎么管,能用DLL就用DLL,能用数据库互相访问就用数据库互相访问。
而这次,要和SAP连接,要上传到全国数据中心,就要动用重型的中间件了。你看,IBM又是卖咨询服务,又是卖中间件,又是卖数据库产品,又是卖硬件服务器。钱全赚走了。
因为中间件是运行在总部服务器端,我们只是算其中一个业务系统的配合合作伙伴,对从前台到后台的全部技术了解的并不透彻。不过,毕竟大家天天在一起工作(一汽大众专门为合作伙伴开辟了一层楼,各个项目组都在这里,HP、微软、西门子、SAP、IBM等等都在这里)。他们为各个业务子系统都定义了XML格式的数据标准,但数据传输使用的是消息中间件,有定时设置,有状态检测,有覆盖或新建冲突规则设置,有日志。每个上传的信息都可以单独设置规则。
SOA应该是例如SAP发生了某个业务,需要触发一个消息,然后让远方的4S店的某个业务系统激发消息后再处理。IBM确实也是这么要求SAP和我们各个业务子系统的。不过这个信息不是实时的,而是异步的。SAP激发,但它不会等待4S店处理,它只是把消息和所需数据发到消息中间件就OK了,到底对方客户端是否正确处理了,它不管了。这个消息中间件就不断在调度发送传输着。安全啊、回滚啊,加密,加压啊,挺多技术难度。
就这样忙活,一年就过去了。
第二年,业务系统连通了,该补齐的功能或子系统也都建设实施了,数据也都上传到了数据中心,该重点关注报表了吧。
需要什么报表呢?这又是一个咨询合同了。IBM来调研,各个层面各个部门的调研,总结各个部门需要的报表。
在收集后,IBM开始一张张的报表开始过,看看报表之间的关联关系,看看各个报表的数据来源是什么。对于有些报表要求的数据,根本就没有上传,或者根本就没有这个数据在IT系统中,或上传的内容和当初设计的时候不是一个想法,这就要求给出方案,下步该怎么整改。
一边让业务子系统合作伙伴继续修改系统,该上传的上传,该新增细化功能的就细化。一边IBM在做报表。
但是在做报表的过程中又发现问题了,数据质量不高,历史数据垃圾太多,规范性太少,居然还有错误数据,没法做报表。
于是,又一个咨询项目合同开始了,那就是数据质量提升。
1数据输入规范性校验
2历史异常数据修正或清洗
3数据更新校验
4数据完整性校验
5数据及时性校验
并且还开发了新的子系统,专门用于自动检查这些数据,哪些区域、哪些4S店没有按标准要求来做。还专门安排了总部的岗位,每天监察,每天督促,月底还要通报罚款。闹腾了好长时间。
当然,中间还出过接口设计缺各种状态信息和版本信息的问题,致使排查问题非常难。于是又扩展接口,我们合作伙伴又进行新一轮修改。
好容易数据也上来了,报表也做出来了,数据也清洗好了,以后的数据录入也有强制要求了,这下该万事大吉了吧。
NO,NO,NO。因为报表没有使用BI工具,有些数据是行转列还带计算的。这就性能慢了。再加上数据中心是全国的各个业务子系统的数据,所以增长非常快。所有有些报表需要做报表计算任务才能把报表run出来。这什么意思呢?也就是说,你需要这个报表出统计数据的话,你需要提前1天或3天给数据中心发请求,数据中心就给你开启任务,一个报表计算1-3天可能才能把数据计算出来。可笑吧。加了硬件,加了集群硬件,加了集群中间件,IBM赚海了,。最后没办法,再加一个IT项目。
这个IT项目就是数据归档项目。把一个季度的数据放在一个数据中心。把历年的数据放到其它的数据中心去。这样出周报、月报、季报就快多了。
几番周折,快3年时间,终于告一段落。由于报表格式盯死,而且纯粹SQL跑,存在本质上的性能问题。
一个BI项目终于浮上水面。IBM的智慧地球的一部分:新锐洞察---Cognos。
传奇仍在继续。
在这个案例中,我们总结一下:
1 IBM拿的都是IT咨询单子,吃的是最丰厚的利润,把苦活机械活都给了合作伙伴。而且他们做的是最高层的事情,是获得客户最高层认可的事情。其它合作伙伴干的事虽然很实在,但最高层领导根本看不见也不关注。这是需要我们注意的,我们要转向服务,就要转向这种服务。
2 IBM是怎么源源不断的拿单子的。这个我们需要学习。它是一步步的设坎,一个阶段一个阶段的拿子合同,并不一口气都在一个合同中做完,这样是分阶段的,目标也是阶段小目标,容易实现,风险也小。这种拿子合同的模式我们或许可以借鉴。
[转] 我所经历的IBM SOA与系统整合的更多相关文章
- 记一次艰难的IBM X3850重装系统和系统备份经验
[贴心话] 刚刚把一切都搞定了,回到电脑前立马就写下的这篇文章,写的很细节,大家就耐心看看,有些细节是网上没有的,共享一下,仅供参考,以减少大家装机时遇到的困难. [面临处境] 机器型号:IBM X3 ...
- markdown编辑器抉择经历(做笔记\多系统用户)
之前一段时间,为了找到一款合适的md编辑器可谓是费尽了心思,用了我不少时间才找到一款合适的跨平台的又美观方便的编辑器----马克飞象. 感觉虽然有些编辑器功能很强大,对于使用性单一的用户,比如像我这种 ...
- 面向服务体系架构(SOA)和数据仓库(DW)的思考基于 IBM 产品体系搭建基于 SOA 和 DW 的企业基础架构平台
面向服务体系架构(SOA)和数据仓库(DW)的思考 基于 IBM 产品体系搭建基于 SOA 和 DW 的企业基础架构平台 当前业界对面向服务体系架构(SOA)和数据仓库(Data Warehouse, ...
- IBM 中国研究院面试经历
继上次面试MSRA失败后,严重刺激了我幼小的心灵.从此苦学算法准备面试很多其它其它的公司刷一刷Offer以解心 头之恨. 这个带来的IBM 中国研究院的面试经历. IBM的面试相比于MSRA.简直就是 ...
- SOA是什么
一.SOA是什么 SOA的全称是Service-Oriented Architecture,面向服务架构.是一种架构,不是一种具体的开发技术. 要真正理解什么是SOA需要从软件开发的技术发展史 ...
- ESB与SOA的关系
ESB与SOA的关系 一.SOA和ESB一直是没有明确概念的两个缩略词 SOA----面向服务架构,实际上强调的是软件的一种架构,一种支撑软件运行的相对稳定的结构,表面含义如此,其实SOA是一种通过服 ...
- 我的学习工作经历,一个园林专业中专毕业生的IT之路 学习编程 创业
我的学习工作经历,一个园林专业中专毕业生的IT之路 魏琼东,男,1983年生人,祖籍甘肃陇南人,首先得感谢我父亲给我取了这么一个好名字,至少我非常喜欢他,因为目前还没有发现和我同名的人. 我是1998 ...
- 微服务理论之六:ESB与SOA的关系
一.SOA和ESB一直是没有明确概念的两个缩略词 SOA----面向服务架构,实际上强调的是软件的一种架构,一种支撑软件运行的相对稳定的结构,表面含义如此,其实SOA是一种通过服务整合来解决系统集成的 ...
- 杂项-公司:IBM
ylbtech-杂项-公司:IBM IBM (IT公司-国际商业机器公司) IBM(国际商业机器公司)或万国商业机器公司,简称IBM(International Business Machines C ...
随机推荐
- iOS TableView索引字体大小设置
-(void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger ...
- java 中的valueOf方法和强转
case1:Object 对象转String 需要强调的是String.valueOf()方法,当参数为类型是object,且值时null的时候他的处理方式 public static String ...
- Spring Data Redis 2.x 中 RedisConfiguration 类的新编写方法
在 Spring Data Redis 1.x 的时候,我们可能会在项目中编写这样一个RedisConfig类: @Configuration @EnableCaching public class ...
- 简单介绍一下vue2.0
Vue Vue是用于构建用户界面的渐进框架.作者尤雨熙特别强调它与其他的框架不同,Vue是渐进式的框架,可以逐步采用,不必一下就通过框架去重构项目. 另外Vue的核心库只专注于视图层,这样就更容易与其 ...
- iOS类目
首先我们解释一下类目是什么 iOS中类目是为给已经存在的类加入新的方法.(可是不能加入实例变量) 也就是说 我们已经有一个类了 .可是我们发现这个类眼下所提供的方法,满足不了我们的需求,我们须要新的方 ...
- Unix OpenCV安装
官方下载:https://sourceforge.net/projects/opencvlibrary/files/ 最好下载2.4.13版本,不然可能会有很多奇奇怪怪的问题 解压后: mkdir ...
- SQL.Cookbook 读书笔记5 元数据查询
第五章 元数据查询 查询数据库本身信息 表结构 索引等 5.1 查询test库下的所有表信息 MYSQL SELECT * from information_schema.`TABLES` WHERE ...
- python 线程(thread)
#coding:utf-8#多线程#Python的标准库提供了两个模块:thread和threading,thread是低级模块,threading是高级模块,对thread进行了封装 #绝大数情况下 ...
- Android无线测试之—UiAutomator UiSelector API介绍之二
Android的布局与组件及组件属性介绍 一.布局: 1)线性布局:控价在线性方向上一次排列 2)表格布局:向表格一样有标准的行和列 3)相对布局:通过相对定位的方式让控件出现在布局的任何位置 4)帧 ...
- sql server数据库创建、删除,创建表,数据库的sql语句
create database test on primary -- 默认就属于primary文件组,可省略(/*--数据文件的具体描述--*/ name='test', -- 主数据文件的逻辑名称 ...