第一章 系統分析與設計簡介

1-1 資訊系統

一、資訊系統簡介

[資訊系統] 13 | 85,86,88,92(2),93(2),94(2),95,96,97(2)

85地三、86高三、88高三、92調三、92檢三、93退三、93電員晉高、94警三、94專檢、95身三、96關簡、97高二、97地三

()定義:記錄、保存、整理、分析、計算、產出。

()組成元件

1.硬體:伺服器、工作站、網路、通訊設備、光纖纜線。

2.軟體:系統軟體、應用軟體。

3.資料:資料資訊知識。

4.程序:實際的日常作業。

5.人員:內部使用者、外部使用者。

()資訊系統架構

[資訊系統架構] 2 | 98,103

98關簡、102調三、103高三

1.集中式架構(Centralized Architecture)

(1)定義:

集中式的大型主機 (mainframe) 儲存一個資訊系統所有的資料、程式和介面元件供多人使用。使用者透過終端機 (或以 PC 來模擬終端機) 與系統互動。所有真正的處理和工作都在主機上完成

undefined

(2)優點:

   a.系統管理單純,因為所有的資源均由主機作業系統分配與管理

b.屬於封閉式作業系統,這種作業系統再與其他系統的連接上雖然有極大的問題,但是在資料安全上卻比較容易控制

(3)缺點:

   a.主機工作負擔較重。

b.主機更替成本高。

c.維護成本重。

d.只能處理文字模式的介面,無法支援圖形使用者介面 (GUI)

e.缺乏彈性的環境。

2.檔案伺服器架構(File Server Architecture)

(1)定義:

在區域網路中,由檔案伺服器 (File Server) 負責需求排班與管理傳送與保存資料;當用戶端 (client) 向伺服端提出需求時,伺服端會將相關的檔案完整的傳送至客戶端進行處理資料的運算在客戶端完成,等完成之後再將檔案傳回檔案伺服器儲存。

undefined

(2)優點:

a.用戶端處理資料可以降低檔案伺服器處理資料的負擔

b.可以使用圖形使用者介面 (GUI)

(3)缺點:

a.由於每次伺服器都是傳送資料所在的完整的檔案至客戶端,因此,過大的資料流量易造成系統的瓶頸

b.所有計算都在用戶端完成,其個人電腦最好都有不錯的運算能力 (所謂的複雜型用戶端)

c.必須處理複雜的資料鎖定 (data lock) 問題,資料庫整合性必須妥協。

3.主從式架構(Client/Server Architecture):客戶端-伺服器架構 / 分散式架構

(1)定義:

是一種網路架構,它把客戶端與伺服器區分開來。前端的應用程式 (Client)扮演者和使用者溝通的角色,強調簡單而且具備親和力的使用界面,以提供使用者進行查詢、修改、列印等輸入或輸出的作業,而後端的伺服器 (Server) 則負責執行前端應用程式所傳來的命令,並將處理的結果回傳給前端的應用程式,直接將結果顯示在使用者的眼前。至於網路系統則構築了前端應用程式與後端伺服處理器之間的互通管道。每一個客戶端軟體都可以向一個伺服器或應用程式伺服器發出請求。有很多不同類型的伺服器,例如文件伺服器、遊戲伺服器等。例如在維基百科閱讀文章時,電腦和網頁瀏覽器就被當做一個客戶端,同時,組成維基百科的電腦、資料庫和應用程式就被當做伺服器。當網頁瀏覽器向維基百科請求一個指定的文章時,維基百科伺服器從維基百科的資料庫中找出所有該文章需要的訊息,結合成一個網頁,再發送回瀏覽器。透過網路連接散置各處的電腦,例如 2-Tier3-Tier

(2)主從式架構(Client/Server architecture):主從式架構的組成要件

一個主從式架構主要由客戶端 (Client)、伺服器端 (Server) 與網路 (Network) 三個部分組成。應用程式可分為展現 (Presentation)、處理 (Processing)、與資料管理 (Data Management) 等部份,再分別由客戶端或伺服器端來完成。客戶端透過網路提出要求,而伺服器端則透過網路回應此要求。使用者介面程式和應用程式可以在用戶端執行。等到需要存取 DBMS 時,程式會建立一個到伺服端 DBMS 的連結,建立好之後,用戶端程式便可以和 DBMS 溝通。例如 ODBC 提供一種能讓用戶端程式呼叫 DBMS 的應用程式介面 (API),條件是用戶端和伺服端都要同時安裝需要的軟體。

