From www.zdnet.com.c
作者: Tony Patton
Web service出自于一个引入注目的概念,并如暴风雨一样被行业界所引用。虽然这一技术的进步比较缓慢,但其势头毫无下降的趋势。微软很快认识到Web service的强大潜力,并将其应用在各种产品的开发中。
缩写词的“攻击”
开发人员经常轰击行业内使用的缩写词,比如WSDL,COM,DCOM, HTML,RSS以及HTTP。你可能很难确定哪些缩与词值得注意。
SOA(service-oriented architecture)是微软一项项目,它可谓是缩与词应用的一个例子。
SOA通常会与Web service相关联。当这一关联不正确时,Web service将无需执行
SOA。
SOA产生一个系统的“弱耦合”,此时系统将不能被看成独立的实体,它们被开放与其它系统相互联系。一个系统可以被另一系统调用并执行一个任务,并且后一系统不需要知道前一系统的内部工作过程。
这一过程与DCOM技术有些不太相同。DCOM或其它同类技术的问题在于系统建立和所有权技术。XML的出现提供了有效封装数据的方式,而比如
SOAP的传递标准也将使得在网络上发送XML成为可能。
然而,Web service很快被IT业认为是执行基于
SOA方案的一个关键组成部分。而在这一点上微软可谓有当其冲。微软将
SOA应用在其系列产品开发中。我们范例的解决方案将利用微软的不同产品成员说明从软件开发的开始到使用的过程。在开发一个解决方案之前让我们看看假定范例程序的概貌。
假定范例程序
在范例中,我们将利用到可用于任何SQL Server安装版本的流行Northwind数据库。Northwind公司能够通过容易使用的接口来提供产品信息,而这一过程无需与Northwind工作人员联系。
与Northwind工作人员的交谈得到,该公司很多用户都可以使用计算机系统获得Northwind公司Web站点上的信息。其中一种简单的方法是通过Web接口来获得Northwind站点上的信息。而更为恰当的方法是开发Web service来处理获得信息的请求过程。因此,这些服务可以通过一个Web接口而实现,即直接通过用户程序或者其它客户程序而得到实现。
由于并非所有的用户都会使用计算机或者Web连接,由此这一方法无法完全脱离与Northwind工作人员的联系。然而,这可以使得公司的用户相互联系。现在让我们将注意力集中在解决方案的设计上。
设计解决方案
既然我们已经决定执行一个解决方案,我们必须弄清楚后台的数据结构,因为这有助于了解需要的数据类型。我们可以使用多张数据表格,并且将使用存储程序处理信息请求。存储程序的使用可以提高处理性能,因为它们通过数据库服务器编译,并将部分工作放置在数据库服务器中。对数据结构的熟悉可以掌握以下的信息:
Products table:包含产品ID的信息。用户能够通过产品ID、产品名称、提供商ID、提供商名称、类别名称、以及类型ID等搜索产品。
Suppliers table:用于通过产品请求返回或搜索提供商的信息,常与Products table联合使用。
Categories table:用于通过产品请求返回或搜索产品类别的信息,常与Products table联合使用。
现在我们已经了解了涉及到我们开发和测试的存储程序相关的数据结构。我们将使用到六种存储程序:
sp_GetProductByID: 返回与产品ID参数相匹配的所有产品。.
sp_GetProductByName: 返回与产品名称参数相匹配的所有产品。
sp_GetProductByCategoryID: 返回与类别ID参数相匹配的所有产品。
sp_GetProductByCategoryName: 返回与类别名称参数相匹配的所有产品。
sp_GetProductBySupplierID: 返回带有提供商ID参数的所有产品。
sp_GetProductBySupplierName: 返回带有提供商名称参数的所有产品。
存储程序相对比较简单。每一存储程序接收一个独立的参数,并使用一个基本SELECT语句根据使用的表格和数值返回相匹配的记录。你可以在Listing A中找到每一存储程序的源代码。
一旦我们建立和保存存储程序,我们可以使用SQL Server Query Analyzer客户程序测试它们。假设在运行这些存储程序过程中没有出现问题,我们就可以进入下阶段的开发。
下一步骤
随着数据库的建立,我们可以建立数据库接口Web Service。Web Service将提供数据库的接口,而这一过程可以隐藏从客户端连接和返回数据的繁琐细节。Web Service代码将利用Microsoft Data Access Application Block (DAAB)与SQL Server相互连接。