ASP.NET Web服务实现软件共享

来源:IT专家网

  Web services 通过使用 XML 消息处理启用数据交换和应用程序逻辑远程调用,使数据能够通过防火墙,并在异类系统之间移动数据,它为实现数据和系统的互操作性提供了一种可行的解决方案。

  本文针对传统软件共享问题提出一种新的通过软件功能共享而实现软件共享的方法,这种方法的优点是以远程调用Web服务的形式实现软件功能的共享,而不将软件拷贝到客户端,也减小了网络上的一些资源冗余,也有利于共享现有Web服务集成新的系统。而且本文通过学生身份验证模块实例分析了这种新方法的有效性。

  软件共享的意义

  随着计算机应用的普及与发展,大到各个行业,小至一个公司、部门都开发并应用了实用的计算机软件。这些软件大大地提高了公司企业的工作效率和现代化管理水平,它已经成为公司企业商业运行和管理的核心。但由于大多数公司几乎在每个部门广泛采用的是自定义软件,因而导致产生了大量实用但孤立且重复的业务逻辑块。如果在设计开发时能够避免重复设计,而是采用软件功能共享的方式来实现各个模块相同功能的话,那将大大节约软件开发成本,也为将来的系统升级和集成提供很好的构架基础。另外,对于已经存在的业务逻辑,可以通过少量的改进以便被其它应用程序所共享,从而降低开发成本。

  由于开发每个应用程序所处的环境是多种多样的,而技术在永不停歇地发展,因此,共享已经存在的应用程序来创建一个功能集合在过去是一件非常困难的事情。值得庆幸的是,Web Services技术的出现为软件共享的实现提供了可能,软件功能的Web服务化,提供了在Internet范围内可共享的业务逻辑,最终形成以各种Web服务为基础的开放性的功能构件体系。下面,将对如何利用Web Services技术实现软件共享进行探讨。

  基于Web Services技术实现软件共享

  1、Web Services技术简介

  Web Services可以看成是部署在Internet上的API,它可以方便被应用程序甚至其它Web Services集成和调用,形成新的应用服务。它具有完好的封装性,松散耦合,高度可集成能力。毫无疑问,Web Services技术将成为下一代Web的主流技术,它是实现"软件作为一种服务"的体现。

  Web Services体系结构如下,由服务请求者、服务代理者和服务提供者组成:

  

  Web服务提供者就是Web服务的拥有者,它在服务代理处注册以配置和发布服务,并耐心等待为其他服务和用户提供自己的功能; Web服务请求者就是Web功能的使用者,它使用查找操作来从服务代理者检索服务描述,然后与服务提供者绑定并调用Web服务或同它交互。

  Web服务提供者相当于中介,它把一个Web服务请求者与合适的Web服务提供者联系在一起,一般是UDDI,UDDI为服务请求者提供了动态查找Web服务的机制。

  2、基于Web Services的软件共享的实现方式

  在软件开发过程中,人们常常按照功能把软件划分为不同的模块,以方便模块功能的重组复用和修改升级。通过Web Services技术实现软件共享,也需要首先对集成系统按功能划分模块; 然后,创建Web服务来实现这些功能模块; 为了使Web服务可访问,还需要发布服务描述(部署Web服务)以便其它模块可以查找并调用它。这样,以Web服务方式实现的软件功能就可以被应用程序甚至其它Web服务共享。

  应用程序或其它Web服务等服务请求者当需要调用Web服务时,首先检索服务描述或在服务注册中心查询所要求的服务类型。当找到所需服务时,就可以使用服务描述与服务提供者进行绑定,并调用相应的服务。

  微软新推出的旗舰产品Visual Studio.NET是被称为开发Web服务的首选工具,使用Visual Studio.NET可以非常方便地实现Web服务创建与调用。下面,将给出一个具体的基于Web Services技术实现软件共享的实例。

  3、软件共享的应用举例:学生身份验证模块的共享实现。

  目前,在高校中有很多的软件系统,例如:选课系统、成绩查询系统、网络课程系统、图书馆系统、学生财务系统等。由于各个系统相互独立,每一个系统都有一个学生身份验证模块,存在功能上的重复设计; 另外,各个系统的相互独立,存在着学生需要记忆不同系统的密码。

  鉴于以上情况及目前校园网络的高度发达,我们完全可以用Web服务的方式来实现学生身份验证模块的共享。下面将介绍使用Visual Studio.NET环境用C#语言实现创建并调用学生身份验证Web服务的过程。

  1) Web服务的创建

  学生身份验证模块有1个Web服务构成:

  public Boolean ValidUser(string userID,string Pwd)

  Web服务ValidUser用于验证学生身份。已经在Sql Server数据库StudentsInfo中建立了一个学生基本信息表Student,其中字段UserID、Pwd分别保存学生的用户代码及密码。

  下面将具体介绍Web服务的创建过程:

  a 运行Visual Studio.NET开发环境,新建"ASP.NET Web服务"类型的项目WSStudentLogin。

  b Web服务的具体代码实现。

  using System.Data.SqlClient;
  //省略代码……