a.用戶端(Client):客戶端(Client) / 前端(front-end)

一般的個人電腦加上網路卡。透過一特定介面 (API) Server 溝通,以向 Server 端提出請求,並且執行DBMS 上的應用程式,並以適當的方式呈現出來。

b.伺服器端(Server):伺服器(Server) / 亦稱為後端(back-end)

DBMS 本身。依 Client 端需求提供服務給使用者的應用程式。負責運算、存放共同的資料以及應付客戶端需求的主機。

  undefined

c.網路環境:即連接客戶端及伺服器的線路及軟體。

[2-Tier]

undefined

Client 端直接與 Server 端相連來存取資料,沒有透過代理程式。

[3-Tier]

undefined

Client 端透過 Application Layer Database Server 端相連來存取資料。

(3)主從式架構的優點:

a.可以達到軟體專業分工的目標,電腦作業將不受時空的影響限制,各項作業採用功能模組的分配、設計、開發、建置具備更大的彈性與便利。

b.所有的工作採用分散處理的方式,將人機介面處理完全交由客戶端 (Client) 的個人電腦或工作站負責,而主機或伺服器 (Server) 將只負責資料庫方面的資料處理工作,大幅降低主機或伺服器的工作量

c.在主從式架構下的系統與傳統迷你及大型電腦相比,規模將大幅縮小成本也將大幅降低,傳統迷你及大型電腦不論硬體、軟體、週邊設備都相當昂貴,同時系統又具封閉性,不容易替換產品。由於 UNIXWindows、網路等相關技術的問世,以及電腦硬體成本的大量生產導致價格大幅滑落後,採用主從架構使得電腦應用系統趨於普及,進而增加企業競爭力。

(4)主從式架構的缺點:

a.當程式需要修改或新增功能時,需分別進行修改,花費的時間及成本大,且系統較為複雜

b.資料的安全性也有所影響,因為可能有部份資料是儲存在客戶端

(5)2-Tier3-Tier的比較:

比較

優點

缺點

2-Tier

可藉由 Client 本身的運算能力分擔 Server 處理資料的負荷

1.針對不同的 Server 系統,需設計不同 Client 端介面

2.Client 越多,connection 越多, Server 負擔也越重

3-Tier

可用中間的應用程式伺服器整合後端不同 ServerClient 只需面對單一的 agent 介面

規模不斷擴大後,中間端將成為此架構的瓶頸

※參考資料:

1.http://blog.cwke.org/2010/11/client-server-and-web-based.html

2.http://lips.lis.ntu.edu.tw/ycchuang/study/othersubject/datawarehouse/ClientServ.htm

3.https://tw.knowledge.yahoo.com/question/question?qid=1509102409574

4.http://www.gaya.org.tw/journal/m32/32-main4.htm

5.http://zh.wikipedia.org/wiki/%E4%B8%BB%E5%BE%9E%E5%BC%8F%E6%9E%B6%E6%A7%8B

6.http://www.ascc.sinica.edu.tw/iascc/nl/84/1109/03.html

4.Web-based架構(Web-based Architecture)

(1)定義:使用者僅需透過瀏覽器便可存取所需資訊。

undefined

undefined

(2)優點:

a.跨平台:任何作業系統只要能打開瀏覽器的都可以使用。

b.節省IT人員的時間以及維護成本

不需要公司的 IT 人員維護每一台 PC 上面的軟體

c.使用介面學習容易

d.資料集中管理

e.任何地點任何時間都可以輕鬆操作:適合跨國公司或是常出差的人員。

(3)缺點:

a.受限於 Browser 的功能,無法作太多控制及變化 ( HTML 弄個 BOM Tree)

b.開發人員要學的工具及語言不少,至少 Browser script ( JavaScript VBScript)HTML ( Front page Dreamweaver 編寫) 及動態網頁語言 ( ASPJSPPHP)

 

Web Server

專門只處理 HTTP request response,當收到 HTTP request 之後,需要商業邏輯 (business logic) 的部分就從 Application Server 取,最後把 result 轉為HTTP response

※參考資料:

http://james687.logdown.com/posts/2014/06/07/web-server-application-server

 

Application Server

接受 Web Server request,執行完商業邏輯 (business logic) 之後把 result 回給 Web Server (過程中可能需要到資料庫存取資料)

