-
當前位置:首頁 > 創(chuàng)意學院 > 技術 > 專題列表 > 正文
表現(xiàn)層(presentation):用戶界面,負責視覺和用戶互動
業(yè)務層(business):實現(xiàn)業(yè)務邏輯
持久層(persistence):提供數(shù)據,SQL 語句就放在這一層
數(shù)據庫(database) :保存數(shù)據
事件隊列(event queue):接收事件的入口
分發(fā)器(event mediator):將不同的事件分發(fā)到不同的業(yè)務邏輯單元
事件通道(event channel):分發(fā)器與處理器之間的聯(lián)系渠道
事件處理器(event processor):實現(xiàn)業(yè)務邏輯,處理完成后會發(fā)出事件,觸發(fā)下一步操作
處理單元:實現(xiàn)業(yè)務邏輯
虛擬中間件:負責通信、保持sessions、數(shù)據復制、分布式處理、處理單元的部署。
網頁版軟件是什么架構(網頁版軟件是什么架構類型)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關于網頁版軟件是什么架構的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。
開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等
只需要輸入關鍵詞,就能返回你想要的內容,越精準,寫出的就越詳細,有微信小程序端、在線網頁版、PC客戶端
創(chuàng)意嶺作為行業(yè)內優(yōu)秀的企業(yè),服務客戶遍布全球各地,如需了解SEO相關業(yè)務請撥打電話175-8598-2043,或添加微信:1454722008
本文目錄:
一、軟件的系統(tǒng)架構和開發(fā)平臺都有哪些?具體都有哪幾種呢?
一、軟件的系統(tǒng)架構
(一)、分層架構
分層架構(layered architecture)是最常見的軟件架構,也是事實上的標準架構。如果你不知道要用什么架構,那就用它。
這種架構將軟件分成若干個水平層,每一層都有清晰的角色和分工,不需要知道其他層的細節(jié)。層與層之間通過接口通信。
雖然沒有明確約定,軟件一定要分成多少層,但是四層的結構最常見。
有的軟件在邏輯層和持久層之間,加了一個服務層(service),提供不同業(yè)務邏輯需要的一些通用接口。
用戶的請求將依次通過這四層的處理,不能跳過其中任何一層。
(二)事件驅動架構
事件(event)是狀態(tài)發(fā)生變化時,軟件發(fā)出的通知。
事件驅動架構(event-driven architecture)就是通過事件進行通信的軟件架構。它分成四個部分。
對于簡單的項目,事件隊列、分發(fā)器和事件通道,可以合為一體,整個軟件就分成事件代理和事件處理器兩部分。
(三)微核架構
微核架構(microkernel architecture)又稱為"插件架構"(plug-in architecture),指的是軟件的內核相對較小,主要功能和業(yè)務邏輯都通過插件實現(xiàn)。
內核(core)通常只包含系統(tǒng)運行的最小功能。插件則是互相獨立的,插件之間的通信,應該減少到最低,避免出現(xiàn)互相依賴的問題。
(四)、微服務架構
微服務架構(microservices architecture)是服務導向架構(service-oriented architecture,縮寫 SOA)的升級。
每一個服務就是一個獨立的部署單元(separately deployed unit)。這些單元都是分布式的,互相解耦,通過遠程通信協(xié)議(比如REST、SOAP)聯(lián)系。
(五)、云架構
云結構(cloud architecture)主要解決擴展性和并發(fā)的問題,是最容易擴展的架構。
它的高擴展性,主要原因是沒使用中央數(shù)據庫,而是把數(shù)據都復制到內存中,變成可復制的內存數(shù)據單元。然后,業(yè)務處理能力封裝成一個個處理單元(prcessing unit)。訪問量增加,就新建處理單元;訪問量減少,就關閉處理單元。由于沒有中央數(shù)據庫,所以擴展性的最大瓶頸消失了。由于每個處理單元的數(shù)據都在內存里,最好要進行數(shù)據持久化。
這個模式主要分成兩部分:處理單元(processing unit)和虛擬中間件(virtualized middleware)。
二、開發(fā)平臺
ERP平臺、金融電商平臺、小程序平臺、網站平臺、bpm平臺、低代碼開發(fā)平臺等等;
廠家有天翎、頂點、天縱、清流、K2等
開發(fā)語言有區(qū)分:dephp、java。net等;
三、如何選擇合適的開發(fā)平臺?
平臺的選型,無非是從客戶業(yè)務需求的角度,以及對應的品牌形象和案例沉淀幾個角度去選擇;
建議可以開箱即用,多試用幾次,就找到適合的產品,通俗的說,就是貨比三家。
管理顧問,每天成長一點點,努力成就自己的優(yōu)秀。
二、什么是軟件架構?
軟件架構(software architecture)是一系列相關的抽象模式,用于指導大型軟件系統(tǒng)各個方面的設計。
軟件架構是一個系統(tǒng)的草圖。軟件架構描述的對象是直接構成系統(tǒng)的抽象組件。各個組件之間的連接則明確和相對細致地描述組件之間的通訊。在實現(xiàn)階段,這些抽象組件被細化為實際的組件,比如具體某個類或者對象。在面向對象領域中,組件之間的連接通常用接口來實現(xiàn)。
軟件體系結構是構建計算機軟件實踐的基礎。與建筑師設定建筑項目的設計原則和目標,作為繪圖員畫圖的基礎一樣,一個軟件架構師或者系統(tǒng)架構師陳述軟件構架以作為滿足不同客戶需求的實際系統(tǒng)設計方案的基礎。
三、什么是網站架構
網站架構,一般認為是根據客戶需求分析的結果,準確定位網站目標群體,設定網站整體架構,規(guī)劃、設計網站欄目及其內容,制定網站開發(fā)流程及順序,以最大限度地進行高效資源分配與管理的設計。其內容有程序架構,呈現(xiàn)架構,和信息架構三種表現(xiàn)。而步驟主要分為硬架構和軟架構兩步程序。網絡架構是現(xiàn)代網絡學習和發(fā)展的一個必須的基礎技術。
中文名
網站架構
一般認為
根據客戶需求分析的結果
制定
網站開發(fā)流程及順序
內容
程序架構,呈現(xiàn)架構
快速
導航
軟架構八個方案
硬架構
機房的選擇
在選擇機房的時候,根據網站用戶的地域分布,可以選擇網通或電信機房,但更多時候,可能雙線機房才是合適的。越大的城市,機房價格越貴,從成本的角度看可以在一些中小城市托管服務器,比如說北京的公司可以考慮把服務器托管在天津,廊坊等地,不是特別遠,但是價格會便宜很多。
帶寬的大小
通常老板花錢請我們架構網站的時候,會給我們提出一些目標,諸如網站每天要能承受100萬PV的訪問量等等。這時我們要預算一下大概需要多大的帶寬,計算帶寬大小主要涉及兩個指標(峰值流量和頁面大?。?,我們不妨在計算前先做出必要的假設:
第一:假設峰值流量是平均流量的5倍。
第二:假設每次訪問平均的頁面大小是100K字節(jié)左右。
如果100萬PV的訪問量在一天內平均分布的話,折合到每秒大約12次訪問,如果按平均每次訪問頁面的大小是100K字節(jié)左右計算的話,這12次訪問總計大約就是1200K字節(jié),字節(jié)的單位是Byte,而帶寬的單位是bit,它們之間的關系是1Byte = 8bit,所以1200K Byte大致就相當于9600K bit,也就是9Mbps的樣子,實際情況中,我們的網站必須能在峰值流量時保持正常訪問,所以按照假設的峰值流量算,真實帶寬的需求應該在45Mbps 左右。
當然,這個結論是建立在前面提到的兩點假設的基礎上,如果你的實際情況和這兩點假設有出入,那么結果也會有差別。
服務器的劃分
先看我們都需要哪些服務器:圖片服務器,頁面服務器,數(shù)據庫服務器,應用服務器,日志服務器等等。
對于訪問量大點的網站而言,分離單獨的圖片服務器和頁面服務器相當必要,我們可以用lighttpd來跑圖片服務器,用apache來跑頁面服務器,當然也可以選擇別的,甚至,我們可以擴展成很多臺圖片服務器和很多臺頁面服務器,并設置相關域名,如img.domain和 www.domain,頁面里的圖片路徑都使用絕對路徑,如<img src="http://img.domain/abc.gif" />,然后設置DNS輪循,達到最初級的負載均衡。當然,服務器多了就不可避免的涉及一個同步的問題,這個可以使用rsync軟件來搞定。
數(shù)據庫服務器是重中之重,因為網站的瓶頸問題十有八九是出在數(shù)據庫身上。一般的中小網站多使用MySQL數(shù)據庫,不過它的集群功能似乎還沒有達到stable的階段,所以這里不做評價。一般而言,使用MySQL數(shù)據庫的時候,我們應該搞一個主從(一主多從)結構,主數(shù)據庫服務器使用innodb表結構,從數(shù)據服務器使用myisam表結構,充分發(fā)揮它們各自的優(yōu)勢,而且這樣的主從結構分離了讀寫操作,降低了讀操作的壓力,甚至我們還可以設定一個專門的從服務器做備份服務器,方便備份。不然如果你只有一臺主服務器,在大數(shù)據量的情況下,mysqldump基本就沒戲了,直接拷貝數(shù)據文件的話,還得先停止數(shù)據庫服務再拷貝,否則備份文件會出錯。但對于很多網站而言,即使數(shù)據庫服務僅停止了一秒也是不可接受的。如果你有了一臺從數(shù)據庫服務器,在備份數(shù)據的時候,可以先停止服務(slave stop)再備份,再啟動服務(slave start)后從服務器會自動從主服務器同步數(shù)據,一切都沒有影響。但是主從結構也是有致命缺點的,那就是主從結構只是降低了讀操作的壓力,卻不能降低寫操作的壓力。
為了適應更大的規(guī)模,可能只剩下最后這招了:橫向/縱向分割數(shù)據庫。所謂橫向分割數(shù)據庫,就是把不同的表保存到不同的數(shù)據庫服務器上,比如說 用戶表保存在A數(shù)據庫服務器上,文章表保存在B數(shù)據庫服務器上,當然這樣的分割是有代價的,最基本的就是你沒法進行LEFT JOIN之類的操作了。所謂縱向分割數(shù)據庫,一般是指按照用戶標識(user_id)等來劃分數(shù)據存儲的服務器,比如說:我們有5臺數(shù)據庫服務器,那么 “user_id % 5 + 1”等于1的就保存到1號服務器,等于2的就保存到2號服務器,以此類推,縱向分隔的原則有很多種,可以視情況選擇。不過和橫向分割數(shù)據庫一樣,縱向分割數(shù)據庫也是有代價的,最基本的就是我們在進行如COUNT, SUM等匯總操作的時候會麻煩很多。綜上所述,數(shù)據庫服務器的解決方案一般視情況往往是一個混合的方案,以其發(fā)揮各種方案的優(yōu)勢,有時候還需要借助memcached之類的第三方軟件,以便適應更大訪問量的要求。
如果有專門的應用服務器來跑PHP腳本是最合適不過的了,那樣我們的頁面服務器只保存靜態(tài)頁面就可以了,可以給應用服務器設置一些諸如app.domain之類的域名來和頁面服務器加以區(qū)別。對于應用服務器,我還是更傾向于使用prefork模式的apache,配上必要的xcache之類的PHP緩存軟件,加載模塊要越少越好,除了mod_rewrite等必要的模塊,不必要的東西統(tǒng)統(tǒng)舍棄,盡量減少httpd進程的內存消耗,而那些圖片服務器,頁面服務器等靜態(tài)內容就可以使用lighttpd或者tux來搞,充分發(fā)揮各種服務器的特點。
如果條件允許,獨立的日志服務器也是必要的,一般小網站的做法都是把頁面服務器和日志服務器合二為一了,在凌晨訪問量不大的時候cron運行前一天的日志計算,不過如果你使用awstats之類的日志分析軟件,對于百萬級訪問量而言,即使按天歸檔,也會消耗很多時間和服務器資源去計算,所以分離單獨的日志服務器還是有好處的,這樣不會影響正式服務器的工作狀態(tài)。
軟架構
框架的選擇
PHP框架有很多選擇,比如:CakePHP,Symfony,Zend Framework等等,至于應該使用哪一個并沒有唯一的答案,要根據Team里團隊成員對各個框架的了解程度而定。很多時候,即使沒有使用框架,一樣能 寫出好的程序來,比如Flickr據說就是用Pear+Smarty這樣的類庫寫出來的,所以,是否用框架,用什么框架,一般不是最重要的,重要的是我們 的編程思想里要有框架的意識。
邏輯的分層
四、手機APP軟件,屬于C/S架構么?
不全屬于C/S架構,手機APP軟件除了C/S架構,還有單機版APP,B/S架構等類型的APP。
在C/S結構中,應用程序分為兩部分:服務器部分和客戶機部分。服務器部分是多個用戶共享的信息與功能,執(zhí)行后臺服務。典型的如一些聊天APP,視頻APP等就是作為本地客戶機,與服務器端進行信息交流、請求等,屬于典型的C/S結構。
B/S架構中,客戶機上只要安裝一個瀏覽器,如Netscape Navigator或Internet Explorer,服務器安裝SQL Server、Oracle、MYSQL等數(shù)據庫。瀏覽器通過Web Server 同數(shù)據庫進行數(shù)據交互。手機中就有許多瀏覽器應用,是屬于B/S架構的。當然手機中還有一些單機版游戲等應用。
擴展資料:
C/S和B/S的比較:
1、硬件環(huán)境的比較:
CS建立在局域網的基礎上,局域網之間再通過專門服務器提供連接和數(shù)據交換服務。在CS結構中,客戶機和服務器都需要處理數(shù)據任務,這就對客戶機的硬件提出了較高的要求。BS結構建立在廣域網之上,不必配備專門的網絡硬件環(huán)境。
2、系統(tǒng)維護 、 升級的比較
CS結構中的每一個客戶機都必須安裝和配置相關軟件,如操作系統(tǒng)、客戶端軟件等。BS結構中每一個客戶端只需通過瀏覽器便可進行各種信息的處理,而不需要安裝客戶端軟件,維護、升級等幾乎所有的工作都在服務器端進行,如果系統(tǒng)需要升級,只需要將升級程序安裝在服務器端即可。
參考資料來源:百度百科-B/S架構
參考資料來源:百度百科-C/S架構
以上就是關于網頁版軟件是什么架構相關問題的回答。希望能幫到你,如有更多相關問題,您也可以聯(lián)系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內容。
推薦閱讀:
電腦網頁滾動條下拉不了怎么辦(電腦網頁滾動條下拉不了怎么辦呀)