• 沒有找到結果。

利用分散式架構建立企業虛擬DBA之應用-以M公司為例

N/A
N/A
Protected

Academic year: 2021

Share "利用分散式架構建立企業虛擬DBA之應用-以M公司為例"

Copied!
55
0
0

加載中.... (立即查看全文)

全文

(1)

國 立

立 交

交 通

通 大

大 學

管理

理學院

學院

學院

學院(資訊管理學程

資訊管理學程

資訊管理學程)碩士班

資訊管理學程

碩士班

碩士班

碩士班

碩士論文

碩士論文

碩士論文

碩士論文

利用

利用

利用

利用分散式

分散式

分散式架構建立企業虛擬

分散式

架構建立企業虛擬

架構建立企業虛擬 DBA 之應用

架構建立企業虛擬

之應用

之應用

之應用-以

以 M 公司為例

公司為例

公司為例

公司為例

The application of using distributed architecture to establish

Enterprise Virtual DBA-A Case Study of M Company

研究生:陳卜瑞

指導教授:蔡銘箴

(2)

利用分散式架構建立企業虛擬 DBA 之應用-以 M 公司為例

The application of using distributed architecture to establish Enterprise

Virtual DBA-A Case Study of M Company

研 究 生: 陳卜瑞 Student: Pu-jle Chen

指導教授: 蔡銘箴 博士 Advisor: Min-Jen Tsai

國立交通大學

管理學院(資訊管理學程)碩士班 碩士論文

A Thesis

Submitted to Institute of Information Management College of Management

National Chiao Tung University in Partial Fulfillment of the Requirements

for the Degree of

Master of Science in Information Management June 2010

Hsinchu, Taiwan, the Republic of China

(3)

摘要

摘要

摘要

摘要

企業因應不同業務流程而建立了各種輔助作業之資訊系統,系統所使用之資 料庫規模會隨業務流程擴展而成長,資料庫管理人員的負擔與挑戰也會逐漸加 大,不同資料庫之間的關聯性也會因交叉參考而日漸複雜,使系統開發人員找尋 正確資料來源需花費的時間變長。 本論文研究利用相關技術文獻之研究,以分散式架構來建立虛擬 DBA 管理 系統,期望利用系統管理功能來集中管理資料來源之綱要(Schema)與權限,協助 資料庫管理人員及系統開發人員進行日常資料庫之維護及管理工作,透過建立資 料來源關聯,以及系統與人員職掌資料的建立,能方便以應用系統為構面之管理 角度來管理資料庫,也方便系統開發人員快速取得相關資料庫資訊,進而增加開 發之效率,以及提高系統之穩定度,確保公司流程運作順暢。

(4)

Abstract

The enterprise establishes information system to deal with different operation flow. Therefore, the scale of databases expand along with the operation flow grows. The database administrator’s burden and the challenge also enlarge. In addition, the inter connection between the different databases’ become more complex day by day. It also lengthen the system developer to pursue the correct data source.

This study use relation technique to establish the Virtual DBA management system by the distributed architecture. The goal is to expect that the system

administration can summarize of Schema and the jurisdiction centralized management data source. It also assists the database administrator and the system developer carries on maintenance and the supervisory work. By establishment of the data source

connection, as well as the system and the personnel duties material's establishment, it can facilitate the management of the database with the system architecture. The study also facilitates the system developer to obtain the related database information fast, then increases efficiency of the development, as well as enhances stability of the system, guaranteed that the company flow operation is smooth.

Keyword:Distributed Architecture、Virtual DBA、Database Management、Information

(5)

謝誌

謝誌

謝誌

謝誌

鳳凰花開,離情依依,很快的兩年的碩士學生生涯即將告一段落,回首過去, 從職場上重回校園生活,原本工作與課業要兼得就不是件輕鬆的事情,但可以從 實務角度去認識理論,算是收獲良多,與老師及幾位不同職場的同學結緣,也算 是學問獲得之外的額外珍寶。 本論文得以順利完成,首先要感謝指導教授蔡銘箴老師,於寫作期間不斷從 旁悉心的指導。其次感謝口試委員林妙聰教授與巫木誠教授費心的審閱,論文口 試中 提供了許多寶貴的意見,使本論文能更加的完善。 求學階段及論文撰寫期間,深受同Lab同學東良、國緯,姿琪,國智給予諸 多的協助以及鼓勵,特別是東良同學在暑假期間小女出生當時在課業上的協助, 另外公司同事及上司大力的協助與包容,在此表示衷心的感謝。 特別感謝我的老婆瑾瑜,在學校上課期間獨自辛苦照顧寶貝女兒姮圻,也感 謝她對我的忍耐與包容,最後要感謝我的雙親,感謝他們在後面默默的支持我, 以及不計較這些日子對他們的怠忽,讓我無後顧之憂。僅將本論文獻給我最我最 親愛的家人。 陳卜瑞 謹誌

(6)

目錄

目錄

目錄

目錄

摘要 摘要 摘要 摘要 ... ii Abstract ... iii 謝誌 謝誌 謝誌 謝誌 ... iv 目錄 目錄 目錄 目錄 ... v 圖目錄 圖目錄 圖目錄 圖目錄 ... vii 第一章 第一章 第一章 第一章、、、、緒論緒論緒論緒論 ... 1 1.1 研究背景與動機研究背景與動機研究背景與動機研究背景與動機 ... 1 1.2 研究目的研究目的研究目的研究目的 ... 4 1.3 研究步驟研究步驟研究步驟研究步驟 ... 6 1.4 論文章節說明論文章節說明論文章節說明論文章節說明 ... 7 第二章 第二章 第二章 第二章、、、、文獻探討文獻探討文獻探討文獻探討 ... 8 2.1 資料庫系統的使用成員資料庫系統的使用成員資料庫系統的使用成員資料庫系統的使用成員 ... 8 2.2 資料庫管理系統資料庫管理系統資料庫管理系統資料庫管理系統 ... 9 2.3 資料庫管理系統架構資料庫管理系統架構資料庫管理系統架構資料庫管理系統架構 ... 9 2.4 DBA(資料庫管理員資料庫管理員資料庫管理員資料庫管理員)工作內容研究工作內容研究工作內容研究工作內容研究 ... 10 2.5 多層式架構多層式架構多層式架構多層式架構(Multi-Tier Architecture) ... 13 2.6 程式產生器程式產生器程式產生器程式產生器(Code Generator) ... 14

2.7 O/R Mapping(Object Relation Mapping) ... 15

2.8 Microsoft Enterprise Library Framework ... 16

2.9 Web Services ... 19

2.10 Microsoft SMO(Server Management Objects) ... 21

3.1 單一存取介面之單一存取介面之單一存取介面之單一存取介面之 Virtual DBA 機制機制機制機制 ... 26 3.2 依職務授予適當權限依職務授予適當權限依職務授予適當權限依職務授予適當權限 ... 27 3.3 經由資料關聯定義經由資料關聯定義經由資料關聯定義經由資料關聯定義,,,即時獲得其它系統資料庫異動內容,即時獲得其它系統資料庫異動內容即時獲得其它系統資料庫異動內容即時獲得其它系統資料庫異動內容 ... 28 3.4 利用比對功能確保部署完整性利用比對功能確保部署完整性利用比對功能確保部署完整性利用比對功能確保部署完整性 ... 29 第四章 第四章 第四章 第四章、、、、系統實作與建置系統實作與建置系統實作與建置系統實作與建置 ... 32 4.1 開發平台及語言開發平台及語言開發平台及語言開發平台及語言 ... 32 4.2 系統架構系統架構系統架構系統架構 ... 33 4.3 程式架構程式架構程式架構程式架構 ... 34 4.4 系統功能模組系統功能模組系統功能模組系統功能模組 ... 36 4.5 系統限制系統限制系統限制系統限制 ... 40 4.6 系統導入步驟系統導入步驟系統導入步驟系統導入步驟 ... 41 第五章 第五章 第五章 第五章、、、、結論與未來展望結論與未來展望結論與未來展望結論與未來展望 ... 43 5.1 結論結論結論結論 ... 43 5.2 未來發展未來發展未來發展未來發展 ... 44

(7)

第六章 第六章 第六章

(8)

圖目錄

圖目錄

圖目錄

圖目錄

