Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1441553
  • 博文数量: 1125
  • 博客积分: 10010
  • 博客等级: 上将
  • 技术积分: 16710
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-03 14:05
文章分类

全部博文(1125)

文章存档

2011年(1)

2008年(1124)

我的朋友

分类: 服务器与存储

2008-12-17 16:35:42

      自中兴公司测试系统开发部成立以来,我们一直在不断摸索和实践一切可能的方式来改进我们的生产测试系统效率和工作方式,其中P60A二期是我们一个很重要的战略部署,在该项目上我们借鉴多种方案所确定的生产测试系统软件框架比原先的单机版程序方式有了很大的提高,该系统目前已经看到了初步的成效,并且开始逐渐运用到我们的产线上了。回顾P60A走过的历程,其实让人很有感触。

       记得最早聊到这个话题的时候,有三个人,陈磊,李林侠和我。当时我因为作P920板测得原因接触了VAT,然后开发了AMSGUI并在南研所推广,而当时李林侠也在做他的MShell。部门还没有成立之前,P60A项目组就开始考虑整合的问题,因此大家就开始讨论具体的方案。我是完全copy VAT的思想,没有任何自己的看法,而李林侠有着更伟大的构想-分布式软件系统。虽然最终由于某些原因,P60A采用了VAT的思想进行系统的开发,但是不能否认,自从软件诞生以来就有着不可阻挡的发展趋势,我们在一段时间内可以墨守陈规,但我们最终是需要变革的。以目前互联网行业流行的趋势来看,未来是云的世界。因此我相信我们的测试系统的未来也是云。

       先粗浅的谈一下李林侠所提出的分布式软件架构:

从系统架构图来看,这确实是一个伟大的构想,利用Web服务器,数据库以及DCOM组建技术实现分布式的测试系统开发和控制。但是,其设计的客户端过于肥大,他将所有的功能全放在本地进行,只有数据库部分与Web服务器关联。即Web服务器没有发挥其真正的价值,只是做了一个傀儡管理者。现在我们知道这不是云。

       严格的说,李林侠是在COM技术的基础上实现了本地的一个肥客户端,通过互联网将数据存入数据库,其实这是一个典型的二层软件模型,目前P60A项目组实现的思想也是一样的。稍微有点区别的就是,目前P60A采用的VAT的中间适配的方式比较灵活。并且,60A利用纯虚类实现了COM组件的IUnknown接口。以达到类似COM组件基本功能的目的。

       软件系统的趋势是人力无法抗拒的,在许多的软件书籍中都多次谈到软件系统的趋势和革命,这也是我写这篇文章的一个缘由。这个序将引入的最重要的部分就是下面我要说的,未来软件系统的趋势。

二 云

 

 

 

云计算(Cloud computing),是指基于的超级计算模式。即把存储于和其他设备上的大量信息和资源集中在一起,协同工作。它是一种新兴的共享基础架构的方法,可以将巨大的连接在一起以提供各种服务。很多因素推动了对这类环境的需求,其中包括连接设备、实时数据流、SOA的采用以及搜索、开放协作、社会网络和移动商务等这样的应用的急剧增长。另外,数字元器件性能的提升也使IT环境的规模大幅度提高,从而进一步加强了对一个由统一的云进行管理的需求。

       以上黑体是从网上摘抄的一段关于云的描述。我记得有一次在和陈磊他们讨论P60A的时候我随口说了一句,”干脆把它做成一个只需要用户打开浏览器就可以干活的系统”,后来我一直在想这个思路,慢慢的我发现它很接近云。最后我可以确定它就是云。

       Google的全球副总裁李开复对云有一个恰当的比喻:

。最早人们只是把钱放在枕头底下,后来有了钱庄,很安全,不过兑现起来比较麻烦。现在发展到银行可以到任何一个网点取钱,甚至通过,或者国外的渠道。就像用电不需要家家装备发电机,直接从电力公司购买一样。“云计算”带来的就是这样一种变革——由谷歌、这样的专业网络公司来搭建计算机存储、运算中心,用户通过一根网线借助就可以很方便的访问,把“云”做为资料存储以及应用服务的中心。

 

有的时候我会设想一些关于云运用到我们测试系统的一些场景,很兴奋:

1.  产线需要执行生产任务时,由技术人员在任意接入网络的电脑上(甚至手机上)输入一个网址,进行一些列配置和设定,然后启动上海的某一个云服务器的该项任务。同时,每个测试站都打开一个IE或者别的什么浏览器,进入到某一个网址,做一些简单配置然后点击运行。生产就开始进行了。产线唯一需要做的就是确认硬件连接和网络没有问题,以及操作夹具关开的动作。这时,某位领导想了解目前的生产情况,登录某个网址经过权限认证以后就可以看到所有的情况,当前使用的仪器,生产的手机型号,各项问题,进度等等。这时候,突然有一个问题需要工程师解决,在深圳的产线一个电话打到上海,某位工程师接了电话以后登录到一个网站上先停止该条线的程序运行,同时根据记录的数据发现和排查问题,然后编写一些脚本,之后发布到Web服务器上,然后控制产线继续生产。

2.  我们不需要再去搞一大堆标志位放到手机里,万一某个手机漏掉了,云会告诉你这个手机的一切情况,并给出你建议应该如何处理这个手机。

3.  产线可能不会再抱怨某些机器配置很低,根本无法作校准用。因为这些机器只需要把数据通过互联网发给云就行了,它不执行复杂计算和占用大量系统资源。

4.  我们有一大批的开发人员,每天的工作就是打开网站,根据自己编写模块的反馈进行实时更新和维护,任何时间,任何地点(比如在宾馆,在车上,在度假村。。。。)。我们的系统工程师,在中试预中试阶段登录到网站上进行该项目测试计划的编写和发布,并且指定某个人维护哪个某块,并监督该员工维护的情况。

