複製鏈接
請複製以下鏈接發送給好友

web應用程序

(可以通過Web訪問的應用程序)

鎖定
Web應用程序是一種可以通過Web訪問的應用程序,程序的最大好處是用户很容易訪問應用程序,用户只需要有瀏覽器即可,不需要再安裝其他軟件。
中文名
web應用程序
架構優點
瀏覽器/服務器架構
應    用
對數據庫進行處理,管理信息系統
應用擴展
信息化,互聯網,移動化
簡    稱
Webapp

web應用程序簡介

現在的大部分Web應用都採用服務端和客户端相結合的模式,其中客户端的應用程序很多,比如瀏覽器等,而服務端基本上全都採用了“服務器硬件+服務器軟件+WEB應用程序”的結構,而WEB應用程序是服務端最核心的部分。
1990年,伯納斯·李將歐洲核子研究中心的電話號碼薄製作成了第一個WEB應用程序,並且在自己的計算機上運行了這個應用程序。同時伯納斯·李將這個應用起名為World Wide Web (WWW) 萬維網。WEB應用程序分為:靜態應用程序和動態應用程序。 [4] 

web應用程序產品介紹

應用程序有兩種模式C/S、B/S。C/S是客户端/服務器端程序,也就是説這類程序一般獨立運行。而B/S就是瀏覽器端/服務器端應用程序,這類應用程序一般藉助IE等瀏覽器來運行。WEB應用程序一般是B/S模式。Web應用程序首先是“應用程序”,和用標準的程序語言,如C、C++等編寫出來的程序沒有什麼本質上的不同。然而Web應用程序又有自己獨特的地方,就是它是基於Web的,而不是採用傳統方法運行的。換句話説,它是典型的瀏覽器/服務器架構的產物。
一個Web應用程序是由完成特定任務的各種Web組件(Web components)構成的並通過Web將服務展示給外界。在實際應用中,Web應用程序是由多個Servlet、JSP頁面、HTML文件以及圖像文件等組成。所有這些組件相互協調為用户提供一組完整的服務。 [1] 

web應用程序開發過程

步驟一:分析
開發一個Web應用的第一步是分析你的需求。你此時應該定義出一個儘量周全的你的應用應該提供的功能清單。如果是你為一個客户做這些工作,你需要明白他們想要什麼(要確保你們對方都知道對方在説些什麼)。從你們的討論中,你能總結出需求和軟件規格。你即使是為自己開發,我也建議你把希望這個Web應用能夠做的功能寫下來。
步驟二:設計
一旦你弄清楚了這個Web應用需要做哪些事情,你就可以開始設計了。這個步驟通常會反反覆覆進行很多次,每一次都把設計細化一些。你第一要做的是畫出頁面流程圖(畫在紙上,或使用軟件工具,憑各自所好吧。我喜歡用紙,這樣我可以做更快速的改變)。頁面流程圖通常是很抽象的黑白繪畫,畫出你將要實現的Web應用的樣子(你可以加一些色彩,但儘量保持簡單)。
這個步驟能夠讓你知道你的應用最終會是個什麼樣子。跟37signals倡導的相反,我建議使用一些詞語描述,適度細化。當我想到一個很好的想法時,或想到事情該如何做時,我會把它標註到紙上(例如,當點擊這個按鈕時應該使另外一個元素改變或隱藏,我會把這寫在流程圖上)。
當你對做出的草圖滿意後,你可以開始製作實體模型了。
實體模型仍然是些圖案,但有色彩和細節。最終的實體模型看起來應該像你將要實現的Web應用的一個截屏圖。如果你為一個客户開發,他會看看這些東西,並給你他的認可。然而,很多人都喜歡跳過這一步(大多數都是非設計人員),他們喜歡直接奔向網頁原型。
原型是用HTML開發出來,使用CSS渲染(有時也是有Javascript)。頁面佈局要做出來,鏈接能夠點,顏色,字體,字體大小要設定好(如果你做了實體模型,這個會很容易)。這一步非常的重要,因為這裏所有的東西都能用於你最終的應用中。如果允許的話,在你的原型上做一些可用性測試,從長期的效果來看,這能使你避免大量的失誤。
在這個步驟的最後,你基本上就知道了你的Web應用是如何組織到一起的了。登錄頁面有些什麼,用户如何從主頁轉向到各個頁面。
步驟三:實現選擇一個框架
我們已經知道了要去開發什麼東西,那就要把它做出來。這一部分的工作很多,你大部分的時間都要花在這個上面。你第一個要做的決定是如何着手,採用什麼樣的技術,什麼框架。你有很多選擇的餘地,你需要選出一個適合你的。下面是一個最常用的框架的列表:
  • ASP.NET
  • PHP 上的任何一個流程的框架
  • Python with Django
  • Ruby on Rails