圖 圖 圖 圖 1.1 人員職務異動前後之資料庫權限示意圖人員職務異動前後之資料庫權限示意圖人員職務異動前後之資料庫權限示意圖 ... 2 人員職務異動前後之資料庫權限示意圖 圖 圖 圖 圖 1.2 資料來源之參考關聯圖資料來源之參考關聯圖資料來源之參考關聯圖 ... 3 資料來源之參考關聯圖 圖 圖 圖 圖 1.3 人工進行系統部署之示意圖人工進行系統部署之示意圖人工進行系統部署之示意圖 ... 3 人工進行系統部署之示意圖 圖 圖 圖 圖 2.1 資料庫系統三階層綱目架構資料庫系統三階層綱目架構資料庫系統三階層綱目架構[10] ... 10 資料庫系統三階層綱目架構 圖 圖 圖 圖 2.2 多層式架構與應用程式用階層對應圖多層式架構與應用程式用階層對應圖多層式架構與應用程式用階層對應圖 ... 14 多層式架構與應用程式用階層對應圖 圖 圖 圖 圖 2.3 從物件資料到關聯資料的存儲對映的技術從物件資料到關聯資料的存儲對映的技術從物件資料到關聯資料的存儲對映的技術 ... 16 從物件資料到關聯資料的存儲對映的技術 圖 圖 圖 圖 2.4 O/R Mapping 之運作步驟之運作步驟之運作步驟之運作步驟 ... 16 圖 圖 圖

圖 2.5 Microsoft Enterprise Library 架構及運作關係架構及運作關係架構及運作關係[18] ... 17 架構及運作關係 圖 圖 圖 圖 2.6 WebService 架構及運作關係圖架構及運作關係圖架構及運作關係圖[19] ... 19 架構及運作關係圖 圖 圖 圖 圖 3.1 一般傳統之資料庫授權方式一般傳統之資料庫授權方式一般傳統之資料庫授權方式 ... 26 一般傳統之資料庫授權方式 圖 圖 圖 圖 3.2 單一存取介面之管理方式單一存取介面之管理方式單一存取介面之管理方式 ... 27 單一存取介面之管理方式 圖 圖 圖 圖 3.3 由管理系統控管人員職掌及資料庫權限對應由管理系統控管人員職掌及資料庫權限對應由管理系統控管人員職掌及資料庫權限對應 ... 28 由管理系統控管人員職掌及資料庫權限對應 圖 圖 圖 圖 3.4 人員職掌及資料庫權限對應流程圖人員職掌及資料庫權限對應流程圖人員職掌及資料庫權限對應流程圖 ... 28 人員職掌及資料庫權限對應流程圖 圖 圖 圖 圖 3.5 資料庫來源關聯控管及異動機制資料庫來源關聯控管及異動機制資料庫來源關聯控管及異動機制 ... 29 資料庫來源關聯控管及異動機制 圖 圖 圖 圖 3.6 資料庫欄位比對機制資料庫欄位比對機制資料庫欄位比對機制 ... 29 資料庫欄位比對機制 圖 圖 圖 圖 3.7 資料庫物件比對機制流程圖資料庫物件比對機制流程圖資料庫物件比對機制流程圖 ... 30 資料庫物件比對機制流程圖 圖 圖 圖 圖 3.8 系統功能流程圖全覽圖系統功能流程圖全覽圖系統功能流程圖全覽圖 ... 31 系統功能流程圖全覽圖 圖 圖 圖 圖 4.1 Virtual DBA 系統架構圖系統架構圖系統架構圖系統架構圖 ... 33 圖 圖 圖 圖 4.2 Virtual DBA 程式模組架構圖程式模組架構圖程式模組架構圖程式模組架構圖 ... 34 圖 圖 圖 圖 4.3 Virtual DBA 系統功能模組圖系統功能模組圖系統功能模組圖系統功能模組圖 ... 36

(9)

第一章

第一章

第一章

第一章、

、緒論

緒論

緒論

緒論

數位化時代的來臨,電腦應用系統早已成為企業的營運命脈,而資料庫也是 應用系統後端最重要的資料儲存裝置,企業因應業務流程之需求,需要不斷建立 或 更 新 應 用 系 統 之 功 能 , 而 資 料 庫 系 統 的 規 模 也 隨 著 日 漸 增 加 , 根 據

IDC(International Data Corporation,國際數據資訊)的數據顯示,關連性資料庫市

場從 2006 年的產值 166 億美元,成長到 2007 年的 186 億美元,成長率為 12.1%[7]。 資料庫管理人員在企業扮演的角色除了資料庫管理系統的管理及資料的保 全,與系統開發人員的緊密合作也是重要的職掌之一,市面上的資料庫管理系 統,在資料的管理功能上皆可滿足一般企業之需求,但企業實務上對於資料或人 員等管理細則,通常會以人工方式管理。

1.1

研究

研究

研究

研究背景與

背景與

背景與

背景與動機

動機

動機

動機

企業建置許多應用系統來輔助業務流程的運行,除了利用電腦系統的大容量 的儲存記憶與快速運算的優勢,也為了取代重覆性人工作業並減少錯誤,常見的

ERP(Enterprise Resource Planning) 系 統 或 Supply Chain 或 CRM(Customer Relationship Management)系統都是很好的例子,而這些系統的背後也的確存在許

多的資料庫管理系統。

企業不論規模大小,通常會由資訊單位來進行應用系統開發及維護,以及相 闗的資料庫管理,而常見的資訊活動[10]為程式開發與資料使用以及資料綱要

(10)

賴經驗來進行人工方式管理。 資料庫權限通常會依不同的系統以及相關負責人而不同之設定,企業在人員 職務異動或人員離職交接之動作時,由於考量系統運作之正常,通常不會輕易異 動資料庫之權限或密碼,使得異動後原系統負責人仍知悉原資料庫之權限,造成 管理漏洞。 圖 圖 圖 圖 1.1 人員職務異動人員職務異動人員職務異動人員職務異動前後前後前後前後之之之資料庫權限示意圖之資料庫權限示意圖資料庫權限示意圖資料庫權限示意圖 企業內部之應用系統由於業務眾多,所以相關系統資料相互參考的情況頻 繁,在最上游之系統或資料庫進行帳號或資料欄位定義異動時,直接連結之系統 或資料庫因未得到異動通知同步修改而造成系統錯誤,若要完全通知到所有下游 之系統或資料負責人進行同步更動,的確不易完全達成,也是企業的管理挑戰。 異動前之相關資料庫權限 異動前之相關資料庫權限異動前之相關資料庫權限 異動前之相關資料庫權限 異動後之相關資料庫權限異動後之相關資料庫權限異動後之相關資料庫權限異動後之相關資料庫權限

(11)

圖 圖圖 圖 1.2 資料來源之參考關聯圖資料來源之參考關聯圖資料來源之參考關聯圖資料來源之參考關聯圖 新系統建置或是進行系統環境移動時,以人工的方式來建置除了費時且出錯 機率很高,而資料庫管理系統提供之備份還原的功能,並無法完全提供以系統(跨 Server)為角度來建置系統或進行災難復原, 圖 圖圖 圖1.3 人工進行系統部署之示意圖人工進行系統部署之示意圖人工進行系統部署之示意圖 人工進行系統部署之示意圖

(12)

1.2

研究目的

研究目的

研究目的

研究目的

目前大部份企業之業務流程幾乎都已朝向電子化發展,而資料庫是企業資訊 系統的核心,在本論文研究中,期望透過研究個案相關現況分析以及利用目前較 為成熟之資訊技術以及管理方法,建立相關的系統功能,以改善研究個案之內部 管理漏洞。 本研究希望藉由 Virtual DBA 管理系統的建立,輔助資料庫人員於資料綱要 (Schema)的管理與授權,並進一步使系統開發人員更快速及方便的使用資料庫, 並以下列四大研究目的為重心。  提供提供提供單一存取提供單一存取單一存取異動單一存取異動異動異動介面介面,介面介面,,,集中集中集中集中控管權責控管權責控管權責 控管權責 一般資料庫會提供服務給兩種角色,一種為系統開發人員以及其開發維護的 資訊系統,另一種則是未透過系統之資料庫管理人員,由於市面上資料庫軟體, 不論是否需要付費使用,種類相當多,也具備各種不同功能,但簡單之資料庫存 取修改功能都有具備,但因此也增加了資料安全管控上的困難,若能透過單一系 統介面來集中控管以上兩種角色之資料庫存取權限,使用者在沒有足夠權限下, 便只能利用系統介面來進行資料庫操作,因而可防止許多內部未經授權的資料庫 操作行為。  透過透過透過人員透過人員人員維護人員維護維護維護職掌關職掌關係職掌關職掌關係係係,,,,即時同步人員權限即時同步人員權限即時同步人員權限即時同步人員權限 通常企業會以書面之方式(如系統維護文件)來記錄資訊系統維護人員以 及資訊系統相關資訊,而通常人員異動前之維護交接動作,也是以此文件為主, 但隨著交接程度的細膩與否,容易因人為疏失而造成資訊的斷層,也會增加承接

