浅析Win Vista中的通信专家:Indigo
一个周末的早晨,业余编程爱好者小张打开计算机,当正在他冲咖啡的时候,计算机自动连接上网络,开始下载前一天没下载完的电影。而所用的这个名为X-eMule的软件,正是小张利用WinFX中的Indigo平台编写的P2P软件……如果说Windows Presentation Foundation(Avalon)是在外观之炫上做足了文章的话,那么Indigo则是在网络性能上下足了功夫,给程序员带来了巨大的方便。
预言:
Indigo将掀起P2P软件开发热潮
当今最热门的软件开发领域自然非网络应用程序莫属。随着因特网的普及和各种网络环境的建立,许多传统的单机版软件都纷纷加入了网络元素或重新改编为网络版本,而完全网络化的新软件更是层出不穷。为方便网络应用程序的开发,一些组织和业界巨头针对各种网络需求提出了一系列标准和技术,不过由于标准或技术太多,程序员在开发时反而无所适从。另外,尽管.Net使网络开发从系统底层中彻底解放出来,但在大多数情况下网络开发仍然是件困难的事情,特别是在设计服务程序的时候。
而Indigo在这方面作了较大改进,采用了包括WS-Addressing、WS-Policy、WS-MetadataExchange等在内的新规范和SOAP 消息传输优化机制。Indigo构建的网络应用程序不仅很容易同其他Indigo程序进行交互,而且可以同其他基于SOAP技术构建的、运行在非Windows系统上的网络程序进行交互。可见Indigo不仅适合于开发B/S结构的应用软件,而且同样适用于开发目前十分火爆的P2P程序。依靠强大的类库,Indigo将大大降低P2P程序的开发难度,很有可能掀起新一波P2P软件开发热潮,而这也许就是Indigo对普通程序员最具易做图力的地方。
Indigo的重要使命就是让网络间成为无障碍、无差别的通讯平台,形形易做图的网络应用都能借Indigo之力自由地交互。虽然这种“大同”的理想实现起来困难多多,但Indigo的确正朝这个方向迈进并取得了实质性的进步。而对那些进行跨平台开发的程序员来说,Indigo的这个特性一定会让他们感到欣喜万分。
冲锋陷阵:
Indigo!微软的重要棋子
Indigo提供安全、可靠以及事务化的协作通信功能,而这三个重要特性都受到开发者的一致好评。其内部的基础设施能够大大简化开发者面向服务的编程模式。在这种开发模式中,程序基于异步信息流通构成,而Indigo提供大量创建、销毁、处理以及转换的信息技术,可谓照顾周到。对程序员而言,Indigo最突出的价值就是将微软的各种网络技术统一起来,从而使程序员可以在一个平台上完成所有类型网络程序的开发,不像以前那样不同的类型必须选择不同的支持平台和工具。
Indigo还为事务编程提供了重要的支持。启用了Indigo的Windows版本支持一个基于服务的事务处理管理器,该事务管理器可通过System.Transactions框架或 WS-AtomicTransactions协议来访问。新的System.Transactions框架使整个平台(它支持 SQL Server、ADO.NET、MSMQ、分布式事务处理协调器DTC等)上的事务编程都变得简单高效。System.Transactions既支持基于ITransaction接口的显式编程模型,也支持隐式的编程模型(Indigo自动管理其中的事务处理)。这两个模型都可用于基于Indigo的应用程序。可以说,Indigo在统一各种网络标准上迈出了很有意义的一步。
目前,开发代码名为Indigo的技术已正式命名为Windows Communication Foundation。综上所述,Indigo提供的功能和灵活性对所有规模的组织和来自不同背景的开发人员都具有很大吸引力。它可以用来构建在单一计算机环境、在整个公司的Intranet 或全球的Internet中运行的连接系统。它适用于各种情况,从连接的行业垂直应用程序到交互式多人游戏都适用。除扩展了.NET Framework 2.0和Visual Studio 2005的功能之外,Indigo还可与BizTalk Server 2004配合使用已提供代理的和未经代理的应用程序到应用程序通信。
对于大部分人来说,Indigo是看不见的,只有程序员才会与它打交道。Indigo最主要受益人群将是目前使用微软开发工具Visual Studio.Net的开发人员。据行业分析师的说法,如果Indigo能够实现微软的蓝图,那么它的影响将是巨大的,而且有可能是.Net在同Java等架构竞争中决定胜负的一枚棋子,难怪微软会在Indigo上下如此大的功夫。而作为程序员,自然是乐见和乐用其成。