• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            天空之城
            new,think,program,happy to live
            posts - 39,comments - 39,trackbacks - 0

            啟動IIS出現0x8ffe2740錯誤的解決辦法


                系統提示了錯誤號“0x8ffe2740”,百度一下,答案是:IIS要使用的80端口被程序占用,只需要更改IIS所使用的端口即可解決問題。改了端口后問題果然解決。

             

                但是,在調試程序或在瀏覽器中瀏覽本地程序時,總是要在地址后面增加端口號,很不方便。再就是以前已經做了N個Web應用程序,再逐個改項目文件,太麻煩。還是希望用80作IIS端口。

             

                于是用netstat -an -p tcp -o命令查看本地所開放的端口,以及進程號PID(命令詳細意思可以查看幫助)。得到本地確實是有一個0.0.0.0:80的連接PID是848(不知道這是什么進程),知道進程號后于是用tskill 848殺掉此進程,再次重啟IIS,并且以80作為其端口,啟動成功,問題解決。

            (注:摘自http://hi.baidu.com/key8086/blog/item/759232092380b9ad2fddd452.html )

             

            netstat 命令參數說明:

            -n 是查端口號相關的進程

            -o 是查出相關進程的ID

            netstat -an -o 可以查出端口及進程ID

             

            查到對應ID 后,可以在 "任務管理器" 中,在查看菜單中,選擇 "選擇列" 選中 PID 列項, 可以查出哪個程序,對應這個ID 占著哪個端口。

             

            posted @ 2007-07-10 18:02 太極虎~宏 閱讀(283) | 評論 (0)編輯 收藏
            1.運行regedit進入注冊表,HKEY_LOCAL_MACHINE\ SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify\WgaLogon,刪除它,重新啟動.wgatray.exe就不會自動啟動了.
            2.把系統盤:\windows\system32中的wgatray.exe刪除.
            3.徹搜索文件wgatray,統統刪除...
            posted @ 2007-06-07 09:04 太極虎~宏 閱讀(1496) | 評論 (0)編輯 收藏

            要安裝LogMiner工具,必須首先要運行下面這樣兩個腳本,這兩個腳本必須均以SYS用戶身份運行。其中第一個腳本用來創建DBMS_LOGMNR包,該包用來分析日志文件。第二個腳本用來創建DBMS_LOGMNR_D包,該包用來創建數據字典文件。

            1..$ORACLE_HOME/rdbms/admin/dbmslm.sql 2. $ORACLE_HOME/rdbms/admin/dbmslmd.sql.

            SQL> @d:\oracle\product\10.2.0\db_2\RDBMS\ADMIN\dbmslm.sql

            程序包已創建。

            授權成功。

            SQL> @d:\oracle\product\10.2.0\db_2\RDBMS\ADMIN\dbmslmd.sql

            程序包已創建。

             

            使用LogMiner工具

             

            1、創建數據字典文件(data-dictionary)

            數據字典文件是一個文本文件,使用包DBMS_LOGMNR_D來創建。如果我們要分析的數據庫中的表有變化,影響到庫的數據字典也發生變化,這時就需要重新創建該字典文件。另外一種情況是在分析另外一個數據庫文件的重作日志時,也必須要重新生成一遍被分析數據庫的數據字典文件。

            在ORACLE8I的時候,首先在init.ora初始化參數文件中,指定數據字典文件的位置,也就是添加一個參數UTL_FILE_DIR,該參數值為服務器中放置數據字典文件的目錄。如:

            UTL_FILE_DIR = (e:\Oracle\logs) 

            ORACLE9I后,推薦使用SPFILE啟動,可以動態調整參數;

            SQL> show parameter spfile

            NAME                                 TYPE        VALUE                         

            ------------------------------------ ----------- ------------------------------

            spfile                               string      D:\ORACLE\PRODUCT\10.2.0\DB_2\

                                                             DATABASE\SPFILESGTEST2.ORA    

            SQL> alter system set utl_file_dir='d:\oracle\logs' scope=spfile;

            系統已更改。

            SQL> startup force

            ORACLE 例程已經啟動。

             

            Total System Global Area  289406976 bytes                                      

            Fixed Size                  1248600 bytes                                      

            Variable Size              96469672 bytes                                      

            Database Buffers          188743680 bytes                                      

            Redo Buffers                2945024 bytes                                      

            數據庫裝載完畢。

            數據庫已經打開。

            SQL> show parameter utl_file_dir

             

            NAME                                 TYPE        VALUE                         

            ------------------------------------ ----------- ------------------------------

            utl_file_dir                         string      d:\oracle\logs  

             

            然后創建數據字典文件

            SQL> @d:\dbms_logmnr_d.build.txt

             

            PL/SQL 過程已成功完成。

             

            腳本dbms_logmnr_d.build.txt

            BEGIN

            dbms_logmnr_d.build(

            dictionary_filename => 'logminer_dict.dat',

            dictionary_location => 'd:\oracle\logs');

            END;

            /


            2、創建要分析的日志文件列表

                Oracle的重作日志分為兩種,在線(online)和離線(offline)歸檔日志文件,我這里主要分析歸檔日志,在線日志原理一樣。

                A.創建列表
            SQL>execute dbms_logmnr.add_logfile(options =>dbms_logmnr.new,logfilename =>'D:\oracle\product\10.2.0\oradata\oracle9i\REDO01.LOG');


            B.添加另外的日志文件到列表
            SQL>execute dbms_logmnr.add_logfile(options =>dbms_logmnr.addfile,logfilename=>'D:\oracle\product\10.2.0\oradata\oracle9i\REDO02.LOG');

            SQL> execute dbms_logmnr.add_logfile(options =>dbms_logmnr.addfile,logfilename=>'D:\oracle\product\10.2.0\oradata\oracle9i\REDO03.LOG');
            刪除
            SQL> execute dbms_logmnr.add_logfile(options =>dbms_logmnr.removefile,logfilenam

            e =>'D:\oracle\product\10.2.0\oradata\oracle9i\REDO03.LOG');

             8.啟動LogMiner進行分析

            BEGIN

            dbms_logmnr.start_logmnr(

            dictfilename => 'd:\oracle\logs\logminer_dict.dat');

            END;

            /

             
            4、觀察分析結果(v$logmnr_contents)

            到現在為止,我們已經分析得到了重作日志文件中的內容。動態性能視圖v$logmnr_contents包含LogMiner分析得到的所有的信息。

            SELECT sql_redo FROM v$logmnr_contents; 




            網上這種東西很多,但好多都會報錯,著是經過我實際操作過的.
            posted @ 2007-06-06 14:07 太極虎~宏 閱讀(4799) | 評論 (3)編輯 收藏
            考研很大程度上既是對以往生活的一次認真的審判,也是對前途愿景的一次美好的憧憬;既然是審判就包含許多否決和重建,既然是憧憬就包含許多希望和誘惑。考研是對生命的一次認真的思考和全新的探索,它深藏著一種對人生、對社會、對宇宙的價值判斷和理性認知,當這種或許處于無意識狀態的精神被驚醒乃至被強化為明白的自我意識后,隱藏在你心靈深處的智慧之眼將變得炯炯有神,一種可以支配人生的驚人力量將無限爆發以致包圍你的生活,你的靈魂將展示一個向上的方向和飛躍的姿態。
                相對來說,以下八種人士在沐浴考研之滾滾大潮時更加無需猶豫逡巡,考研之存在甚而壯大確實有其不可否認的原因,而這八種人完全可以輕易地給自己找到一個或幾個考研的理由:
                其一曰:感覺工作乏味者。不少人干著不痛不癢的事情,工作起來有如機器一般乏味無聊,每天就是那三五件重復了千百遍的舊事,月復一月,年復一年,歲月已近乎停止,時間已近乎凝固,生命只是坐等無聊,這樣的人選擇考研還需猶豫?
                其二曰:覺察前途渺茫者。一個很可能要在鄉村中小學站一輩子講臺的人,一個很可能要在小縣城的雞肋部門的某個科室做一輩子職員的人,一個在外面漂泊滾打多年仍然一事無成的人,選擇考研難道不是一個改變命運的契機?
                其三曰:有志學術事業者?,F在很少聽到本科生搞學問的人了,相反,博士生、博士后才是做學問、搞研究的人才的觀點逐漸成為社會共識;因此,想耕耘大學講壇、想苦思于書齋、想活躍于實驗室的人除了考研別無選擇。
                 其四曰:就讀基礎專業者。諸如讀歷史、哲學、物理等基礎專業的本科生往往在求職途中更為艱難,雖然要因人因情而言,但一般說來這樣的學生不考研不繼續深造想學以致用、想輕松找到工作難度不小。
                 其五曰:擁有名校情結者。仰慕名校從壞的角度看是虛榮心,從好的角度看是進取心,這種虛榮心通常都是善良和積極的,通過樹立高遠目標來激發自己的潛力難道不是好事嗎?金字塔下層學校的學生可以通過考研滿足自己的名校情結。
                 其六曰:性情內向孤僻者。這樣說不是鼓勵大家離群索居、沉默自守,恰恰相反,適當的交往和活躍是完善人格、適應社會所需要的品質;之所以說內向性格的人更適合考研是因為他們往往更能耐得冷板凳、更能靜心學習和研究。
                 其七曰:希望有高學歷者。這樣的人選擇考研的原因其實很白了,細細品味一下,容易發現這類人考研考博通常與上面提到的帶有理想主義色彩的虛榮心不同,往往帶有較為強烈的功利色彩,多是為職稱、職務、待遇所迫。
                 其八曰:改變學歷成色者。在我們的社會里,有不少的一批人由于早先各種原因選擇了中專教育,后來他們通過自己的努力參加成人教育考試、函授考試、電大教育獲得了本科文憑,這樣的人參加考研可以大大提升自己先前學歷的成色。
                 每個考研的人都需要一個理由,關鍵是這個理由最后能否上升為一種信念,這一信念能否改變你的學習和生活態度,這一態度能否最終改變你的行動!
            posted @ 2007-06-06 13:52 太極虎~宏 閱讀(217) | 評論 (0)編輯 收藏

            談談我對攻讀計算機研究生的看法
              就我自己的理解,談談我對讀研和軟件學院的看法,不妥之處一笑了之即可。
              
              如果你有實際開發工作經驗,感覺自己的水平和實力進入了一個高原期,迫切需要從

            理論上提高,那么計算機學院是唯一選擇。因為計算機學院才能讓你在理論上更上一層樓

            。軟件學院從教學計劃上就沒有把你往這方面帶。當然能不能更上一層樓最終還是完全取

            決于你自己。需要特別說明的是,工作經驗并不一定等于開發經驗,我見過很多工作2-3年

            的人,但是沒有一點開發經驗。
              
              你說:“他們都有很強的開發能力,只是不太喜歡讀書,也只是希望混個學歷對今后在

            崗位上晉升有好處”,我可以向你保證,你所說的人絕對不是開發能力很強的人。因為,

            1)高手不可能不喜歡讀書;2)高手不可能想去混一個學歷;3)高手不可能認為晉升是因

            為學歷的原因。
              
              還需要說明的是,考計算機的人未必個個都是高手,嚴格來說,大部分都不會編程序

            。也就是說,庸庸碌碌之輩仍然占絕大多數。研究生畢業的師兄只拿2500元左右的比比皆

            是,所以不要寄希望于拿一張研究生文憑出去賺高薪。但是,對于有實際開發工作經驗的

            人,要想自己在3年之中有一個真正的提高的話,計算機學院提供了廣闊的平臺。就我所知

            ,每一個月拿2萬以上的也有(上海育碧,圖形特效算法設計)。所以,同為研究生畢業,

            能力的差距是極大的。所以,不要去問“研究生畢業能拿多少?”,要問“像我這種水平

            的人,研究生畢業能拿多少錢?”這樣人家才能夠準確地回答你。
              
              所謂“有實際開發工作經驗”是指你目前已經具備下列能力:1)你已經認為C++和匯

            編語言都是很簡單的語言,并能夠自如地運用;2)你能夠在30分鐘之內想到正確的五子棋

            AI算法設計思路和方向;3)你完全理解STL為什么這么重要;4)你能夠獨立地解決所有的

            編譯與鏈接問題,哪怕你從來沒有遇到的問題,你也不需要詢問任何人;5)英文網站是你

            的首要信息來源;6)能夠讀懂英語寫成的國際標準,比如NTFS磁盤格式標準。7)你經常

            站在集合論的角度思考算法問題;8)能夠理解一個簡單的驅動程序,能夠理解一個簡單3

            D交互程序;9)你能夠認識到線性代數和概率論在實際編程工作中的極端重要性;10)你

            完全理解COM的設計思想,尤其能夠理解COM為什么要設計成這樣;11)當我說到虛函數的

            重要作用時,你不會急著去找書來翻;12)你能夠說出C++為什么比其他語言優秀的理由,

            記住這種理由應該來自于你的開發體會,而不是因為其他人都這么說。此外還有很多判斷

            標準,但如果你同時具備5條以上,可以認為你已經具備相應的開發經驗了。在這種狀態下

            讀研,你將取得讀研效益的最大值。
              
              讀研最重要的是要明白你自己要干什么,不能等導師來告訴你你應該干什么。研究生

            的優勢在于理論功底深厚,思維具有穿透力,當然編程能力首先要過關,不要讀完研究生

            還不知道MFC程序的WinMain函數在哪里。所以,研究生期間,你一定要做有理論深度的算

            法設計,比如大規模數據的搜索算法,性能是首要考慮因素,不要奢望SQL函數能夠幫你解

            決問題,所有的問題你都必須自己解決,你必須解決內外存交換的性能瓶頸。再比如極品

            飛車的3D場景生成,圖形變換,碰撞檢測,物性模擬,紋理映射,燈光模型等等,這些都

            是可以保證你能拿到2萬以上月薪的技術。如果你認為這些東西太難,不可能做得出來的話

            ,那么你就不適合讀研。真的,要是你認為讀研之后還是要去搞一般的程序設計,如信息

            管理系統之類的軟件,那么你讀研的價值就完全不會得到體現,因為這些工作根本就不需

            要讀研。
              
              軟件學院宣稱培養軟件開發人才,恕我直言,我從來沒有看見那個高手是培訓成功的

            。成為軟件開發高手的路只有一條:自學!軟件開發中需要大量的編程實踐和獨立思考,

            只有在此過程中,你才能夠逐步成長起來。軟件學院宣稱培養軟件項目經理,這更是搞笑

            ,在某種意義上這是欺騙行為。學院里面能夠培養出軟件開發經理更是十足的謊言,軟件

            項目經理必須,或者說更強調從戰爭中學會戰爭。沒有實踐經驗的項目經理就是繡花枕頭

            一個。
              
               
              總之一句話,如果你只想成為軟件開發高手(比如認為會編驅動程序或殺毒軟件就是

            高手的那種),建議工作,不要考研;完全沒有工作經驗的,也不建議考研,你進來了只

            有瞎混一通。如果你有上述工作經驗且想成為高級軟件工程師(能夠獨立理解并設計出快

            速傅立葉變換算法的那種軟件工程師)的話,那么強烈建議考研??佳凶屇阌?年放松思考

            的機會,也有3年讓你思想和技術積累沉淀的機會。非常難得的機會。不考研的話,這種機

            會就是一種奢侈,可望而不可即的那么一種奢侈。
              
                
              1)關于讀書的機會成本問題。讀研的機會成本的確是很高。任何人都可以簡單地計算

            出來。所以,我也不贊成所有的人都去讀研。讀研只適合那些痛感數學在編程中的極端重

            要性的人。如果對理論工具和理論思維的極端重要性沒有切膚的認識,那么讀研的價值幾

            乎為0;讀研的好處在于:A,把你自己放在一個學術和工程的交叉點上;B,讓你具備了進

            入微軟等世界頂級軟件研發機構的可能性;記住只是可能性。但是不讀研這種可能性為0;

            C,如前所述,如果沒有讀研的機會,你也就沒有靜下心來好好鉆研幾年理論的機會;一邊

            工作拿高薪,一邊深入地學習各種理論,諸位認為這可能嗎?我反正認為不可能,我覺得

            學習鉆研理論最需要的就是一個長期安靜獨處的環境,一邊工作一邊讀書是不可能有這樣

            的環境的,你會覺得每天都在疲于奔命。而讀研正好可以提供這樣一個環境。我同時還反

            對整天跟著導師的屁股后面跑,這樣會浪費很多時間。讀計算機的研究生,主要依靠自己

            去查閱最新文獻,自己去研讀文獻,和導師的口頭交流一個月一次就足夠了,前提還需要

            導師的水平足夠牛。如果導師的水平不牛,這也沒關系,不理他就是了,自己做好自己的

            事情即可。
              
              2)關于研究生教學質量問題。坦白地說,全國都是“洪桐縣中無好人”,尤其在計算

            科學領域,大牛極少。那為什么還要去讀研?大哉問!把讀研的收獲寄托在名?;蛎麕煹?/p>

            名我認為氣上,是注定要失敗的。讀研全靠自學,研究生之間的差距全部體現在自學能力

            上面。又有人問,既然是自學,為什么非要讀研?回答是:因為讀研就是為你買一份保險

            ,就是買一份你自學三年之后不會失業的保險。這份保險主要是一種心理上的后盾,讓你

            在自學過程中經得起誘惑,能夠從容鎮定地去追尋計算機理論發展的堅實足跡,從歐拉,

            費馬,高斯,康托,圖靈等巨匠那里尋找方法論的珠寶。倘若沒有這份保證,你在家里面

            自學3個月,保證你會被失業的壓力壓得喘不過氣來,何談安心學習?
              
              3)關于實戰經驗與理論學習的優劣問題。這沒有定論,如前所述,管理信息系統,設

            備驅動開發,工具軟件開發,軟件病毒剖析等等這些工作不太需要創造性,需要的是耐心

            和經驗,需要的是對既有規范的準確理解,這類開發工作最適合在實戰中提高,理論學習

            沒什么作用。但是在人工智能,模式識別,圖像壓縮,虛擬現實,巨量數據檢索,自然語

            言理解,計算機圖形學等等領域,理論學習就占據著絕對的統治地位!這些領域的突破對

            人類的生活的影響是極其巨大而深刻的。某些領域處于一個極其快速發展的態勢之中,比

            如計算機圖形學,相信諸君能夠從眾多3D游戲的燦爛輝煌中體認到我的這種說法。在這些

            領域,如果沒有扎實的理論功底,一切都是那么遙遠,不管你花了多少時間在編程上面。


              
              4)關于高級研發人員的知識結構問題。首先聲明,我不是一個純粹理論激進分子,即

            認為除了理論之外,一切都不重要。我認為,純熟的編程技能是最基本但也是最必不可少

            的技能。沒有這個基礎,一切計算機理論就是空談(研究圖靈可計算性理論的研究者除外

            )。有了這個基礎之后,下列理論學習方向必須重點突破:
              
              1,科學哲學。這是核心中的核心!可惜國內不開這門課。不但不開課,而且還作為批

            判對象來引用,實在是遺憾至極!這是一門教你如何“釣魚”的學科,在一切科學研究中

            居于最核心的地位。它是古今科研方法和思維方法的集大成者,很難想象一個成熟的研究

            者沒有一套自己的方法論體系??茖W哲學最需要的是領會與總結,它的思想與啟示會伴隨

            我們的一生。
              
              2,康托集合論,矩陣方法,離散結構,圖論方法,群論方法之間的緊密關系。最重要

            的認識這些理論對實踐的重要啟示和方法引導。我始終認為,如果你學了一門理論之后,

            卻不知道這門理論有什么作用,那么你的理論就白學了,你什么東西都沒有撈著。所以,

            學習任何理論之前,先問自己:它有什么用?在哪里用?如何用?帶著這些問題去學習理

            論,你才會真正地學到東西。用這三個問題去問你的理論課老師,他的回答就是判斷其實

            際水平的最佳標準。
              
              3,思維要有極強的穿透力,學會看透文獻作者沒有寫出來的動機。絕大部分大師都有

            隱瞞自己最具有方法論啟示意義的思考環節的習慣。牛頓和華羅庚先生都有這個壞習慣。

            這讓大家認為他們是天才,因為很多問題他想到了,我們想不到。但是為什么他們能想到

            ,我們想不到?他們是怎樣想到的?沒有人告訴我們牛頓發現萬有引力定律時的思考過程

            ,當然,牛頓可以慷慨地把他的思考結果告訴我們,但是,他那可以點石成金的“金手指

            ”卻沒有教給我們。我們的任務就是要培養透過文章看穿作者背后意圖和動機的能力,在

            這方面,臺灣的侯捷和美國的Donbox是絕佳典范。這兩只老狐貍(呵呵,是愛稱)憑著其

            獵犬一般的嗅覺,抽絲剝繭,一個把COM背后的幕后設計動機揭開并暴露到了光天化日之下

            ,另一個把MFC的宏觀架構做了一次完美的外科手術。其非凡的思維穿透力令人驚嘆。
              
              4,英語。英語本身不重要,但是用英語寫成的文獻就極其重要了。所以,專門把英語

            作為一個重頭戲列出來。大家不要相信英語無用論的鬼話。對于搞計算機的而言,英語就

            是你的母語!
              
              5,其它的具體理論還有很多,但是都不如這三個方面重要,因為我覺得這三個方面是

            最具有根本性,全局性的能力培養環節。需要指出的是,很多高深理論對你的工作是無意

            義的,當心時間陷進去。一定要把效率最高的時間段用在最具有決定性意義的理論學習上

            。
              
              5)關于讀研之后的出路是否光明的問題。我們應該承認,讀研之后,你的工作機會不

            是變多了,而是變少了。而且越是高手,他的工作機會和工作范圍就越少。這是因為,越

            是搞前沿研發的公司,其數量越少,在這個圈子的人也就越少。你找工作的范圍就越小,

            試問:如果微軟的OS設計專家出來找工作,能夠讓他選擇的公司能有幾家?但是,這種公

            司數量的減少是以工資待遇的急劇上升為補償的,同時,你在工作中所受到的充分尊重也

            是在一般公司中體會不到的。所以不要擔心學了高科技用不上,呵呵,你只會越來越感覺

            自己學的不夠用。相信接到過獵頭公司電話的人會體會得到。真正的高手從來就不會擔心

            工作的問題,也從來不會到人才市場上去找工作。既然選擇了理論深入,那么就應該把眼

            光放得更遠


            ?

            posted @ 2006-09-29 13:51 太極虎~宏 閱讀(344) | 評論 (2)編輯 收藏


            如何學習Java

            Tag:學習Java
            ?
            一、前言

            ??? 在開始之前有必要再討論一下J2ME,J2SE,J2EE這些概念。J2ME,The Micro Edition of the Java 2 Platform。主要用于嵌入式Java,如手機,PDA等等。J2SE,Java 2 Platform,Standard Edition,我們通常所說的JDK(Java Development Kit)包含在此,是J2EE的基礎。J2EE,Java 2 Platform,Enterprise Edition,就是所謂的企業級Java。這些只是從API級別上的劃分,實際上Sun給J2EE的定義是:開發基于組件的多層的企業級應用的規范。也就是為各種不同的技術定義一個Java的規范,使這些不同的技術結合起來,在Java平臺上構建強壯的企業級應用。從這一點來看,J2EE這個概念應該是涵蓋J2ME,J2SE的。比如一個典型的J2EE應用,網上商店,它支持web方式下訂單,也支持手機下訂單。顯然必須用到J2SE,J2ME。所以也就不存在所謂的從J2SE轉向J2EE的問題了,只是后者包含的范圍更廣而已。

            ?

            來看看Sun給出的J2EE 相關技術主要分為幾大塊。

            1. Web Service技術

            -? Java API for XML Processing (JAXP)

            -? Java API for XML Registries (JAXR)

            -? Java API for XML-based RPC (JAX-RPC)

            -??? SOAP with Attachments API for Java (SAAJ)

            ?

            2. 組件模型技術(Component Model Technologies)

            -? Java Servlet

            -? JavaServer Pages

            -? JavaServer Faces

            -? Enterprise JavaBeans

            -? Java Message Service

            -??? J2EE Connector Architecture

            ?

            3. 管理技術(Management Technologies)

            -? J2EE Deployment Specification

            -? J2EE Management Specification

            -? J2EE Client Provisioning

            -??? Java Authorization Contract for Containers

            ?

            4. 其他相關技術(Other J2EE Technologies)

            -? JDBC

            -? Java Data Objects (JDO)

            -? CORBA (Java IDL and Java RMI-IIOP)

            -? JavaMail

            -? Transactions

            ??? 如此之多的技術難免使初學者無所適從,望而卻步。即使是一位經驗豐富的J2EE開發者,又有幾個人敢說J2EE相關的技術我都熟練掌握了。不過作為一名普通J2EE應用程序的開發者來說,我們只需要重點學習其中的一部分技術就可以了,對于其他部分只要做到心中有數,哪天需要用到了知道跑哪里去找到資料就行了。以我個人的觀點,下面這些技術是一般J2EE應用開發人員所必須熟練掌握的。Java Server Page,Java Servlet,Enterprise JavaBean,JDBC,Transactions。還有JAXP等XML相關技術,Java Message Service,Java Mail,JDO等等是最好應該掌握的。其他Management Technologies,Connector Architecture等等主要是給容器提供商中間件提供商參考的,應用開發者不需要怎么關心,等用到了再去學習也不遲。

            ?

            二、語言學習篇

            ?? 首先是J2SE基礎。學習一門新技術,無外乎閱讀和實踐了。而一本好的參考書對于初學者來說顯得格外重要。現在市面上的 Java書籍可以說是鋪天蓋地,質量也是良莠不齊,令初學者無所適從。所以還是先推薦幾本書籍吧。目前對于Java基礎知識,大家一般都比較推薦兩本書<>和<< Core Java? 2, Volume I: Fundamentals >>。第一本書不必多說了,Bruce Eckel的大作,Jolt獲獎書籍。內容比較全面,基本涵蓋了java語言的方方面面。這本書提供了相當豐富的例子,非常有利于對學習內容的了解。另外書中第一部分對于OO基本書籍的介紹,我覺得對于剛接觸OO的人來說幫助會很大。而且此書是Open Source的,可以從作者網上下載http://www.mindview.net/Books/TIJ/而對于習慣于讀中文版的學習者來說,侯捷翻譯的中文版是不錯的選擇。要說這本說的缺點可能就是對于初學者來說厚了一點,這也是一些人并不推薦此書作為初學者學習用書的原因吧。后面一本<< Core Java? 2, Volume I: Fundamentals >>。目前已經是第七版了,單從它出版的次數來看也可以看出此書受歡迎的程度,這本書特點也是講述比較全面系統,基本上一路啃下來的話Java語言基礎應該算過關了。缺點也是太厚了,有點像參考手冊,前面部分花了不少篇幅講Swing和Applet,可能對初學者不是很有用。還有一些像<< Java in a nutshell>>也是比較不錯的基礎書籍。

            ?? 學習了基本的語言基礎,別忘了最重要也是最有用的資料還是JDK文檔。從你學習java的第一天開始JDK文檔應該是常備手頭了。如果你碰到問題首先想到的是到論壇上去提問而不是查閱Jdk文檔,那先別繼續往下學習了,學會查JDK文檔先。不夸張的說在我們的初學者論壇中60%的問題是光查一下JDK文檔就能解決問題的。最新JDK Documentation下載地址http://java.sun.com/j2se/1.4.2/download.html(目前最新版是J2SE5 http://java.sun.com/j2se/1.5.0/download.jsp)不能光說不練,同一下載頁面把JDK給下載回來。安裝完后有一點我想提一下,安裝路徑下有一個src.zip(有些jdk版本是src.jar),好東西啊---JDK源代碼,老是有人在論壇上問哪里有JDK源代碼下載,你說東西就放在你家里還到處找。有了這個有些問題就需要在論壇上跟人家爭來爭去了,翻開源代碼瞧一下什么疑問都沒有了。幾個最重要的命令行工具是

            javac:?????????? 編譯源文件到class文件

            java:???????????? 運行class

            jar:?????????????? 打包工具。

            javadoc:??????? 生成java doc的工具。

            ??? 對于初學java的人來說,我不推薦使用IDE而直接用文本編輯器,然后用命令行編譯運行。這樣有利于理解CLASSPATH,PATH這些最基本概念。CLASSPATH是初學者比較容易感覺迷惑的地方。現在的IDE太聰明了,給個名字就給你自動生成java source code,自動編譯。可能你運行完了你的第一個Hello World程序,還不知道java和javac是用來做什么的。至于實際的項目開發,一款合適的IDE還是十分重要的,我們稍后再對java開發工具做一些介紹。

            ?

            三、J2EE基礎和Java語言進階

            ??? 學習完語言基礎,就可以比較自然地轉入J2EE實際技術的學習了。J2EE實在是比較龐雜,而EJB,Servlet,這些核心技術是作為每一個J2EE開發人員所需要掌握的。關于servlet,我比較推薦<>和<>,第一本是Sun推薦的Servlet教材。第二本是當年Amazon最暢銷Java書籍,五星級書籍。這本書機械工業出版社有中文版叫<<與JSP權威指南>>,感覺翻譯得還可以,第二版好像還沒有看到有中文版。兩本書都全面系統地介紹了JSP和Sevlet知識,從web服務器配置,JSP,Servlet基本編程,標記庫(Tag Lib),過濾器,事件框架都有很好地描述。提供地例子也比較實用。對于EJB學習,比較著名有兩本書,<< Enterprise JavaBeans, 3nd Edition>>和<< Mastering Enterprise Java Beans Third Edition>>,兩位作者Richard Monson,Ed Roman都是屬于業界重量級人物。而Richard Monson本身就是EJB規范專家組成員。對我來說,兩本書難分優劣,第二本書有個好處就是可以免費下載http://www.theserverside.com/books/wiley/masteringEJB/index.tss。

            ??? 還是那句話,不能光說不練,不過J2EE的練習做起來有一點麻煩,應用服務器是不可少的,最好還得準備個輕量級的數據庫。下面簡單介紹一下這些工具。

            web服務器(Servlet Container)方面有:

            Tomcat:????????? http://jakarta.apache.org/tomcat/

            Jetty:????????????? http://jetty.mortbay.org/jetty/

            應用服務器常用的有:

            Jboss:??????????? http://www.jboss.org/products/index

            Weblogic:?????? http://www.bea.com/framework.jsp?CNT=index.htm&FP=/content/products/server

            WebSphere:??? http://www-128.ibm.com/developerworks/downloads/ws/was/?S_TACT=105AGX28&S_CMP=DLMAIN。

            ?? Tomcat,Jetty,Jboss都是Open Source。Weblogic和WebSphere是J2EE服務器中的老大級人物,價格也不菲。不過對于開發者有免費的試用版下載。

            ?? 如果單單只是學習Servlet,推薦使用Tomcat,它是Sun官方指定的Servlet,JSP規范的參考實現。對初學者最重要的是它使用比較簡單,自帶文檔比較齊全,使用者眾多,有什么問題容易在論壇上面得到幫助。如果學習EJB的話,推薦使用Jboss,不僅僅是因為它是Open Source的,主要是配置比較簡單,使用方便。比如說對于連接數據庫,對于常用的MySQL,Oracle,MS SQL等等都提供了Sample Config文件,直接拿過來做些小改動扔到Deploy目錄下就可以用DataSource了,部署J2EE應用也簡單,把整個.ear或者.war扔到deploy下就可以了。唯一不方便的地方是從Jboss3.0開始,它的文檔開始收費了。但是對于一些基本的配置,在網上還是非常容易找到的,畢竟它太流行了。至于Weblogic,也比較容易使用,不過比起Jboss來個頭大了很多,通過強大的管理界面使得一些常用的配置工作變得十分簡單。和Jboss比起來它的文檔就太多了,簡直是有點羅里八嗦,比如要部署一個.ear文件,一般我們也就是直接扔到domain下的applications目錄下就會自動deploy了,但是要看它的文檔可是長篇大論,容易嚇著初學者,以為這又是什么高深的學問。至于WebSphere,個人不推薦初學者使用,相比前倆個Server比較難使,而且狂吃內存。不過在企業級市場這個家伙表現不俗,畢竟是出生于IBM這樣的豪門。

            ?? 數據庫方面,目前常見的主要有PostgreSQL,MySQL,Oracle,MS SQL,DB2等等。前面兩個是開源數據庫,后面幾個基本上壟斷著大部分的數據庫市場。對于初學者用來做做EJB,JDBC的練習,我推薦MySQL,理由還是很簡單,開源軟件不要錢,個頭小使用方面,用戶眾多文檔齊全。下載地址http://www.mysql.com/products/mysql/。PostgreSQL也可以考慮,不過國內使用者遠不如MySQL多,所以要在論壇上問起問題來就少方便一些了,下載地址http://www.pervasive-postgres.com/downloads/。至于后面那些比較重量級的數據庫,為了做做練習而言就不用考慮了, 咱也花不起這個錢啊。

            ?? 學習完J2EE的這些具體技術,這個時候進行基本的J2EE開發應該是不成問題了。此時應該考慮提高自己的代碼質量了。這里我強烈推薦Martin Fowler的<>,這本書不是一本非常實際的書,作者完全是手把手地教你如何提高代碼質量,從具體地代碼中告訴你什么是代碼的Bad Smell,如何去掉這些Bad Smell。不少書評是這么說的,這本書對于初級,中級的讀者幫助是立桿見影的。至少就我接觸到的幾個學習編程不久的程序員,編碼質量在短期內都有很大提高。當然重構(Refactoring)這一概念并不只針對Java語言的,它對所有OO語言都是適用的。重構的概念是如此深入人心,以至于今天幾乎所有流行的IDE工具都有對重構的支持。這里我還想再推薦一本<>。從C++過來的程序員都知道<>在C++領域的地位,至今還流傳著這樣的趣話,C++程序員分為兩種,一種是讀過<>的,另一種是沒有讀過C++的。雖然這本<>在Java領域的影響也許沒有那么大,但對于Java程序員絕對有相當的指導價值。作者是Sun公司的Joshua Bloch,java Collection framework的設計者。作者站在JDK設計者的角度向你介紹他的Best Practice,應該這樣做而不應該那樣做,對于JDK中某些API設計的缺陷他也毫不袒護的指出。Java語言之父James Gosling為此書寫的前言是這么說的“I sure wish I had had this book ten years ago。 Some might think that I don't need any Java books, but I need this one”。這本書會讓你覺得原來你對Java還是有很多東西不了解的。舉個例子來說,對象的equals方法,我們認為它很簡單,也許你每天都在為你新寫的Class重載這個方法,但是你在重載的時候注意過“自反”,“對稱”,“傳遞”這些必須要考慮的因素,你是否同時還小心謹慎的重載了hashcode這個方法?如果沒有,建議你要讀一下這本書。讀完這本書,你會覺得離Java的距離更近了。上面兩本書都出過中文版,后面一本<>還有兩個版本的中文版,第一次翻譯的比較差一點,后來機械工業出版社又委托潘愛民先生重新翻譯了一遍。同一本書在同一個出版社連續被翻譯了兩次也說明國內出版界對這本書還是比較重視的。

            ?? 這個階段,在看書的同時,可以結合著學習一些優秀的開源項目的源代碼。這些開源項目的代碼風格,注釋都是值得借鑒的。實在太懶也別忘了手頭上還有個Jdk的源代碼。其實也不用刻意去找源代碼,在實際的J2EE項目開發中,基本上都會用到一些優秀的開源項目。Framework可能會用到Spring,Struts,Log機制基本上都會JarkartaCommons Log或者Log4j,單元測試會大多會用Junit,結合項目閱讀一下其中的一些源代碼,既可以提高自己又對項目會有所幫助,說不定因此而得到PM的賞識呢。一舉兩得,何樂而不為呢。呵呵,有點扯遠了。過了初學者階段,該學會如何找到適合自己的Java書籍了。歷經數十載,今天的Java技術已經變的如此之龐雜,我相信即使窮凈一個人畢生之精力也不可能把Java所有的相關技術都學通,何況新技術還在層出不窮地推出,3年之前誰會知道Struts會成為Web框架事實上的工業標準。2年之前誰會知道Hibernate會在今天獨領風騷。既然已經不能指望一次性把java技術的方方面面都學個通,在實際中也只能是需要什么技術再學習什么技術了。而能否選擇一本好的參考書籍帶來的就是事半功倍和事倍工半的效果。所以我覺得花點時間放在選擇書籍上面還是很值得的,否則你在后面只會花更多的時間。下面我談談自己選擇書籍的一些經驗,不一定正確。首先看作者,像上面提到的那些書的作者,都是業界鼎鼎大名的,選擇他們的書一般錯不了。大家看的書多了,自己胸中自然也會有一個list,哪些作者是信得過的。二看出版社,計算機書籍方面,Oreilly,Addison-Wesley都是公認比較好的出版社。對于目前比較流行的Java技術,Oreilly的<>系列是不錯的選擇。另外我還會去看看Amazon網站(http://www.amazon.com/)的書評,一般小于3星級的書我都不會考慮。還有一個好去處http://www.theserverside.com/的書評,這里的書評比較有趣,往往都有很激烈的爭論,里面經常會看到一些名人在發言。我要向所有Java學習者推薦,如果我的收藏夾里面只能存放兩個網站,我會選擇java.sun和theserverside。在這里你可以了解最新的Java動態,可以學習第一手的Java資料,可以看到Java高手們(里面不乏業界大腕)激烈辯論。

            ?? 到此階段,Java Developer的基本功底應該算是打好了吧,往后就是不斷學習嘍。結束這一段之前,最后再介紹一本書Oreilly的<>,因為我覺得多線程編程屬于Java基本功,每一個想學好Java的人都應該好好掌握。

            ?

            四、提高篇

            ?? 在這個階段應該從軟件架構,Framework層次上來學習了。作為面向對象的圣經<>, 這本書是不得不推薦的。不用再多說了,這本在面向對象領域地位完全是屬于教父級別的。不管你學習的是什么OO語言,不管你現在是用.Net還是J2EE開發,這本書都是你進階之路上的必讀之書。而<>則專門針對于J2EE來討論設計模式,書中Sun Java Center的資深設計師描述了J2EE關鍵技術的模式。最佳實踐,設計策略和經過驗證的解決方案。對于每一個希望成為J2EE 架構師或者設計師,這本書值得一讀。學習設計模式的時候,建議是結合實際的源代碼來看,比如看看Junit源代碼,你可以看到很多設計模式優雅的實現,作者之一Erich Gamma本身就是<>的作者。至于J2EE的設計模式,Sun還開辟了專門的空間http://java.sun.com/blueprints/patterns/,里面有對常用模式的討論又提供了詳細的源代碼樣例。正如Grady Booch所說,模式對于普遍問題提供了通用的解決方案,利用模式就等于擁有一個強大的專家隊伍。如果你還沒有學習,現在就開始吧。此外對于面向對象方法論,極限編程的思想也應該有所了解http://www.extremeprogramming.org/。對于J2EE項目的具體實施,Rod Johnson的<>也很有價值,該書以作者豐富的實戰經驗向我們展示如何用盡可能簡單的解決方案構建J2EE 應用,書中作者第一次提出這樣的觀點,很多時候,J2EE應用完全沒有必要用到EJB,對于言必稱EJB的廣大J2EE開發者來說,怎么說也有點驚世咳俗的味道。當然,作為Servlet和JDO兩個專家組的成員,這可不是作者信口胡騶的。今天風靡Java世界的Spring框架最初便是源于此書,而IOC,AOP等概念更是被時下的java開發者掛在嘴邊。最后,作為對Java的深入學習,Java技術的各個Specification也有必要一讀。暫時就寫到這里吧。

            五、結語

            ?? 相信大家看了這篇文章后會有較大的提高,如果你想了解更多的關于Java方面的知識,你可以瀏覽“Java學習筆記”(http://sylan215.bokee.com/)網站,對于學習Java,這是一個相當不錯的選擇。

            ?

            ?

            posted @ 2006-06-11 13:58 太極虎~宏 閱讀(310) | 評論 (0)編輯 收藏
            索引組織表的數據按主鍵排序手段被存儲在B-樹索引中,除了存儲主鍵列值外還存儲非鍵列的值。普通索引只存儲索引列,而索引組織表則存儲表的所有列的值。
            索引組織表一般適應于靜態表,且查詢多以主鍵列。當表的大部分列當作主鍵列時,且表相對靜態,比較適合創建索引組織表?。?i以上)
            索引組織表的創建:
            CREATE TABLE docindex(
            token char(20),
            doc_id NUMBER,
            token_frequency NUMBER,
            token_offsets VARCHAR2(512),
            CONSTRAINT pk_docindex PRIMARY KEY (token, doc_id))
            ORGANIZATION INDEX TABLESPACE ind_tbs;
            必須給索引結構表指定主鍵。
            posted @ 2006-06-08 00:42 太極虎~宏 閱讀(434) | 評論 (0)編輯 收藏
            Oracle 的位圖索引

            ?????????

            ?Oracle的索引主要包含兩類:BTree和位圖索引。默認情況下大多使用Btree索引,該索引就是通常所見?唯一索引、聚簇索引等等,Btree用在OLTP,加快查詢速度。位圖索引是Oracle的比較引人注目的地方,其主要用在OLAP(聯機數據分析)方面,也就是數據倉庫方面用到,目的是在加快查詢速度是,節省存儲空間。通常情況下,索引都要耗費比較大的存儲空間,位圖采用了壓縮技術實現磁盤空間縮減。Btree用在高基數(即列的數據相異度大),位圖用在低基數列。位圖索引的基本原理是在索引中使用位圖而不是列值。通常在事實表和維表的鍵之間有很低的集的勢(cardinality),使用位圖索引,存儲更為有效,與B*Tree索引比較起來,只需要更少的存儲空間,這樣每次讀取可以讀到更多的記錄,而且與B*Tree索引相比,位圖索引將比較,連接和聚集都變成了位算術運算,大大減少了運行時間,從而得到性能上的極大的提升。

            在Oracle中如何合理的使用位圖索引?以下的幾個事項應該考慮。
            ??
            ?????????? *? 如果要使用位圖索引,初始化參數STAR_TRANSFORMATION_ENABLED應該設置為
            ? ????????? ??TRUE.
            ?????? ??? *?? 優化模式應該是CBO。對于數據倉庫的環境中,總是應該考慮使用CBO(COST-BASED? ?
            ? ?????????? OPTIMIZER)。
            ????? ???? *?? 位圖索引應該建立在每一個事實表的外鍵列上。(這只是一個一般的規則.)
            ??
            ????? 此外,對于數據表中的cardinality如何客觀的確定也是一個問題,一萬條數據中只包含3個值的集和算是低的了,那么一億條記錄中包含3萬條記錄算不算低的呢?對于這樣的情況,建議幾行一下數據的模擬測試,一般來說,在數據倉庫環境中,位圖索引的性能要好于B*Tree索引。還要注意位圖索引不是為OLTP數據庫設計的,不應該在OLTP數據庫中大量的使用它,尤其是對那些有更新操作的表?。?

            posted @ 2006-06-07 00:34 太極虎~宏 閱讀(365) | 評論 (0)編輯 收藏

            #include <stdio.h>
            void main()
            {
            ??? int i,m=1;
            ??? for(i=0;i<19;i++)
            ??? {
            //??%*s\n *表示控制寬度,s字符串
            //??m<=10?10+m :30-m 表示輸出的位置,
            //??(m<=10?20-2*m:2*m-20)控制輸出的個數
            printf("%*s\n",m<=10?10+m :30-m ,"*******************"+(m<=10?20-2*m:2*m-20)
            ????? );
            ??????? m++;???????
            ??? }

            }

            posted @ 2006-06-04 18:00 太極虎~宏 閱讀(983) | 評論 (0)編輯 收藏
            網絡安全中防火墻和IDS的作用

            業界的同行曾經說過“安全,是一種意識,而不是某種的技術就能實現真正的安全。”隨著工作的時間漸長,對這句話的體會就越深。再防守嚴密的網絡,利用人為的疏忽,管理員的懶惰和社會工程學也可能被輕易攻破。

              因此,在這里我介紹的防火墻和IDS技術,只是我們在網絡安全環節中進行的一個防御步驟。在網絡內進行防火墻與IDS的設置,并不能保證我們的網絡就絕對安全了,但是設置得當的防火墻和IDS,至少會使我們的網絡更為堅固一些,并且能提供更多的攻擊信息供我們分析。

              接下來,讓我們正確地認識一下防火墻和IDS的作用吧?!?

              防火墻

              一、防火墻能夠做到些什么?

              1.包過濾

              具備包過濾的就是防火墻?對,沒錯!根據對防火墻的定義,凡是能有效阻止網絡非法連接的方式,都算防火墻。早期的防火墻一般就是利用設置的條件,監測通過的包的特征來決定放行或者阻止的,包過濾是很重要的一種特性。雖然防火墻技術發展到現在有了很多新的理念提出,但是包過濾依然是非常重要的一環,如同四層交換機首要的仍是要具備包的快速轉發這樣一個交換機的基本功能一樣。通過包過濾,防火墻可以實現阻擋攻擊,禁止外部/內部訪問某些站點,限制每個ip的流量和連接數。

              2.包的透明轉發

              事實上,由于防火墻一般架設在提供某些服務的服務器前。如果用示意圖來表示就是 Server—FireWall—Guest 。用戶對服務器的訪問的請求與服務器反饋給用戶的信息,都需要經過防火墻的轉發,因此,很多防火墻具備網關的能力。

              3.阻擋外部攻擊

              如果用戶發送的信息是防火墻設置所不允許的,防火墻會立即將其阻斷,避免其進入防火墻之后的服務器中。

              4.記錄攻擊

              如果有必要,其實防火墻是完全可以將攻擊行為都記錄下來的,但是由于出于效率上的考慮,目前一般記錄攻擊的事情都交給IDS來完成了,我們在后面會提到。

              以上是所有防火墻都具備的基本特性,雖然很簡單,但防火墻技術就是在此基礎上逐步發展起來的。

              二、防火墻有哪些缺點和不足?

              1.防火墻可以阻斷攻擊,但不能消滅攻擊源

              “各掃自家門前雪,不管他人瓦上霜”,就是目前網絡安全的現狀?;ヂ摼W上病毒、木馬、惡意試探等等造成的攻擊行為絡繹不絕。設置得當的防火墻能夠阻擋他們,但是無法清除攻擊源。即使防火墻進行了良好的設置,使得攻擊無法穿透防火墻,但各種攻擊仍然會源源不斷地向防火墻發出嘗試。例如接主干網10M網絡帶寬的某站點,其日常流量中平均有512K左右是攻擊行為。那么,即使成功設置了防火墻后,這512K的攻擊流量依然不會有絲毫減少。

              2.防火墻不能抵抗最新的未設置策略的攻擊漏洞 

              就如殺毒軟件與病毒一樣,總是先出現病毒,殺毒軟件經過分析出特征碼后加入到病毒庫內才能查殺。防火墻的各種策略,也是在該攻擊方式經過專家分析后給出其特征進而設置的。如果世界上新發現某個主機漏洞的cracker的把第一個攻擊對象選中了您的網絡,那么防火墻也沒有辦法幫到您的。

              3.防火墻的并發連接數限制容易導致擁塞或者溢出

              由于要判斷、處理流經防火墻的每一個包,因此防火墻在某些流量大、并發請求多的情況下,很容易導致擁塞,成為整個網絡的瓶頸影響性能。而當防火墻溢出的時候,整個防線就如同虛設,原本被禁止的連接也能從容通過了。 

              4.防火墻對服務器合法開放的端口的攻擊大多無法阻止

              某些情況下,攻擊者利用服務器提供的服務進行缺陷攻擊。例如利用開放了3389端口取得沒打過sp補丁的win2k的超級權限、利用asp程序進行腳本攻擊等。由于其行為在防火墻一級看來是“合理”和“合法”的,因此就被簡單地放行了。

              5.防火墻對待內部主動發起連接的攻擊一般無法阻止

              “外緊內松”是一般局域網絡的特點?;蛟S一道嚴密防守的防火墻內部的網絡是一片混亂也有可能。通過社會工程學發送帶木馬的郵件、帶木馬的URL等方式,然后由中木馬的機器主動對攻擊者連接,將鐵壁一樣的防火墻瞬間破壞掉。另外,防火墻內部各主機間的攻擊行為,防火墻也只有如旁觀者一樣冷視而愛莫能助。

              6.防火墻本身也會出現問題和受到攻擊

              防火墻也是一個os,也有著其硬件系統和軟件,因此依然有著漏洞和bug。所以其本身也可能受到攻擊和出現軟/硬件方面的故障。

              7.防火墻不處理病毒 

              不管是funlove病毒也好,還是CIH也好。在內部網絡用戶下載外網的帶毒文件的時候,防火墻是不為所動的(這里的防火墻不是指單機/企業級的殺毒軟件中的實時監控功能,雖然它們不少都叫“病毒防火墻”)。

              看到這里,或許您原本心目中的防火墻已經被我拉下了神臺。是的,防火墻是網絡安全的重要一環,但不代表設置了防火墻就能一定保證網絡的安全。“真正的安全是一種意識,而非技術!”請牢記這句話。

              不管怎么樣,防火墻仍然有其積極的一面。在構建任何一個網絡的防御工事時,除了物理上的隔離和目前新近提出的網閘概念外,首要的選擇絕對是防火墻。那么,怎么選擇需要的防火墻呢?

              防火墻的分類

              首先大概說一下防火墻的分類。就防火墻(本文的防火墻都指商業用途的網絡版防火墻,非個人使用的那種)的組成結構而言,可分為以下三種:

              第一種:軟件防火墻

              軟件防火墻運行于特定的計算機上,它需要客戶預先安裝好的計算機操作系統的支持,一般來說這臺計算機就是整個網絡的網關。軟件防火墻就象其它的軟件產品一樣需要先在計算機上安裝并做好配置才可以使用。防火墻廠商中做網絡版軟件防火墻最出名的莫過于Checkpoint。使用這類防火墻,需要網管對所工作的操作系統平臺比較熟悉。

              第二種:硬件防火墻

              這里說的硬件防火墻是指所謂的硬件防火墻。之所以加上"所謂"二字是針對芯片級防火墻說的了。它們最大的差別在于是否基于專用的硬件平臺。目前市場上大多數防火墻都是這種所謂的硬件防火墻,他們都基于PC架構,就是說,它們和普通的家庭用的PC沒有太大區別。在這些PC架構計算機上運行一些經過裁剪和簡化的操作系統,最常用的有老版本的Unix、Linux和FreeBSD系統。 值得注意的是,由于此類防火墻采用的依然是別人的內核,因此依然會受到os本身的安全性影響。國內的許多防火墻產品就屬于此類,因為采用的是經過裁減內核和定制組件的平臺,因此國內防火墻的某些銷售人員常常吹噓其產品是“專用的os”等等,其實是一個概念誤導,下面我們提到的第三種防火墻才是真正的os專用。 

              第三種:芯片級防火墻

              它們基于專門的硬件平臺,沒有操作系統。專有的ASIC芯片促使它們比其他種類的防火墻速度更快,處理能力更強,性能更高。做這類防火墻最出名的廠商莫過于NetScreen.其他的品牌還有FortiNet,算是后起之秀了。這類防火墻由于是專用OS,因此防火墻本身的漏洞比較少,不過價格相對比較高昂,所以一般只有在“確實需要”的情況下才考慮。

              在這里,特別糾正幾個不正確的觀念:

              1.在性能上,芯片級防火墻>硬件防火墻>軟件防火墻

              在價格上看來,的確倒是如此的關系。但是性能上卻未必。防火墻的“好”,是看其支持的并發數、最大流量等等性能,而不是用軟件硬件來區分的。事實上除了芯片級防火墻外,軟件防火墻與硬件防火墻在硬件上基本是完全一樣的。目前國內的防火墻廠商由于大多采用硬件防火墻而不是軟件防火墻,原因1是考慮到用戶網絡管理員的素質等原因,還有就是基于我國大多數民眾對“看得見的硬件值錢,看不到的軟件不值錢”這樣一種錯誤觀點的迎合。不少硬件防火墻廠商大肆詆毀軟件防火墻性能,不外是為了讓自己那加上了外殼的普通pc+一個被修改后的內核+一套防火墻軟件能夠賣出一個好價錢來而已。而為什么不作芯片級防火墻呢?坦白說,國內沒有公司有技術實力。而且在中國市場上來看,某些國內的所謂硬件防火墻的硬件質量連diy的兼容機都比不上。看看國內XX的硬件防火墻那拙劣的硬盤和網卡,使用過的人都能猜到是哪家,我就不點名了。真正看防火墻,應該看其穩定性和性能,而不是用軟、硬來區分的。至少,如果筆者自己選購,我會選擇購買CheckPoint而非某些所謂的硬件防火墻的。

              2.在效果上,芯片防火墻比其他兩種防火墻好

              這同樣也是一種有失公允的觀點。事實上芯片防火墻由于硬件的獨立,的確在OS本身出漏洞的機會上比較少,但是由于其固化,導致在面對新興的一些攻擊方式時,無法及時應對;而另外兩種防火墻,則可以簡單地通過升級os的內核來獲取系統新特性,通過靈活地策略設置來滿足不斷變化的要求,不過其OS出現漏洞的概率相對高一些。

              3.唯技術指標論

              請以“防火墻買來是使用的”為第一前提進行購買。防火墻本身的質量如何是一回事,是否習慣使用又是另一回事。如果對一款產品的界面不熟悉,策略設置方式不理解,那么即使用世界最頂級的防火墻也沒有多大作用。就如小說中武林中人無不向往的“倚天劍”、“屠龍刀”被我拿到,肯定也敵不過喬峰赤手的少林長拳是一般道理。防火墻技術發展至今,市場已經很成熟了,各類產品的存在,自然有其生存于市場的理由。如何把產品用好,遠比盲目地比較各類產品好。

              IDS

              什么是IDS呢?早期的IDS僅僅是一個監聽系統,在這里,你可以把監聽理解成竊聽的意思?;谀壳熬志W的工作方式,IDS可以將用戶對位于與IDS同一交換機/HuB的服務器的訪問、操作全部記錄下來以供分析使用,跟我們常用的widnows操作系統的事件查看器類似。再后來,由于IDS的記錄太多了,所以新一代的IDS提供了將記錄的數據進行分析,僅僅列出有危險的一部分記錄,這一點上跟目前windows所用的策略審核上很象;目前新一代的IDS,更是增加了分析應用層數據的功能,使得其能力大大增加;而更新一代的IDS,就頗有“路見不平,拔刀相助”的味道了,配合上防火墻進行聯動,將IDS分析出有敵意的地址阻止其訪問。

              就如理論與實際的區別一樣,IDS雖然具有上面所說的眾多特性,但在實際的使用中,目前大多數的入侵檢測的接入方式都是采用pass-by方式來偵聽網絡上的數據流,所以這就限制了IDS本身的阻斷功能,IDS只有靠發阻斷數據包來阻斷當前行為,并且IDS的阻斷范圍也很小,只能阻斷建立在TCP基礎之上的一些行為,如Telnet、FTP、HTTP等,而對于一些建立在UDP基礎之上就無能為力了。因為防火墻的策略都是事先設置好的,無法動態設置策略,缺少針對攻擊的必要的靈活性,不能更好的保護網絡的安全,所以IDS與防火墻聯動的目的就是更有效地阻斷所發生的攻擊事件,從而使網絡隱患降至較低限度。

              接下來,我簡單介紹一下IDS與防火墻聯動工作原理

              入侵檢測系統在捕捉到某一攻擊事件后,按策略進行檢查,如果策略中對該攻擊事件設置了防火墻阻斷,那么入侵檢測系統就會發給防火墻一個相應的動態阻斷策略,防火墻根據該動態策略中的設置進行相應的阻斷,阻斷的時間、阻斷時間間隔、源端口、目的端口、源IP和目的IP等信息,完全依照入侵檢測系統發出的動態策略來執行。一般來說,很多情況下,不少用戶的防火墻與IDS并不是同一家的產品,因此在聯動的協議上面大都遵從 opsec 或者 topsec協議進行通信,不過也有某些廠家自己開發相應的通信規范的。目前總得來說,聯動有一定效果,但是穩定性不理想,特別是攻擊者利用偽造的包信息,讓IDS錯誤判斷,進而錯誤指揮防火墻將合法的地址無辜屏蔽掉。

              因為諸多不足,在目前而言,IDS主要起的還是監聽記錄的作用。用個比喻來形容:網絡就好比一片黑暗,到處充滿著危險,冥冥中只有一個出口;IDS就象一支手電筒,雖然手電筒不一定能照到正確的出口,但至少有總比沒有要好一些。稱職的網管,可以從IDS中得到一些關于網絡使用者的來源和訪問方式,進而依據自己的經驗進行主觀判斷(注意,的確是主觀判斷。例如用戶連續ping了服務器半個小時,到底是意圖攻擊,還是無意中的行為?這都依據網絡管理員的主觀判斷和網絡對安全性的要求來確定對應方式。)對IDS的選擇,跟上面談到的防火墻的選擇類似,根據自己的實際要求和使用習慣,選擇一個自己夠用的,會使用的就足夠了。

              最后,要說的依然是那句“世界上沒有一種技術能真正保證絕對地安全?!卑踩珕栴},是從設備到人,從服務器上的每個服務程序到防火墻、IDS等安全產品的綜合問題;任何一個環節工作,只是邁向安全的步驟。

            posted @ 2006-06-03 21:13 太極虎~宏 閱讀(358) | 評論 (1)編輯 收藏
            僅列出標題  下一頁
            久久国产精品一区二区| 亚洲精品无码久久久久AV麻豆| 亚洲午夜无码久久久久| 久久久一本精品99久久精品66 | 欧美一区二区三区久久综合| 久久综合香蕉国产蜜臀AV| 久久夜色精品国产噜噜噜亚洲AV| 97久久精品人人澡人人爽| 亚洲精品国精品久久99热| 欧美噜噜久久久XXX| 国内精品久久久久久久久电影网 | 久久SE精品一区二区| 天天久久狠狠色综合| 一本久久a久久精品亚洲| 色综合久久综合网观看| 亚洲精品乱码久久久久久蜜桃图片 | 国产精品久久新婚兰兰| 色成年激情久久综合| 久久精品亚洲AV久久久无码| 狠狠精品干练久久久无码中文字幕| 日韩精品久久无码中文字幕| 一本大道久久香蕉成人网| 伊人久久免费视频| 国产午夜福利精品久久2021| 2020国产成人久久精品| 午夜精品久久久久久| 国产国产成人久久精品| 久久久国产精品网站| 无码专区久久综合久中文字幕 | 亚洲综合精品香蕉久久网| 久久久WWW免费人成精品| 91精品国产高清91久久久久久| 国产成人精品综合久久久| 亚洲人成无码网站久久99热国产| 狠狠久久综合伊人不卡| 国产精品久久波多野结衣| 久久ZYZ资源站无码中文动漫| 亚洲成色www久久网站夜月| 久久精品国产99久久久古代| 亚洲中文精品久久久久久不卡| 欧美激情精品久久久久久|