UML创始人Grady Booch有时把自己描述为“软件考古学家”。作为IBM的同道以及IEEE软件专栏作家,他希望面试小组可以知道系统的创建是多么重要。
著名软件方法论学家最近将其注意力转移到IBM的Watson上,Watson是一个在电视节目《危险边缘》中战胜了人类的问答自然语言处理系统。
上个月,Innovate 2011上,Booch走到“斗篷之下”,揭秘了Watson的系统架构。Booch描述了关键项目战略和产出。这些包括重要的设计决策,像Watson使用管道过滤器架构模式进行平行化,用基于XML的UIMA-AS(Unstructured Information Management Architecture with Asynchronous Scale-out)模式开发。
危险边缘
此外,Booch简短地介绍了Watson的下一步计划。现在它已经获得了《危险边缘》的冠军,其底层架构和代码将会被重新分解,成为用来处理非结构化数据的商业系统。医学诊断很可能是第一个目标,其他的也在考虑之中。
“我就是个说书先生,” Booch告诉Innovate与会者,他实际并没有参与Watson的设计。他介绍他的工作就是“就是以旁观者的身份来解密Watson系统架构师制造的设计方案。”
架构的精华是什么?决策!
从一种很高的观点来看,IBM的Watson先进行问题分析,生成一种假设,缩小可能的答案范围,然后根据信心程度数呈现出最有可能的答案。
IBM的Watson提出答案或者问题,速度非常快,大约是2.7秒。
Watson有很多部分组成。有大约一百万行代码。大多以Java和C++编写,但是也包括其他语言。代码翻译成130个软件组件。从应将的观点来看。有90个IBM Power 750服务器处理负载。
“架构就是精华所在,” Booch说,“它也是‘承重墙’。”
“根本上,架构是关于决策的,”他说。
在Watson架构师创造的决策中关键设计决策就是采用管道过滤器架构模式,这也软件界的杰出人物,像Mary Shaw和David Garlan和Gregor Hoppe所描述的。这种模式可以轻松平行化,从而处理必须处理的海量数据。两一个重要的设计解决方案就是选择了UIMA。
UIMA-AS建立于相对不了解UIMA标准的时候,这个标准始于IBM研究院,为DeepQA(深度问答)项目设立了舞台,最终是Watson项目,逐渐成为OASIS的标准。
UIMA-AS包括框架、基础架构和组件,用来分析和《危险边缘》竞争者非结构化数据的注释,或者是医师,这也是正在努力的部分。UIMA-AS现在在Apache软件基金会的支持下已经在之前的版本中改进了可用的扩展性。
开源软件对于Watson运营非常重要。为了进行通信,Watson的设计者跨越JMS使用UIMA-AS,JMS是访问大型内存数据集的DeepQA协议以及Indri分布式搜索协议。
IBM Watson代码进一步重构
从用例的观点来看,Watson有三个基本集,根据Booch所说。他将这三个基本集描述为源摄入(或者信息收集)、训练(或者机器学习)以及博弈(或者回答)。
目前,Watson是IBM研究院的努力成果,但是系统基于类似的软件架构基础将会很好地进入企业。除了医学诊断,金融和通信都是Watson的目标。
为了实现这些还有很多事情要做。新的开发也必须进行。代码重构必须具体的性能为进行。研究项目转为商业项目时,这种情况并不常见。代码将会重新编写,以便获取更多的可读性和维护性。配置管理的通用方法将会有所应用。所有的这些,用Booch的话说就是将研究项目转为产品线的一部分。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
Alphago与IBM Watson是不是一样的?
-
代码重构工具选择的七大标准
代码重构工具有很多,不管是Java、PHP、.NET还是其他,都有工具帮助重构代码的繁重过程变得轻松一点和安全。其数量已经多到眼花缭乱令人难以选择的地步。
-
实例操作:十个步骤教你将闭源项目转换为开源
Difio是一个闭源项目,但是作者决定把它开源,以便能够内部部署,以及吸引更大的社区参与。以下是作者Alexander Todorov撰写的在将Difio开源过程中所经历的10个步骤。
-
推荐五款优秀的PHP代码重构工具
软件重构需要借助工具完成,而重构工具能够修改代码同时修改所有引用该代码的地方。本文收集了五款出色的PHP代码重构工具,以帮助你完善更加优秀的项目。