分布式資料庫系統 商旅預定系統的實現(1)

2021-06-15 03:49:39 字數 1157 閱讀 1418

今天看到師弟他們又像我們去年一樣忙著老闆的課程結課設計,想著我是去年如何苦逼的過程,想把我的開發經歷分享出來。

專案介紹   

本系統是在學習了分布式資料庫課程的基礎上設計的。在microsoft visual studio 2010開發平台上用c#語言組建了乙個分布式應用系統,實現了乙個簡單的分布式旅行預定系統。根據要求,本系統實現了三個基本功能:乙個簡單的資源管理器(rm)支援具有acid屬性的併發事務、乙個工作流管理器(wc)和乙個事務管理器(tm)能在各個資源管理者(rm)之間實現分布式事務處理、實現這些基礎專案的外部增設功能。系統實現了人機互動的視覺化介面,可進行查詢、插入、預定等操作。

利用分布式資料庫技術實現乙個旅行預訂系統,可實現查詢(航班、酒店、計程車、顧客、預定情況)、插入(飛機相關資訊、旅館相關資訊、計程車相關資訊、顧客相關資訊)、預定(旅行資訊)。邏輯上,所有資訊均儲存於同一資料庫中,物理上,航班,計程車,旅館,顧客和預訂的資訊分別存放於不同的站點。

主要技術

remoting,簡而言之,我們可以將其看作是一種分布式處理方式 。從微軟的產品角度來看,可以說remoting就是dcom的一種公升級,它改善了很多功能,並極好的融合到.net平台下。microsoft .net remoting 提供了一種允許物件通過應用程式域與另一物件進行互動的框架。這也正是我們使用remoting的原因。為什麼呢?在windows作業系統中,是將應用程式分離為單獨的程序。這個程序形成了應用程式**和資料周圍的一道邊界。如果不採用程序間通訊(rpc)機制,則在乙個程序中執行的**就不能訪問另一程序。這是一種作業系統對應用程式的保護機制。然而在某些情況下,我們需要跨過應用程式域,與另外的應用程式域進行通訊,即穿越邊界。

在remoting中是通過通道(channel)來實現兩個應用程式域之間物件的通訊的。首先,客戶端通過remoting,訪問通道以獲得服務端物件,再通過**解析為客戶端物件。這就提供一種可能性,即以服務的方式來發布伺服器物件。遠端物件**可以執行在伺服器上(如伺服器啟用的物件和客戶端啟用的物件),然後客戶端再通過remoting連線伺服器,獲得該服務物件並通過序列化在客戶端執行。

在remoting中,對於要傳遞的物件,設計者除了需要了解通道的型別和埠號之外,無需再了解資料報的格式。但必須注意的是,客戶端在獲取伺服器端物件時,並不是獲得實際的服務端物件,而是獲得它的引用。這既保證了客戶端和伺服器端有關物件的鬆散耦合,同時也優化了通訊的效能。

分布式資料庫系統 商旅預定系統的實現(3)

remoting技術的通訊建立分為兩種 伺服器端啟用和客戶端啟用。本次設計採用的是伺服器端啟用模式。在通道的建立過程中,需要在伺服器端和客戶端分別進行處理。伺服器端處理如下 要跨越應用程式域進行通訊,必須實現通道。如前所述,remoting 提供了ichannel 介面,分別包含 tcpchanne...

分布式資料庫系統 商旅預定系統的實現(10)

事務有了統一的規範和編碼,下一步就需要考慮具體該怎樣儲存乙個事務了。首先,乙個操作有它的唯一編碼,通過string型別來儲存id編碼值。其次需要儲存的就是引數列表,因為每乙個操作所需要的引數時不同的,所以考慮用list是首選方案。具體 實現 儲存一次操作過程的所有方法編號和方法的引數列表 seria...

分布式資料庫系統

隨著傳統的資料庫 計算機網路和數字通訊技術的飛速發展,以資料分布儲存和分布處理為主要特徵的分布式資料庫系統的研究和開發越來越受到人們的關注。但由於其開發較為複雜,在一定程度上制約了它的發展。基於此,本文提出了在.net環境下使用一種新的開發語言c 結合ado.net資料訪問模型來開發分布式資料庫系統...