※參考資料:

http://james687.logdown.com/posts/2014/06/07/web-server-application-server

 

三層式架構(Three-tier architecture)

1.定義:

三層式架構與傳統兩層式架構最大的差異處,為將商業邏輯 (business logic) 單獨分離出來,以減輕放置於用戶端或伺服器端電腦的負擔。三層係指使用者介面層 (presentation tier)商業邏輯層 (business logic tier)、和資料服務層 (data services tier)。將應用程式代理者 (Application agent) 置於 Client Server 中間,存放商業邏輯 (Business logic),以處理 Client Server 間往來的業務。可整合後端不同的 Server,以統一的方式呈現內部的資料。

undefined

2.架構:

    undefined

(1)使用者介面層(presentation tier)

負責接收使用者的資料輸入,和將結果顯示出來,例如瀏覽器或其他用戶端應用程式。

(2)商業邏輯層(business logic tier)

做為使用者介面與資料庫的橋樑,負責商業法則 (Business Rules)、與業務有關的資料處理網站伺服器 (Web Server) 等工作,譬如使用 IIS 的網站伺服器,得撰寫 ASP 程式,並透過 DCOM MTS (Microsoft Transaction Server) 的元件相溝通,再透過 ODBC 與各種支援 ODBC 的資料庫連接

(3)資料服務層(data services tier)

負責資料庫或訊息的處理,例如使用 SQL Server 資料庫的預儲程序 (stored procedures),或使用 MSMQ 做訊息的處理等。

※參考資料:http://www.borg.com.tw/Eip/books/doc/run9811.htm

 

三層式主從架構的可能設計方式:

103高三

1.Distributed Presentation

功能

客戶端

伺服端

資料管理

所有資料管理

資料分析

所有資料分析

資料展示

客戶端將伺服端展示的資料重新格式化展示

伺服端展示資料後傳送給客戶端

2.Remote Presentation

功能

客戶端

伺服端

資料管理

所有資料管理

資料分析

所有資料分析

資料展示

在伺服端分析後的資料格式化後傳送給客戶端展示

 

3.Remote Data Management

功能

客戶端

伺服端

資料管理

所有資料管理

資料分析

從伺服端分析接收原始資料 (raw data) 並且分析

資料展示

所有資料展示

4.Distributed Function

功能

客戶端

伺服端

資料管理

所有資料管理

資料分析

從伺服端選取資料並且由客戶端分析

從伺服端選取資料並且分析,然後傳送給客戶端

資料展示

所有資料展示都經過伺服端及客戶端的分析

5.Distributed Database

功能

客戶端

伺服端

資料管理

本地資料管理

在伺服端的資料分享管理

資料分析

從客戶端及伺服端接收資料並且分析

資料展示

所有資料展示

6.Distributed Processing

功能

客戶端

伺服端

資料管理

本地資料管理

在伺服端的資料分享管理

資料分析

從客戶端及伺服端接收資料並且分析

資料從伺服端接收並且分析,然後傳送給客戶端做更深入分析及展示

資料展示

所有資料展示

參考資料:系統設計與應用系統架構.ppt

 

多層式架構(N-Tier architecture, Multi-Tier architecture)

1.定義:

在使用者與儲存資料間可以進一步分割成幾個更細的元件,其中的 n 可能是45。一般而言,業務邏輯層還會分割成好幾層。

2.架構:

undefined

把中間層劃分為多個商業邏輯層,把一個商業邏輯層當做一層,多個商業邏輯層就 n 層。這些層有些時候需要互相協調合作。例如銷售時,須檢查庫存及維護庫存,接著要產生物流的送貨,這些商業邏輯層不只可以獨立的運作,也可以與其他的商業邏輯層協同運作,形成多層架構。

3.優點:

(1)較小的前端程式(Thin Client)

前端只需要使用者介面的程式或網頁瀏覽器,容易安裝與管理

(2)零前端程式管理:

運用在 Web 環境中,前端只需要網頁瀏覽器,可達到零前端程式管理。

(3)邏輯封裝:

整個系統可按使用者介面、企業邏輯、資料管理分層實作,系統運作時分層負責,達到邏輯封裝的效果。

(4)延展性(Scalability)佳:

不管何時何地,只要可連上網際網路,便可突破時空限制,隨時上線作業;中間層的應用伺服器也可視負載情況擴充

