Chinaunix首页 | 论坛 | 博客
  • 博客访问: 129214
  • 博文数量: 31
  • 博客积分: 1410
  • 博客等级: 中尉
  • 技术积分: 310
  • 用 户 组: 普通用户
  • 注册时间: 2005-10-27 15:32
个人简介

梦去梦回之时,总有个头绪,相接在透明的风中

文章分类

全部博文(31)

文章存档

2014年(1)

2011年(1)

2010年(1)

2009年(2)

2006年(3)

2005年(23)

我的朋友

分类: 系统运维

2005-12-20 23:01:20

整合概念 看似简单,真正实作可不是如此。或许你建立的一个Java Web service,只要再利用ASP.NET呼叫这个Web service,就可轻松将Hello World字串传送过去。刚开始你也许会觉得很感动,但很快的…,就会发现企业应用程式所面对资料型別的复杂性,根本不是简单的一个小范例可处理的。

不论是考虑整合.NET与J2EE的技术选项,或是计画利用第三方协力厂商所开发的整合软体进行互通,入门第一堂课就必须了解-在不同平台与应用程式的展示层、中介层与资料层之间,资料是如何传递的。

在異质平台之间进行资料交換通常会面对的挑战可分成三大类,基本上多是资料相容性的问题,包括:

  • 基本资料型別的对应:不论是.NET的Common Language Runtime(CLR),还是Java都有字串的资料型別,但这是否代表CLR的System.String类別等同於Java的java.lang.string类別?

  • 不存在的资料型別:基本资料型別之外,不同平台也会有特殊的资料型別,而需完成资料对应的动作。举例来說,是不可能在Java中找到內建且可对应至CLR的System.Collections.Specialized.HybridDictionary等资料型別。

  • 复杂的资料型別:许多应用程式都会将基本资料型別组合成自订化的资料型別,也许是客戶资料、股票资料等;若是客戶资料则可能包含客戶名称、地址、电话、年龄等资讯,又该如何在其他平台上处理这些自订化的资料型別呢?
最后一种状況也是最常见且困难度最高的整合挑战。一般而讠,要进行复杂资料型別的资料交換工作,常见方式是「序列化」(Serialization)。

所谓序列化,就是将某物件或类別,编码成可储存、传输的格式。如此一来,资料便可以被编码、储存、传输与解码,並可被不同的应用程式与平台使用。

序列化可分为两种方式。一种是「二进位序列化」。不论是.NET的[Serializable] 属性或实作的ISerializable介面,还是java.lang.Serializable,都支援将任何资料型別序列化的功能。然而坏消息是:两大平台所序列化的格式不同,无法整合。

开发人员除自行建立可让不同平台资料格式进行共通的序列子之外,第二种选择就是如前几期文章所提及-利用第三方厂商所开发的整合工具,如Intrinsyc Ja.NET,这类工具都包含支援不同平台资料交換的序列子。

第二种方式是「XML序列化」。利用XML进行资料交換,可享有支援多种異质平台的好处。自行解析XML是一个方法,但效率较低,也不易验证符合企业商业逻辑的资料格式。

幸运的是,包括.NET与Java平台都已将XML的存取技术进一步得抽象化,同时可支援序列化。換句话說,开发人员可在Java平台上使用Mind Electri公司的XML序列子,或是利用.NET的System.Xml.Serialization.XmlSerializer类別。

开发工具如Visual Studio .NET,或是Mind Electric的Electric XML也多已支援可以视觉化方式建立XSD(XML Schema Definition),同时產生对应程式类別的功能。目前看来,排除第三协力厂商內建的序列机制之外,开发者自行建立XSD,再搭配XML序列化,将会 是进行资料交換最容易的方式。

以下介绍是利用Web services进行资料交換的几个进阶范例,包括介面整合、资料整合、流程整合等应用。

介面整合

企业主管或是知识工作者所注重的资讯,通常来自多种不同的企业解決方案,甚或不同的平台。将这些不同的资讯来源整合显示是最简单的方式。例如 Longhorn或是MSN Explorer便会在桌面右方提供「仪表板」,可透过Web services与其他相关技术同步显示,提供包括气象、交通状況、即时传讯的联络人清单、行事历、股票等资讯。当然不只一般的Windows程式,从企 业入口网站(EIP)的发展也可看到类似的应用,透过Web Part的技术,将可利用XML或Web services整合不同来源的资讯介面。

资料整合

英瑞得(Gismosoft)所开发的商业智慧行动解決方案就是一种典型的资料整合应用(如图)。该公司计画在Pocket PC中同时显示营运资料与地理位置整合的介面,必须整合地图系统与商业智慧资料仓储中的资讯。

由於不可能要求客戶自行维护一套价值数百万的地图系统,客戶也不可能将业务资讯轻易的由开发厂商处理,同时间,又要兼顾行动装置的应用。

最佳的方式就是将地图系统、营运资料全部Web services化。前者位於开发商的伺服器上,后者位於客戶的伺服器。Pocket PC透过GPRS与Web services撷取双边资讯,再进行交叉比对,最后呈现的便是具备地理资讯的商业智慧系统。

单纯的利用Web services将不同平台与企业解決方案裡的资料挖取出来,再整合显示固然不错,但是若能更进一步的将不同来源的资料进行交叉比对,将会產生许多机会与 应用。如微软,组织內部有一套供予销售人员存取的Sales Portal,內建许多Web Part,其中就有个名为「News in My Accounts」(跟我客戶相关的新闻)。

该系统可在销售人员存取Sales Portal时,自动辨识出销售人员身份,同时利用Web services取出內部Siebel CRM系统裡的客戶清单,再透过Web services与MS Library(新闻系统)进行交叉比对,所得应用就是可大幅減少销售人员閱读新闻时间的「News in My Accounts」。

可以简单的计算一下,如果全球每天有五千个销售人员存取这系统,每天減少一小时的时间寻找与客戶相关的新闻,不只可以即时掌握客戶状況,整体省下的时间成本也相当可观。

流程整合

可分析的不只是现在与过去的资讯,整合不同资料来源之后的分析数据,甚至可以取得营运趋势或是客戶行为预测的「领先指标」。一旦发现所要注意的现象与趋势,最后甚至还可以触发「行为」,也就是进行所谓的流程整合。

如前几期所提及的电子商务网站应用,甚可以将不同系统中的客戶资料(CRM)、销售资料(ERP)与客戶浏览习性进行交叉比对,进而辨识出新的商业机会, 同时开始运作流程,将相对应的促销商品、不同网站或网友的评价、运费等资讯自动整合成为个人化促销邮件递送给予相关客戶。

利用Web services进行整合工作而后衍生的应用可能,充满想像空间,就留待各位发展创意。


阅读(1014) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~