(13)

者日後出錯的機率,若能將資訊系統與維護人員之職掌關係建立在系統中,便能 一目了然誰負責那些系統,這些系統又使用那些資料庫,在人員職掌異動時,便 只要交接細部程式內容即可,如此除了不會有資訊斷層,也可節省交接之時間。  提供存取提供存取提供存取提供存取記錄與異常偵測記錄與異常偵測記錄與異常偵測記錄與異常偵測機制機制機制機制 一般資料庫管理軟體皆有具備存取及異動記錄之功能,但由於連結資料庫之 使用帳號,通常不為員工帳號,而為資料庫之系統帳號,故在異常發生之時,也 難以就帳號去判別是人工或資訊系統所為,也難歸咎是那些個員工之行為,若能 透過相同介面之系統來提供存取,在異常情況發生時,責任的歸屬以及發生當時 立即要通知的對象,都可直接透過Alarm的機制來讓資料或系統負責人第一時間 得知,並立即處理,以免影響層面擴大,事後補救之成本更大。  建立建立建立建立資料資料資料來源資料來源來源來源關聯關聯關聯關聯,,減少,,減少減少減少系統系統系統系統部署時間部署時間及部署時間部署時間及及及異動錯誤異動錯誤異動錯誤 異動錯誤 企業裡最難管理的就是內部資料來源的關聯性,由於資訊系統及資料庫分 散,資料欄位的定義有時會出現相同意義,但卻在不同系統中有不同的屬性定 義,另外也會出現跨系統的資料參考之現象,如人事資料或會計財務資料,而資 料上下游所形成的資料流,也是日後異動資料定義時,最容易造成下游系統未同 步更新而發生錯誤的原因,若能將企業之欄位定義集中管理,並明確記錄跨系統 之資料流關係,除了在建立新系統時不會出現屬性不對之欄位,另外在系統移轉 或者災難復原時,可快速得知參考資料之上下游,便可輕易進行系統的設定,節 省轉移及復原之時間,並可減少人工操作之錯誤。

(14)

1.3

研究步驟

研究步驟

研究步驟

研究步驟

研究動機與目的

研究動機與目的

研究動機與目的

研究動機與目的

結論與建議

結論與建議

結論與建議

結論與建議

系統實作與建置

系統實作與建置

系統實作與建置

系統實作與建置

系統架構設計

系統架構設計

系統架構設計

系統架構設計

收集相關研究

收集相關研究

收集相關研究

收集相關研究

個別系統逐步導入

個別系統逐步導入

個別系統逐步導入

個別系統逐步導入

(15)

1.4

論文章節說明

論文章節說明

論文章節說明

論文章節說明

本研究主要包含「緒論」、「相關研究」、「架構設計」、「系統實作與建 置」和最終的「結論與未來發展」等五章。各章的主要內容說明如下:

第一章

第一章

第一章

第一章

緒論

緒論

緒論

緒論

說明設計本論文之應用系統的動機、目的。

第二章

第二章

第二章

第二章

相關研究

相關研究

相關研究

相關研究

針對本論文所設計之應用系統其實務應用與理論之相關技術架構參考文獻 進行分析。

第三章

第三章

第三章

第三章

架構

架構

架構

架構設計

設計

設計

設計

說明本論文所設計之應用系統其架構及進行的方式。

第四章

第四章

第四章

第四章

系統實作與建置

系統實作與建置

系統實作與建置

系統實作與建置

說明本論文所設計之應用系統其實作之模組與功能。

第五章

第五章

第五章

第五章

結論與未來發展

結論與未來發展

結論與未來發展

結論與未來發展

說明本論文所設計之應用系統已產生之效益以及未來可再延伸應用之範圍。

(16)

第二章

第二章

第二章

第二章、

、文獻探討

文獻探討

文獻探討

文獻探討

本章首先將探討有關資料庫管理系統之運作,以及資料庫管理人員常用之工 作內容,在技術領域則將探討以Microsoft所發展之分散式架構可為應用系統帶來 什麼效益,以及分散式架構常用之Web Service技術,接著探討以多層式架構為 基 底 的 程 式 開 發 標 準 相 關 技 術 架 構 , 如 Microsoft Enterprise Library 與 O/R

Mapping(Object Relation Mapping),最後會探討操作SQL Server底層介面功能所

使用的SMO物件(Server Management Object),以作為本論文所提出架構方法之參 考依據。

2.1

資料庫系統的使用成員

資料庫系統的使用成員

資料庫系統的使用成員

資料庫系統的使用成員

一個資料庫系統使用成員有四類,分別為使用者、直接使用者、應用程式與 資料庫管理員[11]。  使用者:經由開發的程式取得資料庫中資料,並不會直接與資料庫系統 接觸。  直接使用者:使用資料庫系統所提供指令,直接對資料庫下達查詢指 令,此類人員多為企業內資訊部門中程式開發人員或應用程式負責人 員。  應用程式:開發應用程式向資料庫管理系統下達命令,例如企業開發轉 檔程式。  資料庫管理員:負責資料庫管理工作的人員,負責定義資料儲存結構、

(17)

管理資料庫綱要「Database Schema」、資料庫安全控制、資料備份與回 存、監督、調整資料庫效能並排除資料庫使用上等問題。

2.2

資料庫管理系統

資料庫管理系統

資料庫管理系統

資料庫管理系統

DBMS (Database Management System)是一種應用軟體。此一軟體能有系統地

建立、更新、儲存及取得資料庫中資料。使用者與開發的程式人員能夠共享資料, 同時程式與程式間亦可共享資料,無須為每個程式產生與儲存新的檔案。DBMS 亦能提供資料存取控制、管理好資料的完整性與一致性的控制,以及資料庫的復 原機制[9]。

2.3

資料庫管理系統架構

資料庫管理系統架構

資料庫管理系統架構

資料庫管理系統架構

資料庫管理系統為方便使用者使用,系統中複雜的資料結構與相關存取控制 特地隱藏起來,使用者只須留意資料本身的處理。其目的將使用者應用程式與資 料儲存體分開,達到「資料獨立」及「資料分享」[10]。 現今資料庫管理系統大多採用美國國家標準協會系統綜合規劃委員會

ANSI/SPARC(American National Standards Institute / Standards Planning And Requirements Committee)中的資料庫管理小組所制定的資料庫系統架構,其設計

(18)

圖 圖 圖 圖2.1 資料庫系統三階層綱目架構資料庫系統三階層綱目架構資料庫系統三階層綱目架構[10] 資料庫系統三階層綱目架構 1. 外部層次(External Level):為使用者層次,每一個概略表可看成不同的使用 者。 2. 概念層次(Conceptual Level):主要在描述資料庫管理系統中全部資料邏輯結 構和特徵,其中概念綱要(Conceptual Schema)在定義資料庫實體與關聯邏輯 含意。

3. 內部層次(Internal Level):為實體層次(Physical Level)或儲存綱目(Storage

Schemas),其中內部綱要(Internal Schema)代表資料儲存的描述,定義檔案儲

存體的資料集合,檔案可以是儲存概念資料庫中一個或多個實體描述。

2.4

DBA(

資料庫管理員

資料庫管理員

資料庫管理員

資料庫管理員

)

工作內容研究

工作內容研究

工作內容研究

工作內容研究

(19)