(5)具備軟體元件重複使用性(reusability)

企業邏輯通常以軟體元件的形式存放在應用伺服器上,具備重複使用性

(6)軟體元件版本的一致性佳:

企業邏輯的軟體元件集中放置在應用伺服器版本的一致性獲得較佳的控制。

(7)控管性、安全性佳:

網頁伺服器應用伺服器資料庫伺服器通常會由資訊中心統一管理,較一般散置的主從式架構系統獲得較佳的管控。

4.缺點:

(1)專業技術的學習曲線過長。

(2)網路的品質影響系統穩定性。

(3)如何確保系統隨時正常運作?

(4)在有限的頻寬如何達到最佳的系統執行效率?

※參考資料:http://nccur.lib.nccu.edu.tw/bitstream/140.119/35192/5/35603805.pdf

 

分散式架構(網路/計算)

undefined

 

傳統Client-Server架構與Web-Based架構的比較:

 

傳統Client/Server架構

Web-Based系統架構

系統開發

需花時間於瀏覽畫面的設計

瀏覽軟體(Browser)可解決 UI 的顯示功能,不需花時間於此方面的設計

系統擴充平台

針對不同的平台需有不同的設計,必須修改程式碼以符合需求

Web Browser解決跨平台問題,只要是 Web Browser 可支援的網路連結設定,擴充平台不需額外的設計

系統安裝

需有完整的安裝程序與操作說明,每次系統更動即需進行安裝

Web Browser 易於取得並安裝於個人電腦上,且可依喜好選擇不同的瀏覽器,第一次裝好瀏覽器後,以後系統任何更動均與個人電腦無關

系統維護

Server 面對不同平台的Client 必須需有不同的專業工程師維護

只需維護一套系統

升級與版本更新

系統升級時需同時更新用戶端及主機端軟體且必須考慮系統相容性的問題

系統升級只需異動主機端軟體,不需更新用戶端且無軟體相容性問題

系統展現格式

可顯示文字、圖形、動畫、聲音、影像。但為達到多媒體功能,軟體開發需投注大量人力於聲音影像的專業領域

可顯示文字、圖形、動畫、聲音、影像。所以檔案解譯功能均由 Web Browser處理,開發人員不需花時間於與應用系統無直接關係的聲音影像等專業領域

系統整合能力

不同的 Client-Server 架構採用不同的分工策略與溝通方式,前台使用介面開發工具的差異及與資料庫連結方式的不同協定將造成整合的困難

前台的使用者介面為統一的瀏覽器(Browser)整合時不需耗費其他人力Web Server DB Server 間的連結為一般網路協定,為共通標準,亦不造成困難

※參考資料:江惠宇,1997

 

分散式處理系統和集中式處理系統的比較:

98關簡

()分散式處理系統

1.定義:

在於分散式系統中的各個處理器之間並不共享記憶體或時脈 (clock),每個處理器都有其各自的記憶體,處理器要交換訊息,是藉由通訊線路來完成的。例如自動櫃員機、鐵路售票系統。

2.優點:

(1)資料平行處理速度快,效率佳

(2)減少主機的負荷,也比較不容易因為使用者增加而效率變慢。

(3)達到資訊分享的目的,並且減少溝通成本,所以適合分權式組織型態。

(4)整合各種資料庫異質電腦系統 (即不同廠牌、不同硬體)

3.缺點:資料分散在不同地方,容易造成資料不一致的現象。

()集中式處理系統

1.定義:

資料庫系統與應用程式同時集中於同一台主機上執行,並且以此主機擔任所有資料的「計算處理」與「使用者介面處理」。例如沒有網路的環境或只有一台主機。

2.優點:

(1)安全性高:資料保密性高。

(2)容易操作:運作模式比較單純。

(3)容易管理:可以完全控制電腦上的所有資源。

(4)完整性與一致性:可以確保資料完整性與一致性。

3.缺點:

  (1)資料庫系統不易與組織一起成長 (亦即中大型公司無法適用)

  (2)當使用者人數增加時,主機無法負荷,導致效能降低。

 

98年關務人員升官等簡任系統分析研究

四、在資訊系統的架構中,有分散式處理系統 (Distributed System) 和集中式處理系統 (Centralized System),請舉例說明之;並說明其優缺點。(25分)

答:

 

103年高考三級系統專案管理

