wpe2.jpg (8850 bytes)

第二章、 DBMaker系統架構

2.1 DBMaker的行程(Process)

2.2 資料庫通訊與控制區域

2.3 單人使用模式架構

2.4 主從架構模式

-伺服端程式
-客戶端程式
-客戶端函式庫

 

上一章     回總目錄     下一章

 

 

 

第二章 DBMaker系統架構

    在本章中我們將討論 DBMaker 的兩種不同架構。首先將介紹 DBMaker的行程及為每一啟動資料庫儲存相關資訊的資料庫通訊與控制區域,然後介紹DBMaker 的兩種架構。

2.1 DBMaker的行程(Process)

      DBMaker行程的主要功能,是根據使用者的指令和資料庫函數來處理儲存體和擷取資料。一個 DBMaker的行程是由數個層級構成,如圖 2-1。在圖 2-1中,使用者所開發的應用程式經由應用程式介面和DBMaker溝通。應用程式介面傳遞使用者指令或呼叫函數至負責分析SQL指令的SQL引擎,並將它們解譯成一連串資料庫引擎的函數呼叫。資料庫引擎執行 SQL 引擎所解譯完成的函數以儲存或讀取表格中的資料。

newimage43.GIF (3154 bytes)

圖 2-1: DBMaker 行程

      請注意SQL引擎和資料庫引擎所扮演的角色是截然不同的。基本上,SQL引擎處理SQL的剖析和查詢的最佳化,資料庫引擎則負責管理儲存空間及記憶體緩衝區、同步控制、潰損回復以及其它模等。所有的組相互合作來維持整個資料庫內資料的一致性。大部分的效能調整都與底層的資料庫引擎相關。應用程式介面和 SQL 引擎在單人使用模式和主從架構模式是相同的。然而資料庫引擎在單人使用模式和主從架構模式則有所不同。單人使用模式僅能服務一位使用者而主從架構模式則能同時服務多位使用者。在主從架構模式下應用程式和應用程式介面是結合在一起,並且執行於客戶端機器上;而SQL引擎和資料庫引擎結合在一起,並且執行於伺服器端。在這種架構之下,應用程式介面藉由網路協定來和 SQL引擎溝通。

上一節

2.2 資料庫通訊與控制區域

      當資料庫啟動時,DBMaker將先配置一大塊記憶體來儲存資料庫相關的資訊,如緩衝區和不同型態的控制資訊等。這一大塊記憶體稱之為資料庫通訊與控制區域,它包含三種資料:頁緩衝區、日誌緩衝區和系統控制區。資料庫通訊與控制區域對於 DBMaker 來說非常重要,特別是主從架構的模式。對於 WINDOWS 系統的單人使用模式與主從架構模式(使用多執行緒技術)或是 UNIX的單人使用模式中,資料庫通訊與控制區域是從私有的行程堆積區配置而來。在 UNIX 的主從架構的模式中,資料庫通訊與控制區域必須要讓所有同一資料庫的DBMaker行程所共享,所以資料庫通訊與控制區域不能從私有的行程堆積中配置,故利用 UNIX 中的共用記憶體技術來配置資料庫通訊與控制區域。我們可以很容易地調整資料庫通訊與控制區域的大小和其使用方法。而這種調整將對 DBMaker 的效能產生很大的影響。有關效能調整,請參閱資料庫管理員參考手冊。

上一節

      2.3 單人使用模式架構

      DBMaker 的單人使用模式為僅能服務一位使用者的關聯式資料庫。因單人使用模式不需處理並行控制,所以它的程式較小且執行速度都較其它模式為快。假如您的資料庫僅為一人所使用,單人使用模式的DBMaker將是極佳的選擇。圖2-2顯示 DBMaker 的單人使用模式的架構。既然僅有一位使用者連結到單人使用模式的 DBMaker 資料庫,資料庫通訊與控制區域將由私人的程式堆積中配置且不具共享性及不具有鎖定的機制。基於效能的考量,DBMaker 引擎執行時,維護資料庫中的資料於記憶體中,適時地寫入被修改的頁到磁碟檔案中(包括了資料檔和日誌檔)。

