近期,網上關于電信捆綁“星空極速”撥號器的消息鬧得沸沸揚揚,網友們紛紛譴責這種損害客戶利益的行為。用戶明明已經為上網支付了費用,可電信公司卻還在利用手中的便利條件,強制性的給客戶安裝所謂的“星空極速”撥號器,用戶使用它撥號上網后會不時彈出廣告窗口,影響了正常使用。
更為可惡的是,一旦安裝了“星空極速”撥號器以后,原來系統自帶的撥號工具無法使用(提示用戶名密碼錯誤),尤其對那些不太了解電腦的用戶來說,只能任憑電信的欺負。除了彈出廣告,禁止XP撥號程序外,有些用戶反應有資料表明“星空極速”軟件和本地網卡的MAC地址進行了綁定,用戶安裝該軟件后,,多用戶通過路由器共享上網也被限制,部分地區甚至會彈出無法屏蔽的小廣告窗口,卸載“極速星空”軟件也不能重新恢復到原來的狀態。 這樣惡毒的程序,對廣大電腦愛好者來說必須先殺之而后快。現在網上已經有朋友摸索出了破解的方法,對于那些尚未遭受“星空極速”撥號器騷擾的朋友來說,掌握應對方法是完全必要的。該軟件是否為流氓軟件我們姑且不去討論,但是用Sniffer破解星空極速的這種解決方案確實可以很好地解決部分網友想要通過路由器共享上網的問題。 由于“星空極速”目前只是在全國部分地區推行,所以不一定所有的網友都適用。如果你沒有受到該軟件的騷擾,或者感覺此軟件還不錯,pass過去不用看了。 對于“星空極速”,很多用戶還不了解:
電信自己的說法是:“星空極速”客戶端(以下簡稱“星空極速”)是由中國電信組織研究和開發的新一代寬、窄帶集成撥號軟件。其主要功能是在現有的Windows操作系統環境下提供寬帶和窄帶撥號功能,同時在該客戶端中提供給用戶一些增值服務內容。本系統在充分考慮了用戶使用習慣的同時,參考了目前熱門軟件的安裝,卸載,在線升級以及相關一系列功能的設計思想,從而達到只要用戶有過使用其他寬、窄帶撥號軟件上網的經驗,在使用本軟件的時候就能夠輕松上手,達到盡情享受上網沖浪快樂的目標。
不過,網上很多用戶反映:
“星空極速”的推廣策略包括在寬帶網絡中禁用Windows系統自帶的撥號軟件,只能使用“星空極速”才能連接到因特網。因此近段時間上海寬帶用戶大規模斷網事件,電信方面給出的解決方案中的最后有一條“ADSL用戶可下載中國電信‘星空極速3.0’客戶端撥號程序作為ADSL的上網撥號軟件使用”,被人質疑為強行推廣“星空極速”的前奏。
然而根據部分網友的實際測試,一旦安裝這個“星空極速”之后,就無法再使用Windows XP自帶的撥號軟件撥號上網,部分地區甚至不能再使用路由撥號上網,有資料表明“星空極速”軟件和本地網卡的MAC地址進行了綁定,因此多臺電腦公用一個線路上網將不再可能,從而“節省”了電信越來越緊張的帶寬資源。
從網易科技上的投票顯示,能接受和理解電信的這種行為的人只占1%,反對者占據了絕大多數,實際上這也是正常的,相信每個使用ADSL的用戶,上網費都不少,花了這么多錢上網,為什么電信還要強迫用戶看他的廣告呢?這樣的確很不講道理,遭到網絡媒體炮轟也是必然的。
其實,以目前電信的技術,即使不安裝這個“星空極速”撥號器,某些地方的ADSL用戶也是會有電信廣告彈出,因為電信可以使用HTTP劫持技術來實現廣告彈出,對于這種廣告,網易論壇的網友給出了解決方案就是“打電信客服10000號‘罵人’解決”。
種種情況都表明,如果中國電信再不迅速澄清真相,扭轉局面,那么廣大的中國電信ADSL用戶就會對中國電信的前途和命運就產生強烈的質疑!
裝星空極速,登陸上網后,星空極速自動向服務器端發送主機網卡地址,服務端就會標記出你已經使用“星空極速”撥號,一旦標記成功,以后不管你使用什么撥號軟件或者路由器都將無法撥通,顯示密碼錯誤,即使重裝系統也不行。
很多人都在使用路由器進行ADSL撥號,這樣幾臺機子利用路由可以愉快的共享上網,電信的ADSL虛擬撥號用和是PPPOE的協議,這個協議是電信無法改變的,因此,電信很難限制大家共享上網。
電信多次嘗試封掉路由器未果,開始的時候有網絡尖兵,相當于一個電信的網絡掃描軟件,不斷的沖擊路由器上的某些端口,導致路由無法正常工作,但是這個軟件造成了網絡的大量阻塞,在電信線路容量不擴充的前提下,是非常危險的軟件,受害人可能會先是電信自己,同時現在的路由器通過刷固件升級,已經不害怕尖兵的掃描了,第一次攻擊失敗。
最近,電信花了幾百萬發明了一個撥號服務端,叫做“星空極速”,電信號稱這個軟件可以提升上網速度,512K的 ADSL直接升級為1M,1M的升級為1.5M,西安地區的有人已經試過了,根本沒有提速,而且電信也沒有這樣宣傳,電信是派人挨家挨戶的給用戶安裝這個軟件的,安裝之后的唯一結果就是你可能無法使用路由器撥號了。
星空極速會改掉你的密碼,給你的網絡連接加一個PPPOE的密碼協議轉換,你在星空極速軟件上使用的還是你原來的密碼,但是實際PPPOE協議發出的密碼,卻是一套轉換過的。
mephisto (西安一網友)發現了這個現象,他在windows下裝了星空極速,在Linux下使用原密碼就不能上網了,用SNIFFER看了一下,實際密碼是在原來的密碼上加了一串MD5碼,這個MD5碼是根據用戶名算出來的,就比如說你原來的密碼是aaaaaaa,用戶名是j88888888,那么裝了急速星空之后,密碼可能會變成aaaaaaa3D8CAB,這個3D8CAB是由j88888888用戶名算出來的,但是在急速星空上你還是輸入aaaaaaa當作密碼,就是說你沒有辦法知道真實密碼了,雖然路由器用的是PPPOE協議撥號,但不知道真實密碼當然不能用。
破解“星空極速”的方法:
想必大家對星空極速痛恨有加,西安的mephisto在他的blog(http://mephistophilis.spaces.live.com/ ) 放出破解程序,但是此程序只對應西安市個別地區有效,因為西安市有V、G、A開頭的用戶名,不能100%解除星空極速。
用Sniffer破解星空極速的方法100%有效,而且不限地區,全國通用,解除后可以用XP自代程序撥號,可多機上網:
第一步::下載 SNIFFER PRO 4.7.5 SP5? 33MB 英文不好的可以下個漢化補丁 Sniffer Pro v4.7.530 特別版 : 下載1??? 下載2 Sniffer Pro 4.7.5 注冊漢化版(含教程): 下載
SN:SR424-255RR-255OO-255RR SN:SA154-2558Y-255T9-2LASH
第二步::安裝SNIFFER PRO ,安裝漢化補丁,重新啟動系統
第三步::不要運行星空極速連接網絡,運行程序,點擊“文件”---“選定設置”,選擇你的網卡,確定 ![]() 第四步:點擊菜單“監視器”___“主機列表”,出現如圖,點擊圖中2處“本地”,點擊圖中3處“捕捉”,這時連接運行星空極速連接網絡,連接上網后可以看到圖中4處,變為望遠鏡有個紅點,這時候點擊圖中4處,這樣就停止了捕捉
![]() 第五步:點擊圖中1處解碼,出現如圖報告。在2處,可以通過單擊每一步序號,觀察3處本機與服務器通訊記錄,找到你的用戶名(涂紅處),和加過密的密碼(涂黑處)
![]() 第六步:刪除星空極速,用XP自帶程序撥號。注意,你的用戶名不變,密碼改為剛才截獲的密碼。
注意:很奇怪,別的地方星空極速后用戶名通常是不變的,密碼改變,而我們這里卻是用戶名變了,密碼沒變,不知其他地方是不是也有這樣。
|
來源:http://www.jdon.com/artichect/whyEJB.htm
首先,我們必須明確,為什么要使用J2EE?J2EE優點是什么?使用J2EE的主要原因是多層結構,傳統的兩層C/S結構難于維護,穩定性極差,界面代碼和數據庫代碼混淆在一起,牽一動百,多層結構使得界面和數據庫完全分離,并且誕生了中間件這樣的技術,如下圖:
為什么使用EJB我原先認為這不是一個討論的話題,因為EJB是J2EE重要的組成部分,可以說沒有EJB的J2EE只是一種Web系統,這樣的系統非常容易喪失了多層結構的大部分優點(仔細想想那些混合多種層次功能JavaBeans和傳統兩層結構有什么區別?)。
當然,可以人為地在Javabeans之間進行層次劃分,例如Hibernate算數據持久層,某些JavaBeans是業務核心層,但是因為都是普通JavaBeans,這種劃分沒有一種強制性和明顯標志性,這樣的系統更換了主創人員或設計師,可能就會被新的程序員修改得非常混亂。
我們先看看一個包含EJB的J2EE系統是如何清晰地表達層次。如下圖:
Web完全只是一個MVC模式的實現,關鍵業務核心是在EJB的服務層實現,這樣做的優點是,Web只負責界面相關部分,因為,如果是一個智能客戶端,如Swing或J2ME,在不需要修改任何業務核心的情況下能夠方便地更換。同樣,提供Web Services功能,也只是在 Web層修改,不會涉及EJB方面的修改,同樣保證了系統的穩定性,保證了系統升級和未來的擴展性。
如果不使用EJB,在EJB服務層實現的業務核心將由普通JavaBeans實現,使用何種架構或設計能夠保證負責MVC的JavaBeans和負責業務核心的JavaBeans清晰地分開,又如何保證在新的程序員不會破壞和打亂你精心布局的JavaBeans架構?
最主要的是性能問題,由于以前國內中文Java網站有些人彎曲EJB,認為EJB性能低,其實這是一種非常膚淺錯誤的認識,我們首先看看在一般Java環境中是如何提高性能。
假定一個JavaBeans為A,那么一般使用這個JavaBeans命令如下:
A a = new A();
但是,在高訪問量的環境中,new A()其實是很費時消耗系統性能的,因此,能不能在軟件系統啟動時候就預先建立一些對象,這樣,系統運行時,從這些已經生成的對象池中借用一個,這樣,就無需在使用時進行New,節約了開銷,提高了性能,因此,真正成熟性能解決方案都是需要對象池等支持。
在一個純Web結構的系統(也就是只能運行在Tomat環境中),例如Struts + Hibernate等這樣的系統,除非自己動手做,一般是沒有對象池技術支持的,因此他們的性能只能算是Demo演示版本的性能,根本無法承受大容量并發訪問,也無法稱為一個成熟的系統,所以,我們研究成熟的開源Web系統,如Jive、OFBize,LifeRay等,他們都在Web層擁有自己的對象池和緩存池。
對象池和緩存機制是J2EE必須的嗎?當然,是所有成熟系統必須的,Windows系統如果去掉緩存將會變得怎樣?
自己動手開發對象池和緩存機制并不是一件簡單的事情,需要對多線程以及同步鎖等底層原理有深層次的把握,這其實也是一門非常深入的Java研究分支,所以,你可以拋開你的客戶焦急的催促,精心研究開發自己的對象池和緩存池。
但是,EJB容器(如JBoss)已經提供了對象池和緩存機制,所以,沒有事務機制的無狀態Session Bean的性能肯定要強于普通JavaBeans。EJB容器不但在單機中提供了對象池和緩存,而且可以跨服務器實現動態負載平衡,這些都無需開發者自己開發任何軟件代碼,結構如下:
每一個jar包代表一個EJB組件,一個系統可以由多個可重用的EJB組件構成,例如:樹形結構EJB組件;自增序號EJB組件;用戶資料EJB組件等,這樣的EJB組件可以象積木一樣搭配在大部分應用系統中,提高了系統的開發效率,保證了開發質量。
下圖是某個新的具體系統時應用到的EJB組件圖,在這個新的應用中,由于使用了以前大量可重用的EJB組件,新的開發工作基本集中在界面設計和流程安排上:
事務機制對于一些關鍵事務是很重要的,例如ATM機提款,提款有多個動作:修改數據庫以及數錢等,如果這其中有任何一個環節出錯,那么其它已經實現的操作必須還原,否則,就會出現,提款人沒有拿到錢,但是卡上已經扣款等不可思議的事情發生。
EJB提供的事務機制非常周全,但事務機制帶來的缺點是性能的降低,因此,有些人認為EJB很重,因為在實際應用中,有的用戶系統可能不需要事務機制,只是需要EJB提供的性能優化機制,這樣,如果使用EJB,就象叫一個人來背東西,他除了背著我要的東西外,還背著我不要的東西。
除非你是一個完美主義,在一般企業應用或數據庫系統應用中,EJB不會對你構成很重的包袱。
開源以及一些數據庫持久層技術崇拜者,一直抨擊CMP,認為CMP慢無用,實際最大的問題是他們的設計和使用問題。
由于EJB容器(如JBoss)對CMP實現有事務機制的緩存優化,因此,CMP特別適合多個用戶同時更新同一個數據源的情況,CMP這種嚴格的事務完整性保證多個用戶同時操作一個數據記錄時,能夠保證性能優化和數據的完整性,如果這個數據記錄是是軟件系統的狀態標志,它的狀態會影響系統中很多的環節,那么狀態更改的重要性不言而喻。
如果沒有事務完整性支持,你的軟件系統在用戶訪問量變大,就會變得發生各種不可能發生的邏輯錯誤,查看程序邏輯是正確的,那么問題出在哪里?出在數據完整性上。
由于每個CMP在內存中都有一個緩存,在實際應用中,如果使用CMP批量讀數據庫數據,幾萬條查詢完畢,內存中充滿了幾萬條CMP緩存,如果這時你的EJB容器設置不當(如使用JBoss缺省配置),那么JVM的垃圾回收機制就會頻繁啟動,導致你的系統變慢甚至死機,這也是一些人抨擊CMP慢的原因所在,其實他們使用方法不當,或者沒有正確配置EJB容器CMP緩存。
對于這種情況,根據J2EE核心模式,推薦使用DAO+JDBC方式。
除非你對設計模式非常精深,能夠將自己系統中的JavaBeans使用模式或某種框架進行固定分層,同時,你孜孜不倦研發出對象池,又熟練于JTA等事務機制,你可以選擇沒有EJB的純Web結構,就象Jive、OFBiz那樣。當然還有一個前提,老板不懂或者非常有挑戰性(做與IBM SUN 微軟齊名的公司和技術)。
不要再被TSS那些狂熱的開源先生誤導,他們有時間有保障可以做他們喜歡的事情,作為專業的J2EE程序員,按照J2EE標準去學習去行動,也不要認為,只要使用了J2EE其中某個技術如Jsp或JavaBeans就心安理得認為自己的系統是J2EE了。
當然,我并不是說純Web系統不能實現多層結構,但是至少在很多方面沒有Web+EJB結構完善和清晰,所以,EJB不是J2EE可以忽視的部分,而是主要的重要的部分,重要業務功能核心都封裝在EJB中,相反Web層是一種次要的、和界面相關的層次。
補充:什么情況下不需要EJB,在SUN的SECA架構師試卷中回答:小型系統和不需要事務。另外過去那種認為“EJB有性能問題”根本是一種繆誤,具體可參考下面有關問題。
網絡上、書店都提供了很多資料,很多方式都可以得到J2EE方面的資料。如何系統的、高效的學習J2EE這個問題擺在我們面前。比如,有些人在看完一大堆書后,動起手來時還是不知道怎么開始。等等這些問題是我們最難處理的。如何尋找到一條很好的方式方法呢?
?
其實,換一個角度來看,比如,學英語,一共有三個層面的東西,首先是詞匯,然后是語法,再者是習慣用法(希望讀者能夠從程序設計的角度考慮問題,看看這兩者有什么相似之處,其實他們的邏輯是一樣的)。還比如,上數學課,老師在黑板上解題,大家都很輕松得聽懂,自己動手時就會有很多問題。這些看來很簡單的問題,其實都包含一個道理:理論聯系實際,理論指導實踐。
我們的理論在于,我們要有很好的方法。有些人看了很多書,寫了不少程序,水平還是提高得很慢,很難跨越這道難關。還是方法問題。當然,我所談論的方法,是自己的心得,體會,大家都有自己很獨特的方法。沒有絕對好、絕對壞的方法,看作用對象是誰。所以這里我們重點看看我這文章中所會提出來的方法。大家來評論評論。
上一篇文中《走向J2EE,漫長的道路》,我談到學習J2EE是一個漫長的過程,對,就是如此。因為她里面包含了很多全新的東西。而且,J2EE是現在進行時。我們知道J2EE由很多技術構成,比如,EJB、XML、JDBC、RMI、JSP、Servlet等等這些,又包含很多內容。無論這些具體的技術會怎么發展,怎么變化,我們要抓住主線,那就是掌握J2EE構架的精髓。用什么來分析呢,作用對象自然是J2EE Specification(最新版是1.4,http://java.sun.com/j2ee )!!!當然學習J2EE的前提是你對J2SE有了足夠的熟悉了,還有一點,你有很好的態度和興趣。只看J2EE規范是不夠的,最好結合產品和例子去思考,我建議大家用JBuilder 7 +BEA WebLogc Platform 7.0,這種開發模式。為什么這么說呢?首先,JBuilder 7本身的功能就是不錯,應該屬于主流Java IDE了。其次,BEA WebLogic Platform 7.0對J2EE Specification最新版支持程度很好,同時也較容易獲取,用的人也多。第三,開發效率不錯。(Borland網站有一份講述JBuilder 7 + BEA WebLogic 7.0集成開發的文檔,PDF格式。)
JBuilder 7本身提供了很多幫助文檔,有PDF格式,也有HTML格式(采用JavaHelp技術制作的),另外書店有一些JBuilder的參考用書,個人認為沒有必要,第一,提供的版本都比較陳舊;第二,沒有什么內容;第三,一般都是抄襲JBuilder 本身提供的幫助文檔。(個人觀點,沒有任何商業目的)。當然,你的外語差不多要有四級水平,這個可不能沒有,至少閱讀能力不錯(其實也不是這樣的,我最開始時也是害怕,但開始投入后,英語資料也很簡單,而且很地道!同時提高了您的外語)。WebLogic同樣也不錯,也提供了很多文檔,http://www.bestdown.com 上有一本WebLogic Bible(針對6.1版),國內的BEA公司好像也出了一本,有興趣地可以去china pub看看。
有了這兩者,我們需要找出合適的對象來學習。在這里給出幾方面的素材給大家提供參考。
第一,在JBuilder 7的安裝目錄的這個地方,~~:\JBuilder7\samples\Ejb\Ejb20\ESiteWL,有一個很好的例子,ESite。其中用到了Session Fa?ade設計模式,用到了JSP、Servlet、Session Beans、Entity Beans(cmp)等技術,學習過程中不懂得地方可以參考第二。
第二, Sun公司提供的J2EE Tutorial資料,很不錯。
第三,Java Pet Store,剛開始學習J2EE技術分析該例子有點困難,再者這個例子中的J2EE構架不是很實用,但她給我們展示了J2EE幾乎所有的核心技術,同時還提供了一本書,Design Enterprise Applications with J2EE Platform,很不錯。
第四,對J2EE構架比較了解,對EJB,XML,JSP,Servlet等技術有了較好的理解和程序經驗后,建議看看這幾本書:《J2EE In Practice》、《Core J2EE Patterns》、《Sun Certified ENT Architect for J2EE - Tech Study Guide》、《Java Tools for Extreme Programming - wiley》、《EJB Design Patterns》、《MasteringEJB 2》、《Enterprise JavaBeans,3rd》,夠你看得了:)。
有了上述基礎,結合大家做項目中的一些經驗,我想水平應該會有不少提高。在初步掌握上述基礎后,我們每個人都可以有自己在J2EE中的定位,比如有些開發人員可以考慮把時間花在商務邏輯層、另外一些喜歡花功夫在表示層,更有貪婪的家伙花在J2EE中所有的層。還有Web Services(J2EE 1.4 Specification的重點,估計2003年初推出,今后的重要發展方向)。
同時,大家要注意從軟件工程的角度考慮系統設計,實施,建議用用Together!!!要求大家對UML有足夠的了解。