《互联网项目运营分析》第四章 :互联网项目的技术选择与应用
一,技術是基礎
二,CGI、ASP、ASP.NET 、PHP、JSP,什么技術好
三,ACCESS、MSSQL、MYSQL、Oracle,什么數據庫好
四,AJAX火了和生成靜態頁面
五,DIV和頁面布局
六,服務器技術
七,新技術應用
八,期待新一代的SGML和筆者的研究
九,網站如何選擇
?
?
一,技術是基礎?
對于互聯網項目運營來說,技術是一個基礎,離開了技術,互聯網項目就什么也不是。但是光有技術也不行,大家可以看到,很多網站技術先進,但是就是無法盈利。我們現在看到的大門戶網站,如搜狐、雅虎等,并沒有什么太先進的技術。?
在這一章里面將來詳細介紹互聯網相關技術的長短,以及企業的應用選擇。
?
二,CGI、ASP、ASP.NET 、PHP、JSP,什么技術好?
第一個問題是開發開發互聯網項目,有那些技術?
CGI是Common Gateway Interface(通用網關界面),是一個用于定Web服務器與外部程序之 間通信方式的標準,使得外部程序能生成HTML、圖像或者其他內容,而服務器處理的方式與那些非外部程序生成的HTML、圖像或其他內容的處理方式是相同 的。CGI可以用任何一種語言編寫,只要這種語言具有標準輸入、輸出和環境變量。Perl由于其跨操作系統、易于修改的特性成為了CGI的主流編寫語言, 以至于一般的“cgi程序”就是Perl程序。
cgi是目前最穩定的運行方式,因其是獨立的進程,而且執行完后自動釋放進程,所以穩定性是最高的,如用大量點擊方式攻擊,攻擊完后cgi還能照常運作,而且其性能不變。另一優點就是安全性比腳本高很多, cgi還有一個優點可以和系統底層相互通訊。?
cgi的缺點是每一個連接都啟動一個進程。很消費系統的資源,每秒支持的擊點率不高,在nt或win2000下也就20次/秒左右。asp可以支持200次/每秒。?
ASP是微軟公司開發的代替CGI腳本程序的一種應用,它可以與數據庫和其它程序進行交互。是一種簡單、方便的編程工具。ASP的網頁文件的格式 是.ASP。用ASP做網站的時候當你網站數據變大時候。網站訪問速度越來越慢。有人說現在很流行ASP所以相應的ASP腳本安全性差很多,實際上寫 ASP的程序的時候如果嚴格按照書寫安全的代碼的規范去寫,寫出來的程序會非常安全。單純的ASP是不太高效的,真的想要高效的話就必須結合COM+,在 Win32平臺下COM+的效率是非常高。這是腳本語言的先天缺陷。
?有評論是這樣說的:“ASP的入門門檻最低。這按理說應該算ASP的優點,它秉承了微軟技術一貫的作風——簡單,入門門檻低。也正是因為這一點, 使得大量的Web開發領域的新手能夠很快地開發網站。但也正因為這一點,使許多掌握了ASP的一點皮毛知識的人自認為對ASP很懂,結果寫出很垃圾的程 序,讓別人看了ASP的笑話。”?
PHP是Hypertext Pre-Processor(超文本預處理器),它是一種服務器端的HTML腳本/編程語言。PHP語法上與C相似,可運行在Apache, Netscape/iPlanet, 和 Microsoft IIS Web 服務器上。PHP實際上就是“現代版的PERL”,只是名稱不同而已。PHP具有和JAVA類似的Class關鍵字。因為不需要虛擬機,以致速度比 JAVA快5倍。PHP是一種功能強大的腳本語言。?
在很多地方流傳一種說法:“有人做過試驗,對這三種語言分別做循環性能測試及存取Oracle數據庫測試。 在循環性能測試中,JSP只用了令人吃驚的四秒鐘就結束了20000*20000的循環。而ASP 、PHP測試的是2000*2000循環(少一個數量級),卻分別用了63秒和84秒。(參考PHPLIB) 。”這個說法很容易誤導,大家注意這個“(參考PHPLIB)”,原來是拿別的數據來跟自己測試數據對比,但是這里又沒有公開測試環境,比如服務器是否一 樣,操作系統是否有可比性,如果在一臺奔三的服務上面運行ASP和PHP,然后到一臺小型機上面運行JSP,那恐怕很滑稽。?
JSP的定義:
JSP是Sun公司倡導許多公司參與一起建立的一種動態網頁技術標準。JSP技術有點類似ASP技術,它是在傳統的網頁HTML文件(*.htm,*.html)中插入Java程序段(scrīptlet)和JSP標記(tag),從而形成JSP文件。
Java 是面向對象的,但速度很慢。而且十分復雜(具有許多層,如JVM,JIT 等等)。Java Servlet 是JSP的技術基礎,而且大型的Web應用程序的開發需要Java Servlet和JSP配合才能完成。JSP具備了Java技術的簡單易用,完全的面向對象,具有平臺無關性且安全可靠,主要面向因特網的所有特點。 JSP的優點是跨平臺應用,但是缺點也因此而來,在windows平臺上面,比不了ASP和ASP.NET,在UNIX平臺上面比不了PHP。
ASP.NET做起來快,因為m$給我們封裝了很多控件,以及很多現成的模式,
ASP.NET 的優勢很明顯在于它簡潔的設計和 實施。語言靈活,并支持復雜的面向對象特性。在這種意義下,它真正能夠與編程人員現有的技能進行互操作。但是ASP.NET是以損失效率為代價的。 ASP.NET 在內存使用和執行時間方面耗費非常大,這大部分歸因于較長的代碼路徑。對基于 Web 的應用程序,這些局限可能是一個嚴重的問題,因為在 Web 上,您的應用程序可能擴展為每秒成千上萬的用戶。內存使用率還可能成為 Web 服務器上的一個問題。?
整體看來幾大開發語言各有優缺點,不能簡單評論,公正的評價是將該語言與所需要的環境結合起來:
ASP的應用應該是以VB和COM+為基礎支持,以ASP作為腳本開發語言,運行在windows 的IIS服務器上面。對VB和COM+不精通就不要說自己精通ASP。
PHP的應用應該是以C和CGI為基礎支持,以PHP作為腳本開發語言,運行在UNIX或LINUX服務器上面。
JSP的應用應該是以JAVA和Java Servlet為基礎,以JSP作為腳本開發語言,通過虛擬機運行在各種服務器上面。
ASP.NET的應用應該是以VB(C)為基礎,以VB.NET或C#.NET為開發語言,通過調用編譯的DLL來運行在windows 的IIS服務器上面。?
三,ACCESS、MSSQL、MYSQL、Oracle、DB2,什么數據庫好
?ACCESS結構簡單容易處理,而且也能滿足多數的網站程序要求。ACCESS是小型數據庫,既然是小型就有他根本的局限性,以下幾種情況下數據庫基本上會吃不消:
1)數據庫過大,一般ACCESS數據庫達到50M左右的時候性能會急劇下降!
2)網站訪問頻繁,經常達到100人左右的在線。
3)記錄數過多,一般記錄數達到10萬條左右的時候性能就會急劇下降!
?MSSQL是微軟公司開發的一種大型數據庫系統,它可以支持的數量達到G的級別,也是微軟公司為了與ACCESS高低搭配的一種高端方案。但是他 的缺點也很明顯,大型數據庫通常都要求速度快,穩定可靠,維護方便。而MSSQL恰好是速度不是最快,連MYSQL都比不了,由于windows平臺的原 因,也不是很穩定,操作是比較簡單但是經常出現各種莫名奇妙的問題。Windows操作系統有一個先天缺陷,就是不能長時間運行,一般情況下,運行兩三天 后性能就大幅度下降,必須重新啟動。MSSQL數據庫系統對于資源占用是很驚人的,通常情況下,如果單獨的數據庫服務器,就不推薦使用MSSQL(最少也 要是雙CPU)。?
MySQL是完全網絡化的跨平臺關系型數據庫系統,同時是具有客戶機/服務器體系結構的分布式數據庫管理系統。它具有功能強、使用簡便、管理方便、 運行速度快、安全可靠性強等優點,用戶可利用許多語言編寫訪問MySQL數據庫的程序,特別是與PHP更是黃金組合,運用十分廣泛。MySQL不支持事務 處理,就這一條讓PHP開發者吃了虧,沒有視圖,沒有存儲過程和觸發器,沒有數據庫端的用戶自定義函數,不能完全使用標準的SQL語法,這都是MySQL 的缺點。?
Oracle是這些年來最引人矚目的數據庫系統,他具有很強大的數據處理能力,但是如果是在windows環境下運行Oracle,那么他的性能與 MSSQL相比基本不相上下,如果是在UNIX平臺下,則遠比只能用于windows平臺的MSSQL好得多。不過他的操作也遠比MSSQL復雜。?
DB2就是IBM開發的一種大型關系型數據庫平臺,基本應用在海量數據環境下,它支持多用戶或應用程序在同一條SQL 語句中查詢不同database甚至不同DBMS中的數據。特別是DB2+小型機+UNIX是諸如銀行、證券交易所等使用的性價比最高的數據庫環境。?
四,AJAX火了和生成靜態頁面?
靜態頁面是指網頁內容是提前制作好的,放到網上去,不人為的更改時不會變化的。制作簡單,不易更新,一般適于極為簡單的宣傳。靜態頁面的優點是容易被搜索引擎收錄。?
而動態是指網站本身是一個系統,網站的內容是查詢數據庫返回的內容,平時只要在后臺上傳、更新內容,在網站的前臺立刻就會更新。制作復雜,更新、維護非常容易。現在絕大多數網站都采用動態代碼。
?用戶上網瀏覽網頁時,WEB服務器會判斷用戶瀏覽的是動態網頁還是靜態網頁,如果是靜態網頁,WEB服務器就會把靜態網頁直接發送給用戶,如果是 動態網頁,那么,WEB服務器會先在服務器上執行這個動態網頁,然后把執行結果發送給瀏覽用戶,因此動態網頁消耗服務器的CPU、內存資源會比靜態網頁多 得多,因此一些大網站都使用靜態頁面。?
同時搜索引擎為了避免陷入死循環,對于索引xxx.xxx?xx=xxx這類的,都不會過于深入.所以,生成html比較好,即便不生成html,用rewrite偽造成html也一樣。?
Ajax(AsynchronousJavascrīptandXML)是結合了Java技術、XML以及Javascrīpt等編程技術,可以讓 開發人員構建基于Java技術的Web應用,并打破了使用頁面重載的慣例。使用舊模式,每當用戶執行某種操作、向服務器請求獲得新數據,Web瀏覽器就會 更新當前窗口。如果使用AJAX的異步模式,瀏覽器就不必等用戶請求操作,也不必更新整個窗口就可以顯示新獲取的數據。只要來回傳送采用XML格式的數 據,在瀏覽器里面運行的Javascrīpt代碼就可以與服務器進行聯系。
?Ajax可以讓閱讀的時候有很好的體驗感受,但是這樣一來,搜索引擎通常只會搜索第一次導入的那個頁面,對于以后的頁面視而不見。?
最佳的方法就是采用Ajax+生成靜態頁面,一般內容還是生成靜態頁面,少數內容可以使用Ajax技術,畢竟討好搜索引擎是第一位。?
五,DIV和頁面布局?
現在很流行CSS+DIV的方式重新構建網站,因為用這種方法構建的網站訪問速度快,占用的帶寬小. CSS+DIV只是一種通俗的說法,具體的說應該是制作符合W3C標準的網站所用的語言:XHTML,也就是下一代的HTML.DIV只是布局的方法,做 出來的網頁代碼簡單,雖然頁面看起來沒有TAB所帶來的那么華麗,至少要做出和TAB一樣的效果來,要麻煩的多,但是維護起來卻是很方便,因為是用CSS定義的樣式.TAB制作的網站代碼龐大,這是必然的,因為他是形式與內容混合在一起的,WEB標準的網站代碼清晰明快,體積小,因為很多形象的東西都在CSS里.。
?通常使用CSS+DIV方式需要手工編寫代碼。?
這里推薦使用Microsoft Office SharePoint Designer 2007,也就是FRONTPAGE2007,是目前最好的可視CSS+DIV編寫工具。?
六,服務器技術?
什么樣的服務器好,這是一個有意思的問題。?
首先是服務器的硬件環境
服務器硬件環境可以分為幾大類:
1,? 虛擬主機:這種適合小型網站項目,一般訪問量每天幾千IP、數據大小在幾個G以內都可以考慮,成本低,不需要技術人員維護。但是由于對服務器沒有控制權,無法實現很多復雜功能。
2,? VPS虛擬服務器:這種適合起步的商業項目,操作時看上去像一臺獨立的服務器,對服務器有部分控制權,需要技術人員簡單維護,但是沒有核心控制能力。
3,? 單服務器:這種適合中型商業網站,如果需要大的存儲空間可以考慮磁盤陣列,如果在服務器上安裝有MSSQL等大型數據庫或者動態調用數據較多,推薦使用雙CPU服務器(最好把數據庫分裝在另一臺服務器上面),如果訪問量較大,內存和主板總線帶寬一定要大。
4,? 服務器群集,就是多臺服務器一起,這種適合大型商業網站,當其中一臺服務器滿負荷的時候,轉向到另一臺服務器。這里有內網轉向和外網轉向兩種模式,前者訪問時看不到域名變化,后者訪問者會發現域名變化為www1.****.com、www2.***.com等?
其次是服務器的操作系統
目前市場流行的服務器操作系統主要有兩大陣營,
1,windows系統,是微軟公司開發的操作系統,目前代表是windows server 2003,它具有操作簡單,維護方便等優點,但是windows先天的缺陷他也同樣繼承了,如運行時間越長就越慢,系統盤上面堆積大量無效文件,如果連續 運行一周不重新啟動,服務器就會慢得讓人難以接受。
如果網絡項目確定使用ASP、ASP.net、ACCESS或MSSQL數據庫,那最佳的選擇就是windows 服務器。?
2,Unix系統,目前可用的UNIX操作系統有很多,但只有IBM AIX 5L包括了IBM在為全球客戶創建業務解決方案中所獲得的經驗。而且它還通過實現與Linux之間的親和關系,提供了對64位平臺的支持,它可以在所有的 IBM p系列和IBM RS/6000工作站、服務器和大型并行超級計算機上運行。。
如果公司技術力量雄厚,建議使用FreeBSD,FreeBSD可以說是UNIX的一個變種,Yahoo 所采用的 Web Server,是進階的 BSD UNIX 操作系統,全球十大站點中有七八成的服務器基于FreeBSD,?
3,Red Flag Advanced Server系統(紅旗Linux)是目前世界上發行最多的LINUX版本,
目前,Red Flag Advanced Server 4.1支持超過500種的商業應用軟件,包括DB2、Sybase、Websphere、Weblogic、Netbackup、CA ARCServ、Openview、Tivoli、Domino等企業級關鍵應用。紅旗開發了主機管理工具Rfmin1.1,它由17個工具組成,涵蓋了 主機管理的方方面面。Rfmin1.1覆蓋了主要的服務器管理工作,實現了三大差異的消除:手工編輯配置文件和應用管理工具之間的差異、Windows系 統管理和 Linux 系統管理之間的差異、本地管理和遠程管理的差異。通過這些管理工具,無論是UNIX系統管理員還是Windows系統管理員,都能夠高效地管理紅旗 Linux服務器,從而降低了管理費用。
?在實際中,UNIX和LINUX由于具有非常穩定的性能,特別適合對于服務器性能和穩定要求較高的環境下,它們可以長時間運行幾年而不需要重新啟 動。特別指出,紅旗LINUX這幾年發展出乎大家意料之外,特別是它在易操作性方面接近windows系統,是中小服務器優選的LINUX操作系統。?
而UNIX具有功能強大但是維護復雜,適合大型網站使用,特別是采用小型機+UNIX是各種高性能網絡環境如銀行等的必備選擇。?
第三是服務器的帶寬,帶寬就是表達速度的,帶寬越大,速度越大。例如內存帶寬、總線帶寬、網絡帶寬等等都是以“字節/秒”為單位。500人同時在線 的文章類網站差不多帶寬占1-3M BPS ,500人同時在線的論壇一般占3-5M BPS,500人同時在線的視頻看傳輸方式的 如果全部通過服務器那至少要30-100M BPS。
?七,新技術應用
?隨著互聯網的發展,新的技術也在不斷涌現,目前有這么幾個方向
?1,3D方向,也就是web 3D,互聯網3D圖形技術。目前,已有幾家公司推出了自己虛擬社區及全套的解決方案,如Blaxxun、pointworlds等。它們除了提供虛擬場景 制作以外,還提供:服務器管理,通訊管理,用戶管理等功能。Blaxxun公司Virtual Worlds Platform 5.1服務器已經有許多網站用它建立虛擬社區。他們的特點都是采用下載模型和渲染數據+渲染引擎插件模式來顯示3維效果,但是目前標準多種,比較有影響力 是:
X3D:由Web 3D Consortium制定,得到大學,政府機構及一些Wed3D圖形公司的支持.它是VRML97下一代新的國際標準,有比較廣泛的社會基礎。
Shockwave3D: 這是Macromedia公司(現在已經被ADOBE公司收購)的Flash插件,有著極為廣大的用戶群,據說世界上有1億3千萬人安裝,Intel把它的Wed3D 圖形集成到Shockwave。
?2,終端應用方向?
終端應用也就是通過互聯網來進行各種網絡化的實際應用,比如遠程操作某些設備,比如在網上控制家里的微波爐做飯。各種軟件之間也可以遠程同步協作。 也就是從目前的信息傳達到信息應用。這里的發展趨勢應該是網絡技術更多采用編譯化的語言作為開發引用,因為單純的腳本語言已經無法適應。
?3,模塊化開發方向?
隨著網絡開發的技術越來越復雜,開發工程越來越大,將會出現各種便于二次開發的中間件,比如目前出現的CMS系統就是這樣,只需要簡單改變一下模版,其中的國產優秀者有動易、風訊等就可以建設像搜狐、新浪那樣的網站。?
八,期待新一代的SGML和筆者的研究?
SGML(Standard Generalized Markup Language),即標準通用標記語言,是1986年出版發布的一個信息管理方面的國際標準(ISO 8879)。該標準定義獨立于平臺和應用的文本文檔的格式、索引和鏈接信息,為用戶提供一種類似于語法的機制,用來定義文檔的結構和指示文檔結構的標簽。 ?
SGML是一種在Web發明之前就早已存在的用標記來描述文檔資料的通用語言。但SGML十分龐大且難于學習和使用。鑒于此,人們提出了HTML語言。SGML是XML和HTML的母語言。SGML的覆蓋面很廣。它幾乎涉及人們生活的每一個領域。它被用來描述成千上萬中文件。HTML只是其中一種文件類型,是一種在網上最常用的類型。它定義了一種簡單而固定且含標識的文件類型。?
但近年來,隨著Web應用的不斷深入,HTML在需求廣泛的應用中已顯得捉襟見肘,有人建議直接使用SGML作為Web語言。但SGML太龐大了, 于是Web標準化組織W3C建議使用一種精簡的SGML版本——XML。XML是SGML的簡化版。為了實現更加方便地編寫和理解應用程序,更加方便地在 網絡上傳輸信息,更加方便地實現互操作性,XML申略了一些SGML中復雜和不常用的部分。但XML還能和SGML一樣通過解析?
XML與SGML一樣,是一個用來定義其他語言的元語言。與SGML相比,XML規范不到SGML規范的1/10,簡單易懂,是一門既無標簽集也無語法的新一代標記語言。?
目前,SGML表達的還是基于傳統平面的出版模式,而HTML和XML就同樣變成了只能表述平面信息的內容,這樣導致要想實現web 3D就必須使用引擎插件。從目前看來,XML已經基本是SGML在互聯網上面應用的最大發揮了。下一代的SGML應該是基于3D和多媒體的,這樣我們看到 的就不僅是簡單的一些文字圖片了,而且也可以不依靠插件就能夠實現3D效果。
?這里可以透露一點筆者本人正在對此做一些研究,目前已經取得了相應的進展,現在正在整理中,估計再過一年左右就可以公開,本人將其命名為2- SGML,也就是第二代SGML。特點是簡化基本規則,增加擴充能力。該版本確定了若干基本擴充準則,用戶可以很方便擴充自己的編碼規則。在新的2- SGML環境下,用戶的各種文檔之類全是3D多媒體效果。?
筆者現在正在完善TXML,特點是完全使用類似現在的腳本語言,向下兼容來實現3D和多媒體效果,如果是TXML,不光可以兼容現在的XML,還可 以在瀏覽器里面看3D網頁(不光是三維圖像)也就是說,我們從瀏覽器里面看到的全是3D的了。而且不需要裝3D引擎,直接用簡單的編碼規則語言寫出3D。 就像HTML里面寫出表格等那樣。
?九,網站如何選擇?
不同的互聯網項目對技術要求也不同。?
1,如果你的項目是一般企業網站之類應用,或者能夠確定訪問量不是很大,那么建議服務器采用虛擬主機方式,開發語言采用ASP+ACCESS。
2,如果你的項目是需要頻繁交互,比如論壇、交友等等,建議采用PHP+MYSQL,服務器采用獨立服務器或者虛擬服務器。
3,如果你的項目數據量足夠大,同時對于系統穩定性沒有苛刻要求,可以采用ASP+MSSQL,采用雙CPU服務器。
4,如果你的項目對于系統可靠性要求特別苛刻,最好使用PHP+Oracle,服務器采用雙CPU服務器。
5, 如果你的項目對于系統可靠性要求特別苛刻,同時反應要求足夠快,最好使用PHP+Oracle或者PHP+DB2,或者直接使用編譯開發語言,服務器采用服務器群集。
6,? 如果你的服務器足夠好,你又想對外炫耀的技術力量的話,可以采用JSP+MYSQL,服務器一定要是UNIX或者LINUX操作系統。?
一個互聯網項目采用技術要注意幾點
1, 如果你有好的服務器,同時有好的技術條件,那你什么語言都可以用。語言沒有高低之分,但是有適合不同條件之分。例如如果有誰告訴你ASP不行的話,那不妨問他對COM+了解多少,能不能開發相關服務器組件。
每一項互聯網應用的語言技術,后面都有一個強大的編譯語言作為后盾。
ASP的背后是VB
ASP.NET的背后是VB. Net或者C,但是似乎微軟在支持上更多偏向VB. Net
PHP的背后是C
JSP的背后是JAVA
?
2,? 判斷技術高手的簡單標準
ASP高手:能夠熟練使用VB開發COM+。
asp.NET 高手:能夠熟練使用VB.NET或C來編寫服務器組件。
PHP高手:能夠熟練在UNIX/LIUNX環境下使用C。
JSP高手:能夠熟練使用JAVA開發互聯網環境下的數據庫軟件。
如果上面的要求做不到,那就不能稱為高手。
總結
以上是生活随笔為你收集整理的《互联网项目运营分析》第四章 :互联网项目的技术选择与应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于Web应用程序数据库连接的使用
- 下一篇: VS2005解决方案的目录结构