三、請說明三層式主從架構 (Three-Tiered Client/Server),並分析三層式主從架構的可能設計方式。(15分)

答:

 

雲端運算與網格運算的比較:

 

雲端運算

網格運算

原理

源自平行運算的技術,不脫離網格運算的概念,但是雲端運算更專注在資料的處理。將一個電腦運算工作 (Task) 分成許多程序 (Process),透過分佈於網際網路中的伺服器群組 (雲端主機) 處理分析後,再將結果傳回使用者端

通過利用大量異質電腦 (通常為桌面Desktop) 的未用資源 (CPU 資源和磁碟儲存空間),將其變成一個虛擬的計算機叢集,為解決大規模的計算問題提供了一個架構。焦點放在支持跨網域運算的能力,運用平行運算,著重企業之間或跨企業的資源充分運用,共同解決困難的運算任務

彼此關係

可以算是網格技術的一個子集合

涵蓋雲端技術,能處理更複雜的問題

實作方式

組合大量的 x86 個人電腦提供服務

組合大量的異質電腦提供複雜運算

供應者

GoogleYahoo

學術機構

任務

比較偏大眾應用,適合執行單次資料處理量較小的任務

重點放在需要複雜運算的「單一任務」,例如基因定序、核爆模擬等

使用技術

虛擬化技術

專屬的通訊協定和資料格式

標準化

無,各家採用的技術架構不同

標準化的協定和信任機制

硬體規格

使用大量規格相同的 x86 個人電腦等級伺服器,來執行雲端運算的程式,所以不需要處理異質性的問題,可以簡化平行運算的系統架構,更容易協調伺服器之間的資訊傳遞,讓分散式處理的整體效能更好

要讓任何伺服器 (異質性機器),都能加入到一個運算網格中,以提供龐大的運算量,必須解決不同伺服器、作業系統、甚至是程式編譯器版本差異等問題

開放原始碼

部份 Open Source,例如 Hadoop 架構

Open Source

網域限制

企業內部網域

跨企業網域

※參考資料:

1.http://evan52041.blogspot.tw/2011/03/vs.html

2.http://www.runpc.com.tw/content/cloud_content.aspx?id=105867

3.http://sls.weco.net/blog/bryan0314/14-jan-2009/12497

 

良好的雲端運算架構方式,必須具備以下三項特點:

1.彈性擴充:

當運算規模增加,雲端要可以彈性變大,只要加上新的節點就可以了。

2.負載平衡:

讓伺服器之間的負載盡量平衡,免得某些伺服器太過繁忙,某些卻太過閒置。

3.資料安全:資料重複 (redundancy) 存放在不同位置,確保資料安全。

※參考資料:http://www.nhu.edu.tw/~society/e-j/86/13.htm

 

企業使用雲端運算的優點:

1.經過驗證的網路服務整合。

2.世界級的服務傳遞。

3.不需安裝任何硬體和軟體。

4.部署時速度更快,風險更低。

5.適合應用程式開發,支援深入自訂項目。

6.加強商業使用者的能力。

7.自動升級不影響 IT 資源。

※參考資料:http://www.nhu.edu.tw/~society/e-j/86/13.htm

 

102年法務部調查局調查人員三等系統分析與設計

一、請列出雲端運算 (Cloud Computing) 的三種服務提供模式。(6分)政府機構資訊部門若計劃導入雲端運算以更進一步提升現有資訊系統之服務效能,請依據此三種服務提供模式,說明導入此三種模式時的評估分析重點。(24分)

答:

()

雲端運算三種不同的支援層級:雲端運算三種服務型式(SaaSPaaSIaaS)

使用者

層級

主要供應商與產品

一般使用者

客戶端(Client)

Browser

PCNotebookNetbookSmartphone

一般使用者

軟體即服務(SaaS Model)

GoogleAppsMicrosoft OnlineSalesForce.comRSS

系統開發者

平台即服務(PaaS Model)

Microsoft Azure Service PlatformGoogle App EngineAmazon Web Service

系統管理者

基礎設施即服務(IaaS Model)

Amazon EC2Amazon S3

1.客戶端(Client):只要有 Browser 便可隨時隨地的上網取得雲端運算服務。

2.軟體即服務(Software as a Service, SaaS)

使用者可透過 Internet 取得自己所需要的應用軟體。例如 Salesforce.comGoogle APP (GmailGoogleDocGoogleTalkCalender)

