书籍节选:何时使用Web服务

以下内容摘自Anne Thomas Manes的《Web服务:管理者指南》,经出版商Pearson Education许可,版权所有2004年,出版名为Addison Wesley。

使用Web服务有许多令人信服的理由。

似乎每个人至少都在玩Web服务。几乎每个软件供应商都在其平台、语言和工具中构建对Web服务的支持。Web服务支持任何对任何集成,支持任何编程语言、任何运行时平台和任何网络传输。像SOAP和WSDL这样的技术比传统的集成中间件技术更易于使用,并且它们提供了更多的灵活性。当与特定领域的行业标准相结合时,Web服务可以实现前所未有的动态交互。更重要的是,他们可以让你的合作伙伴和客户更容易与你做生意。最重要的是,该技术的低成本、普及性和简单性让您现有的员工可以用更少的资源做更多的事情。

Web服务可以用于许多类型的应用程序。几乎每个应用程序都需要一些集成工作,所以我相信您可以找到一种在几乎任何项目中使用Web服务的方法。在获得一些经验之后,您很可能会采用Web服务作为标准集成技术。当你刚开始的时候,最好限制你的范围。从小处着手。花些时间学习这项技术。然后你可以把你的学习应用到更大的项目中。Web服务的一个很好的特性是您可以增量地使用它们。没有必要一下子解决一个庞大的项目。我建议您在可能产生重大影响的地方使用Web服务。

铃声器

哪些应用程序将从Web服务中受益最大?你应该从哪里开始?什么是关键的标准,应该敲响你的头,让你认为,“这是一个Web服务的工作”?

异构集成

第一个也是最明显的问题是需要连接来自不兼容环境的应用程序,如Windows和UNIX,或.NET和J2EE。Web服务支持异构集成。它们支持任何平台上的任何编程语言。关于Web服务特别有用的一点是,您可以使用任何Web服务客户机环境与任何Web服务服务器环境进行通信。

例如,JPMorgan使用Web服务将Excel电子表格连接到基于UNIX的财务数据。摩根大通为摩根大通经营全球批发业务。摩根大通是投资银行、资产管理、私人股本、托管和交易服务、中间市场金融服务和电子金融领域的领导者。该公司在全球50多个国家拥有财务分析师。这些分析师需要一种上传和下载财务、预测和其他相关数据的方法,这些数据在他们的电子表格中被用于各种遗留应用程序系统。

摩根大通知道很难找到一个单一的供应商解决方案,使它能够将Excel与各种基于UNIX的系统连接起来,于是决定使用Web服务。网络服务允许公司为等式的每一方使用正确的工具。JPMorgan使用Systinet的Web应用程序和服务平台(WASP)创建了一组Web服务,以方便访问遗留应用程序。现在,财务分析师可以使用visualbasicforapplications(VBA)宏和microsoftsoap工具包从Excel访问这些服务。

未知的客户端环境

下一个问题是您对将用于访问服务的客户机应用程序知之甚少或完全不了解或无法控制的任何情况。因为Web服务不需要特定的软件环境,所以不需要担心兼容性问题。

例如,conwaytransportationservices使用Web服务来支持与客户和业务伙伴之间的运输数据电子交换。康威是一家投资20亿美元的运输公司,总部位于密歇根州的安娜堡。超过三分之二的客户是中小型企业。康威希望为这些客户提供一种机制,支持与康威的运输系统紧密集成。面临的挑战是,这些客户在各种部署平台上使用各种运输应用程序。conway意识到,它没有选择要求这些客户安装一个具有有限部署选项的专有API来支持集成的conway业务事务。相反,conway使用ibmwebsphere开发了一组webapi。这些API支持发票、提单、订单提取和销售管理服务。客户可以通过conway网站与这些服务交互,或者使用webapi直接从公司应用程序系统进行连接。webapi支持任何类型的客户机应用程序内部应用程序以及打包的应用程序。

多通道客户端格式

第三个问题是需要支持多种类型的客户端格式,如浏览器客户端、富桌面客户端、电子表格、无线设备、交互式语音响应(IVR)系统和其他业务应用程序。Web服务以XML形式返回其结果,并且XML可以转换为任意数量的格式以支持不同的客户机格式。

例如,Wachovia使用Web服务来支持其客户信息系统Einstein的基于浏览器的客户端和富桌面客户端。瓦乔维亚是一家领先的金融服务提供商,拥有900万美国客户家庭。Einstein是一个GUI应用程序,它向银行职员提供有关客户的完整信息,并聚合来自多个后端系统的信息。一些银行职员使用浏览器访问爱因斯坦。另一些则需要更丰富的桌面界面。