務,來作為本系統開發之參考。  安裝和設定安裝和設定安裝和設定安裝和設定 DBA 常被要求支援軟硬體的安裝及協助設定。在一般的維護工作上,由於 DBA 必須確定所安裝或設定的系統和資料庫是可執行及和穩定的,因此整個系 統的設定亦皆屬責任範圍內。  維持維持維持維持安全性安全性安全性 安全性 監視系統的安全性及隨時報告所發現的問題是 DBA 的另一項責任。一個系 統需要什麼種類或多少份量的安全系統,取決於使用系統的權限範圍。如一個沒 有與網路相連接的系統僅供給幾位可信賴的員工使用,這樣的系統所需的安全裝 置就不會比一個與網路有連接的系統所需要的安全裝置來得複雜。除了管理使用 者之外,DBA 也需要設計並實施網路保全計劃,這方面的工作通常會指派給具 有網路保全相關經驗的資深人員執行。  系統稽核系統稽核系統稽核系統稽核 系統稽核包括監控 Sever 錯誤記錄檔和作業系統事件記錄檔。這些記錄檔和 事件記錄檔記載 DataBase Server 以及作業系統保全有關的重要資訊。必須定時 監 控 這 些 資 料 以 確 保 系 統 內 部 的 安 全 。 如 data definition language (DDL)

statement 和插入、更新及刪除的功能。還可用來監控特定的事件、登入的時間、

(20)

執行規則複製和測試備份回復 DBA 工作的一部分。如果系統出現了故障, 在很多情況下,使用備份是回復資料庫的唯一途徑。但是如果沒有正確的執行備 份,就不可能回復資料庫,那會導致資料的遺失和可能好多天的停機,甚至可能 造成損失。  使用者使用者使用者使用者權限權限權限權限管理管理管理管理 使用者管理也是 DBA 一項例行工作,包括管理 Server 的登入和使用者權 限。任何一個需要使用資料庫的員工都必須先透過 DBA 設定其權限才得以進入 系統。通常在企業間開放權限時,是很少完全開放一個人的權限,通常會依照該 部門業務所需要的資料來開放相關的權限。  調整及監控調整及監控調整及監控調整及監控 如果突然遇到反應時間變長、所使用的 CPU Time 變大等狀況,可能都是系 統出現問題的預兆。當您遇到不同的系統,監控的方式及解釋監控的結果也會隨 之不同。因此必須根據所遇到的系統作判斷並解決問題。您也必須定期監控系統 的資源使用情形。如此,就可以在系統效能降低時即時調整系統。  資源分享資源分享資源分享資源分享 DBA 有時也會被要求成為開發者、設計者和使用者的顧問角色。幫助一般 使用者有關特定問題的協助,或者開發訓練課程,甚至親自教授課程。幫助開發 人員,提供關於過去系統使用的情況以及新的進展對使用者的好處等資訊。這可 能包括通知使用者可用的新資料表和索引,以及所有可能有用的新特性。幫助設 計人員,提供不同的設計特性對使用者有何益處等。有時設計人員開發的應用程

(21)

式可能缺少一些使用者希望或需要的特性,而將這些資訊傳遞給他們可能有助於 將來的設計。如果使用者對於使用某些功能有問題,此時他們更可能向您提出問 題,因此您是設計人員很好的資訊提供者。

2.5

多層式架構

多層式架構

多層式架構

多層式架構

(Multi-Tier Architecture)

分散式架構(Distributed Architecture)在近年來不斷的被討論[4][5][14],它是 一種全面性的IT架構變革,與傳統Client/Server或單機介面不同之程式架構,在 企業業務流程企業在考量確保過去IT的投資,又可持續保有IT架構的發展與發揮 IT系統所應帶來的效益,分散式架構的導入,已在多數企業的心中醞釀。 本研究之企業樣板相關概念的基礎和架構,是衍生自 Microsoft 近年來為降 低企業環境應用程式之複雜性所開發的分散式應用程式架構[14]。這個模型有時 也被稱為「多層式架構」,因為以邏輯組合的概念最容易瞭解它的意義。因為使 用的是樣板,樣板在這專案開發之前就已經為您完成了一些架構。這項優點可以 減少您的工作量和規劃的時間。各種分散式應用程式樣板提供一種開發應用程式 (使用分散式架構) 的標準方法。只要使用樣板,就是選擇在標準的位置上實作 服務。您並不需要實作所有的層。樣板會取得實作的部分,它們會在與分散式應 用程式架構一致的層內實作。舉例來講,如果您需要 XML Web Service ,您只 需在 Web 服務專案層中實作它,不用將它加入到用戶端或商務邏輯層。 一般 多層式架構分為顯示層(Presentation Layer)、邏輯層(Business Logic Layer)以及資

(22)

UI Components UI Process Components Data Access Components Business Workflows Business Components Users Business Entities Service Agents Service Interfaces Data Sources Services

Data Access Layer

Data Access Layer

Web Tier

App Tier

Data Tier

Business Logic Layer

Business Logic Layer

Presentation Layer

Presentation Layer

圖 圖 圖 圖 2.2 多層式架構與應用程式用階層對應圖多層式架構與應用程式用階層對應圖多層式架構與應用程式用階層對應圖多層式架構與應用程式用階層對應圖

2.6

程式產生器

程式產生器

程式產生器

程式產生器

(Code Generator)

產生器應用於系統的產生者,稱之為應用系統程式產生器,目前已有許多 關於應用系統產生器系統的研究[2][3][4][13][15],製作應用系統產生器能夠有效 提升軟體設計的產出,具有降低程式碼的錯誤,能夠使得開發者專注於需求規格 的錯誤以及易於建構與測試替代方案的雛型,最重要的優點是藉由產生器自動產 生標準介面或輸出規格,易於將建構的過程標準化。 程式產生器分為三種[16]:(1)商業資料處理的應用系統產生器。(2)程式語 言的文法與詞彙分析產生器。(3)CASE 工具中的程式產生器。產生器主要是將 特定問題域的需求規格(Specification)轉換成程式片段、子程式(Subroutine) 或軟

(23)

體系統,本論文研究的範圍如下:

 利用所使用的System Architecture 及Framework,制定程式範本,用程式產

生器產生程式

 Data Access Layer 程式相依於 table schema,最適合用程式產生器來產生程

2.7

O/R Mapping(Object Relation Mapping)

O/R Mapping 主要用於實作從物件資料(物件導向)到關聯資料(關聯式資料

庫)的存儲對映的技術[12][18](參見圖 2.3)。在本論文研究中,主要用來產生與資 料庫資料綱要(Data Schema) 對應之類別程式,也是本論文程式產生器使用之主 要規則。

O/R Mapping 之 運 作 步 驟 : 從 Data Sources 出 發 , 定 義 Pattern Rule (Template) , 利 用 Code Generator 來 產 生 Concrete/Base Class , 最 後 進 行 Customize Class (參見圖 2.4)。

(24)

圖 圖 圖 圖 2.3 從物件資料到關聯資料的存儲對映的技術從物件資料到關聯資料的存儲對映的技術從物件資料到關聯資料的存儲對映的技術從物件資料到關聯資料的存儲對映的技術 圖 圖 圖 圖 2.4 O/R Mapping 之運作步驟之運作步驟之運作步驟 之運作步驟

2.8

Microsoft Enterprise Library Framework

我們在製做大型專案都常會用到一些機制,如異常狀態處理(Exception

Handling)、工作日誌(Log)等。在設計與實作上,我們可能會想要有一個架構可

以涵蓋我們的需求,並且可重覆使用。

通常自己去設計完全符合自己風格的Framework來解決我們的問題,可是微 軟所推出的Enterprise Library算是比完整解決方案了。本論文多層式架構採用之 樣版是使用Micorost Enterprise Library[19]來作為Framework 參考。

Enterprise Library擁有幾個優點:

(25)

(3) 所有的Application Block除了內建的功能外,都允許我們自己自訂處理方法 (4) 處理機制都已配合.NET特性,進行過效能的最佳化

Enterprise Library不是用來取代.NET Framework裡任何的功能,它只是更加

強化.NET Framework裡原有的不足。Enterprise Library裡內建了六個方面的功能 (稱之為Application Block),和一個部份將會和其它Library共用的核心(Core)。

下圖是微軟官方的架構圖,簡單介紹Enterprise Library 2.0的整體架構:

圖 圖圖

圖 2.5 Microsoft Enterprise Library 架構及運作關係架構及運作關係架構及運作關係架構及運作關係[18]

我們可以把這個架構圖分成幾個部份來看:

(一) 核心(Core):

 Configuration : Enterprise Library的 設 定 檔 就 預 設 是 我 們 平 常 在 使 用 的 app.config或web.config,不過我們也可以改成設定在資料庫中。特殊的是,