newimage44.GIF (10399 bytes)

      圖 2-2: DBMaker 單人使用者模式的架構

上一節

   2.4 主從架構模式

      DBMaker的應用程式不但能執行於單人使用模式架構下,且能被執行於主從架構模式。在主從式架構下將有兩個行程參與運作:客戶端行程及資料庫伺服器端行程。一般來說客戶端行程執行於前端的個人電腦或工作站,且使用DBMaker所提供的應用程式介面,透過網路來和伺服端行程溝通。請注意,在主從架構模式下所有的機器可以使用不同的硬體平台。在DBMaker的主從架構模式下,網路管理模組必須存於客戶端和伺服器端。網路管理模組負責傳送資料於客戶端和伺服端之間。於主從架構模式下,網路通信協定非常重要。目前DBMaker僅支援一種網路協定- TCP/IP (Transmission Control Protocol/Internet Protocol)。假如在 DBMaker 主從架構模式下,您的系統並未支援 TCP/IP,那麼您必須在執行 DBMaker 程式前,安裝TCP/IP網路軟體。目前已有許多經銷商提供 Windows 3.1 的 TCP/IP 驅動程式。假如您於UNIX,Windows 95或 Windows NT下執行客戶端應用程式,那麼您就不須要額外安裝 TCP/IP軟體,因上述的作業系統都有支援內建的 TCP/IP。(在Windows 95和 WIndowsNT下,您必須明確地指定 TCP/IP 為您所使用的網路協定,並將之安裝於您的系統中)。圖 2-3 顯示 DBMaker 的主從架構模式。在UNIX 系統下,當客戶端行程(Client Process)連結到一個資料庫伺服器,BMaker 網路伺服端行程(Server Process)會增加一個對應的行程來處理接踵而來的查詢。原先的網路伺服行程將會繼續地等待其它客戶的連結。

      在 Windows下的情形則稍有不同,因 NT 是一個多執行緒的系統,在NT下的網路伺服行程(dmserver.exe)也是一個多執行緒的程式。所以當客戶端行程連結 NT 上的網路伺服行程,DBMaker的網路伺服行程會增加一個執行緒來處理接踵而來的查詢。在這種情況下,資料庫通訊與控制區域(DCCA)就從區域的記憶體中配置,而非從共享記憶體(shared memory)中配置。所以一個資料庫僅有一個DBMaker伺服行程於 NT 系統中。因有越來越多的作業系統支援多執行緒,研究報告亦指出多執行緒的程式較多行程程式有效率,所以 DBMaker 將儘可能使用多執行緒的技術來代替多行程的增生。

newimage45.GIF (10335 bytes)

圖 2-3: DBMaker 主從架構模式

              DBMaker 有三個元件用於主從架構模式中。它們分別是:伺服端程式       、客戶端程式和客戶端函式庫。它們的目的如下:

    -伺服端程式

      DBMaker 的伺服端程式名稱為 dmserver(UNIX/WIN 的file不同)。這個程式包括了網路管理模組和處理資料存取的資料庫引擎。在客戶端程式連結到資料庫伺服端程式前,伺服端程式必須先啟動。

-客戶端程式

        DBMaker 的客戶端程式名稱為 dmsqlc(UNIX/WIN的file不同)。使用者可以使用這個程式連結到資料庫,並下達 SQL 指令來作資料處理。

-客戶端函式庫

        DBMaker 的客戶端函式庫在 UNIX 為  libdmapic.a,在微軟的視窗系統下為dmapi30.lib。使用者如果想要發展自己的客戶端程式必須結合和這個函式庫。舉例來說,使用者可以使用各種發展工具來撰寫他們的前端應用程式。當建立前端應用程式時,使用者必須連結這個函式庫。

Copyright 2002 SYSCOM Computer Engineering Co. All rights reserved.