比特网:能否请您详细介绍一下微软的SOA战略,特别是它技术实现的细节。
杨晨:微软SOA 的解决方案是微软“软件+服务”的重要组成部分,针对目前企业发展现状可以按需定制IT架构整合的SOA解决方案使IT能够随业务而动,或者通过“软件+服务”的方式在Internet上构建云端的服务应用从而拓展企业的业务范畴,使IT能够发挥更大的价值。
概括起来说,微软SOA的实施要经历凿山开渠、筑堤修坝和汇泽四方3个步骤。
所谓凿山开渠(Expose)就是打开各个应用的接口。而筑堤修坝(Compose)则是指在能够自由访问到各类系统数据的前提下,针对前端应用需求定制服务接口,并在其中协调应用之间的通信与同步。最后一步汇泽四方(Consume)则要求将前端用户可以通过丰富的交互界面对各类服务接口进行消费。
之所在要经历这三个步履,是由于企业现有的IT 基础架构非常复杂,而且是分布式的,它们已经不能够满足企业特殊业务的需要,而且管理维护的成本代价高,更无法灵活地满足业务增长和变化带来的需求。然而,要想解决这个问题,既不能卸载和替换现有的系统或应用软件,也不能全部更新,而是需要找到一种方法,能够利用现有的IT 基础架构来有效的支持组织的总体目标。基于微软的面向服务架构(SOA),就可以达到这个目的。
具体来说,单就SOA的构建而言,微软所提倡的是一种“由内向外”的SOA构建方式,即在未来整体远景架构规划清晰的前提下,从最迫切需要整合改变的应用入手,逐步将各类复杂应用挂靠到企业服务总线上去。“由内向外”的SOA构建方式实际易行,既避免了自上而下整体SOA设计耗时长,设计难度大,系统改进跟不上业务发展等缺点,也避免了自下而上的局部SOA 实施所带来的一叶障目,缺乏总体规划的问题。
这样,微软SOA的实施核心,就是一个3x5的矩阵。(如下图所示)
从软件实施角度来看,最早的原始软件主要有交互界面(Interaction)和数据两部分,现代软件逐步发展成为包含5个要素:交互界面,工作流,数据,安全控制,消息及服务。
从3x5的矩阵中,我们会发现SOA所需要的技术实际上微软已经提供了完整的解决方案。对于SOA的核心企业服务总线(Enterprise Service Bus),微软通过.Net和BizTalk能够得到非常好的实现。SOA所需要的开发平台与IT Governance通过VSTS与System Center可以得到很好的控制。数据管理与整合通过SQL Server实现,而前端的展现则通过Office及SharePoint得到出色的用户体验。
所以,总体来看,微软SOA的产品基础已非常成熟,可以支持用户全部的业务需求,还能与微软的旧版本产品和其它公司的第三方应用程序互通,这样可以最大限度的利用用户现有的IT投资。同时,还为将来的业务打下来了良好的基础。这个产品套件还拥有统一的标准和内置性,从而能够创建一个适应企业级可扩展性的平台。
这个产品套件包含了微软BizTalk Server、Office SharePoint Portal Server和.NET 框架。再具体点说,BizTalk Server专门负责为企业提供业务流程的自动化和优化。Office SharePoint Portal Server实现了各种业务流程信息的安全共享,包括跨业务系统和组织界限的,从而能够让工作人员能够更好的了解商业信息以做出决策。它还提供了全面的内容管理和快速共享的业务流程,从而有助于提高企业的工作效率。而.NET 框架则提供了一个开发环境,独立软件供应商和IT公司软件的开发人员能够利用互相连接的网络客户端中的应用软件来实现工作流。
比特网:在微软的SOA战略中,涉及到了微软的全线产品,但SOA实现的核心部分以.NET Framework、BizTalk Server、WCF(Windows Communication Framework)、WPF(Windows Presentation Foudation)为主,您能否谈一下这三个产品是如何配合及分工的?
杨晨:面向服务的体系结构内置在Microsoft技术堆栈的各个层面中,它们包括:从开发人员用来创建.NET等Web服务的工具,到服务器产品(例如BizTalk Server和Microsoft Office SharePoint Server,通过连接和协调各种服务,它们强化了Web服务的结构),乃至享用Web服务的复合应用程序(例如,通过内联网(Intranet)、外联网(Extranet)或国际互联网(Internet)提供的基于Web的应用程序,以及使用Microsoft Office或智能客户端技术开发的丰富的客户端应用程序)。
Microsoft正致力于提供一种重要的生态系统,以便通过它来创建和管理各种连接系统。Microsoft已经对Web服务做出了巨大的投资,针对Web服务,它使用了Microsoft .NET来创建它的整个下一代开发人员平台。
对于软件开发人员而言,.NET Framework是Microsoft的托管代码编程模型,可使用它在Windows平台上创建应用程序。2006年发布的.NET Framework 3.0使用创建应用程序的新技术扩展了.NET Framework 2.0的应用程序编程界面,这样就可以提供可无缝互操作的通信以及各种业务流程的建模能力,管理标识并创建不同的用户体验。
.NET Framework 3.0用于创建和利用Web服务的扩展组件包括Windows Communication Foundation (WCF)、Windows Workflow Foundation (WF)、Windows CardSpace以及Windows Presentation Foundation。比较特殊的是WCF和WF,它们提供了非常强大的新功能,可用于开发启用了Web服务的松散连接的应用程序:
具体来说,Windows Communication Foundation可以让在组织机构内部以及跨越地理分布的站点连接系统和应用程序就变得更加容易。它的创建完全是为了提供隐含的面向服务应用程序开发功能。WCF为开发人员提供了高效的框架,可用它来创建安全可靠的Web服务应用程序,这种应用程序能够跨越各种平台进行互操作,因此,WCF提高了Web服务的等级。现在,开发人员可以集中精力进行业务逻辑方面的工作,而把底层的“管道工程”(plumbing)留给WCF处理。除了为创建Web服务提供编程模型之外,WCF还带来了一套工具和管理功能,它们使IT专业人士创建、部署、配置和监控Web服务都变得更加容易。
而Windows Workflow Foundation则属于编程模型、引擎和工具,它可以在Windows上快速地创建启用了工作流的应用程序。它提供了一个通用的框架,可将工作流创建到Windows应用程序中,而无论这些工作流是否能够协调软件之间、人之间或二者之间的互动。
说到BizTalk Server,它可以作为.NET Framework 3.0开发人员技术的补充。BizTalk Server是一个定位于IT专业人士和结构设计师的服务器产品,它使客户可以对系统、工作人员和贸易伙伴进行集成。BizTalk Server的核心体系结构是以XML和.NET Framework为基础的,它完全支持创建Web服务的所有开放标准。BizTalk解决方案可以享用现有的Web服务,并将业务流程(BizTalk编制)公开为Web服务。BizTalk还充当了编制Web服务的管理层,它可以控制Web服务之间的流程和相互作用,并将单独的服务聚合至一个较大的复合解决方案中。
BizTalk Server还有一个突破点,这是Web服务无法做到的,这就是实现了应用程序和系统的集成。通过使用各种不同的适配器,BizTalk Server能够在整个组织机构的范围内提供传统系统和应用程序的功能。 BizTalk Server还与Microsoft Office SharePoint Server进行了集成。通过BizTalk Server与SharePoint的协同工作,创建涉及信息工作者的端到端的“全员就绪”业务流程解决方案变得更加简单。如果整个桌面部分的业务流程解决方案出现混乱,SharePoint将允许信息工作者收集和管理业务数据(通过捕捉XML中的结构化和非结构化数据)。然后,BizTalk Server将为跨越了系统和人员长时间运行的流程充当中心控制点。
比特网:提起微软的SOA,还有一个产品不得不提,这就是Oslo套件,能否请您简要地介绍一下Oslo套件。
杨晨:在第五届微软SOA暨业务流程会议上宣布的代号为Oslo的技术蓝图,是一个整合服务导向架构(SOA)及建模应用程序的技术平台,微软将陆续把此一技术平台嵌入各项产品中。Oslo可让应用程序自设计到部署互相连结及更有效率,降低复杂度,结合企业及网络,并简化互通及管理方式,将应用程序提升到新的等级。
微软计划在五大领域的服务器及工具产品中嵌入Oslo技术,在服务器中,微软的BizTalk Server 6除了持续提供SOA及BPM解决方案外,也将具备可开发、管理及部署合成应用程序的能力;在服务上,微软的BizTalk Services 1将提供代管服务的商业版本,并具备传讯、身份认证及工作流程等功能;在架构上,.NET架构第四个版本将提供模型驱动开发功能;在工具上,Visual Studio 10将在端点对端点的应用程序生命周期管理透过模型驱动设计的新工具强化其功能;在储存上,微软持续投资可横跨服务器及工具产品的元数据储存器,包括System Center 5、Visual Studio 10及BizTalk Server 6都可利用该储存器技术以管理、改写或部署模型。
谈起微软公司,业界专业人士更爱用军团这个词形容它。而今天,当微软正式扬起SOA大旗时,我们不难发现,从.NET Framework到BizTalk Server,再到Oslo套件,一个强大的军团已经在整装待发了。此时此刻,当我们了解了微软SOA军团的配置情况以后,也许我们关心的下一个问题,就是这支军团在接下来的战役中,会取得什么样的战果了。