web應用程式

web應用程式

Web應用程式是一種可以通過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檔案以及圖像檔案等組成。所有這些組件相互協調為用戶提供一組完整的服務。

開發過程

步驟一:分析

開發一個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階段,你的程式已經變得十分的穩固,聽取用戶反饋的意見,自己試用一下自己的套用,你可以開始思考如何使套用變的更好。找出不和諧的地方,消除掉。以後每次的疊代都要經過上面所說的五個步驟,但就像我最初說的,你現在已經有了一個可以運行的應用程式,你很容易直接在心裡完成這些步驟,直接奔向在代碼里測試你的功能。

優點

•網路應用程式不需要任何複雜的“展開”過程,你所需要的只是一個適用的瀏覽器;

•網路應用程式通常耗費很少的用戶硬碟空間,或者一點都不耗費;

•它們不需要更新,因為所有新的特性都在伺服器上執行,從而自動傳達到用戶端;

•網路應用程式和伺服器端的網路產品都很容易結合,如email功能和搜尋功能;

•因為它們在網路瀏覽器視窗中運行,所以大多數情況下它們是通過跨平台使用的 (例如Windows,Mac,Linux等等)

缺點

•網路應用程式強調瀏覽器的適用性。如果瀏覽器方沒有提供特定的功能,或者棄用特定的平台或作業系統版本(導致不適用),就會影響大量用戶;

•網路套用依靠網際網路遠程伺服器端的套用檔案。因此,當連線出問題時,套用將不能正常使用。但是,如果使用HTML5 API,這些套用就可以被下載安裝而可離線使用。Google Gears,就是一個好例子;

•許多網路應用程式不是開源的,只能依賴第三方提供的服務,因此不能針對用戶定製化、個性化,而且大多數情況下用戶不能離線使用,因而損失了很多靈活性;

•它們完全依賴套用服務商的可及性。如果公司倒閉,伺服器停止使用,用戶也無法追索以前的資料。對比而看,即使軟體製造商倒閉了,傳統的安裝軟體也可以繼續運行,儘管不能再更新或有其他用戶服務;

•相似地,提供方公司對軟體和其功能有了更大的控制權。只要他們願意就能為軟體添加新特性,即使用戶想等bugs先被解決再更新。跳過較差的軟體版本也不可能了。公司可以強加不受歡迎的特性給用戶,也可以隨意減少頻寬來削減開支。當然,公司會儘量地討用戶歡喜——只在有競爭者提供更好的服務與方便的轉接性的情況下。否則用戶別無選擇,只能默默承受;

•公司理論上可以檢索任何的用戶行為。這有可能引起隱私安全問題。

B/S架構優點

瀏覽器/伺服器架構(Browser/Server,簡稱B/S)能夠很好地套用在廣域網上,成為越來越多的企業的選擇。瀏覽器/伺服器架構相對於其他幾種應用程式體系結構,有如下3方面的優點:

(1)這種架構採用Internet上標準的通信協定(通常是TCP/IP協定)作為客戶機同伺服器通信的協定。這樣可以使位於Internet任意位置的人都能夠正常訪問伺服器。對於伺服器來說,通過相應的Web服務和資料庫服務可以對數據進行處理。對外採用標準的通信協定,以便共享數據。

(2)在伺服器上對數據進行處理,就處理的結果生成網頁,以方便客戶端直接下載。

(3)在客戶機上對數據的處理被進一步簡化,將瀏覽器作為客戶端的應用程式,以實現對數據的顯示。不再需要為客戶端單獨編寫和安裝其他類型的應用程式。這樣,在客戶端只需要安裝一套內置瀏覽器的作業系統,如Window98或Windows2000或直接安裝一套瀏覽器,就可以實現伺服器上數據的訪問。而瀏覽器是計算機的標準設備 。

相關信息

套用

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

套用擴展

信息化,網際網路,移動化,雲計算的不斷發展,使得公司的業務需求越來越多。因此很多公司的頁面因為缺乏高度的可擴展性,因而流失了大量的用戶。如果你不希望重蹈這些公司的覆轍,你就急需要找到一條可以擴展自己web套用的途徑。

對Web套用來說,擴展能力很重要,隨著用戶群和工作量的增加,處理器在增加,它應該能夠進行擴展。對於Java套用來說,擴展更複雜,不只是簡單的購買和安裝20個新的處理器就可以的。然而,Java平台能夠也確實支持套用擴展,通過外圍設備語言,例如Scala、Clojure和Groovy。利用JAVA程式語言,開發者很難使JAVA套用進行線性擴展。

另外,按需的雲計算本質使得可擴展的Web應用程式融入到了各種規模的業務中。進入到這個領域不能說沒有障礙,即使是很小的公司得到這類計算能力也很難,而且數據存儲一度曾經只適用於企業級用戶。這使你得到想要的伺服器空間,不僅比以往更便宜,而且更容易。雲計算可以訂購更多的資源,而且就像行車路過訂購快餐一樣方便 。

相關詞條

相關搜尋

熱門詞條

聯絡我們