(26)

 Configuration Design & Tools:微軟的團隊在設計這個工具的時候,也考慮

到在撰寫app.cinfig或web.config已經愈趨複雜,若要把Application Block的 設定也加到裡面,撰寫的困難度一定也會大大提高。所以就設計了Enterprise

Library Configuration工具來協助我們撰寫設定檔。

 Instrumentation:EL中所有的Application Block都內建了以下功能來協助我

們開發、測試:a. Event Log events b. Performance c.WMI events。

 Object Builder:這是使用設定檔就能夠造成系統運作改變的重要原因,可

以發現Application Block都是使用如XXXFactory的類別來產生物件。Object

Builder的角色便是當XXXFactory發出需要創建物件的需求時,便讀取設定

檔並創建對應的物件以供使用,保證系統運作的正確。

(二) Application Block

 快取(Caching Application Block)

 加解密(Cryptography Application Block)

 資料存取(Data Access Application Block)

 異常狀態處理(Exception Handling Application Block)

 工作日誌(Logging Application Block)

 安全控管(Security Application Block)

本論文設計之系統,乃參考Microsoft Enterprise Library 分散式架構之Design

(27)

Application Block以及Exception Management Application Block等三大模組來進行

系統之Log 記錄、Exception Alert以及Data Access等功能。

2.9

Web Services

由於Web Services的彈性架構與具有跨平台之共通協定,所以成為分散式架 構的最佳實作方式[20],利用WebServices 來建構分散式架構最主要的優點在於

Web Services 是公開平台且普遍、架構簡單。以下將說明Web Services的核心技

術。

圖 圖圖

圖 2.6 WebService 架構及運作關係圖架構及運作關係圖架構及運作關係圖架構及運作關係圖[19]

 XML

XML(eXtensible Markup Language, XML)是一個開放且標準的可延伸性標

(28)

SOAP(Sample Object Access Protocol, SOAP)為一個分散式環境中訊息傳 遞與呼叫的標準,其訊息的格式是XML 語言,其兼具了平台獨立性與語言中立 性。SOAP 的訊息傳輸方式可用HTTP 協定來做同步(synchronous)傳輸,或是 利用SMTP 來做非同步(asynchronous)呼叫。因此跨組識間的Web Service物件 呼叫、訊息交換或資訊整合皆可利用SOAP 來做為訊息傳遞的標準。  WSDL

WSDL( Web Service Description Language, WSDL) 是由Microsoft 與IBM

所聯合提出的一個以XML 為基礎的規範語言。當Web Service Provider 欲對外公 佈其所提供的Web Service,就必撰寫WSDL 服務描述檔案,並將之註冊到UDDI

Service Registry。WSDL 描述內容包括:

1.描述Service Provider 所提供的Web Service operations。

2.描述Service Requester 如何和Web Service 的operations 溝通,內容包括傳

輸協定、格式及參數。

WSDL 規範Web Service 輸入及輸出的標準,讓使用者經由此規格即可得知

服務提供者所提供的服務、文件資料型態和所需的基本軟硬體需求。所以利用

WSDL可以得知Web Service 所提供的服務格式。

 UDDI

UDDI(Universal Description Discovery and Integration, UDDI)是由IBM、 Microsoft 及Ariba 所共同制定的開放性平台架構,提供不同地理位置的Web Service 在網際網路上互動之機制。UDDI 定義Web Service 的註冊、搜尋和發

(29)

現,以提供網路上Web Service的取用及分享。

目前Microsoft及IBM分別設置了UDDI Service Registry 供應用服務提供者註 冊其已開發的服務。企業可經由此規格來註冊其所提供的服務,而服務要求者則 可藉由服務查詢來取得所需的服務資訊。UDDI 的目標是要讓任何網路上的服務 皆可即時的傳遞服務訊息和內容給所需要的使用者,讓服務提供者和服務使用者 能隨時隨地的相互溝通。UDDI 目前規格的缺失之一是其發現機制是“被動式的 發現”,亦即使用者需向服務註冊單元進行查詢方能得知是否有其所需要的服務 出現。

2.10

Microsoft SMO(Server Management Objects)

 SMO 簡介簡介簡介簡介

SQL Server Management Objects (SMO)[5]是 Micorost 針對應用程式開發人員

用來與 SQL Server 底層 API 直接溝通所設計的物件。在 SQL Server 2005 之後

SMO 物件模型會擴充並取代 SQL Server 2000 Distributed Management Objects (SQL-DMO) 物件模型。與 SQL-DMO 相較之下,SMO 在效能、控制能力和便

於使用的程度上都有提升。且因為 SMO 與 SQL Server 2000、SQL Server 2005、

SQL Server 2008 和 SQL Server 2008 R2 相容,所以可以管理多個版本的環境,以

下說明本論文所使用之 SMO Object。

(30)

如 , SQL Server 執 行 個 體 的 名 稱 與驗證模式)設定屬性。然後傳遞 Server

Connection 物件變數,做為 Server 物件建構函式的參數。可以使用 Copy 方法

來取得現有連接設定的複本。若要重複使用 Server Connection 通常不需要呼叫

Server Connection 物件的 Connect 方法。SMO 將會在需要時,自動建立連接,

並在執行作業完畢之後,將連接釋放到連接集區。呼叫 Connect 方法時,並不 會將連接釋放到集區。若要將連接釋放到集區,必須明確地呼叫 Disconnect 方 法。此外,您可以設定 Server Connection 物件的 NonPooledConnection 屬性來要 求非集區的連接。

 資料庫資料庫資料庫資料庫物件物件物件物件(DataBase)

在 SQL Server 管理物件(SMO)中,資料庫是由 DataBase 物件表示。在 SMO 物件階層中,DataBase 物件位於 Server 物件之下。可利用 Create(建立) 、改變

(Alter)、移除(Drop)等 Method 來操作。

 資料資料資料資料表物件表物件表物件(Table) 表物件

在 SQL Server 管理物件(SMO)中,資料表是由 Table 物件表示。在 SMO 物 件階層中,Table 物件位於 DataBase 物件之下。可利用 Create(建立)、改變(Alter)、 移除(Drop)等 Method 來操作。

 索引索引索引索引物件物件物件(Index) 物件

在 SQL Server 管理物件(SMO)階層中,索引是由 Index 物件表示。索引資 料行是由 IndexedColumns 屬性表示的 IndexedColumn 物件集合來表示。

(31)

在 SQL Server 管理物件(SMO)中,SQL Server 檢視是由 View 物件表示。

View 物件的 TextBody 屬性會定義檢視。該屬性等於用於建立檢視的 Transact-SQL SELECT 陳述式。

 觸發程式觸發程式觸發程式觸發程式物件物件物件物件(Trigger)

在 SMO 中,觸發程序是利用 Trigger 物件表示。在觸發程序引發時所執行 的 Transact-SQL 程式碼是由 Trigger 物件的 TextBody 屬性所設定。觸發程序的類 型是利用 Trigger 物件的其他屬性所設定,例如 Update 屬性。這是布林值屬性, 指定觸發程序是否由記錄的 UPDATE 在父資料表上引發。

 預存程序預存程序預存程序預存程序物件物件物件物件(StoredProcedure)

在 SQL Server 管理物件 (SMO)中,預存程序會由 StoredProcedure 物件表 示。若要在 SMO 中建立 StoredProcedure 物件,需要將 TextBody 屬性設定為定 義預存程序的 Transact-SQL 指令碼。參數需要@前置詞,且必須藉由使用

StoredProcedure Parameter 物 件 以 及 加 入 至 StoredProcedure 物 件 的 StoredProcedure Parameter 集合來個別地建立。

 管理使用者管理使用者管理使用者管理使用者、、、、角色和登入角色和登入角色和登入角色和登入

在 SMO 中,登入是由 Login 物件表示。當登入存在於 SQL Server 時,可 以加入至伺服器角色。伺服器角色是由 ServerRole 物件表示,資料庫角色是由

DatabaseRole 物件表示,應用程式角色則是由 ApplicationRole 物件表示。與伺服

(32)

UserCollection 物件,可指定資料庫中的所有使用者。每個使用者都與一個登入

相關聯。單一的登入可以與一個以上資料庫中的使用者產生關聯。Login 物件的

EnumDatabaseMappings 方法可用於列出每個資料庫中與該登入相關聯的所有使

