精品人妻无码一区二区三区软件 ,麻豆亚洲AV成人无码久久精品,成人欧美一区二区三区视频,免费av毛片不卡无码

您現(xiàn)在的位置是:首頁(yè)計(jì)算機(jī)網(wǎng)絡(luò)論文

計(jì)算機(jī)科技論文在線訂票Web Services應(yīng)用的設(shè)計(jì)

發(fā)布時(shí)間: 1

  該WebServices是一個(gè)在線訂票服務(wù),實(shí)現(xiàn)的功能主要包括:車(chē)次查找、車(chē)票預(yù)訂和查詢(xún)最新的消息。開(kāi)發(fā)工具采用的是.NET平臺(tái)下的VisualStudio.NET,編程語(yǔ)言使用C#,后臺(tái)數(shù)據(jù)庫(kù)采用的是SQLServer2003。

  【摘要】本文將通過(guò)一個(gè)在線訂票服務(wù)來(lái)充分說(shuō)明WebServices的設(shè)計(jì)實(shí)現(xiàn)過(guò)程,以及在Web應(yīng)用程序中如何使用WebServices。以便大家能對(duì)WebServices的設(shè)計(jì)實(shí)現(xiàn)和使用過(guò)程有更深刻的理解。

  【關(guān)鍵詞】Web服務(wù),.NET框架,XML,SOAP,在線訂票

  一、WebServices的總體設(shè)計(jì)

  該在線訂票WebServices包括以下三個(gè)方法:

  1)SearchTrain——根據(jù)參數(shù)查找車(chē)次,這些參數(shù)包括諸如出發(fā)日期、到達(dá)日期和出發(fā)地點(diǎn)等。

  2)AddBooking——預(yù)訂所選車(chē)次的車(chē)票。

  3)GetInformation——獲得最新的消息。

  以上三個(gè)方法都需要與數(shù)據(jù)庫(kù)聯(lián)系,從數(shù)據(jù)庫(kù)表中提取相應(yīng)的數(shù)據(jù),以XML的格式、SOAP消息的方式返回給調(diào)用該服務(wù)的應(yīng)用程序。

  二、WebServices數(shù)據(jù)庫(kù)設(shè)計(jì)

  該WebServices數(shù)據(jù)庫(kù)采用SQLServer2003。數(shù)據(jù)庫(kù)名稱(chēng)為T(mén)rainService,數(shù)據(jù)庫(kù)中包含有關(guān)車(chē)次信息、車(chē)票有效期、訂票信息等的詳細(xì)資料。

  這個(gè)數(shù)據(jù)庫(kù)中使用三個(gè)存儲(chǔ)過(guò)程,分別是SearchTrain、AddBooking和GetInformation。

  1)SearchTrain存儲(chǔ)過(guò)程實(shí)現(xiàn)的功能是查找與參數(shù)相匹配的車(chē)次。這些參數(shù)包括:出發(fā)地點(diǎn)、到達(dá)地點(diǎn)、出發(fā)日期、開(kāi)車(chē)時(shí)間和旅行類(lèi)型。該存儲(chǔ)過(guò)程的完整源代碼如下:

  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存儲(chǔ)過(guò)程在Bookings表中插入一條記錄,實(shí)現(xiàn)訂票功能。該存儲(chǔ)過(guò)程的完整源代碼如下:

  CREATEPROCEDUREdbo.AddBooking

  @iTrainIDint,

  @iPassengerIDint,

  @iTravelClassIDint,

  @iBookingIDintoutput

  AS

  Begin

  setnocounton

  InsertintoBookings

 。═rain_id,passenger_id,travel_class_id)

  values

 。ˊiTrainIDm@ipassengerID,@iTravelclassID)

  Select@iBookingID=@identity

  end

  GO

  3)GetInformation存儲(chǔ)過(guò)程實(shí)現(xiàn)功能是從數(shù)據(jù)庫(kù)中返回消息的詳細(xì)資料。參數(shù)InformationID決定存儲(chǔ)過(guò)程返回的消息的類(lèi)型。該存儲(chǔ)過(guò)程的完整源代碼如下:

  CREATEPROCEDUREGetInformationTypeID

  @iInformationTypeIDsmallint

  AS

  begin

  setnocounton

  selectconvert(varchar(12),infor_date)

  asinfor_date,description

  fromInformationwhere

  Information_type_id=@iInformationTypeID

  end

  GO

  三、WebServices的實(shí)現(xiàn)

  為了實(shí)現(xiàn)該WebServices,開(kāi)發(fā)工具采用.NET平臺(tái)下的VisualStudio.NET,編程語(yǔ)言使用C#。使用VisualStudio.NET開(kāi)發(fā)工具生成各種配置文件相對(duì)比較容易,不用完全從頭到尾自己寫(xiě),只需在已經(jīng)生成的文件上修改。同時(shí),它還能自動(dòng)引入默認(rèn)的名稱(chēng)空間,進(jìn)行外部引用也容易,大大簡(jiǎn)化了開(kāi)發(fā)WebServices的過(guò)程,提高了開(kāi)發(fā)效率。通過(guò)訪問(wèn)創(chuàng)建的數(shù)據(jù)庫(kù),該WebServices通過(guò)三個(gè)方法執(zhí)行以下操作:1)根據(jù)出發(fā)日期、到達(dá)日期和出發(fā)地點(diǎn)等參數(shù)查找車(chē)次。

  2)預(yù)訂所選車(chē)次的車(chē)票。

  3)獲取最新的旅行消息。

  針對(duì)要?jiǎng)?chuàng)建的在線訂票Web服務(wù)Online-WebService,需要引入以下兩個(gè)命名空間:

  usingSystem.Date.SqlClient;

  usingSystem.Configuration;

  System.Date.SqlClient名稱(chēng)空間允許程序中訪問(wèn)數(shù)據(jù)訪問(wèn)類(lèi),以便能夠訪問(wèn)創(chuàng)建的SQLServer數(shù)據(jù)庫(kù)TrainService。usingSystem.Configuration名稱(chēng)空間允許使用ConfigurationSettings類(lèi)訪問(wèn)存儲(chǔ)在WebServices的Web.config文件中的連接字符串,這樣當(dāng)數(shù)據(jù)庫(kù)所在的服務(wù)器地址改變的時(shí)候,通過(guò)修改Web.config文件中的連接字符串可以順利、正確的訪問(wèn)數(shù)據(jù)庫(kù)。

 。1)SearchTrain方法的實(shí)現(xiàn)

  這個(gè)方法用于查找與給定的參數(shù)值相匹配的車(chē)次。首先,需要使用WebMethod屬性來(lái)指出這個(gè)方法是一個(gè)科調(diào)用的Web方法,這樣ASP.NET在運(yùn)行時(shí)才可以提供所有能夠使這個(gè)方法在Internet上調(diào)用的信息管道。在這個(gè)屬性中Description參數(shù)用于描述該Web方法。因?yàn)樵谠揥eb方法中不需要保存會(huì)話狀態(tài),所以將EnableSession設(shè)置為false,這樣可以清除會(huì)話狀態(tài)所需的系統(tǒng)開(kāi)銷(xiāo),并可以大大提高應(yīng)用程序的性能。

  [WebMethod(EnableSession=false,Description=”ThismethodisusedtosearchforTrainsandreturnstheresultasaDateSet”)]

  以下語(yǔ)句進(jìn)行數(shù)據(jù)庫(kù)連接、執(zhí)行SQL語(yǔ)句命令和保存結(jié)果所需要的對(duì)象:

  SqlConnectionsqlConnection;

  SqlDateAdaptersqlDateAdapter;

  sqlConnection=newsqlconnection;

 。–onfigurationSettings.AppSettings[“connectionSting”]);

  在數(shù)據(jù)庫(kù)的連接過(guò)程中,通過(guò)Configur-ationSettings類(lèi)的AppSettings屬性從Wen.config文件獲得連接字符串。該連接字符串出現(xiàn)在web.config文件的元素中:

  pwd=36;detebase=Trainservice”/>

  Web.config文件保存一個(gè)ASP.NET應(yīng)用程序的所有配置信息。該文件是一個(gè)XML文件,位于Web應(yīng)用程序的根目錄中,包括身份驗(yàn)證類(lèi)型、調(diào)試設(shè)置和會(huì)話處理等方面的信息。Web.config文件也為應(yīng)用程序保存一些具有特殊用途的設(shè)置,它使管理員在無(wú)需修改應(yīng)用程序代碼或重新啟動(dòng)WebService的情況下就能夠修改配置設(shè)置。

  緊接著創(chuàng)建參數(shù)對(duì)象并設(shè)置它們的Value屬性,然后通過(guò)調(diào)用SelectCommand對(duì)象的Parameters集合的Add方法,將它們添加到Command對(duì)象中:

  SqlParameterparamStarPlace=

  newSqlParameter(“@sStartingForm”,SqlDbType.Varchar,50);

  paramStartPlace.Value=starPlace;

  sqlDataAdapter.SelectCommand.Parameters.Add(paramStartPlace);

  對(duì)于所要傳遞給存儲(chǔ)過(guò)程的所有參數(shù),都執(zhí)行以上步驟。這些參數(shù)包括有:ParamDest-ination、ParamDepartureDate、ParamzArrival和ParamTravelClassID。

  所有參數(shù)都添加到Parameters集合之后,利用先前指派的存儲(chǔ)過(guò)程創(chuàng)建一個(gè)新的DataSet對(duì)象,并使用sqlDAtaAdapter的Fill方法填充該對(duì)象。Fill方法的參數(shù)是要被填充的DataSet和作為數(shù)據(jù)源使用的表的名稱(chēng):

  Train=newDataSet();sqlDataAdapter.Fill(Train,”Trains”);

  整個(gè)方法執(zhí)行將返回一個(gè)DataSet數(shù)據(jù)集,它具有強(qiáng)大的功能,該功能允許將復(fù)雜的信息和關(guān)系存儲(chǔ)在一個(gè)智能的XML結(jié)構(gòu)中。實(shí)際上,DataSet提供一個(gè)客戶(hù)端能夠使用的數(shù)據(jù)庫(kù)的副本,不過(guò)該副本的連接時(shí)斷開(kāi)的,從而減少了服務(wù)器必須維持的有效數(shù)據(jù)庫(kù)連接的次數(shù)。

  SearchTrain方法整體被封裝在try…catch…finally塊中,以捕捉任何可能發(fā)生的錯(cuò)誤。如果語(yǔ)句執(zhí)行期間發(fā)生錯(cuò)誤,則控制權(quán)會(huì)轉(zhuǎn)到catch程序塊,該程序塊將錯(cuò)誤拋給客戶(hù)端,以便進(jìn)行錯(cuò)誤處理。Finally程序塊調(diào)用Close方法關(guān)閉同數(shù)據(jù)庫(kù)建立的連接。

 。2)AddBooking和GetInformation方法的實(shí)現(xiàn)

  AddBooking和GetInformation方法的實(shí)現(xiàn)同SearchTrain方法的實(shí)現(xiàn)基本上相同,也是將方法整體封裝在try…catch…finally塊中。

  AddBooking方法的功能是向數(shù)據(jù)庫(kù)中添加訂票的詳細(xì)資料,其實(shí)現(xiàn)主要是利用TrainService數(shù)據(jù)庫(kù)中的AddBooking存儲(chǔ)過(guò)程。在實(shí)現(xiàn)該方法過(guò)程中,沒(méi)有使用sqlDataAdapter對(duì)象,而是利用SqlCommand對(duì)象。該方法的執(zhí)行結(jié)果是將最新創(chuàng)建的訂票ID作為輸出參數(shù)返回。在返回時(shí),利用以下函數(shù)將返回值強(qiáng)制轉(zhuǎn)換為整數(shù):

  IntBookingID=Convert.Tolnt32(sqlCommand.Parameters[“@iBookingID”].Value);

  GetInformation方法根據(jù)InformationTypeID參數(shù)的值獲取有關(guān)的最近的新聞和旅行交易信息。如果參數(shù)是1,則該方法返回有關(guān)旅行交易的信息;如果參數(shù)是2,則該方法返回有關(guān)旅行新聞。該方法調(diào)用GetInformation存儲(chǔ)過(guò)程實(shí)現(xiàn)從數(shù)據(jù)庫(kù)中返回消息的詳細(xì)資料。

  參考文獻(xiàn)

  [1]柴曉路.基于Web服務(wù)架構(gòu)與開(kāi)發(fā)互操作技術(shù)[M].北京:清華大學(xué)出版社.

  [2]強(qiáng)寶華,潘家志等.從關(guān)系數(shù)據(jù)庫(kù)中生成XML數(shù)據(jù)源的研究[J].計(jì)算機(jī)科學(xué),2002,29(5).

  [3]徐享忠,王精業(yè)等.基于XML的數(shù)據(jù)交換格式及其應(yīng)用[J].計(jì)算機(jī)工程與設(shè)計(jì),2003(05).

  [4]張長(zhǎng)昊,夏安邦等.XML技術(shù)在信息交互中的應(yīng)用[J].山東工程學(xué)院學(xué)報(bào),2002,16(3).


轉(zhuǎn)載請(qǐng)注明來(lái)自:http://www.jinnzone.com/jisuanjiwangluolw/31797.html