沒有一個明確的標準説哪個框架最好。它們都各有不同,每個都有自己的長處。最重要的是你要知道它們任何一個都能讓你開發出好用的Web應用。
開發
一旦你知道了如何去開發,那就要甩開臂膀開幹了。這個開發工作可以看作有很多塊,但説到底,這都是標準的編程活動了。在後台,你要創建類,對象,服務,過程,以及持久層來把這些對象保存到數據庫中。後台是整個應用的核心,對任何應用來説,它跟普通的編程沒有什麼區別。接着是前台的開發,你編寫的代碼才是真正給用户使用的操作界面。你把後台的程序和原型界面集成到一起,把系統各部分集成到一起。你還可以把你在開發過程中想到的一些很炫的小功能用JavaScript實現。
再説一次,有很多種途徑可以實現後台程序。建議你去讀一讀跟你選擇的框架相關的資料,弄清楚如何實現這一部分的工作。通常,這些知識會跟面向對象編程有關,但有些框架正在慢慢的向領域驅動設計發展。
步驟四:打磨拋光
應用程序已經開發出來,各個獨立的模塊也集成到了一起。你需要通過測試來確保你在步驟一中定義的需求和軟件規格是否被實現(這個問題在你開發的整個過程中都要記在腦中)。你要確保那些愚蠢的用户不能通過試圖做一些你還沒有實現的操作而把你的應用弄壞(參考白盒黑盒測試)。你同時還要確保你的程序能夠在各種瀏覽器裏(希望不是IE6)都能正確的運行。
也是你做一些小的調整,改進你的應用程序給人的感覺的時候,讓它趨於完美。
步驟五:發佈和後續工作
這最後一步(但不是就此完結)是發佈你的應用,讓用户能夠真正使用它(如果這個應用是個公眾開發的應用,別忘了做新聞宣傳)。如果你願意,先發佈一個Beta版,這樣只有一小部分用户能夠發現你的應用裏的大問題(因為你的程序裏肯定會有bug),他們會幫助你改進程序的質量。不要忙着增加功能,要專注於把你的程序變的穩固。
當經過了beta階段,你的程序已經變得十分的穩固,聽取用户反饋的意見,自己試用一下自己的應用,你可以開始思考如何使應用變的更好。找出不和諧的地方,消除掉。以後每次的迭代都要經過上面所説的五個步驟,但就像我最初説的,你已經有了一個可以運行的應用程序,你很容易直接在心裏完成這些步驟,直接奔向在代碼裏測試你的功能。

web應用程序優點

  • 網絡應用程序不需要任何複雜的“展開”過程,你所需要的只是一個適用的瀏覽器;
  • 網絡應用程序通常耗費很少的用户硬盤空間,或者一點都不耗費;
  • 它們不需要更新,因為所有新的特性都在服務器上執行,從而自動傳達到用户端;
  • 網絡應用程序和服務器端的網絡產品都很容易結合,如email功能和搜索功能;
  • 因為它們在網絡瀏覽器窗口中運行,所以大多數情況下它們是通過跨平台使用的 (例如Windows,Mac,Linux等等)

