




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
軟件體系結構作業〔二〕層次系統體系結構和基于消息的層次體系結構有什么區別?層次系統組織成一個層次結構,每一層為上層效勞,并作為下層客戶。這種風格支持基于可增加抽象層的設計。這樣,允許將一個復雜問題分解成一個增量步驟序列的實現。每一層最多影響兩層。在一些層次系統中,除了一些精心挑選的輸出函數外,內部層次只對相鄰層可見,這樣的系統中,構建在一些層實現了虛擬機〔在另一些層次系統中層是局部不透明的〕,連接件通過決定層間如何交互的來定義,拓撲約束包括相鄰層間的交互約束。JB/HMB風格基于層次消息總線、支持構件的分布和并發,構件之間通過消息總線進行通訊消息總線是系統的連接件,負責消息的分派、傳遞和過濾,以及處理結果的返回;各個構件掛接在消息總線上,向總線登記感興趣的消息類型;構件根據需要發出消息,由消息總線負責將該消息分派到系統中所有對此消息感興趣的構件,消息是構件之間通訊的唯一方式;構件接收到消息后,根據自身狀態對消息進行響應,并通過總線返回處理結果.由于構件通過總線進行連,并不要求各個構件具有相同的地址空間或局限在一臺機器上.分析比擬b/s,二層c/s,三層c/s,指出優缺點。B/S是基于瀏覽器與效勞器之間的應用程序,網站就根本上屬于這種結構,輸入一個地址就可以訪問的,C/S基于客戶端與效勞器之間的應用程序,比方說現在的一些網游,需要下載一個客戶端才能運行的程序,B/S結構大局部處理都是由效勞器來完成的,而C/S那么可以在本機上處理大局部的事情,只需要把數據跟效勞器交換下就可以了,在效勞器的負載上,B/S顯然要比C/S結構的要大的多B/S、C/S結構軟件技術上的比擬:B/S:Browser/Server結構結構即瀏覽器和效勞器結構。它是隨著Internet技術的興起,對C/S結構的一種變化或者改進的結構。在這種結構下,用戶工作界面是通過WWW瀏覽器來實現,極少局部事務邏輯在前端〔Browser〕實現,但是主要事務邏輯在效勞器端〔Server〕實現,形成所謂三層3-tier結構。這樣就大大簡化了客戶端電腦載荷,減輕了系統維護與升級的本錢和工作量,降低了用戶的總體本錢〔TCO〕。
C/S:Client/Server在網絡連接模式中,除對等網外,還有另一種形式的網絡,即客戶機/效勞器網,Client/Server。在客戶機/效勞器網絡中,效勞器是網絡的核心,而客戶機是網絡的根底,客戶機依靠效勞器獲得所需要的網絡資源,而效勞器為客戶機提供網絡必須的資源。
這里客戶和效勞器都是指通信中所涉及的兩個應用進程〔軟件〕。使用計算機的人是計算機的“用戶〞〔user〕而不是“客戶〞〔client〕。它是軟件系統體系結構,通過它可以充分利用兩端硬件環境的優勢,將任務合理分配到Client端和Server端來實現,降低了系統的通訊開銷。目前大多數應用軟件系統都是Client/Server形式的兩層結構,由于現在的軟件應用系統正在向分布式的Web應用開展,Web和Client/Server應用都可以進行同樣的業務處理,應用不同的模塊共享邏輯組件;因此,內部的和外部的用戶都可以訪問新的和現有的應用系統,通過現有應用系統中的邏輯可以擴展出新的應用系統。這也就是目前應用系統的開展方向。一、B/S模式的優點和缺點
B/S結構的優點
〔1〕、具有分布性特點,可以隨時隨地進行查詢、瀏覽等業務處理。
〔2〕、業務擴展簡單方便,通過增加網頁即可增加效勞器功能。
〔3〕、維護簡單方便,只需要改變網頁,即可實現所有用戶的同步更新。
〔4〕、開發簡單,共享性強
B/S模式的缺點
〔1〕、個性化特點明顯降低,無法實現具有個性化的功能要求。
〔2〕、操作是以鼠標為最根本的操作方式,無法滿足快速操作的要求。
〔3〕、頁面動態刷新,響應速度明顯降低。
〔4〕、功能弱化,難以實現傳統模式下的特殊功能要求。
二、C/S模式的優點和缺點
C/S模式的優點
1.由于客戶端實現與效勞器的直接相連,沒有中間環節,因此響應速度快。
2.操作界面漂亮、形式多樣,可以充分滿足客戶自身的個性化要求。
3.C/S結構的管理信息系統具有較強的事務處理能力,能實現復雜的業務流程。
C/S模式的缺點
1.需要專門的客戶端安裝程序,分布功能弱,針對點多面廣且不具備網絡條件的用戶群體,不能夠實現快速部署安裝和配置。
2.兼容性差,對于不同的開發工具,具有較大的局限性。假設采用不同工具,需要重新改寫程序。
3.開發本錢較高,需要具有一定專業水準的技術人員才能完成。
B/S、C/S結構軟件技術上的比擬組織或參考參與采用B/S,和C/S的體系工程開發,總結開發經驗。總結:整體開發過程與一般工程開發一致,不過在工程準備的前期需要正對需求做好相關的架構,在該系統中,需要對聊天系統做好模塊的劃分,并依據這些模塊的劃分做好人員的安排和工程進度的調度。其他的軟件過程遵守如瀑布模型等標準過程。需求變化:工程的需要變化是肯定有的,而且變化一般都很頻繁,我們怎么應對客戶的這種需求變化呢,以不變應萬變。首先在前期的需求調研要做好,盡可能的替用戶考慮,到達功能質量滿足最大化。需求調研前期的?目標與范圍?和需求調研末期的?功能規格說明書?都要跟客戶簽字確認,這樣既能保證我們所理解的需求就是客戶所要的,也使得工程末期跟客戶驗收時有據可依。在工程中期是發生需求變更是很常見的,這時要做好需求變更管理流程。需求變更表,小的變更自己掌握,客戶要求的變更有開發人員和設計人員共同商討后提交工程經理,工程經理預估變更損耗工程時間,在一定階段一起提交給客戶,大的變更直接提交客戶,并且要把需求變更對工程產生的影響讓客戶知道,把球盡可能的踢給客戶,讓客戶在進度、功能、資源三者中取舍出一個平衡來。對需求進行分類評級,關鍵局部不能改動的做特別確認〔如系統架構等,如果改變等于從頭再來〕。同時完成客戶簽字確認,當然如果能將這局部寫成合同細節中去是最好。在某種意義上,全員設計可能增加交流的本錢。兩個人之間有一條交流途徑,三個人之間最多有三條,四個人之間最多有六條。途徑越多,信息量就越大,而這些信息不見得都是有用的信息。詳細設計的任務分解后,不可防止地有更多的人參與交流和溝通,大家要花更多的時間來理解他人的想法,也可能要花更多的時間向他人闡述自己的觀點。特別是在并行撰寫詳細設計的過程中,系統分析員反而可能成為另一個瓶頸了。但從總體上來看,在設計階段花費適當的代價發現更多的問題,比在實現階段或測試階段再發現問題,仍然是劃算的。分解后的詳細設計可能引入沖突的設計內容。由于設計由不同的程序員撰寫,他們考慮問題的角度和思維的方式不可能完全一致,這增大了不同的設計內容之間的計算口徑或交互方式不一致的可能性。這需要設計者們盡可能遵循一致的設計原那么,也需要審閱者們盡可能找到這些不一致的地方。并不是所有的程序員都適合參與設計。很明顯,例如剛入職的同事就不適合參與設計,他們對系統架構還缺乏足夠的認識。另外兼職的同事也不適合參與設計,他們的工作方式可能無法保證及時提交設計文檔與參與討論等。4.在軟件開發中,采用異構結構有什么好處其負面影響有哪些?(1)從最根本上說,不同的結構有不同的處理能力的強項和弱點,一個系統的體系結構應該根據實際需要進行選擇,以解決實際問題。(2)關于軟件包、框架、通信以及其他一些體系結構上的問題,目前存在多種標準。即使在某段時間內某一種標準占統治地位,但變動最終是絕對的。(3)實際工作中,總會遇到一些遺留下來的代碼,它們仍有效用,但是總與新系統有某種程度上的不協調。然而在許多場合,將技術與經濟綜合進行考慮時,總是決定不再重寫它們。(4)即使在某一單位中,規定了共享共同的軟件包或相互關系的一些標準,仍會存在解釋或表示習慣上的不同。害處:通過查資料然后分析,給出以下體系結構Windows7,Android,P2P,webservice,要求:1.模塊劃分和功能描述。2.模塊間的關系。3.典型功能模塊的調用關系。4.各自優缺點。Windows7:Window7在圖形架構方面的更新主要有如下方面:WDDM1.1:新的驅動模型DirectX11:更新的Direct3D11,以及相關的新Direct2DAPIDXVA-HD:高清視頻回放加速顯示設備連接和配置色彩管理高DPI輸出和可讀性多GPU系統聯合顯示適配器〔又叫聯合渲染〕Windows7核心圖形架構老的GDI/GDI+仍被單獨支持,不過,Windows7提供了它們對應功能的新的實現方法相比Vista帶的DirectX10,Windows7自帶了DirectX11,和WDDM1.0到1.1的變化不同,DirectX11的版本號表示其變化更大一些。Windows7DirectX11改變了以往的工作模式,將Direct3D10.1升級到Direct3D11,同時將以前Vista無法硬件加速的GDI/GDI+的工作重新劃分、引入新的Direct2D和DirectWriteAPI來完成圖形界面一直是Windows系統的核心,而從WindowsVista開始,Windows就開始將提供一個富圖形化的桌面圖形界面作為要目,不僅僅是因為Vista和7的桌面本身就是一個3D應用程序,而是因為Vista和7可以更好地發揮圖形加速硬件的作用。從WindowsVista到Windows7,操作系統與GPU的結合越來越緊密。Win7優缺點:多年的使用習慣讓大家對于他的上手難度幾乎為零,可使用的應用軟件資源是目前所有操作系統中最為豐富的,而且它對硬件、軟件的兼容性也是最好的.它并不適合平板電腦,因為Windows操作系統是專門為個人電腦設計的,而非平板電腦,再加上用戶在使用習慣上的慣性思維,導致它無論從軟硬件配合還是使用感受等多個方面,都無法滿足用戶苛刻的要求。可以說在平板電腦平臺上,Windows操作系統有一個好的根底,但是無法發揮出相應的潛力.Android:Android的系統架構和其操作系統一樣,采用了分層的架構。從架構圖看,android分為四個層,從高層到低層分別是應用程序層、應用程序框架層、系統運行庫層和Linux核心層。藍色的代表java程序,黃色的代碼為運行JAVA程序而實現的虛擬機,綠色局部為C/C++語言編寫的程序庫,紅色的代碼內核(Linux內核+drivers)Android作為一個移動設備的平臺,其軟件層次結構包括了一個操作系統〔OS〕,中間件〔MiddleWare〕和應用程序〔Application〕。根據Android的軟件框圖,其Android核心模塊結構自下而上分為以下幾個層次:第一、操作系統層〔OS〕第二、各種庫〔Libraries〕和Android運行環境〔RunTime〕第三、應用程序框架〔ApplicationFramework〕第四、應用程序〔Application〕以下分別介紹Andoid各個層次的軟件的重點及其相關技術:●Android核心模塊之操作系統層〔OS〕Android使用Linux2.6作為操作系統,Linux2.6是一種標準的技術,Linux也是一個開放的操作系統。Android對操作系統的使用包括核心和驅動程序兩局部,Android的Linux核心為標準的Linux2.6內核,Android更多的是需要一些與移動設備相關的驅動程序。主要的驅動如下所示:顯示驅動〔DisplayDriver〕:常用基于Linux的幀緩沖〔FrameBuffer〕驅動。Flash內存驅動〔FlashMemoryDriver〕照相機驅動〔CameraDriver〕:常用基于Linux的v4l〔Videofor〕驅動。音頻驅動〔AudioDriver〕:常用基于ALSA〔AdvancedLinuxSoundArchitecture,高級Linux聲音體系〕驅動。WiFi驅動〔CameraDriver〕:基于IEEE802.11標準的驅動程序鍵盤驅動〔KeyBoardDriver〕藍牙驅動〔BluetoothDriver〕BinderIPC驅動:Andoid一個特殊的驅動程序,具有單獨的設備節點,提供進程間通訊的功能。PowerManagement〔能源管理〕●Android核心模塊之各種庫〔Libraries〕和Android運行環境〔RunTime〕本層次對應一般嵌入式系統,相當于中間件層次。Android的本層次分成兩個局部一個是各種庫,另一個是Android運行環境。本層的內容大多是使用C++實現的。在其中,各種庫包括:▅C庫:C語言的標準庫,這也是系統中一個最為底層的庫,C庫是通過Linux的系統調用來實現。▅多媒體框架〔MediaFrameword〕:這局部內容是Android多媒體的核心局部,基于PacketVideo〔即PV〕的OpenCORE,從功能上本庫一共分為兩大局部,一個局部是音頻、視頻的回放〔PlayBack〕,另一局部是那么是音視頻的紀錄〔Recorder〕。▅SGL:2D圖像引擎。▅SSL:即SecureSocketLayer位于TCP/IP協議與各種應用層協議之間,為數據通訊提供平安支持。▅OpenGLES1.0:本局部提供了對3D的支持。▅界面管理工具〔SurfaceManagement〕:本局部提供了對管理顯示子系統等功能。▅SQLite:一個通用的嵌入式數據庫▅WebKit:網絡瀏覽器的核心▅FreeType:位圖和矢量字體的功能。Android的各種庫一般是以系統中間件的形式提供的,它們均有的一個顯著特點就是與移動設備的平臺的應用密切相關。Android運行環境主要指的虛擬機技術——Dalvik。Dalvik虛擬機和一般JAVA虛擬機〔JavaVM〕不同,它執行的不是JAVA標準的字節碼〔bytecode〕而是Dalvik可執行格式〔.dex〕中執行文件。在執行的過程中,每一個應用程序即一個進程〔Linux的一個Process〕。二者最大的區別在于JavaVM是以基于棧的虛擬機〔Stack-based〕,而Dalvik是基于存放器的虛擬機〔Register-based〕。顯然,后者最大的好處在于可以根據硬件實現更大的優化,這更適合移動設備的特點。●Android核心模塊之應用程序框架〔ApplicationFramework〕Android的應用程序框架為應用程序層的開發者提供APIs,它實際上是一個應用程序的框架。由于上層的應用程序是以JAVA構建的,因此本層次提供的首先包含了UI程序中所需要的各種控件:例如:Views(視圖組件)包括lists(列表),grids(柵格),textboxes(文本框),buttons(按鈕)等。甚至一個嵌入式的Web瀏覽器。一個Andoid的應用程序可以利用應用程序框架中的以下幾個局部:Activity〔活動〕BroadcastIntentReceiver〔播送意圖接收者〕Service〔效勞〕ContentProvider〔內容提供者〕●Android核心模塊之應用程序〔Application〕Android的應用程序主要是用戶界面〔UserInterface〕方面的,通常以JAVA程序編寫,其中還可以包含各種資源文件〔放置在res目錄中〕JAVA程序及相關資源經過編譯后,將生成一個APK包。Android本身提供了主屏幕〔Home〕,聯系人〔Contact〕,電話〔Phone〕,瀏覽器〔Browers〕等眾多的核心應用。同時應用程序的開發者還可以使用應用程序框架層的API實現自己的程序。這也是Android開源的巨大潛力的表達。Android架構詳解Android系統架構由5局部組成,分別是:LinuxKernel、AndroidRuntime、Libraries、ApplicationFramework、Applications。第二局部將詳細介紹這5個局部。下面自底向上分析各層。安卓優點:Android是一款開放的、基于Linux內核的嵌入式操作系統,將被廣泛地應用到各種移動手持設備中,充分發揮其強大的網絡功能;由于開源的特性,Android不區分核心應用程序和第三方應用程序,并可自由的吸納新出現的尖端技術;同時,Android提供廣泛而實用的函數庫和工具,利用它們可以開發豐富的應用程序。由此可以展望,基于開放手機聯盟(OpenHandsetAlliance)平臺強大的技術實力和市場推廣,Android系統在移動嵌入式領域的應用將會非常廣闊缺點:Android系統手機泄密,不支持關機鬧鈴與用戶需求嚴重背離,對硬件配置要求高制造本錢增加,死機現象頻現。P2P技術P2P可定義為以非集中方式使用分布式資源來完成關鍵任務的一類系統或者技術。P2P如果僅僅看作是一種網絡拓撲結構,那么不是新鮮事物,最原始的P2P形態就是網絡誕生時的點—點通信方式。后來,互聯網資源豐富起來并趨于集中化,出現了效勞器和客戶端的概念。但Client/Server的網絡體系結構使得效勞缺乏個性化,資源無法得到充分利用。因此,人們渴望打破Server對網絡資源的全面控制,在TCP/IP根底上演化出新的P2P技術。P2P技術模型和應用P2P強調Serverless的意識,按照業務提供方式可以分為三種,即P2P的三種模型:(1〕完全基于Server(Server-based)的(即C/S),效勞器提供相連peer的名字索引以及網絡上所有的資源,同時,peer之間的通信的建立也需要依靠效勞器的初始化。效勞器在系統中處于支配地位,和傳統的C/S模型一樣,如圖1所示。〔2〕局部基于Server(with-Server);通常,準備參加網絡的peer通知一個索引效勞器它已經登錄,效勞器的作用僅僅是為正在參加的peer提供已經連接的peer的名字的索引,資源仍然分布式存放在各個peer上,如何建立連接和后來的通信那么仍然屬于peer之間的事情。如圖2所示。最早的Napster,Kazaa以及近期的Edoney,Emule,Skype等就屬于局部基于Server的P2P技術架構,它們主要提供文件的高速傳輸和實時通信為主要目的。〔3〕完全Serverless〔non-Server〕。此模型中,完全沒有效勞器的概念,所有成員都是對等端,peer動態地發現其連接的peer,peer之間的通信完全不需要來自效勞器的任何幫助,打破了C/S模型的傳統通信方式。它可以在某種規那么下,將網絡中的所有資源完全共享,并快速提供,同時支持每個peer的快速參加和退出。這種純P2P模型容許用戶自己設定通信規那么,建立具有特色的網絡環境,如圖3。其可以使得網絡資源使用率最大化,最優化系統性能。這類純P2P系統包括Gnutella和Freenet,Myjxta及國內的SNS社會網絡,Nexter等。純P2P模型可以提供近似的即插即用特性,但其缺點在于網絡上peer之間如何彼此發現,并與之建立通信的問題。圖1P2P三種技術模型比照2.2P2P較C/S模式的優越性P2P具有如下一些特性:〔1〕peer知道彼此的存在和位置;〔2〕peer既可以作為Client也可以作為Server而存在;〔3〕多個peer可以形成一個peer組,并進而形成覆蓋網;(4〕peer都是運行在那個虛擬的覆蓋網上。這些特性使得P2P系統具有非常良好的可擴展性,使得在較低本錢情況下完成資源的聚合和共享,也容許peer在彼此數據的管理和資源共享上擁有較大的自治控制。由于出色的性能,基于局部Serverless和完全Serverless的P2P技術,出現了大量的互聯網相關增值業務,比方分布計算,協同工作,文件共享,即時通信等。目前大多互聯網上的應用都是基于傳統的C/S模式的,包括IPTV也是如此。C/S模式使得網絡上的資源向效勞器端集中,用戶之間的通信高度依賴于效勞器,無法直接交流信息。因此,在網絡性能方面,P2P的優點在于它是基于互聯網的對等架構,可以大大改善資源的流量分布,解決網絡擁塞和帶寬的瓶頸問題,減緩存儲效勞器的響應壓力。在通信方式上,基于P2P的系統由于peer之間的協作,具有高度的容錯性和非常好的可擴展性,可以快速對數據進行發布和資源的聚合,數據傳輸的即時性和本錢都具有C/S所無法比擬的優越性。混合的P2P-IPTV體系結構:系統結構具有綜合效勞能力,可通過同一個平臺來完成直播電視、點播電視和時移電視的三種業務形態。還要求系統具有非常好的開放性架構,使得網絡系統可以在大規模用戶頻繁參加退出時保持穩定,并支持本地和異地用戶之間的連接和業務認證。同時,其體系結構還需要提供有QoS保證的多媒體效勞,及必要的平安、保密措施。目前,IPTV一般是運行在支持組播應用的IP網絡中。其采用的體系結構為C/S模式,提供組播實時業務和點播存儲媒體業務效勞。顯然,由于輸入/輸出帶寬的限制,使得效勞器只能支持有限的并發用戶。當大規模的網絡用戶同時收看節目時,要保證系統的穩定和QoS,ICP必須用大量效勞器來平衡網絡訪問負載,并增加網絡出口帶寬。但是,效勞器數量和網絡容量的增加永遠會落后于用戶規模的增長。目前臨時的解決方法是采用組播傳輸技術來提供播送效勞或者采用內容傳送網等覆蓋網技術。這些過渡性質的技術需要對現有的網絡進行升級改造,大大增加了網絡建設的本錢,浪費已有的資源投資。為了徹底解決問題,必須打破C/S模式的體系結構,使得IPTV的體系結構向具有對等連接特性的P2P模式演化,從而將效勞器的負荷負載平衡到每個參與的peer上去。基于P2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論