如图7-3所示,Einstein是作为多层Web服务应用程序开发的。后端业务功能和数据源是大型机上CICS和DB2中实现的遗留应用程序。访问和聚合客户信息的中间层使用ibmwebsphere实现为一组j2eeweb服务。客户端环境是使用Microsoft.NET实现的。浏览器客户端使用Microsoft.NET WebForms实现,桌面客户端使用Microsoft.NET WinForms实现。爱因斯坦的体系结构还允许Wachovia实现其他类型的客户端接口,以支持IVR系统、无线手机、双向寻呼机和其他设备。

图7-3:Einstein支持浏览器和富桌面客户端,允许Wachovia在需要时支持其他设备。Einstein是使用.NET编写的,它通过使用WebSphere实现的Web服务从许多基于CICS的后端系统聚合信息。

其他Web服务应用程序

Web服务可以帮助您实现多种类型的业务目标。您可以使用Web服务来解决即时的战术问题。您可以使用它们来帮助您管理软件资产、利用遗留应用程序并降低开发成本。Web服务还可以帮助您优化业务流程并改善客户关系。

点对点集成

使用Web服务的第一种也是最基本的方法是进行简单的点到点集成。例如,Cape Clear使用Web服务将员工的电子邮件客户端与其CRM解决方案连接起来。CapeClear是一家Web服务软件初创公司。它使用Salesforce.com网站作为其CRM解决方案。Salesforce.com网站提供使用ASP样式模型的托管CRM解决方案。用户通常通过浏览器与CRM解决方案交互,记录客户联系信息和通信。

与大多数软件初创公司一样,Cape Clear提供基于电子邮件的客户支持。因此,相当多的客户通信是通过电子邮件进行的。但是Salesforce.com网站没有为Cape Clear的员工提供一种简单易行的方法来将这些通信记录在Salesforce.com网站数据库。用户必须将Outlook中的电子邮件复制并粘贴到Salesforce.com网站浏览器界面。Cape Clear发现很多信件没有被记录下来。

Salesforce.com网站提供了一个编程API,因此Cape Clear决定吃自己的狗粮,并使用Web服务解决这个问题。第一个Cape Clear使用Cape Clear Studio为Salesforce.com网站本机编程API。此适配器接受SOAP请求并将其转换为Salesforce.com网站本机API。接下来,Cape Clear使用microsoftsoap工具包开发了一个Outlook宏,它接收Outlook电子邮件并使用SOAP将其传递给Salesforce适配器Web服务。适配器服务然后将消息传递给Salesforce.com网站使用Salesforce API。

这个Outlook宏向标准Outlook工具栏添加了一个标记为“保存到Salesforce”的按钮。如图7-4所示,当用户单击这个按钮时,Outlook宏捕获电子邮件,将其打包为SOAP消息,并将其发送到Salesforce.com网站适配器Web服务。然后,Web服务使用本机API将电子邮件转发到Salesforce.com网站,它会记录它。

图7-4:Cape Clear使用Microsoft SOAP工具包开发了一个VBA宏,它接收Outlook电子邮件并使用SOAP将其传递给Salesforce适配器Web服务。适配器服务然后将消息传递给Salesforce.com网站使用Salesforce API。

在看到使用SOAP进行集成的优点之后,Salesforce.com网站已经决定除了本机编程api之外,还开发自己的一套Web api。如果你是一个Salesforce.com网站客户,您不需要构建自己的适配器Web服务。

合并视图

最流行的内部集成项目之一是支持信息的整合视图,以使您的员工更有效。例如,您的组织中可能有许多人与客户互动。每次您的员工与客户交互时,您都希望让他们能够访问客户关系的各个方面。不幸的是,客户关系信息可能在各种系统中维护。好消息是,整合的客户视图提供了对所有这些系统的单一访问点。

您可以使用Web服务来实现这种类型的合并视图。例如,Coloplast正在使用Web服务来改进其销售和客户支持功能。Coloplast是一家全球专业医疗产品和服务提供商。作为改善客户关系举措的一部分,科洛普拉斯特希望建立一个最先进的呼叫中心系统,让客户代表能够实时访问完整的客户历史记录和产品信息。该公司选择Siebel Call Center作为基础应用程序,但需要将该系统连接到其后端基于as/400的ERP系统,后者负责管理销售、制造和分销功能。它是通过Web服务实现的。Coloplast使用JacadaIntegrator为遗留的AS/400应用程序系统创建Web服务适配器。Siebel Call Center使用这些Web服务提供客户关系的360度视图,包括访问后端流程,如未结订单状态、库存信息、客户信用检查和特殊定价。此解决方案提高了效率,提高了员工和客户满意度。