web應用程序缺點

  • 網絡應用程序強調瀏覽器的適用性。如果瀏覽器方沒有提供特定的功能,或者棄用特定的平台或操作系統版本(導致不適用),就會影響大量用户;
  • 網絡應用依靠互聯網遠程服務器端的應用文件。因此,當連接出問題時,應用將不能正常使用。但是,如果使用HTML5 API,這些應用就可以被下載安裝而可離線使用。Google Gears,就是一個好例子; [3] 
  • 許多網絡應用程序不是開源的,只能依賴第三方提供的服務,因此不能針對用户定製化、個性化,而且大多數情況下用户不能離線使用,因而損失了很多靈活性;
  • 它們完全依賴應用服務商的可及性。如果公司倒閉,服務器停止使用,用户也無法追索以前的資料。對比而看,即使軟件製造商倒閉了,傳統的安裝軟件也可以繼續運行,儘管不能再更新或有其他用户服務;
  • 相似地,提供方公司對軟件和其功能有了更大的控制權。只要他們願意就能為軟件添加新特性,即使用户想等bugs先被解決再更新。跳過較差的軟件版本也不可能了。公司可以強加不受歡迎的特性給用户,也可以隨意減少帶寬來削減開支。當然,公司會盡量地討用户歡喜——只在有競爭者提供更好的服務與方便的轉接性的情況下。否則用户別無選擇,只能默默承受;
  • 公司理論上可以檢索任何的用户行為。這有可能引起隱私安全問題。

web應用程序B/S架構優點

瀏覽器/服務器架構(Browser/Server,簡稱B/S)能夠很好地應用在廣域網上,成為越來越多的企業的選擇。瀏覽器/服務器架構相對於其他幾種應用程序體系結構,有如下3方面的優點:
(1)這種架構採用Internet上標準的通信協議(通常是TCP/IP協議)作為客户機同服務器通信的協議。這樣可以使位於Internet任意位置的人都能夠正常訪問服務器。對於服務器來説,通過相應的Web服務和數據庫服務可以對數據進行處理。對外採用標準的通信協議,以便共享數據
(2)在服務器上對數據進行處理,就處理的結果生成網頁,以方便客户端直接下載。
(3)在客户機上對數據的處理被進一步簡化,將瀏覽器作為客户端的應用程序,以實現對數據的顯示。不再需要為客户端單獨編寫和安裝其他類型的應用程序。這樣,在客户端只需要安裝一套內置瀏覽器的操作系統,如Window98或Windows2000或直接安裝一套瀏覽器,就可以實現服務器上數據的訪問。而瀏覽器是計算機的標準設備 [2] 

web應用程序Web應用

web應用程序應用

理解了什麼是瀏覽器/服務器架構,就瞭解了什麼是Web應用程序。常見的計數器留言版聊天室和論壇BBS等,都是Web應用程序,不過這些應用相對比較簡單,而Web應用程序的真正核心主要是對數據庫進行處理,管理信息系統(Management Information System,簡稱MIS)就是這種架構最典型的應用。MIS可以應用於局域網,也可以應用於廣域網。基於Internet的MIS系統以其成本低廉、維護簡便、覆蓋範圍廣、功能易實現等諸多特性,得到越來越多的應用。

web應用程序應用擴展

信息化,互聯網,移動化,雲計算的不斷髮展,使得公司的業務需求越來越多。因此很多公司的頁面因為缺乏高度的可擴展性,因而流失了大量的用户。如果你不希望重蹈這些公司的覆轍,你就急需要找到一條可以擴展自己Web應用的途徑。
對Web應用來説,擴展能力很重要,隨着用户羣和工作量的增加,處理器在增加,它應該能夠進行擴展。對於Java應用來説,擴展更復雜,不只是簡單的購買和安裝20個新的處理器就可以的。然而,Java平台能夠也確實支持應用擴展,通過外圍設備語言,例如Scala、Clojure和Groovy。利用JAVA編程語言,開發者很難使JAVA應用進行線性擴展。
另外,按需的雲計算本質使得可擴展的Web應用程序融入到了各種規模的業務中。進入到這個領域不能説沒有障礙,即使是很小的公司得到這類計算能力也很難,而且數據存儲一度曾經只適用於企業級用户。這使你得到想要的服務器空間,不僅比以往更便宜,而且更容易。雲計算可以訂購更多的資源,而且就像行車路過訂購快餐一樣方便。
參考資料
  • 1.    沈澤剛, 秦玉平. Java Web編程技術[M]. 清華大學出版社, 2010.
  • 2.    秦學禮. Web應用程序設計技術 ― ASP.NET[M]. 清華大學出版社, 2006.
  • 3.    廖詩雨. 基於HTML5的Web前端App開發研究[J]. 電腦知識與技術:學術版, 2021.
  • 4.    李永飛、李芙玲、吳曉丹、郭曉欣.Java Web應用開發:清華大學出版社,2018