计算机科技论文在线订票Web Services应用的设计
所属栏目:计算机网络论文
发布时间:2014-02-25 16:29:00 更新时间:2014-02-25 15:26:59
该WebServices是一个在线订票服务,实现的功能主要包括:车次查找、车票预订和查询最新的消息。开发工具采用的是.NET平台下的VisualStudio.NET,编程语言使用C#,后台数据库采用的是SQLServer2003。
【摘要】本文将通过一个在线订票服务来充分说明WebServices的设计实现过程,以及在Web应用程序中如何使用WebServices。以便大家能对WebServices的设计实现和使用过程有更深刻的理解。
【关键词】Web服务,.NET框架,XML,SOAP,在线订票
一、WebServices的总体设计
该在线订票WebServices包括以下三个方法:
1)SearchTrain——根据参数查找车次,这些参数包括诸如出发日期、到达日期和出发地点等。
2)AddBooking——预订所选车次的车票。
3)GetInformation——获得最新的消息。
以上三个方法都需要与数据库联系,从数据库表中提取相应的数据,以XML的格式、SOAP消息的方式返回给调用该服务的应用程序。
二、WebServices数据库设计
该WebServices数据库采用SQLServer2003。数据库名称为TrainService,数据库中包含有关车次信息、车票有效期、订票信息等的详细资料。
这个数据库中使用三个存储过程,分别是SearchTrain、AddBooking和GetInformation。
1)SearchTrain存储过程实现的功能是查找与参数相匹配的车次。这些参数包括:出发地点、到达地点、出发日期、开车时间和旅行类型。该存储过程的完整源代码如下:
CREATEPROCEDUREdbo.Searchtrain
@sStartingFormvarchar(50),
@sDestinationvarchar(50),
@sArrivalDatedetetime,
@sDdepartureDatedatetime,
@iTravelClassIDint
AS
Begin
setnocounton
selectT.*,TC.travel_class_idform
TrainsTinnerjointravel_class_cpacityTCSC
onTCSC.Train_id=T.Train_id
innerjointravel_classTC
onTC.travel_class_id=TCSC.travel_class_id
whereT.staring_form=@sStartingForm
andT.destination=@sdestination
andT.arrival_date=@dArrivalDate
andT.departure_date=@dDepartureDate
andTC.travel_class_id=@iTravelClassID
andTCSC.number_seats>0
end
GO
2)Addbooking存储过程在Bookings表中插入一条记录,实现订票功能。该存储过程的完整源代码如下:
CREATEPROCEDUREdbo.AddBooking
@iTrainIDint,
@iPassengerIDint,
@iTravelClassIDint,
@iBookingIDintoutput
AS
Begin
setnocounton
InsertintoBookings
(Train_id,passenger_id,travel_class_id)
values
(@iTrainIDm@ipassengerID,@iTravelclassID)
Select@iBookingID=@identity
end
GO
3)GetInformation存储过程实现功能是从数据库中返回消息的详细资料。参数InformationID决定存储过程返回的消息的类型。该存储过程的完整源代码如下:
CREATEPROCEDUREGetInformationTypeID
@iInformationTypeIDsmallint
AS
begin
setnocounton
selectconvert(varchar(12),infor_date)
asinfor_date,description
fromInformationwhere
Information_type_id=@iInformationTypeID
end
GO
三、WebServices的实现
为了实现该WebServices,开发工具采用.NET平台下的VisualStudio.NET,编程语言使用C#。使用VisualStudio.NET开发工具生成各种配置文件相对比较容易,不用完全从头到尾自己写,只需在已经生成的文件上修改。同时,它还能自动引入默认的名称空间,进行外部引用也容易,大大简化了开发WebServices的过程,提高了开发效率。通过访问创建的数据库,该WebServices通过三个方法执行以下操作:1)根据出发日期、到达日期和出发地点等参数查找车次。
2)预订所选车次的车票。
3)获取最新的旅行消息。
针对要创建的在线订票Web服务Online-WebService,需要引入以下两个命名空间:
usingSystem.Date.SqlClient;
usingSystem.Configuration;
System.Date.SqlClient名称空间允许程序中访问数据访问类,以便能够访问创建的SQLServer数据库TrainService。usingSystem.Configuration名称空间允许使用ConfigurationSettings类访问存储在WebServices的Web.config文件中的连接字符串,这样当数据库所在的服务器地址改变的时候,通过修改Web.config文件中的连接字符串可以顺利、正确的访问数据库。
(1)SearchTrain方法的实现
这个方法用于查找与给定的参数值相匹配的车次。首先,需要使用WebMethod属性来指出这个方法是一个科调用的Web方法,这样ASP.NET在运行时才可以提供所有能够使这个方法在Internet上调用的信息管道。在这个属性中Description参数用于描述该Web方法。因为在该Web方法中不需要保存会话状态,所以将EnableSession设置为false,这样可以清除会话状态所需的系统开销,并可以大大提高应用程序的性能。
[WebMethod(EnableSession=false,Description=”ThismethodisusedtosearchforTrainsandreturnstheresultasaDateSet”)]
以下语句进行数据库连接、执行SQL语句命令和保存结果所需要的对象:
SqlConnectionsqlConnection;
SqlDateAdaptersqlDateAdapter;
sqlConnection=newsqlconnection;
(ConfigurationSettings.AppSettings[“connectionSting”]);
在数据库的连接过程中,通过Configur-ationSettings类的AppSettings属性从Wen.config文件获得连接字符串。该连接字符串出现在web.config文件的元素中:
pwd=36;detebase=Trainservice”/>
Web.config文件保存一个ASP.NET应用程序的所有配置信息。该文件是一个XML文件,位于Web应用程序的根目录中,包括身份验证类型、调试设置和会话处理等方面的信息。Web.config文件也为应用程序保存一些具有特殊用途的设置,它使管理员在无需修改应用程序代码或重新启动WebService的情况下就能够修改配置设置。
紧接着创建参数对象并设置它们的Value属性,然后通过调用SelectCommand对象的Parameters集合的Add方法,将它们添加到Command对象中:
SqlParameterparamStarPlace=
newSqlParameter(“@sStartingForm”,SqlDbType.Varchar,50);
paramStartPlace.Value=starPlace;
sqlDataAdapter.SelectCommand.Parameters.Add(paramStartPlace);
对于所要传递给存储过程的所有参数,都执行以上步骤。这些参数包括有:ParamDest-ination、ParamDepartureDate、ParamzArrival和ParamTravelClassID。
所有参数都添加到Parameters集合之后,利用先前指派的存储过程创建一个新的DataSet对象,并使用sqlDAtaAdapter的Fill方法填充该对象。Fill方法的参数是要被填充的DataSet和作为数据源使用的表的名称:
Train=newDataSet();sqlDataAdapter.Fill(Train,”Trains”);
整个方法执行将返回一个DataSet数据集,它具有强大的功能,该功能允许将复杂的信息和关系存储在一个智能的XML结构中。实际上,DataSet提供一个客户端能够使用的数据库的副本,不过该副本的连接时断开的,从而减少了服务器必须维持的有效数据库连接的次数。
SearchTrain方法整体被封装在try…catch…finally块中,以捕捉任何可能发生的错误。如果语句执行期间发生错误,则控制权会转到catch程序块,该程序块将错误抛给客户端,以便进行错误处理。Finally程序块调用Close方法关闭同数据库建立的连接。
(2)AddBooking和GetInformation方法的实现
AddBooking和GetInformation方法的实现同SearchTrain方法的实现基本上相同,也是将方法整体封装在try…catch…finally块中。
AddBooking方法的功能是向数据库中添加订票的详细资料,其实现主要是利用TrainService数据库中的AddBooking存储过程。在实现该方法过程中,没有使用sqlDataAdapter对象,而是利用SqlCommand对象。该方法的执行结果是将最新创建的订票ID作为输出参数返回。在返回时,利用以下函数将返回值强制转换为整数:
IntBookingID=Convert.Tolnt32(sqlCommand.Parameters[“@iBookingID”].Value);
GetInformation方法根据InformationTypeID参数的值获取有关的最近的新闻和旅行交易信息。如果参数是1,则该方法返回有关旅行交易的信息;如果参数是2,则该方法返回有关旅行新闻。该方法调用GetInformation存储过程实现从数据库中返回消息的详细资料。
参考文献
[1]柴晓路.基于Web服务架构与开发互操作技术[M].北京:清华大学出版社.
[2]强宝华,潘家志等.从关系数据库中生成XML数据源的研究[J].计算机科学,2002,29(5).
[3]徐享忠,王精业等.基于XML的数据交换格式及其应用[J].计算机工程与设计,2003(05).
[4]张长昊,夏安邦等.XML技术在信息交互中的应用[J].山东工程学院学报,2002,16(3).