public class Service1 : System.Web.Services.WebService
  {
  string ConStr="";
  ConnStr="DATABASE=StudentsInfo; SERVER=10.1.111.19; UID=sa; PWD=; ";
  //省略代码……
  [WebMethod]
  public Boolean ValidUser(string userID,string Pwd)
  {
  Boolean flag=false;
  string sqlStr="";
  //建立一个数据库连接对象
  SqlConnection tempConn=new SqlConnection(ConnStr);
  sqlStr="select * from student where ID='"+userID+"' and pwd='"+Pwd+"'; ";
  //建立一个命令对象
  SqlCommand tempComm=new SqlCommand(sqlStr,tempConn);
  tempConn.Open();
  SqlDataReader tempReader=tempComm.ExecuteReader(CommandBehavior.CloseConnection);
  if (tempReader.HasRows) flag=true;
  tempReader.Close();
  tempComm.Dispose();
  return flag;
  }
  }

  应用程序或其它Web服务等服务请求者当需要调用Web服务时,首先检索服务描述或在服务注册中心查询所要求的服务类型。当找到所需服务时,就可以使用服务描述与服务提供者进行绑定,并调用相应的服务。

  微软新推出的旗舰产品Visual Studio.NET是被称为开发Web服务的首选工具,使用Visual Studio.NET可以非常方便地实现Web服务创建与调用。下面,将给出一个具体的基于Web Services技术实现软件共享的实例。

  3、软件共享的应用举例:学生身份验证模块的共享实现。

  目前,在高校中有很多的软件系统,例如:选课系统、成绩查询系统、网络课程系统、图书馆系统、学生财务系统等。由于各个系统相互独立,每一个系统都有一个学生身份验证模块,存在功能上的重复设计; 另外,各个系统的相互独立,存在着学生需要记忆不同系统的密码。

  鉴于以上情况及目前校园网络的高度发达,我们完全可以用Web服务的方式来实现学生身份验证模块的共享。下面将介绍使用Visual Studio.NET环境用C#语言实现创建并调用学生身份验证Web服务的过程。

  1) Web服务的创建

  学生身份验证模块有1个Web服务构成:

  public Boolean ValidUser(string userID,string Pwd)

  Web服务ValidUser用于验证学生身份。已经在Sql Server数据库StudentsInfo中建立了一个学生基本信息表Student,其中字段UserID、Pwd分别保存学生的用户代码及密码。

  下面将具体介绍Web服务的创建过程:

  a 运行Visual Studio.NET开发环境,新建"ASP.NET Web服务"类型的项目WSStudentLogin。

  b Web服务的具体代码实现。

  using System.Data.SqlClient;
  //省略代码……
public class Service1 : System.Web.Services.WebService
  {
  string ConStr="";
  ConnStr="DATABASE=StudentsInfo; SERVER=10.1.111.19; UID=sa; PWD=; ";
  //省略代码……
  [WebMethod]
  public Boolean ValidUser(string userID,string Pwd)
  {
  Boolean flag=false;
  string sqlStr="";
  //建立一个数据库连接对象
  SqlConnection tempConn=new SqlConnection(ConnStr);
  sqlStr="select * from student where ID='"+userID+"' and pwd='"+Pwd+"'; ";
  //建立一个命令对象
  SqlCommand tempComm=new SqlCommand(sqlStr,tempConn);
  tempConn.Open();
  SqlDataReader tempReader=tempComm.ExecuteReader(CommandBehavior.CloseConnection);
  if (tempReader.HasRows) flag=true;
  tempReader.Close();
  tempComm.Dispose();
  return flag;
  }
  }

 
[收藏] [返回顶部] [打印本页] [关闭窗口]  
 
 
 
 相关主题:  
 
ASP.NET Web服务实现软件共享
Web 开发 介绍几种调用WebService的方法
在 VB 中调用 C# 写的 WebService
 
 网友评论:
正在加载……
 
*评论者:
主页:
标题:
*内容:
【声明】 地球黑匣子网刊载的资讯及其他内容均由网友提供分享 并且纯属作者个人观点,不表示地球黑匣子网同意其说法或描述,仅为提供更多信息,也不构成任何建议。网友转载请注明原作者姓名及出处。如有侵犯到您的版权,请与我们联系,我们会马上进行重新整理!
最新日志列表
人气主题
 
 
 
 
声明:本网站部分内容属网民发布和来自于互联网。对于引用、发布、转载和放置的内容(广告、链接、文字、图像或声音),所产生的所有法律责任,都将由信息归属者或者广告厂商提供者承担,并且由此产生的版权、署名权的异议、纠纷,本网站概不承担任何责任,本站转载素材仅供大家欣赏和分享,切勿做为商业目的使用。
 
Copyright © 地球黑匣子网 2007.06 - 2010   Email:dqhxzcom@163.com
鲁ICP备07501416号   QQ:254212580 网站管理