用者;或者,User 物件的 Login 屬性也可指定與該使用者相關的登入。SQL Server 資料庫也具有指定資料庫層級權限集的角色,這些權限可以讓使用者執行特定的 工作。與伺服器角色不同的是,資料庫角色不是固定的。這些角色可以建立、修 改和移除。若要進行大量管理,可以為資料庫角色指派權限和使用者。  授與授與授與授與、、、撤銷和拒絕權限、撤銷和拒絕權限撤銷和拒絕權限撤銷和拒絕權限 ServerPermission 物 件 可 用 於 將 一 組 權 限 或 個 別 的 伺 服 器 權 限 指 派 給 ServerPermissionSet 物件。如果是伺服器層級權限,被授與者是指登入。Windows 驗證過的登入會列為 Windows 使用者名稱。當這個程式碼範例執行時,會從被 授與者撤銷權限,並使用 EnumServerPermissions 方法確認該權限已經移除。 資 料 庫 權 限 和 資 料 庫 物 件 權 限 也 可 藉 由 DatabasePermissionSet 物 件 和 ObjectPermissionSet 物件,以類似的方式進行指派。  備份及還原資料庫和交易記錄備份及還原資料庫和交易記錄備份及還原資料庫和交易記錄備份及還原資料庫和交易記錄

在 SMO 中,Backup 類別和 Restore 類別都是公用程式類別,可提供工具 來完成備份及還原的特定工作。Backup 物件表示所需的特定備份工作,而不是 伺服器執行個體上的 Microsoft SQL Server 物件。如果發生資料遺失或損毀,則 必須完整或部分地還原備份。部分還原會使用 FileGroupCollection 集合來分要 還原的資料。如果是進行交易記錄的備份,則可以使用 Restore 物件的

(33)

料。建議的備份程序是定期執行還原作業並檢查資料庫中的資料,以檢查備份的 完整性。與 Backup 物件類似,Restore 物件不需要藉由使用 Create 方法來建 立,因為它不代表 SQL Server 執行個體上的任何物件。Restore 物件是一組用 於還原資料庫的屬性和方法。

(34)

第三章

第三章

第三章

第三章、

、架構

架構

架構設計

架構

設計

設計

設計

本章根據前章節相關技術文獻之探討,進行相關系統架構、功能模組之設計, 以期望滿足研究目的之初衷。

3.1

單一存取介面

單一存取介面

單一存取介面

單一存取介面之

Virtual DBA

機制

機制

機制

機制

一般傳統之資料庫授權方式如圖 3.1 所示,系統帳號權限是由 DBA 控管,再 分別授權給系統開發人員以及指定系統執行時所使用之帳號,雖可控管但無法防 止惡意之帳用盗用或內部管理人員非法之監看機密資料。 圖 圖圖 圖 3.1 一般傳統之資料庫授權方式一般傳統之資料庫授權方式一般傳統之資料庫授權方式 一般傳統之資料庫授權方式 透過單一存取介面之管理方式如圖 3.2 所示,資料庫之帳號權限統一由 Virtual DBA 集中控管,系統開發人員或資料庫管理人員不需要使用資料庫帳號

(35)

Server 之帳號,是由 Virtual DBA 所掌控之系統管理權限帳號,再依管理人員或 應用系統之職掌資訊,在系統介面上給予適當瀏覽或異動之權限。 所有系統管理權限之密碼則只有部門之權責主管才有檢視或更動之權利,一 般開發者甚至是資料庫管員並無法得知。 圖 圖圖 圖 3.2 單一存取介面之管理方式單一存取介面之管理方式單一存取介面之管理方式 單一存取介面之管理方式

3.2

依職務授予適當權限

依職務授予適當權限

依職務授予適當權限

依職務授予適當權限

(36)

圖 圖 圖 圖 3.3 由管理系統控管人員職掌及資料庫權限對應由管理系統控管人員職掌及資料庫權限對應由管理系統控管人員職掌及資料庫權限對應由管理系統控管人員職掌及資料庫權限對應 系統職掌關係主要在記錄維護人員與應用系統之關聯資訊,而透過這些資訊 便可明確定義維護人員具有那些資料庫之異動權限,以圖 3.3 為例,System A 之 維護人員與 System B 之維護人員各自有其維護之資料庫。其概念資料流程圖如 圖 3.4 所示,首先必須建立 System 以及 Server 相關之資訊,然後再透過員工與 System 之關係,便可明確定義員工職掌,也間接定義那些資料庫之該員工有權利 進行異動的範圍。 圖 圖 圖 圖 3.4 人員職掌及資料庫權限對應流程圖人員職掌及資料庫權限對應流程圖人員職掌及資料庫權限對應流程圖人員職掌及資料庫權限對應流程圖

3.3

經由

經由

經由資料關

經由

資料關

資料關

資料關聯

聯定義

定義

定義,

定義

,即時獲

即時獲

即時獲得

即時獲

得其它系統

其它系統

其它系統資料庫異動內容

其它系統

資料庫異動內容

資料庫異動內容

資料庫異動內容

(37)

圖 圖 圖 圖 3.5 資料庫來源關聯控管及異動機制資料庫來源關聯控管及異動機制資料庫來源關聯控管及異動機制 資料庫來源關聯控管及異動機制 如圖 3.5 所示,企業內部之應用系統其資料來源的參考是很頻繁且複雜,也 是較難控管的部份,若能完整記錄資料關聯之上下游關係,任何上游系統的資料 屬性更動都可追溯至下游之資料源,且透過資料與系統職掌之資訊,可在第一時 間通知相關負責人員,減少異動後所產生的錯誤。

3.4

利用比對功能確保部署完整性

利用比對功能確保部署完整性

利用比對功能確保部署完整性

利用比對功能確保部署完整性

(38)

資料庫的部署常會出現在新系統上線時,以上圖為例,要把 Testing 環境所 使用到的資料庫複製到 Production,才能使系統正常運行,目前資料庫軟體工具 只能以 Server 為單位來進行 Backup/Restore 或 Import/Export,所以若有人工操作 遺漏,便會使 Production 系統無法正常執行。 透過以系統為角度之觀點,便能輕易得知系統所使用的資料庫有那些,而且 也不受跨 Server 之影響,在部署的完整性上比單一 Server 更強,而部署系統之 前置動作就是比對,它是系統決定要部署那些單元的依據。 圖 圖圖 圖 3.7 資料庫物件比對機制資料庫物件比對機制資料庫物件比對機制資料庫物件比對機制流程圖流程圖流程圖 流程圖 如圖 3.7 所示,在本系統的設計上,採用編輯區及資料庫同步區來區別控系 統管值與實際值,也是資料庫比對的兩個重要來源,透過這樣的機制可以完全掌 握其差異性,使部署的錯誤減到最低。

(39)

3.5

系統

系統

系統

系統作業流程

作業流程

作業流程

作業流程全覽

全覽

全覽圖

全覽

本小節主要說明 Virtual DBA 之所有功能流程說明,如圖 3.8 所示。 資料庫同步資料 設定資料庫連結資訊 建立System 與 Server之對應關係 資料庫部署 Connection Info 收集資料庫Info Account

Info SchemaData

Security Data 資料庫比對 Real DataBase Virtual DBA編輯區 Schema Data Security Data 比對結果 系統異常通知 資料庫屬性異動 異動記錄 MIS 職掌 ServerInfo 建立Employee與 System之對應關係 Employee System Info System/Server Relation MIS 職掌 資料庫複製

(40)

第四章

第四章

第四章

第四章、

、系統實作與建置

系統實作與建置

系統實作與建置

系統實作與建置

本章節根據前章節所提出之系統架構設計方法,進行系統實作來驗證系統之 可行性,並詳細介紹系統實作所使用的開發平台、系統架構、程式架構、功能模 組以及實際導入使用的步驟與本系統的功能限制。

4.1

開發平台

開發平台

開發平台

開發平台及語言

及語言

及語言

及語言

 Microsoft Visual Studio 2005 & C#.Net

本系統之程式開發工具為Microsoft Visual Studio 2005,此為Microsoft支援 至.Net Framework 2.0以上之開發平台,而本系統採用之程式語言為C# .Net,此 語言在.Net Framework支援的多種語言中,對於物件導向設計的支援最多,而本 系統是利用C#在.Net Framework 2.0平台上進行程式開發。

 Microsoft SQL Server 2005

