- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
设计及实作以元件为基础之网路教学系统
設計及實作以元件為基礎之網路教學系統
蔡明宏 朱治平
國立成功大學資訊工程系
摘要
近年來,由於全球資訊網(World Wide Web, WWW)的興起,帶動電子商務的蓬勃發展。為求降低成本及增加軟體再利用率,軟體發展的趨勢逐漸走向以元件為基礎的建構方式,如此不僅為應用程式帶來維修時的彈性與便利,更可縮短開發的時間。
微軟(Microsoft)的DNA (Distributed interNet Application)是一個以元件為基礎且可在任何網路上交通之應用程式框架(Framework)。藉由其元件技術(DCOM/ActiveX),將主從式架構分為資料處理層、商業邏輯層與使用者介面展示層,使得程式發展者可依此三層式架構分別地設計開發。但此架構仍屬於抽象層面的概念,缺少可讓程式師遵循的思考邏輯。因此本文以此一架構為目的,透過系統需求分析,提出推導出此三層元件的服務功能方法,並實際實作出一套以元件為基礎的網路教學系統。
1.簡介
軟體的再利用(reuse)一直是軟體發展方法上的重要議題。早先的結構化系統發展方法是一種功能導向的設計方式,但依其方式卻很難從舊有的系統中粹取出可重複使用的程式單元。於是強調資料封裝與繼承的物件導向設計方法漸漸被採用,只是其中仍存在著許多待解決的問題,比方說,不同的程式語言本身有其獨特的設計方式(例如各種資料型態在記憶體中分配的大小與位置),使得依不同語言所實作的程式單元彼此間無法溝通,而我們卻無法限制程式師都用同一種語言開發系統。再者,應用程式一但由編譯器產生之後,他日發現對其中的程式碼有更佳的演算法可改進其效能,或因應商業的需求需改變程式碼的計算邏輯,我們仍必須就整個應用程式重新撰寫編譯連結,此舉不僅浪費人力與時間,更難保程式的相容性。於是以介面(interface)為基礎的軟體元件設計方式解決了不同實作語言間的相容性問題,再配合各廠商為物件的生成、資源的分配管理、不同行程(process)間的資訊傳遞等提供了一種底層的服務機制,使得物件導向技術得以延伸,並趨向於提供比物件更完善的服務功能-元件。
目前市場上的元件介面規格主要有Microsoft的ActiveX/DCOM (Distributed Component Object Model)、Sun Microsystems的Java-Beans,以及IBM及物件標準組織OMG (Object Management Group)所主導的CORBA(Common Object Request Broker Architecture)等系統,而軟體元件之發展技術主要著重在元件的開發、再用,以及組裝元件成為應用系統。因此如何利用元件技術去開發具延展性的系統是我們所關心的一項重要議題。本研究以微軟的元件介面規格,遵循其所提出的三層式DNA架構,探討如何去規劃設計出所須之服務元件,並以「網路教學系統」作為案例,依所提出之方法步驟實際去開發實作,並探討以此三層式元件技術所開發出的系統與一般的應用程式有何不同之優缺點。
2. 背景及相關研究
DNA (Distributed interNet Applications)
DNA是Microsoft發展的一組用來架構三層式(three-tier)應用系統的技術[4],包含有IIS(Internet Information Server)、ASP(Active Server Pages)、MTS(Microsoft Transaction Server)、COM(Component Object Model)、ADO(ActiveX Data Objects)…等技術。在DNA架構下,ASP網頁構成網站的主要內容,資料物件(Data Object)是唯一能從永續儲存體(資料庫或檔案)讀取資料及將資料寫入的元件,其主要的目的是將存取過程細節封裝起來,包含與資料庫連線之驅動程式(如ODBC、JDBC),使得邏輯層物件(Business Object)可專注於商業邏輯的功能,而可不需注意資料真正的儲存方式細節。商業邏輯物件則封裝了應用程式的邏輯,控制執行順序。典型高階的邏輯層物件將從使用者處收集資訊與傳送資訊給使用者的情境(scenario)封裝起來。舉例而言,在一個借貸款的商務系統中,使用者經由使用者展示層所顯示的介面中填入顧客編號及所續借貸之金額後,邏輯層物件及從資料物件擷取相關顧客資料,並由其所訂定的商務規則(Business rule)中(例如老顧客的利息較低),算出所應償還之本利和,並透過使用者展示層告知使用者。
當商務規則有所變動時,我們只要將其邏輯層物件抽換掉,即可在最小的影響下更新此系統之功能服務,或者底層的資料庫系統(DBMS)有所變遷,只要保持其介面的一致性,將以不同的資料庫
文档评论(0)