探索中国CIO人才现状 | 第四季调研报告
WebService的CRM接口设计与实现
2014-03-11  作者:万方数据 

  0引言


  随着网络业务的迅速普及,各种宽带接入用户的数量日益增长,即时响应对服务质量提出了更高的要求,使得电信运营商迫切需要加强业务处理能力,有效提高前台业务系统的响应速度、处理能力与服务质量,以提高客户满意度。然而,传统的分散、独立的支撑平台已很难满足当今客户的需求,急需开发相关的宽带预处理系统,整合运营商各宽带业务系统和管理系统资源,为前后台各部门提供方便快捷的预处理和维护支撑手段。该系统必须从各独立业务系统中,采集相关数据至统一平台,以便集中处理与呈现。然而,各独立系统分别具有各自的异构特征,必须对其数据统一存储格式;为此,就需要针对各系统进行分析,开发相应的接口。其中,为采集宽带用户信息和所承载的线路信息,必须研发与CRM系统的接口。本文详细分析该接口的需求,介绍基于WebService的CRM接口的具体设计与实现方案。


  1概述


  1.1Webservice


  WebService是一种通过web部署提供对业务功能访问的技术。它成为企业相互交流信息资源的一个接口。WebService可以突破服务器、网络宽带的限制,以较陕的速度提供跨平台的数据服务。XML是目前通用的数据交换格式,WSDL是一种XML文档,它包含了一组描述WebService的定义,类似C语言的头文件。当代计算机网络中,WebServiee主要以XML协议为基础,实现各个服务器上的数据集成,成功解决了各个系统使用异构数据问题。


  1.2XML


  XML(ExtensibleMarkupLanguage,可扩展标记语言)与HTML一样,都是SGML(StandardGeneralizedMarkupLanguage,标准通用标记语言)。XML是Intemet环境中跨平台的、依赖于内容的技术,是当前处理结构化文档信息的有力工具。


  1.3CRM


  CRM(CustomerRelationshipManagement,客户关系管理)的主要含义是通过对客户详细信息的深入分析,做出针对性的处理,来提高客户满意度,从而提高企业核心竞争力。从本质上看,CRM是利用信息技术来实现关系营销战略,旨在帮助电信营运商树立客户为中心的战略思想。


  2接口设计


  2.1功能需求


  CRM系统包含多种类型的数据,需从中提取出宽带用户信息和所承载的线路信息,转换成统一存储格式上交给宽带预处理系统,该接口设计思想如下:


  (1)数据采集:该接口与CRM系统通过TCP协议完成数据传输。把所要求的人口参数提供给接口,接口通过通讯协议采集到所要的数据并形成XML文件,XML客户端保存经过转换的XML文件,然后利用协议转换器读取XML文件。


  (2)数据分析:需要判断该接口是否成功采集到所期望的数据,从而便于进行下一步的相关处理。


  (3)数据格式转换:数据是从CRM系统采集而来。系统不同,对应的数据格式也不同,因此宽带预处理系统要利用CRM系统中的数据,必然要规范数据格式。


  2.2编程平台


  主要开发工具:VisualStudiO2005;


  数据库系统:Oracle9i简体中文企业版;


  操作系统:Windows2003AdvancedServer中文版。


  2.3接口实现


  2.3.1数据采集


  本接口程序中定义了两个对象ClientType和userAcc,对象ClientType存放的是当前客户类型,对象userAcc存放的是宽带用户帐号。


  (1)采集当前客户类型ClientType和宽带用户帐号userAecc。


  publicClientType()


  {


  idField=“banpre”:


  passwordField=“banpre”;


  }


  publicsuingid{


  get{


  returnthis.idField;


  }


  set{


  this.idField=value;


  }


  }


  publicstringpassword{


  get{


  returnthis.passwordField;


  }


  set{


  this.passwordField=value;


  }


  }


  userAcc为输入参数input。


  (2)利用ClientType和userAcc采集CRM系统的数据。


  通过输入的宽带帐号:userAce,ClientType,得到对象数组result,保存采集到的数据。


  publicobject[]GetDsHnfo(…)


  object[]results=this.Invoke(“GetDslInfo”,newobject[]{


  client,userAcc})


  userAcc=((string)(results[1]));//宽带账号


  lanld=((string)(results[2]));//城市编号


  adslNo=((string)(results[3]));//宽带编号


  phoneNo=((“IIg)(resuhs[4]));//承载电话


  facIP=((string)(results[5]));//设备IP地址


  macName=((string)(results[6]));//设备型号


  nodeCode=((string)(results[7]));//节点号


  nodeName=((string)(results[8]));11节点名称


  frameld=((string)(results[9]));//框号


  slotId=((string)(results[10]));//槽号


  portId=((string)(results[1l]));//端口号


  dsHColld=((string)(results[13]));//数据端口


  dsHColSeq=((string)(results[12]));//数据横列


  cListNa/lle=((string)(results[14]));//客户名称


  eustld=((string)(results[15]));//客户标识


  dslType=((string)(results[16]));//用户类型


  upRate=((string)(results[17]));//上行速率


  downRate=((string)(results[18]));//下行速率


  prodType=((string)(results[19]));//产品性质


  prodProp=((string)(results[20]));//业务类型


  measureld=((string)(results[21]));//测量台标识


  returnresults;//返回对象数组


  }


  2.3.2数据分析


  在设计接口时,利用对象数组results接收采集到的数据,根据多维results实现顺序提取相应的数据。


  publicSystem.IAsyncResultBeginGetDsllnfo(ClientTypeclient,stringtmerAee,System.AsyncCallbackcallback,objectasyncState){


  returnthis.Beginlnvoke(“GetDslInfo”,newobject[]{client,userAeef,callback,asyneState);


  }//开始诱发出dslam设备上相关信息


  publicstringEndGetDsllnfo(


  System.IAsyneBesultasyneResult,


  outstringuserAce,


  outstringmeasureId){


  object[]results=this.Endlnvoke(asyncResult);


  userAoe=((string)(results[1]));//提取用户账号


  lanId=((stung(results[2])));//提取城市编号


  measureld=((string)(results[21]));//提取测量台标识


  return((string)(results[0]));


  }//获取并利用对象数组results提取出相应数据


  3结束语


  上述接口设计方案已应用于某电信运营商的宽带预处理系统。实践证明,该接口在运行过程中,能准确完整地采集相关数据,达到了设计要求。