5.  当我们在上海的服务器被黑掉以后,立刻启用在深圳的备用服务器,同时在南京还有一个备用服务器在等待着。。。。。。

6.  我们在世界各地的许多云服务器都是从IBM等大公司购买的几万亿MIPS计算能力的超强大脑,他们每天反复不停的计算着你想象不到的海量数据。

7.  以前一些本地程序运行的校准算法被搬到了云里,产线上的仪表通过LXI总线时刻与云联系着,但只是汇报测量数据,本地计算机也不知道校准的结果,等待云告诉他结果以后写到手机里。我们的云服务器可以针对一条线同一时刻所有手机的测量结果,进行复杂运算寻找出最合适的结果反馈给每一部手机,同时记录在数据库里,当一部手机出了问题以后,只要在世界的任何一个地方访问云服务器,它就会根据你手机的SN号修复你手机所有的NV参数。

8.  我们手机用户可以通过某个途径接入到网站的某些特定网页上,针对自己的型号手机进行升级和修复功能,当然有些是要收费的。

9.  维护Web网站的工程师还可以维护一些新闻和新的消息功能,聊天室,问题反馈和手机,生产问题查询库等一系列服务功能。测试系统开发将更像一个运营商的角色,维护着一个庞大的体系,以解决所有公司从研发到转产的一些列问题。无论研发人员,生产人员,售后人员将更多的是登录该网站做一切有关操作,反馈问题,同时有一批维护人员和开发人员通过系统在不断的支持和改善。

10.  也许有一天,我们可以利用自己生产出来的手机,通过WIFI或者TD网络连接到Web服务器上直接进行各种升级或者其他服务,或者代替PC控制和查询产线的一切。

 

三 具体实现

       这一切的一切就起源于小小的概念,C/S架构的拓展。

       最早的计算都是单台处理,比如上世纪的IBM PC机,苹果的Mac。就好像我们现在的单机程序校准软件一样,我们为了某个功能编写一个简单的小工具,给产线使用。有了问题飞到深圳去调试。回来后发布新的版本。产线电脑里一堆一堆的安装程序,大部分还都没有用了。

       后来有些人发明了网络,据说cisco的创始人波萨克和勒纳为了在实验室里通过计算机互表爱意发明了路由器,把所有网络连接在一起。后来诞生了至今都很实用的C/S架构,QQ,网络游戏等等一大批互联网业务都是采用这样的架构。就好像我们现在的P60A,有一个强大的客户端程序GET,通过FIS与数据库进行连接,执行很多本地的计算,反馈到数据库里去。

       现在,出现了云,抢夺了肥客户端的大部分业务,使得客户端无所事事,变成一个人机界面或者数据采集的瘦客户端。这就是我们的未来。

       我相信我们基于云的测试系统构想一定会成真,而且目前已经没有技术障碍了。

       主要的技术微软公司已经提供的非常完善了,其中包括ASP,DHTML,DCOM/ActiveX,VBScript/JavaScript,Web2.0,HTTP,IE浏览器,ADO/ODBC,SQLserver。VS 2003/2005。其中核心应该是DCOM技术,以及Web服务器技术(ASP,DHTML,HTTP)。

       这里面我提一下以前黄淑敏曾设计的CFIS架构,它是基于TCP/IP协议走XML报文的方法进行C/S沟通的,有点像刘帅在P60A里面设计Icore的来替代Iunknown一样,其实相当于自己从新实现了一些微软或者业内已经做好的东西。CFIS就是一种类似HTTP上传输HTML的概念,HTTP本身就是建立在TCP/IP网络层上的一个应用层,通过HTML描述语言来搭建服务器与客户端浏览器之间的通信桥梁。而且目前互联网全部使用了后者来实现业务。因此我们应该顺应主流技术使用后者搭建更丰富的web服务器。

       根据各方面的综合因素我提出一种新的技术实现方式如下:

 

 

云计算中心

Web服务器

它的作用是建立一个数据和服务收集提供对象。使用互联网目前普遍采用的一些技术来达到目的。通过HTTP协议与客户端浏览器进行沟通,传送ASP动态网页,根据配置将web服务器上的各种功能模块加载到本机执行,回收数据。通过DCOM技术编写各种ActiveX控件来完成功能,如下载,写板号,校准,综测等等。提供给Web服务器调度,上传到需要使用的远程客户端执行。

 数据库

执行存储备份和分析数据的功能,以HTML格式生成各种实时数据报表网页,返回给web服务器供所有远程客户端查询。

 云计算核心模块

用来处理各种Web服务器上收集来的信息。

举个简单的例子:

    生产线某几个站点正在进行A项目的手机校准,校准的过程将是如下的情况:

 1 每个站点的操作员打开IE,连接到Web的相关站点,启动任务执行,IE会从Web站点上下载相应的控件来执行实际的操作,

2 连接手机和仪器,

3 控制手机进入发射状态,

4 仪器收集数据并汇报给云去处理。

5 再进入接手状态从手机获取数据,

6 将数据汇报给云处理,

7 这是获取到云传来的发射机校准结果,

8 等待接收机校准结果,写入手机。

这样能够节省大量的计算时间,使IE仅仅变成一个控制仪器和手机采集数据的通道。

归根到底的思想是,我们可以利用各个站的信息收集,集中处理已达到数据共享和并行处理等效果,从而在质量上和效率上得到极大提高。

 总结

    本文可能比较粗浅,也许有些技术上理解不到位的地方,但是我相信云计算生产测试系统一定会出现,我们的测试系统也必将沿着国际上主流的软件架构趋势发展。而且会在世界前几大手机制造厂家率先实现。我希望我们中兴通讯是业内第一家。

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