網路套用支持軟體

網路套用支持軟體

在計算中,網路套用支持軟體又稱網路應用程式Web應用程式,是客戶端 - 伺服器 電腦程式,客戶端(包括用戶界面和客戶端邏輯)在Web瀏覽器中運行。常見的Web應用程式包括網路郵件,線上零售,線上拍賣,維基,即時訊息服務和許多其他功能。

基本介紹

  • 中文名:網路套用支持軟體
  • 外文名:Web application
  • 學科:計算機術語
定義,移動web應用程式,歷史,界面,結構,商業用途,開發,

定義

單頁面應用程式更類似於應用程式,因為它們拒絕在具有不同URL的不同頁面之間移動的更典型的Web範例。像Sencha Touch和AngularJS這樣的單頁框架可能被用來加速為移動平台開發這樣一個Web應用程式。任何類型的動態網頁與“網路應用程式”之間的一般區別尚不清楚。最有可能被稱為“網路應用程式”的網站是那些與桌面軟體應用程式或移動應用程式具有類似功能的網站。HTML5引入了明確的語言支持,可以使應用程式作為網頁載入,但可以在本地存儲數據並在離線時繼續運行。

移動web應用程式

在製作Web應用程式時,有幾種定位移動設備的方法:
1)回響式網頁設計可用於製作網路應用程式 - 無論是傳統網站還是可在小螢幕上查看的單頁應用程式,並且可以與觸控螢幕配合使用。
2)漸進式Web應用程式是常規網頁(或網站)和移動應用程式的混合體。
3)原生應用程式或“移動應用程式”直接在移動設備上運行,就像傳統軟體應用程式直接在台式計算機上運行一樣,沒有Web瀏覽器(並且可能不需要Internet連線);這些通常用Java(用於Android設備)或Objective-C或Swift(用於iOS設備)編寫。最近,像React Native,Flutter和Xamarin這樣的框架允許使用除每種標準本地語言以外的語言開發所有平台的本地應用程式。
4)混合應用程式將移動網站嵌入到本機應用程式中,可能使用Apache Cordova和Ionic或Appcelerator Titanium等混合框架。這允許使用Web技術進行開發(並且可能直接從現有移動網站複製代碼),同時還保留本機應用程式的某些優點(例如,直接訪問設備硬體,離線操作,應用程式商店可見性。

歷史

Web應用程式使用以各種Web瀏覽器支持的標準格式(HTML和JavaScript)編寫的Web文檔。Web應用程式可被視為客戶端 - 伺服器軟體的特定變體,其中客戶端軟體在使用諸如HTTP的標準程式訪問相關網頁時被下載到客戶端機器。每次訪問網頁時都可能會發生客戶端網頁軟體更新。在會話期間,Web瀏覽器解釋並顯示頁面,並充當任何Web應用程式的通用客戶端。在早期的計算模型(如客戶端伺服器)中,應用程式的處理負載在伺服器上的代碼和本地安裝在每個客戶端上的代碼之間共享。換句話說,一個應用程式有自己的預編譯客戶端程式作為其用戶界面,並且必須分別安裝在每個用戶的個人計算機上。升級到應用程式的伺服器端代碼通常還需要升級到安裝在每個用戶工作站上的客戶端代碼,這增加了支持成本並降低了生產力。另外,應用程式的客戶端和伺服器組件通常都與特定的計算機體系結構緊密相連,除了最大的應用程式外,作業系統和將它們移植到其他作業系統的成本往往非常昂貴。(現在,用於移動設備的本地應用程式也受到一些或所有上述問題的困擾。)
在Web早期,每個單獨的網頁都以靜態文檔的形式提供給客戶端,但由於用戶輸入是通過嵌入在頁面標記中的Web表單元素返回的,因此頁面順序仍然可以提供互動式體驗。但是,每次對網頁的重大更改都需要往返伺服器以刷新整個頁面。
1995年,Netscape引入了一種稱為JavaScript的客戶端腳本語言,允許程式設計師在客戶端運行的用戶界面中添加一些動態元素。因此,下載頁面的嵌入腳本可以執行各種任務,如輸入驗證或顯示/隱藏頁面的某些部分,而不是將數據傳送到伺服器以生成整個網頁。
1996年,Macromedia引入了Flash,這是一款矢量動畫播放器,可以作為外掛程式添加到瀏覽器中,以在網頁上嵌入動畫。它允許使用腳本語言來編程客戶端的互動,而不需要與伺服器通信。
在1999年,Servlet規範2.2版中的Java語言中引入了“Web應用程式”概念。當時JavaScript和XML都已經被開發出來,但Ajax還沒有被創造出來,並且XMLHttpRequest對象最近才作為ActiveX對象在Internet Explorer 5上引入。
2005年,Ajax一詞被創造出來,像Gmail這樣的應用程式開始使他們的客戶端變得越來越互動。網頁腳本能夠聯繫伺服器以存儲/檢索數據而無需下載整個網頁。
2011年,HTML5已經完成,它提供了圖形和多媒體功能,而無需客戶端外掛程式。HTML5也豐富了文檔的語義內容。API和文檔對象模型(DOM)不再是事後的,而是HTML5規範的基礎部分。WebGLAPI為基於HTML5畫布和JavaScript語言的高級3D圖形鋪平了道路。這對於創建真正的平台和瀏覽器獨立的富Web應用程式具有重要意義。

界面

通過Java,JavaScript,DHTML,Flash,Silverlight和其他技術,諸如在螢幕上繪圖,播放音頻以及訪問鍵盤和滑鼠等應用程式特定的方法都是可能的。許多服務都致力於將所有這些組合到一個更熟悉的界面中,該界面採用作業系統的外觀。通用技術,如拖放也受到這些技術的支持。Web開發人員經常使用客戶端腳本來添加功能,特別是創建不需要頁面重新載入的互動式體驗。最近,開發了一些技術來協調客戶端腳本與諸如ASP.NET,J2EE,Perl / Plack和PHP等伺服器端技術。
Ajax是一種使用各種技術組合的Web開發技術,它是創建更多互動式體驗的技術示例。

結構

應用程式通常分成稱為“層”的邏輯塊,其中每個層都分配了一個角色。傳統的應用程式只包含1層,駐留在客戶端機器上,但Web應用程式本身就是一種n層的方法。儘管可能有許多變化,但最常見的結構是三層應用程式。按照其最常見的形式,這三層被稱為演示,套用和存儲,按此順序。網頁瀏覽器是第一層(演示文稿),一個引擎使用一些動態網頁內容技術(如ASP,CGI,ColdFusion,Dart,JSP / Java,Node.js,PHP,Python或Ruby on Rails)是中間層(應用程式邏輯),資料庫是第三層(存儲)。Web瀏覽器向中間層傳送請求,中間層通過針對資料庫進行查詢和更新來為它們提供服務,並生成用戶界面。
對於更複雜的應用程式,三層解決方案可能不足,使用n層方法可能會有所幫助,其中最大的好處是將駐留在應用程式層的業務邏輯分解為更細粒度的模型。另一個好處可能是增加一個集成層,通過提供易於使用的界面來訪問數據,從而將數據層與其他層分開。例如,通過調用“list_clients()”函式可以訪問客戶端數據,而不是直接對資料庫上的客戶端表進行SQL查詢。這允許替換底層資料庫,而不對其他層進行任何更改。
有些人將Web應用程式視為兩層架構。這可以是一個“聰明”的客戶端,它執行所有的工作並查詢一個“愚蠢”的伺服器,或者一個依賴於“智慧型”伺服器的“愚蠢”客戶端。客戶端將處理表示層,伺服器將具有資料庫(存儲層),並且業務邏輯(套用層)將在其中一個或兩個上。雖然這增加了應用程式的可伸縮性,並將顯示和資料庫分開,但它仍然不允許真正的圖層專業化,所以大多數應用程式將超出此模型。

商業用途

這類應用程式的安全漏洞是一個主要的問題,因為它可能涉及企業信息和私人客戶數據。保護這些資產是任何Web應用程式的重要組成部分,並且在開發過程中必須包含一些關鍵的操作區域。這包括認證,授權,資產處理,輸入以及日誌和審計的流程。從一開始就將安全性構建到應用程式中可能會更加有效,並且從長遠角度來看具有較小的破壞性。套用軟體公司的新興策略是提供對以前作為本地應用程式分發的軟體的Web訪問。根據應用程式類型的不同,它可能需要開發完全不同的基於瀏覽器的界面,或者僅適應現有應用程式以使用不同的演示技術。這些程式允許用戶每月或每年支付使用軟體應用程式的費用,而無需將其安裝在本地硬碟驅動器上。遵循該策略的公司被稱為套用服務提供商(ASP),並且ASP目前在軟體行業中受到很多關注。
雲計算模型Web應用程式是軟體即服務(SaaS)。有固定或使用相關費用的企業應用程式作為SaaS提供給企業。其他Web應用程式是免費提供的,通常從Web應用程式界面中顯示的廣告中獲得收入。

開發

編寫Web應用程式通常通過使用Web應用程式框架(如Django,Ruby on Rails和Symfony)來簡化。這些框架通過允許開發團隊專注於其應用程式中獨特於其目標的部分而無需解決諸如用戶管理之類的常見開發問題,便於快速開發應用程式。許多使用的框架都是開源軟體。
使用Web應用程式框架通常可以減少程式中的錯誤數量,通過簡化代碼,並允許一個團隊專注於框架,而另一個專注於指定用例。在網際網路上經常遭受黑客攻擊的應用程式中,安全相關的問題可能由程式中的錯誤引起。框架還可以促進使用最佳實踐例如POST之後的GET。
此外,有可能在網際網路作業系統上開發應用程式,儘管目前沒有很多適合此模型的可行平台。

相關詞條

熱門詞條

聯絡我們