本論文現階段研究範圍為Microsoft SQL Server,而在資料庫維護上,則是 採用SQL Server 2005之管理介面來同時控管SQL Server 2000以SQL Server 2005。

(41)

4.2

系統架構

系統架構

系統架構

系統架構

本系統架構主要包含 Task Management System 以及 Virtual DBA System,Task

Management System 主要功能是控管人員職掌資料以及維護應用系統、Server 等

相關資料,Virtual DBA System 則為企業 Schema 與人員權限的集中化管理。

圖 圖圖

(42)

4.3

程式架構

程式架構

程式架構

程式架構

本程式架構主要分為兩大部份,一為參考外部之 API Library,如 Microsoft

Enterprise 以及 Microsoft Management Objects Library,另一部份則為自行開發之

模組功能。

Data Access Business Logic

Presentation Web Batch Service

DAL MSSQL QueryBLL BLL CMAB EMAB DAAB Utils VO VO SMO SMO Control Method DBHelper Mapping Object Mapping Object Mapping Object

Others DB MappingObject

圖 圖圖

圖 4.2 Virtual DBA 程式模組架構圖程式模組架構圖程式模組架構圖 程式模組架構圖

 引用引用引用引用外部外部外部之外部之之之 API Library

本系統之程式架構三層式架構為主體如,其中引用 Microsoft Enterprise

Library 之 Confiuration Management Application Block(CMAB) 、 Exception Management Application Block(EMAB)以及 Data Access Application Block(DAAB)

(43)

式,與 SQL Server 底層 API 聯結則是引用 SQL Server Management Objects(SMO) 之物件模組。

 自行開發模自行開發模自行開發模自行開發模組組組

1.

Web/Batch/Service

本架構在 Presentation Layer 中主要有三種介面,Web 是操作管理網頁,Batch 為後端資料收集以及其它操作程式,Service 則提供對外介面供本系統或其它系 統使用

2.

QueryBLL/BLL

本架構之 Business Logic Layer 中主要有兩大模組,QueryBLL 主要負責與

DataBase Transaction(COM+) 無 關 之 資 料 的 取 得 , BLL 則 負 責 需 要 用 到 Transaction(COM+)之 SQL Statement 操作(如 Insert/Update/Delete)。

3.

DAO/VO

本架構之 Data Access Layer 中主要有兩大模組,DAO 是負責直接與資料庫 連得並執行 SQL Statement 之模組,而 VO 則是利用 O/R Mapping 產生之資料基 礎元件(通常相對於 DataBase 之 Table 結構),主要用來當做跨 Layer 之資料傳輸。

4.

DBHelper

本架構之另一個與資料庫連結之模組,上述提及之 DAO 是透過 Microsoft

(44)

5.

Mapping Object/Control Method

Mapping Object 主要用來整合 SMO 與 DAO 之溝通物件類別,而 Control Method 則為實施操作之定義(並包含對於異質資料庫之存取) 。

4.4

系統功能模組

系統功能模組

系統功能模組

系統功能模組

本小節主要說明本系統各功能模組之簡單說明。 圖 圖圖 圖 4.3 Virtual DBA 系統功能模組圖系統功能模組圖系統功能模組圖 系統功能模組圖  Security Management 本功能主要負責控管資料庫使用人員的帳號增刪、變更帳號密碼、變更 對於 DataBase Schema 的存取權限,以及控制,系統畫面如圖 4.4、圖 4.5 以

(45)

1. 設定帳號設定帳號設定帳號設定帳號 圖 圖 圖 圖 4.4 帳號維護畫面帳號維護畫面帳號維護畫面帳號維護畫面 2. 設定權限設定權限設定權限設定權限 圖 圖 圖 圖 4.5 權限設定畫面權限設定畫面權限設定畫面權限設定畫面

(46)

3. 因應職務異動調整資料庫存取權限因應職務異動調整資料庫存取權限因應職務異動調整資料庫存取權限因應職務異動調整資料庫存取權限 在Task Management系統中調整系統的Sustain及Agent人員。DIS系統依據系 統sustain人員資料決定該員是否對Table的有修改權限。可修改範圍:該員所 sustain系統所own的Table的Table Schema。 圖 圖 圖 圖 4.6 職掌異動設定畫面職掌異動設定畫面職掌異動設定畫面職掌異動設定畫面  Schema Management 本功能主要負責為同步收集不同資料庫之 Schema 功能,將其集中化管 理,方便資料庫管理人員或系統開發人員快速得知企業內資料來源之相關資 訊。

(47)

1. 同步收集同步收集同步收集同步收集 Schema

本功能同步收集功能區分為以 DataBase Server 為角度或是以 System 為 角度來收集資料庫權限及 Schema,如圖 4.7 所示操作,根據設定的收集條 件,會產生自動化同步 Job,後端程式會自動將相關資訊收集至 Virtual DBA 系統。

新增 新增新增

新增Schema同步同步同步同步 Schema Sync.

Execute No: Employee: Pujle

Traget: Servers ▼ Server: RAASPMSQL ▼ 儲存 關閉視窗 --- Schema Sync.

Execute No: Employee: Pujle

Traget: System ▼

System: MIS ▼ Environment: 正式區▼

儲存 關閉視窗

Schema Sync.

Execute No: 0000000000

Start Date: 0000000000 End Date: 0000000000

查詢同步結果

exe no employee cmd stime endtime result

00000001 081507/pujle CollectWkfDataByTarge t Server,RAASPD01 2010-01-28 10:35:15 2010-01-28 11:01:25 00000002 081507/pujle CollectWkfDataByTarge t System,MIS,P 2010-02-10 13:36:14 2010-02-10 14:31:11 00000003 081507/pujle CollectWkfDataByTarge t Server,RAASPD01 2010-03-26 15:22:15 2010-03-26 16:20:05 資料下載

(48)

 DataBase Management 主要功能為資料庫維護操作之機置,包含收集資料庫物件及帳號權限、 比對、部署(包含建立及刪除)以及複製資料庫物件。  Alarm Management 主要功能為主動偵測異常以及傳送 Email 通知給相關系統維護人員之 機制。  Log Management 本功能主要記錄所有資料庫操作行為之機制,以方便追蹤所有對於資料 庫操作之正確或錯誤之動作,如圖 4.8 所示為 Log 之檢視畫面。 圖 圖圖 圖 4.8 系統操作系統操作系統操作 Log 資訊系統操作 資訊資訊 資訊

4.5

系統限制

系統限制

系統限制

系統限制

本小節主要說明在研究設計本系統架構時,針對實際企業之情況以及需求, 對於本論文研究設計方向所規範的範圍以及目前無法實作之功能設計。

(49)

控管理功能。  本系統目前只針對資料庫物件定義(Table/View….)以及相關資料庫權限進 行管理,對於資料的異動與檢視等安全性,尚未支援。  本系統只針對資料庫軟體進行管理,其它硬體或作業系統之管理並不包含。

4.6

系統導入

系統導入

系統導入

系統導入步驟

步驟

步驟

步驟

本小節主要說明要將單一系統之資料庫納入本系統控管,相關系統以及人員 管理上所必須實作的步驟說明。  建立應用系統與建立應用系統與建立應用系統與建立應用系統與資料庫資料庫資料庫關聯資料庫關聯關聯關聯 本階段之工作為建立應用系統與資料庫 Server 之相關資訊,會由資料庫的 管理人員去設定連線相關的屬性以及資料庫中之最大權限管理者帳號,使 Virtual DBA 系統具有管理者身份去控管該資料庫。  建立應用程式與員工職掌資料建立應用程式與員工職掌資料建立應用程式與員工職掌資料建立應用程式與員工職掌資料 本階段之工作為建立系統維護人員所負責的系統,如此才能使人員具有操 作權限。  利用系統之管理帳號利用系統之管理帳號利用系統之管理帳號利用系統之管理帳號收集資料庫相關資訊收集資料庫相關資訊收集資料庫相關資訊收集資料庫相關資訊 本階段之工作是將該資料庫之所有物件資料同步至 Virtual DBA 系統,也等

(50)

 建立跨系統資料關聯資訊建立跨系統資料關聯資訊建立跨系統資料關聯資訊建立跨系統資料關聯資訊 本階段之工作是設定已經收集至 Virtual DBA 的資訊中,那些資料物件是被 該系統或資料庫所參考。