3.平台即服務(Platform as a Service, PaaS):線上作業系統

使用者可以在平台上方便的開發、安裝、組合與執行各種應用資訊系統。例如 Amazon Amazon Web Service (AWS)

4.基礎設施即服務(Infrastructure as a Service, IaaS):線上商務旅館

提供者在線上提供各種的伺服器、資料儲存設備、CPU運算能力、網路連線設備等,讓沒有能力採購與管理這些設備的使用者可以「用多付少的方式」來使用。例如 Amazon EC2 (Elastic Computer Cloud) Amazon S3 (Simple Storage Service)

()

1.建置私有雲是否真的會比較安全?

許多企業考量到公有雲採用的是多租戶的資源分享方式,擔心自己的資料會因此遭受不當使用或外洩,所以只考慮完全採取私有雲的方式,在企業內部建立起專屬的雲端服務。基本上,所有資料完全由企業自行監督管理,存放在自己的伺服器上,的確比外包的服務讓人值得信任,而且在事件處理回應上面,內部的速度也可能會比外包服務來得快很多。但是,請千萬不要忽略了,即使所有資訊躲在企業的防火牆之後,許多的雲端問題包括像是應用程式安全、作業系統安全、硬體設施管理維護、服務可用性等,也都在考驗既有的 IT 團隊是否擁有足夠的能力,因應眾多使用者不同的安全需求。

2.是否具有安全可見度與風險意識?

對公有雲服務來說,為了讓企業能夠清楚掌握所使用的服務內容與耗費成本,提供清楚可見的報表服務是必要的一環,但除了透過報表來了解計價費用之外,企業是否也能夠清楚掌握所選用的雲端服務安全風險呢?目前,許多雲端服務供應商也提供了API,讓使用者可以自行設計配置和利用更多的擴充功能,尤其是在存取行為記錄和系統監控方面企業需要評估是否有能力管控可能面對的資安風險

3.敏感性資料是否能夠安全地儲存?

在雲端服務中,如何確保敏感性資料的安全,是個讓人頭痛的問題,雖然資料加密可以有效強化資料的機密性,但大多數企業的問題在於需要了解有哪些資料必須加密?應該如何進行加密?在選擇雲端服務供應商時,了解業者採取何種加密方式也是一開始要評估的重要項目,如果使用的是共同的金鑰,並且還將資料和金鑰存放在一起,那麼這種安全機制就顯得過於簡單而且具有潛在風險。另外,即使在虛擬化的環境之中,如果惡意程式已有能力監控虛擬主機,那麼也就同樣有能力可以取得存放其中的金鑰,進而危害到儲存的資料安全。如果可能的話,與其完全採用雲端服務供應商的加密機制,企業採用自行加密的方式並妥善保管金鑰,再將資料存放至公有雲的服務之中,相對而言會是比較好的作法

4.應用程式是否可能存在安全漏洞?

如果企業要將舊有的應用程式轉移部署到雲端之中若是本身含有安全漏洞到了雲端之後可能會更容易受到利用,而且將面臨更多新式的攻擊。

5.是否具有強健的身分驗證與授權?

對雲端服務而言,企業需要考量的是這些服務到了雲端之後,其安全強度是否仍然足夠,如果不足的話,就需要加入更多的安全控制,像是採取雙因素驗證、BYOD 考量等。

※參考資料:

http://www.informationsecurity.com.tw/article/article_detail.aspx?aid=7778

 

※MVC模式(Model-View-Controller)

[MVC(Model-View-Controller)] 2 | 102,104

102調三、104關簡

1.定義:

是軟體工程中的一種軟體架構模式,把軟體系統分為模型 (Model)、檢視 (View) 和控制器 (Controller) 三個基本部分。目的是實作一種動態的程式設計使後續對程式的修改和擴充功能簡化,並且可能使程式某一部分重複利用

2.架構說明:

undefined

(1)模型(Model)

a.應用程式資料商業邏輯程式功能組成。主要負責應用程式中的商業邏輯 (Business Logic),它用來描述應用程式功能性的演算法以及資料庫與使用者介面之間資料的交換。

b.封裝了應用程式中對資料的存取並提供可重複使用的函式庫,例如資料庫存取的抽象化郵件的遞送資料的驗證與稽核

c. Model 狀態改變時,會通知 View

d.回應 View Model 的狀態詢問。

e.回應 Controller Model 的狀態改變 (更新模型)

(2)檢視(View)

a.是使用者存取 Model 的窗口。可以使用 HTML/CSS/Javascript 技術蒐集與使用者互動資料的網頁。從 Model 狀態詢問後得到資料,並且以圖型表格方式輸出資料

b.當使用者對 View 做出一些事時,則告訴 Controller 做了什麼,並且由它負責處理。

(3)控制器(Controller)

a.蒐集使用者對 View 所輸入的資料,並且決定由哪支程式進行資料處理。

b.接收 Model 所回傳的資料,並且在解析後傳遞給 View 作呈現

c.所有程式的例外處理以及流程控制

d.可以送出命令要求 Model 改變狀態 (更新模型)

e.可以送出命令要求 View 改變呈現方式。

3.優點:

(1)多個View能共享一個Model

同一個 Web 應用程式會提供多種使用者介面,例如使用者希望能夠通過瀏覽器來收發電子信件,還希望通過手機來存取電子信箱,這樣就要求 Web 網站同時能提供 Internet 介面和 WAP 介面。在 MVC 設計模式中,Model 接受使用者查詢並回應其所需資料,View 負責格式化資料並把它們呈現給使用者,業務邏輯和表示層分離,同一個 Model 可以被不同的 View 重用,所以大大提高了代碼的可重用性。

(2)三個模組相互獨立:

Controller 是高度獨立內聚的物件,與 Model View 保持相對獨立,所以可以方便的改變應用程式的資料層和業務規則。例如把資料庫從 MySQL移植到 Oracle,或者把 RDBMS資料來源改變成 LDAP資料來源,只需改變 Model 即可。一旦正確地實作了控制器,不管資料來自資料庫還是 LDAP伺服器,View 都會正確地顯示它們。由於 MVC 模式的三個模組相互獨立改變其中一個不會影響其他兩個,所以依據這種設計思想能構造良好的少互擾性的構件。

(3)提高了應用程式的靈活性和可配置性:

可以根據使用者的需求選擇適當的 Model 進行處理,然後選擇適當的 View 將處理結果顯示給使用者

4.缺點:

(1)內部原理複雜

由於它沒有明確的定義,所以完全理解 MVC 模式並不是很容易。需要精心的計劃,由於內部原理比較複雜,所以需要花費一些時間去思考。

(2)偵錯困難

開發一個 MVC 模式架構的工程,將不得不花費相當可觀的時間去考慮如何將 MVC 模式運用到應用程式中,同時由於 Model View 要嚴格的分離,這樣也給偵錯應用程式帶來了一定的困難。每個構件在使用之前都需要經過徹底的測試。另外將一個應用程式分成了三個部件,意味著同一個工程將包含比以前更多的檔案。

(3)設計MVC框架增加額外的工作量

過去 MVC 模式並不適合小型甚至中等規模的應用程式,這樣會帶來額外的工作量,增加應用的複雜性。但現在多數軟體設計框架,能直接快速提供MVC 骨架,供中小型應用程式開發,此問題不再存在

※參考資料:

1.http://zh.wikipedia.org/wiki/MVC#.E4.BC.98.E7.82.B9

2.http://lliweerffreewill.blogspot.tw/2009/02/mvc.html

3.http://blog.xuite.net/kamory0931/fightdreamer/47210402-MVC+%E6%A8%A1%E5%BC%8F(%E9%9A%A8%E8%A8%98)

4.http://projectmanagementdud.blogspot.tw/2013/03/model-view-controller-mvc-simply.html

 

MVCPACNet-PAC的比較:

MVC 的控制架構統一由 Model 集中管理,這會使得 Model 的工作複雜度大為提升;而 PAC Net-PAC 的控制架構是由 Control利用連結的方式做訊息傳遞,每個子介面各司其職的方式減少對話控制上的工作複雜度,也使得介面設計的使用性與可維護性上比 MVC Model 更有效率。其結果整理如下:

 

MVC

PAC

Net-PAC

模型架構

非階層式

樹狀階層式

網狀階層式

對話流程控制

複雜

簡單

簡單

適用系統架構

簡單結構

複雜分散

複雜分散

元件互動關係

集中 Model 控制

分散 Control 連結

分散 Control 連結

工作複雜度

介面可維護性

※參考資料:洪維昇-對話代理人需求塑模與實作.pdf

 