回收相關開發者回收相關開發者回收相關開發者系統管理回收相關開發者系統管理系統管理權限系統管理權限,權限權限,,並更改原先使用帳號之密碼,並更改原先使用帳號之密碼並更改原先使用帳號之密碼並更改原先使用帳號之密碼 本階段之工作是若更改原先設定之最大權限帳號之密碼,以使得原先之資 料庫管理人員無法再利用此管理帳號來更動資料庫之物件屬性,而帳號之密碼將 交由權責主管保管並定期更動。

(51)

第五章

第五章

第五章

第五章、

、結論與未來展望

結論與未來展望

結論與未來展望

結論與未來展望

本章將說明Virtual DBA系統對於研究對象產生之效益,以及本論文研究後績 可再加強或精進的部份。

5.1

結論

結論

結論

結論

 將公司之資料庫來源資訊集中化,相關的資料定義與權限也受到控制,使資 料庫管理人員可以更方便及完全掌握公司內部資料來源,而系統開發人員則 可快速找至系統相關資料來源之所在,增加應用系統開發之速度,並可減少 開發時間及錯誤發生。  傳統方式進行複製或災難復原,大部份會從維護記錄來進行操作,公司內部

雖有訂定災難復原SLA(Service Level Agreement)為四至六小時,但若計算前 置動作,可能需八至十小時,且不包含人工手動之操作錯誤所增加之時間, 若以自動化方式進行複製或災難復原,由於所有資訊已集中控管,故操作含 驗證時間,單一系統之復原時間,已可降低到一個小時之內完成。  人工方式進行資料庫之異動,比較無法清楚記錄相關資訊,所以一但有異動 的錯誤發生,首先在解決錯誤之問題尋找上,便要花費相當多的時間,且容 易被人為誤判,造成錯誤的處理以致系統發生更大的錯誤。以自動化方式進 行資料欄位或權限異動,所有異動之操作行為皆會被完全記錄,且任何資料 庫的異動,也會立即告知相關資料庫來源之負責人進行同步動作,除了提升

(52)

應用系統負責人資訊,在系統權限上之交接便已完成,交接之事宜便可著重 在程式或domain know how的之上,除了縮短交接時間,也確保系統權限的 交接完整性,阻斷交接不完整之資安問題。

5.2

未來發展

未來發展

未來發展

未來發展

本小節主要說明針對本論文研究設計的限制中,仍可再加強或延伸研究範圍 以及系統之功能討論。  增加其它平台資料庫軟體增加其它平台資料庫軟體增加其它平台資料庫軟體(如增加其它平台資料庫軟體 如如如Oracle,,Informix,,, ,,,DB2)之管理支援之管理支援之管理支援 之管理支援 本論文研究因考量不同資料庫平台其管理方法及軟體架構差異太大,目前僅 針對 Microsoft SQL Server 進行管理,但企業內部仍有部份系統使用非SQL Server之平台,後續之發展應再將其它平台(如Oracle,DB2)納入管理,才能完全 達到管理之最大綜效,且若能整合不同平台之資料庫在統一管理介面上,也能增 加企業內部資訊系統的彈性以及延展性。  增加對於資料以及資料安全之控管增加對於資料以及資料安全之控管增加對於資料以及資料安全之控管增加對於資料以及資料安全之控管 資料安全是任何企業,特別是高科技產業相當重視的問題,本論文研究目 前尚未考量資料的控管,若僅就資料庫物件及權限之控管,其效益只能侷限在企 業之資訊單位,若能對於資料的修改與閱讀進行規範,對於企業智慧財產權的保 護將有很大的功效,且是企業穩定維持競爭優勢的一大保障。  增加增加增加增加Server上非資料庫之軟硬體環境之控管上非資料庫之軟硬體環境之控管上非資料庫之軟硬體環境之控管上非資料庫之軟硬體環境之控管

(53)

DBA的維護工作是包含資料庫以及週邊環境的管理,資料庫的效能以及穩定

度有時也會受到週邊軟硬體的情況而影響,所以後績若能監控 Server上的健康情 況,如CPU 的使用程度或是硬碟空間的使用,且能在遠端透過系統進行操作或 調校,如此更能滿足資料庫管理人員日常的維護工作。

(54)

第六章

第六章

第六章

第六章、

、參考文獻

參考文獻

參考文獻

參考文獻

[1] 程鼎元,以MVC設計樣式為基礎的應用程式產生器,碩士論文,2005 [2] 王證宜,元件式應用系統產生器:應用系統建構方法論,碩士論文,2003 [3] 張益嘉,應用系統產生器:之架構與資訊系統塑模方法論,碩士論文,2001 [4] 劉明修,以夥伴關係管理概念建構一SOA之電子化採購系統,碩士論文, 2008。 [5] 吳國樑,資料庫線上核發系統規劃研究-以C公司為例,碩士論文,2008。 [6] 陳建樺,整合物件導向設計與關聯式資料庫之輔助環境,碩士論文,2005 [7] 網 路 資 訊 雜 誌 ,2008,“ 資 料 庫 市 場 競 爭 激 烈 Oracle 市 佔 持 續 領 先 " http://news.networkmagazine.com.tw/software-application/sftwnews/2008/04/30

[8] Microsoft Corporation,透過 Microsoft 平台啟用 “真實世界的服務導向架構 (SOA)”,2006/12。

[9] 林慶德、陳宇芬 譯,「資料庫管理與應用」,台北,台灣培生教育出版股

份 有限公司,2006。

[10] 劉金順 譯,「資料庫管理:設計及其應用」,台北,美商麥格羅希爾 台灣

分公司,2004。

[11] Microsoft SQL Server 資料庫管理員的角色和任務 Microsoft Windows 2000

(55)

[12] ADO.Net 技術及 O/R Mapping 演進, http://blog.sina.com.tw/dotnet/article.php?pbgid=4907&entryid=581724 [13] 程式產生器, http://blog.blueshop.com.tw/dplayerd/archive/2009/01/16/57989.aspx [14] 分散式應用程式架構,Microsoft MSDN WebSite, http://msdn.microsoft.com/zh-tw/library/aa291882(VS.71).aspx

[15] Jen-Her Wu; Tse-Chih Hsia; I-Chia Chang; Sun-Jen Tsai; Application generator: a framework and methodology for IS construction ,System Sciences, 2003. Proceedings of the 36th Annual Hawaii International Conference on , 6-9 Jan. 2003 Pages:263 – 272.

[16] Sommerville, I., Software Engineering, Massachusetts: Addison-Wesley, 2000.

[17] SMO Overview,

http://msdn.microsoft.com/zh-tw/library/ms162557(v=SQL.105).aspx

[18] Object Relation Mapping,Wikipededia.com, http://en.wikipedia.org/wiki/Object-relational_mapping

[19] Microsoft Enterprise Application Block

http://msdn.microsoft.com/zh-tw/magazine/cc188689.aspx

[20] Web Service Architecture

數據

圖 2.5 Microsoft Enterprise Library  架構及運作關係 架構及運作關係 架構及運作關係[18] ..................................
圖 圖 圖
圖 圖 圖
圖 4.1 Virtual DBA  系統架構圖 系統架構圖 系統架構圖 系統架構圖
+2

參考文獻

相關文件

時值知識經濟時代的來臨,台灣已加入了 WTO ( World Trade Organization,WTO ),企業面臨劇變之環境及廣闊的物料採購市 場,若能善用「知識管理」( Knowledge

介面最佳化之資料探勘模組是利用 Apriori 演算法探勘出操作者操作介面之 關聯式法則,而後以法則的型態儲存於介面最佳化知識庫中。當有

在軟體的使用方面,使用 Simulink 來進行。Simulink 是一種分析與模擬動態

Lin-ya Hong (2009), “Effects of Enterprise Resource Planning (ERP) Systems Adoption on Production Performance in Manufacturing Industry -- using A Multinational Plastic

(三) 使用 Visual Studio 之 C# 程式語言(.Net framework 架構) ,設計 各項系統程式、使用者操作介面,以及報表。. (四) 使用 MS

能督導工程人員依施 工圖說之規定完成模 板材料之選用及模板

二、本校於報名表中對於學生資料之蒐集,係為學生成績計算、資料整理及報 到作業等招生作業之必要程序,並作為後續資料統計及學生報到註冊作業

二、本校於報名表中對於學生資料之蒐集,係為學生成績計算、資料整理及報 到作業等招生作業之必要程序,並作為後續資料統計及學生報到註冊作業