102年法務部調查局調查人員三等系統分析與設計

三、何謂 Web 資訊系統,試說明其構成要件。(10分)一般於開發Web 資訊系統時,多考慮採用 MVC 架構,試說明 MVC 架構及其優點。(15分)

答:

()

1.使用者介面層(presentation tier):接收使用者資料輸入,和顯示資料結果。

2.商業邏輯層(business logic tier):在伺服器電腦上執行,負責商業邏輯運算。

3.資料服務層(data services tier):儲存大量資料的資料庫,負責資料庫處理。

註:同 Web-Based 網路管理架構。

 

104年關務人員升官等簡任系統分析研究

三、有關 MVC (Model-View-Controller) 軟體系統架構,請回答以下問題:

()請定義說明 MVC 架構,並分別說明各組成部分的作用。(15分)

()請以繪圖方式說明這種由 MVC 架構所發展的資訊系統的運作程序。(15分)

答:

 

二、常見的資訊系統

()交易處理系統(Transadion Processing System):交易記錄保存與交易表單產生。

()管理資訊系統(Management Information System)

利用交易處理系統的資料庫或檔案系統進行彙整、分類、統計、計算、比較等分析以提供、支援管理者規劃與控制的有用資訊。

()企業資源規劃系統(Enterprise Resource Planning System)

整合與規劃企業內外部資源之系統。包括上下游之供應鏈管理。

()決策支援系統(Decision Support System)

1.定義:

以電腦為基礎,透過交談方式,使用模式及資料以協助決策者解決非結構化的決策問題。

2.組成架構:

(1)資料來源:TPSERPCRMSCMPOS

(2)資料儲存:Data BaseData WarehouseData Mart

(3)資料分析:OLAPData MiningModel Bases

(4)資訊顯現:瀏覽器。

()專家系統(Expert System)

1.定義:

利用電腦程式擷取專家知識,分析出相關的規則、事實並加以儲存,透過適當的推理引擎供使用者學習或輔助專家使用。

2.架構:使用者介面、推理機與知識庫。

()高階主管資訊系統(Executive Information System)

比決策支援系統有更多的限制故高階主管資訊系統可視為是決策支擾系統的一種特例。

()群組支援系統(Group Decision Support Systems)

1.群組軟體(Groupware)NotesMicrosoft Exchange

2.工作流程系統(Workflow System)

()跨組織資訊系統(Inter-organizational Information System, IOIS)

藉由資訊分享與整合來提升企業間管理層次與策略層次的協同合作。

()策略資訊系統(Strategic Information Systems)

支援或形成企業的競爭策略,以獲得或保持企業本身的競爭優勢或者是減低其對手的優勢。例如 JIT (Just-In-Time) 的庫存系統、美國航空公司與聯合航空公司的航空訂位系統。

()企業智慧系統(Business Intelligence, BI)

1.定義:

從大量企業資料分析著手,經過彙整、分析,繼而提供產生報表,給予企業內各種階層作為決策時的參考數據。

2.組成架構:

(1)資料來源:TPSERPCRMSCMPOS

(2)資料儲存:Data BaseData WarehouseData Mart

(3)資料分析:OLAPData MiningModel Bases

(4)資訊顯現:瀏覽器。

 

三、資訊系統的分類方式

()依資料處理方式區分

1.批次作業資訊系統 (batch processing system)

薪資計算、帳務處理、庫存物料記錄及統計報表。

2.連線作業資訊系統 (on-line processing system):國家考試網路報名系統。

3.即時作業資訊系統 (real-time processing system)

()依支援組織層次和對象區分

1.支援策略層次:

(1)高階主管資訊系統 (Executive Information System, EIS)

(2)策略性資訊系統 (Strategic Information System, SIS)

2.支援幕僚:

(1)決策支援系統 (Decision Support System, DSS)

(2)專家系統 (Expert System, ES)

(3)群組軟體 (Groupware)

(4)群組決策支援系統 (Group Decision Support System, GDSS)

(5)知識管理系統 (Knowledge Management System, KMS)

3.支援管理層次:

(1)管理資訊系統 (Management Information System, MIS)

(2)企業資源規劃系統 (Enterprise Resource Planning, ERP)

4.支援作業層次:

arrow
arrow
    文章標籤
    系統分析與設計
    全站熱搜

    jacksaleok 發表在 痞客邦 留言(0) 人氣()