產品經理編寫MRD和PRD
http://hi.baidu.com/%D9%DC%D5%BC%BE%FD/blog/item/937c921603e2220c4a90a794.html
正確編寫PRD產品需求文檔
http://hi.baidu.com/wenlym%CD%E5/blog/item/8fff94ac81727d1c4b36d6db.html
posted @ 2011-06-07 17:21 河馬虎 閱讀(318) | 評論 (0) | 編輯 收藏
隨筆 - 34, 文章 - 1, 評論 - 2, 引用 - 0
|
產品經理編寫MRD和PRD
MRD(market requirement document )和PRD(production requirement document)區分
http://hi.baidu.com/%D9%DC%D5%BC%BE%FD/blog/item/937c921603e2220c4a90a794.html 正確編寫PRD產品需求文檔 http://hi.baidu.com/wenlym%CD%E5/blog/item/8fff94ac81727d1c4b36d6db.html posted @ 2011-06-07 17:21 河馬虎 閱讀(318) | 評論 (0) | 編輯 收藏 需求分析誰來寫?很不錯的文章http://news.ccidnet.com/art/1032/20060829/884159_1.html posted @ 2011-03-16 14:30 河馬虎 閱讀(273) | 評論 (0) | 編輯 收藏 Java靜態檢測工具的簡單介紹轉自 http://qa.taobao.com/?p=9015 靜態檢查:靜態測試包括代碼檢查、靜態結構分析、代碼質量度量等。它可以由人 工進行,充分發揮人的邏輯思維優勢,也可以借助軟件工具自動進行。 代碼檢查代碼檢查包括代碼走查、桌面檢查、代碼審查等,主要檢查代碼和 設計的一致性, 代碼對標準的遵循、可讀性,代碼的邏輯表達的正確性,代 碼結構的合理性等方面;可以發現違背程序編寫標準的問題,程序中不安全、 不明確和模糊的部分,找出程序中不可移植部分、違背程序編程風格的問題, 包括變量檢查、命名和類型審查、程序邏輯審查、程序語法檢查和程序結構 檢查等內容。”。看了一系列的靜態代碼掃描或者叫靜態代碼分析工具后, 總結對工具的看法:靜態代碼掃描工具,和編譯器的某些功能其實是很相似的, 他們也需要詞法分析,語法分析,語意分析...但和編譯器不一樣的是他們可 以自定義各種各樣的復雜的規則去對代碼進行分析。 靜態檢測工具:
1)PMD是一個代碼檢查工具,它用于分析 Java 源代碼,找出潛在的 問題: 1)潛在的bug:空的try/catch/finally/switch語句 2)未使用的代碼:未使用的局部變量、參數、私有方法等 3)可選的代碼:String/StringBuffer的濫用 4)復雜的表達式:不必須的if語句、可以使用while循環完成的for循環 5)重復的代碼:拷貝/粘貼代碼意味著拷貝/粘貼bugs 2)PMD特點: 1)與其他分析工具不同的是,PMD通過靜態分析獲知代碼錯誤。也就是說,在 不運行Java程序的情況下報告錯誤。 2)PMD附帶了許多可以直接使用的規則,利用這些規則可以找出Java源程序的許 多問題 3)用戶還可以自己定義規則,檢查Java代碼是否符合某些特定的編碼規范。 3)同時,PMD已經與JDeveloper、Eclipse、jEdit、JBuilder、BlueJ、 CodeGuide、NetBeans、Sun JavaStudio Enterprise/Creator、 IntelliJ IDEA、TextPad、Maven、Ant、Gel、JCreator以及Emacs 集成在一起。 4)PMD規則是可以定制的: 可用的規則并不僅限于內置規則。您可以添加新規則: 可以通過編寫 Java 代碼并重新編譯 PDM,或者更簡單些,編寫 XPath 表 達式,它會針對每個 Java 類的抽象語法樹進行處理。 5)只使用PDM內置規則,PMD 也可以找到你代碼中的一些真正問題。某些問題可能 很小,但有些問題則可能很大。PMD 不可能找到每個 bug,你仍然需要做單元測 試和接受測試,在查找已知 bug 時,即使是 PMD 也無法替代一個好的調試器。 但是,PMD 確實可以幫助你發現未知的問題。
1)FindBugs是一個開源的靜態代碼分析工具,基于LGPL開源協議,無需 運行就能對代碼進行分析的工具。不注重style及format,注重檢測真正 的bug及潛在的性能問題 ,尤其注意了盡可能抑制誤檢測(false positives) 的發生。以bytecode(*.class、*.jar)為對象進行檢查。除了單獨動作,還可 以用作Eclipse 的plug-in,以及嵌入Ant作為task之一 進行利用。 2)findbugs自帶檢測器的介紹: findbugs自帶60余種Bad practice,80余種 Correntness,1種Internationalization,12種Malicious code vulnerability,27種Multithreaded correntness,23種Performance, 43種Dodgy。 3)Findbugs的一些特點: 1)FindBugs主要著眼于尋找代碼中的缺陷,這就與其他類似工具有些區別了, 直接操作類文件(class文件)而不是源代碼。 2)FindBugs可以通過命令行、各種構建工具(如Ant、Maven等)、獨立的 Swing GUI或是以Eclipse和NetBeans IDE插件的方式來運行。 3)FindBugs輸出結果既可以是XML的,也可以是文本形式的。 4)開發者可以通過多種方式來使用FindBugs,最常見的是在新編寫模塊的代碼 分析以及對現有代碼進行更大范圍的分析。 5)不注重style及format,注重檢測真正的bug及潛在的性能問題, 尤其注意了盡可能抑制誤檢測(false positives)的發生。 4)FindBugs可檢測的bug pattern舉例: 檢測java programing中容易陷入的bug pattern,equals() 實現時的一般規約違反 Null pointer的參照 ,Method的返回值的check遺漏 ,初始化前field的訪問, Multi-thread的正確性, 同期化處理的矛盾, 無條件的wait(), Code的脆弱性 , 可以變更的靜態object ,內部數列參照的return等
1)定義: Checkstyle是一款檢查Java程序源代碼樣式的工具。 2)特點: 1)它可以有效的幫助我們檢視代碼以便更好的遵循代碼編寫標準,特 別適用于小組開發時彼此間的樣式規范和統一。 2)Checkstyle提供了高可配置性,以便適用于各種代碼規范,所以 除了使用它提供的幾種常見標準之外,你也可以定制自己的標準。 3)Checkstyle提供了支持大多數常見IDE的插件,大部分插件中就含有 最新的Checkstyle,就不用費心再部署一份了。 4)Checkstyle可以檢查代碼的很多方面,從傳統觀點看,它主要是用來 檢查代碼層面的,自從第三版以后,它的內部架構作了重大改變,很多 其它意圖的檢測加了進來,現在Checkstyle可以檢查像類設計的問題, 重復代碼,如鎖的雙重檢查的bug模式。 3)CheckStyle的主要流程是: 1)對Java文件進行詞法語法分析,生成語法樹。 2)載入配置文件(checkstyle-metadata.xml以及自定義的配置文件) register check事件。 3)按照深度優先遍歷對語法樹進行解析,按照注冊的事件,在到達某些節點 ( AST ) 時進行style檢查(AST,A child-Sibling Tree,是語法 樹中的某個節點,其類型在TokenTypes類中定義。) 4)我們所說的自定義Style的檢查,就是在第二步設定的。 這里牽涉到一個叫com.puppycrawl.tools.checkstyle.api.Check 的類, 我們通常需要重載其中的兩個函數: public int[] getDefaultTokens() 和public void visitToken(DetailAST ast). 這兩個函數的含義為, 在遍歷語法樹的過程中,每當到達getDefaultTokens函數所返回的AST類型, 程序就進入visitToken進行具體的檢查和分析,即,真正的分析檢查過程是在 visitToken中實現的。
1)定義: Hammurapi它是一個開源的代碼審查/評審(review)工具。它可以幫助改進 Java代碼的質量。它可以基于一套設計規范來分析代碼庫。當它碰到違反規 范的地方,會在報告中標識。就像Checkstyle一樣,它與Ant無縫集成并且 由基于XML配置文件來驅動。 2)特點: 1)Hammurapi是用來強制代碼設計規范的。 2)Hammurapi是一個遵循設計的工具,提供了自動而且一致的方式來實現設計規范, 因此使代碼評審更加有效而輕松。 3)Hammurapi如何工作: Hammurapi這樣的代碼分析工具都帶有語言分析器。語言分析器是一種輸入 語言代碼并輸出抽象語法樹的工具。這個樹上的節點代表語言標識。例如,考 慮一下簡單的算術表達式:3+4. 語言分析器會解析他成為一個如圖5所示的語 法樹。在這個樹中,節點+代表操作符標識。節點3和4是操作數標識Hammurapi 使用ANTLR(另一個語言識別工具)作為語言分析器。然而ANTLR API是相當底層的。 為改善可用性,Hammurapi使用另一個API,基于ANTLR 的JSEL(Java源程序 工程類庫),來訪問抽象語法樹。 一旦樹構建完成,一種樹遍歷算法就被用來訪 問樹中每一個節點。每次訪問到一個節點,一種回調機制(Visitor模式)被用來 提示相應的檢查器。在這些回調方法中,檢查器收集相關的信息來確定是否有違反 規范的地方存在。
1)定義:Lint4J是一個針對Java的源代碼分析工具,它可以對Java源碼和字節 碼進行靜態分析,判斷其中是否存在死鎖、性能問題或者伸縮性問題。 它可以集成到任何IDE種或構建系統 2)特點: 1)檢測代碼語法規則 2)潛在的bug 3)檢測編碼模式對代碼可讀性及大小的影響 4)檢測是否違反EJB規范
1)定義:代碼質量管理工具Sonar提供了設計與架構度量。Sonar 2.0引入了 針對Java應用的設計分析、架構與面向對象的度量,Sonar 2.1可以 檢測到未使用的方法以及對不建議使用方法的調用。是一個集成了 CheckStyle,PMD,Findbugs的代碼校驗規則 ,重復代碼發現, 代碼測試覆蓋率, 代碼注釋率,及所有的檢測率變化追蹤的完美 代碼質量檢查工具。它包含了代碼質量檢測的七個方面,如下圖 2)特點: 1)代碼覆蓋:通過單元測試,將會顯示哪行代碼被選中。 2)改善編碼規則。 3)搜尋編碼規則:按照名字,插件,激活級別和類別進行查詢。 4)項目搜尋:按照項目的名字進行查詢。 5)對比數據:比較同一張表中的任何測量的趨勢。 6)單元測試 3)Sonar2.1: Sonar還基于Squid引入了一個全新的規則引擎、Sonar解析器既可以處 理源代碼,也可以處理字節碼,解析器帶有內建的規則,可以檢測未使用 的私有與保護方法以及客戶端對不建議使用的方法的調用。 Squid通過分析應用源代碼、Java API和外部程序庫 的字節碼來決定哪些方法、類和屬性是不建議使用的。 Sonar 2.1的新特性: 1)一個全新的“Libraries”頁面,顯示了項目中所有的程序庫和依賴,該特性要求使用 Maven來構建項目。 一旦在Sonar站點的主頁上選擇了一個項目,該服務就會以 可視化的樹形結構展示出項目依賴。此外,還有一個可選的 動態過濾器,可以根據名稱過濾程序庫以便在應用的依賴間導航。 2)用于搜索程序庫使用情況的“Dependencies”頁面。比如說,可以 搜索到使用了第三方框架如Commons Logging 1.1的所有項目。 3)可以使用各種插件擴展Sonar的功能。現在有一個全新的 “System Info”頁面顯示了系統屬性、已裝插件和Java虛擬機內存 統計信息。該頁面還給出了關于Sonar配置和數據庫統計的詳細信息。 4)一個用于管理已裝插件和系統信息的管理控制臺。 最新版的Sonar為這些插件引入了一個測試框架和一個客戶化的Maven 生命周期管理工具。它還帶有一個用于集成項目事件的 Web Service并在項目的size widget中增加了一個新的度量模塊。
1)JDepend一個開放源代碼的可以用來評價Java程序質量的優秀工具, 它遍歷Java class的文件目錄,以Java包(package)為 單位,為每一個包/類自動生成 包的依賴程度,穩定性,可靠度等 的評價報告,根據這些報告,我們可以得到包或類之間的依賴關 系,并分析出包的穩定程度,抽象程度,是否存在循環依耐關系等 。 可以根據JDepend給出的報告數據,分析出我們的包是否是 可靠的,穩定的,健壯的包,是否符合面向對象的設計原則。 2)特點: 1)評價設計質量 2)翻轉依賴性 3)支持并行開發和極限編程 4)獨立的發布模塊 5)識別package的循環依賴 3)Depend生成的Java包的質量評價報告主要包括: 1)Number of Classes and Interfaces:實現類與抽象接口的數目 2)Abstractness (A):包的抽象度。指一個包內包含的抽象類或接口 占整個包中的類的比重。 3)Afferent Couplings (Ca):向心耦合。依賴該包(包含的類)的外 部包(類)的數目(i.e. incoming dependencies),該數值越大, 說明該包的擔當的職責越大,也就越穩定。 4)Efferent Couplings (Ce):離心耦合。被該包依賴的外部包的數目 (i.e. outgoing dependencies),該數值越大, 說明該包越不獨 立(因為依賴了別的包),也越不穩定。 5)Instability (I):衡量一個包的不穩定程度。I=Ce/(Ce+Ca)。它的值處于 [0,1]之間。I=0時說明包是最穩定的,反之I=1則說明包極不穩定。 6)Distance from the Main Sequence (D): 該指標主要用來評價包的抽象 程度與穩定程度的平衡關系,它可以用二維直線圖 A + I = 1 來表示。 7)Package Dependency Cycles:包的循環依賴度。 8. IBM Checking Tool for Bugs Errors and Mistakes(簡稱BEAM) 1) 定義:是 IBM 開發的一個靜態分析工具,可以用于分析并查找出 C, C++ 和 Java 代碼中的一些不容易發現的潛在錯誤,從而達到提高代碼質量的目的。同動態 分析工具和其它靜態分析工具相比,它擁有一些可貴的特性。 2)特點: 1)對代碼進行語法掃描,通過算法對代碼進行檢查分析 2)和一些 bug 模式進行比較,最終標明問題區域,輸出分析結果 3)使用了額外的定理證明(theorem proving)技術來判斷一個潛在的錯誤是否 是真正的錯誤,從而減輕了程序員判斷錯誤真偽所需的工作量 9. LDRA Testbed 1)定義:LDRA Testbed為應用軟件的確認和驗證提供強大的源代碼測試和分析功能, 是獨特的質量控制工具。 它有助于提高計算機軟件必需的可靠性,健壯性和盡 可能的零缺陷,它的使用帶來時間、成本和效率上真實的節省,這些都是無法衡 量其價值的。它是強大和完整的集成工具包,使先進的軟件分析技術應用在開發生 命周期的關鍵階段。 2)LDRA Testbed提供強大的分析功能,用于兩個主要的測試領域,靜態分析和動態分析。 1)靜態分析: 分析代碼,并且提供對代碼結構的理解。 2)動態分析: 利用源代碼的插裝版本,使用測試數據執行,在運行時發現軟件 缺陷 3) 使用LDRA testbed 的好處 軟件開發和測試過程的成本效率分析工具 單元、集成和系統測試的理想工具 貫穿于軟件開發的整個生命周期 LDRA Testbed應用于許多不同的領域 過程改進 軟件測試 軟件維護 LDRA Testbed的優點: 改進軟件質量 定位軟件缺陷 強制執行工業標準 減少維護費用40%以上 減少開發和測試成本75%以上 通過自動化過程提高員工動力 10. Yasca 1) 定義:yasca是一個開源靜態代碼分析工具插件框架, 集成流行的多語言靜態分析工 具如findbugs/pmd/jlint/rats/cppcheck,由于插件本身多樣故可支持java c++等語言靜態分析.Yasca是一個用來尋找安全漏洞,在程序的源代碼中檢測代 碼質量、性能以及一致性的軟件。它集成了其他開源項目,其中包括FindBugs PMD ,JLint , Cppcheck ,并掃描某些文件類型,以及自定義掃描書面的 Yasca 這是一個命令行工具,與報告中生成的HTML , CSV格式, XML的,的 SQLite ,和其他格式。 posted @ 2011-03-01 17:12 河馬虎 閱讀(2116) | 評論 (1) | 編輯 收藏 Servlet 工作原理解析
Servlet 工作原理解析
http://www.ibm.com/developerworks/cn/java/j-lo-servlet/ posted @ 2011-02-26 09:47 河馬虎 閱讀(365) | 評論 (0) | 編輯 收藏 JAVA操作WORD EXECEL PDF等文檔
http://danadler.com/jacob/
http://jakarta.apache.org/poi/ http://www.onjava.com/pub/a/onjava/2003/01/22/poi.html http://www.csdn.net/develop/article/15/15311.shtm http://forum.java.sun.com/thread.jsp?forum=40&thread=382666&tstart=0&trange=15 Java Excel API 文檔 posted @ 2011-01-07 10:47 河馬虎 閱讀(276) | 評論 (0) | 編輯 收藏 界面設計總結
界面設計時應考慮幾個問題;
1、界面的布局一定要合理,首先根據應用行業和業務特點,把整個界面切成幾個大塊,每個塊的承擔的功能或者任務一定要明確。 2、界面的可不配置化,通過界面的可配置化來屏蔽或者啟用一些功能。如果你做的產品或系統被用到同行業的許多項目現場,十幾個或者幾十個項目現場,那么在界面設計時候就一定要考慮到界面的可配置化。作為特定行業產品或者系統一般都實現了行業的核心的共性功能,但多個項目現場會提出自己本地化或者個性化的需求,在只有一個開發團隊維護一個版本情況下,盡量在界面設計的時候,實現界面可配置化,這樣A項目現場的本地化需求就不會擴散到B項目的現場,這樣有效的控制的需求擴散。另外,產品在不同的產品現場銷售或者客戶的時候,通過界面的可配置化來屏蔽非本地化的功能,避免無償將系統功能提供給客戶。 3、界面客戶配置化,在實現的時候一定要考慮到性能問題,一般為了界面實現可配置,界面是動態生成的,如果界面生成的配置參數放在數據庫,那么在系統參與者很多的情況先,界面生成就會很慢,可以考慮將界面配置參數存放在文件中, 4、對于界面配置參數文件存放位置,界面配置參數文件一般不要放在客戶機上,這樣在客戶端更新的時候,有可能覆蓋了以前的界面配置參數文件, 因此,界面配置參數文件可存放在應用服務器上(例如部署tomcat或者JBOSS服務器上),工程人員或者系統維護人員在系統升級之后,更新該界面配置參數文件, 客戶端在啟動的時候,從應用服務器上統一讀取,這樣保持了各個客戶端的一致性和可配置性。 5、界面可配置化的程度問題,界面上大塊要可配置、數據項或者指標項也要實現可配置。因為不同的項目現場會對大的功能有不同的要求甚至對數據項也有不同的要求。 以上界面設計經驗適用于,一個研發團隊開發一個產品部署到各個客戶現場的情況。如果是小的項目或者各個現場本地化要求不多的,則不適用。 posted @ 2011-01-07 09:51 河馬虎 閱讀(673) | 評論 (0) | 編輯 收藏 java 基礎知識
struts是一個很好的開源項目,它所涉及到的技術在這個頁面基本列出。也是java的基本技術。
http://struts.apache.org/primer.html posted @ 2010-10-20 17:35 河馬虎 閱讀(234) | 評論 (0) | 編輯 收藏 java jdk & java api 幫助文檔(中文、英文版) java api 幫助文檔 chm 1.5 1.6 中文版英文版. 收藏 JDK1.5API中文版(全) 相關網站 本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/zhsp1029/archive/2008/04/05/2253865.aspx posted @ 2010-06-17 08:53 河馬虎 閱讀(11966) | 評論 (1) | 編輯 收藏 Java 類加載器
類加載器(class loader)是 Java™ 中的一個很重要的概念。類加載器負責加載 Java 類的字節代碼到 Java 虛擬機中。
http://www.ibm.com/developerworks/cn/java/j-lo-classloader/index.html posted @ 2010-06-09 17:27 河馬虎 閱讀(281) | 評論 (0) | 編輯 收藏 Use Case 中 include 與 extend 的區別
Use Case 中 include 與 extend 的區別:
http://wakan.blog.51cto.com/59583/7222 例如打印用例 就可以提取出來,作為被包含(include)的用例 通知用戶用例可以作為基礎用例,那么e-mail通知用戶用例或者短信通知用戶用例就是2個擴展(extends)的子用例 posted @ 2010-06-07 15:37 河馬虎 閱讀(785) | 評論 (0) | 編輯 收藏 Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實例詳解
Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實例詳解
http://bolo.blogjava.net/ posted @ 2010-06-02 17:03 河馬虎 閱讀(274) | 評論 (0) | 編輯 收藏 依賴注入DI
什么是依賴注入
http://blog.csdn.net/taijianyu/archive/2008/04/28/2338311.aspx 深度理解依賴注入(Dependence Injection) http://www.cnblogs.com/xingyukun/archive/2007/10/20/931331.html Inversion of Control Containers and the Dependency Injection pattern http://www.martinfowler.com/articles/injection.html posted @ 2010-05-27 13:32 河馬虎 閱讀(181) | 評論 (0) | 編輯 收藏 J2EE Patterns Catalog
從J2EE藍圖模式分類http://java.sun.com/blueprints/patterns/catalog.html中就可以很清楚的看到J2EE這樣一個框架軟件的架構與設計模式的關系
posted @ 2010-04-26 15:31 河馬虎 閱讀(197) | 評論 (0) | 編輯 收藏 WLAN中的VLAN劃分方法VLAN的好處在于有效地限制了L2的廣播域。對于有線網絡,常見的VLAN劃分方法包括基于交換機端口的劃分、基于MAC地址的劃分、基于L3的IP劃分以及基于802.1x的安全憑證劃分等,這方面的資料比較多,支持的產品也很多,應用很成熟。 但對于WLAN,該如何劃分VLAN呢? WLAN的網絡結構基本單位是BSS。BSS有兩種形態:獨立基礎結構(IBSS,也叫自組網Adhoc)和基礎結構Infrastructure。自組網就是多個站點自發組成一個可以互通的WLAN,而基礎結構模式則以AP為中心,其它站點都先與AP關聯,然后才能與BSS中的其它站點進行通信。以下所提到的BSS僅指基礎結構。 WLAN中的VLAN劃分必須要有AP的支持。每一個VLAN由一個VLAN ID來標示,因此以什么作為VLAN ID的依據,決定了VLAN在哪個層次劃分。根據VLAN與BSS的關系,WLAN中的VLAN劃分有幾種情況。 1. 以MAC層依據作為VLAN ID 一個AP至少可以組建一個BSS,而且不少實際的產品還支持同時虛擬出多個BSS,每個BSS擁有不同的BSSID。對于每個BSS,一些AP產品還可以同時支持多個SSID,不同的SSID共享大部分的BSS配置和Radio接口配置,可以有少部分配置不一樣(比如密鑰)。 1.1 以SSID或BSSID為劃分依據 一種容易實現的VLAN劃分方法就是以SSID為劃分依據,每個SSID對應一個VLAN ID。這種劃分依據完全來自于802.11 MAC層的SSID,因此可以完全在AP內部實現。根據AP對多SSID支持情況的不同,具體情況又有所不同。 1.1.1 AP支持多個BSS,每個BSS又支持多個SSID 這種情況下按照SSID來劃分VLAN,所有連接到該SSID的站點都屬于同一個VLAN。每個SSID提供給STATION的接入端口均為VLAN的Access端口,是不帶tag的端口。 由于一個BSS內有多個SSID,因此一個BSS內就會有多個VLAN。由于這些SSID均屬于同一BSS,因此如果位于兩個VLAN內的STATION要通信,只需要經過AP內部的轉發橋接即可。 1.1.2 AP僅支持一個BSS,每個BSS支持多SSID 這種情況下按照SSID來劃分VLAN,跟上面的情況類似。 1.1.3 AP支持多個BSS,每個BSS僅支持一個SSID 這種情況下SSID與BSSID一一對應,因此根據SSID來劃分VLAN與根據BSSID來劃分是一樣的。這種情況下屬于同一個BSS的站點屬于同一個VLAN,位于兩個VLAN內的STATION要通信,只需要經過AP內部的轉發橋接即可也僅僅需要AP內部的轉發。 1.1.4 AP僅支持BSS,每個BSS僅支持一個SSID 這種情況下如果按照SSID或BSSID來劃分VLAN,則整個BSS均屬于同一VLAN。由于不存在多個VLAN,因此不存在VLAN互通的問題。 可見,如果在同一AP內部劃分不同的VLAN,那么這些VLAN間的互通僅需要AP內部的MAC橋接即可實現,而不需要將數據交到更高層進行轉發或橋接。 1.2 以MAC地址為劃分依據 這種情況根據STATION的MAC地址在BSS內劃分VLAN。AP根據從STATION發來的幀中的源地址決定該STATION所屬的VLAN,從而可以保證同一VLAN的互通和不同VLAN的橋接。 上面的兩種劃分均是以802.11 MAC層的信息作為VLAN ID的劃分依據,因此同一VLAN內部的轉發和不同VLAN之間的橋接均可在AP內部實現,而不需要分發。 在上面的兩種情況下,在AP內部只需要維護兩張表即可:一張表是VLAN ID與VLAN依據(SSID/BSSID或MAC地址)之間的對應表,另一張表示VLAN ID與VLAN接口之間的對應表。Access端口上的數據收發情況如下: 進入Access端口的數據:可以不帶tag。如果需要分發到AP外(目的地址不是BSSID且不是任何BSS中的其它站點),則加上tag通過分發接口分發;如果不需要分發到AP外,則有幾種情況: DA為BSSID,則由AP接收并處理; 這種劃分的缺點僅適合于較小的網絡,靈活性較差。比如,無法實現跨AP的VLAN,也就是連接到不同AP的兩個STATION無法劃分到同一個VLAN。 2. 動態VLAN劃分方式 動態劃分方式并不由AP來決定VLAN ID,而是由其它更高級的設備來決定。一種方法是由RADIUS服務器來劃分。當一個STATION與AP關聯時,AP中的RADIUS客戶端與RADIUS服務器進行通信,從而得到該STATION所屬的VLAN ID。RADIUS決定STATION服務器所屬VLAN的依據可以是用戶名、IP地址等,因此具有很大的靈活性。當用戶的位置改變后,他所屬的VLAN仍然不變。 采用動態VLAN方式后,同一個AP的同一個SSID中的兩個STATION可能屬于不同的VLAN,而連接到兩個不同AP中的STATION卻可能屬于同一VLAN。因此這種情況下,要實現同一VLAN中不同STATION之間的互通,需要更高層的轉發和橋接,可能需要經過位于WDS接口或以太網DS接口等接口之上的VLAN trunk、hybrid端口。
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/rangzh/archive/2008/07/02/2606778.aspx posted @ 2010-04-21 14:44 河馬虎 閱讀(2367) | 評論 (0) | 編輯 收藏 需求分析--從用例到代碼從用例到代碼, 第一部分: 用例分析http://www.ibm.com/developerworks/cn/rational/rationaledge/content/mar05/5383/index.html#N1083A 從用例到代碼,第二部分:用例設計http://www.ibm.com/developerworks/cn/rational/rationaledge/content/mar05/5670/posted @ 2010-03-30 21:02 河馬虎 閱讀(369) | 評論 (0) | 編輯 收藏 需求調研步驟和方法
參考:http://www.ibm.com/developerworks/cn/java/l-anareq/
目的 需求調研是為需要說明書做前期工作,可以說需要說明書說是從需求調研表中得到或抽取而出。 需求調研是要了解現實世界中做實際工作的人們真正需要什么樣的程序的過程,再把這些需求開進細節整理由設計部開發,再由銷售部銷售給用戶。 用戶:系統分析人員
一定建立一個專門的設計環境來為本項目服務,進行一定的資源分配,進行必要的文件管理。
注意:
最初的第一次需求在分析,細化一定有不明及不確定之處,那么就把整理出一份問題細化問詢表,對發現的問題進行整理,列出不明之處,可根椐以下格式
posted @ 2010-03-30 20:32 河馬虎 閱讀(7999) | 評論 (0) | 編輯 收藏 需求調研軟件項目需求調研總結 : posted @ 2010-03-03 11:36 河馬虎 閱讀(163) | 評論 (0) | 編輯 收藏 產品設計posted @ 2010-01-23 17:22 河馬虎 閱讀(205) | 評論 (0) | 編輯 收藏 Robert Eckstein blogRobert Eckstein blog ( mvc) http://www.java.net/blog/105271 posted @ 2010-01-15 11:19 河馬虎 閱讀(236) | 評論 (0) | 編輯 收藏 MVCGET and POST HTTP requests. Depending on the context, a controller may also select a new view -- for example, a web page of results -- to present back to the user. 1 MVC explain from Sun http://java.sun.com/blueprints/patterns/MVC-detailed.html 2 Java SE Application Design With MVC http://java.sun.com/developer/technicalArticles/javase/mvc/ 3 Applying MVC http://www.javadude.com/articles/vaddmvc1/mvc1.htm 4 good sample http://leepoint.net/notes-java/GUI/structure/40mvc.html 5 MVC design posted @ 2010-01-14 15:04 河馬虎 閱讀(182) | 評論 (0) | 編輯 收藏 分析Eclipse源代碼,理解OSGI插件機制內幕(轉)
http://blog.csdn.net/gonxi/archive/2006/02/26/610146.aspx
posted @ 2009-12-30 12:11 河馬虎 閱讀(193) | 評論 (0) | 編輯 收藏 體系結構方面
關于體系結構方面,目前國內已經有很多人闡述過。
http://blog.csdn.net/computer286/archive/2005/11/17/531408.aspx http://www.aygfsteel.com/BlueDavy/archive/2005/07/03/7069.aspx SharpDevelop的AddIn機制 http://passos.cnblogs.com/archive/2004/10/04/48950.aspx Jboss的JMX機制等 posted @ 2009-12-30 10:38 河馬虎 閱讀(169) | 評論 (0) | 編輯 收藏 birt ----- report tool
1、 http://www.eclipse.org/birt/ 大概了解個網站導航
內容包括:introduction(簡介) , download(下載),install(安裝指南) , tutorial(教程),faq等 2、下載,到http://download.eclipse.org/birt/downloads/ 可以一一下載 該工具做中國式報表很不錯 posted @ 2009-12-30 09:59 河馬虎 閱讀(190) | 評論 (0) | 編輯 收藏 如何做需求?需求要做的事情: posted @ 2009-12-30 09:41 河馬虎 閱讀(178) | 評論 (0) | 編輯 收藏 一個美國老工程師的心理話: 給年輕工程師的十大忠告一個美國老工程師的心理話: 給年輕工程師的十大忠告[1]好好規劃自己的路,不要跟著感覺走!根據個人的理想決策安排,絕大部分人并不指望成為什么院 [2]可以做技術,切不可沉湎于技術。千萬不可一門心思鉆研技術!給自己很大壓力,如果你的心思全 [3]不要去做技術高手,只去做綜合素質高手!在企業里混,我們時常瞧不起某人,說他“什么都不 [4]多交社會三教九流的朋友!不要只和工程師交往,認為有共同語言,其實更重要的是和其他類人物 [5]知識涉獵不一定專,但一定要廣!多看看其他方面的書,金融,財會,進出口,稅務,法律等 [6]抓住時機向技術管理或市場銷售方面的轉變!要想有前途就不能一直搞開發,適當時候要轉變為管 [7]逐漸克服自己的心里弱點和性格缺陷!多疑,敏感,天真(貶義,并不可愛),猶豫不決,膽怯, [8]工作的同時要為以后做準備!建立自己的工作環境!及早為自己配置一個工作環境,裝備電腦,示 [9]要學會善于推銷自己!不僅要能干,還要能說,能寫,善于利用一切機會推銷自己,樹立自己的品 [10]該出手時便出手!永遠不可能有100%把握!!!條件差不多就要大膽去干,去闖出自己的事業,不 posted @ 2009-12-24 11:27 河馬虎 閱讀(208) | 評論 (0) | 編輯 收藏 hibernate use Websphere datasource
reference url:
http://www.ibm.com/developerworks/websphere/techjournal/0609_alcott/0609_alcott.html when webSphere application server startup, hibernate uses WebSphere datasource. step by step: 1 coding statup constom service import javax.management.Notification; import javax.management.NotificationFilterSupport; import javax.management.NotificationListener; import javax.management.ObjectName; public class WebsphereStartup implements CustomService,NotificationListener { public void initialize(Properties arg0) throws Exception { NotificationFilterSupport filter = new NotificationFilterSupport(); filter.enableType(NotificationConstants.TYPE_J2EE_STATE_RUNNING); ObjectName target = new ObjectName("WebSphere:*,type=Server"); AdminServiceFactory.getAdminService().addNotificationListenerExtended( target, this, filter, null); } public void shutdown() throws Exception { // When was shutdown, this method is executed } public void handleNotification(Notification notification, Object handback) { // write init code here init(); } } 2 modify hibernate config file hibernate.cfg.xml posted @ 2009-12-18 09:19 河馬虎 閱讀(552) | 評論 (0) | 編輯 收藏 WebSphere訪問操作系統中文件 權限問題
參考:
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/index.jsp?topic=/com.ibm.websphere.express.doc/info/exp/ae/rsec_serverpolicy.html 錯誤信息(在Systemout.Log文件中) java.security.AccessControlException: Access denied (java.io.FilePermission 解決方法 修改 server.policy 文件,在 install_root/properties/server.policy 中找到此文件。此文件包含這些缺省許可權: // Allow to use ibm jdk extensions grant codeBase "file:${was.install.root}/java/ext/-" { permission java.security.AllPermission; }; // Allow to use ibm tools grant codeBase "file:${was.install.root}/java/tools/ibmtools.jar" { permission java.security.AllPermission; }; // Allow to use sun tools grant codeBase "file:/QIBM/ProdData/Java400/jdk14/lib/tools.jar" { permission java.security.AllPermission; }; // Allow to use sun tools (V5R2M0 codebase) grant codeBase "file:/QIBM/ProdData/OS400/Java400/jdk/lib/tools.jar" { permission java.security.AllPermission; }; // WebSphere system classes grant codeBase "file:${was.install.root}/plugins/-" { permission java.security.AllPermission; }; grant codeBase "file:${was.install.root}/lib/-" { permission java.security.AllPermission; }; grant codeBase "file:${was.install.root}/classes/-" { permission java.security.AllPermission; }; // Allow the WebSphere deploy tool all permissions grant codeBase "file:${was.install.root}/deploytool/-" { permission java.security.AllPermission; }; // Allow the WebSphere deploy tool all permissions grant codeBase "file:${was.install.root}/optionalLibraries/-" { permission java.security.AllPermission; }; // Allow Channel Framework classes all permission grant codeBase "file:${was.install.root}/installedChannels/-" { permission java.security.AllPermission; }; grant codeBase "file:${user.install.root}/lib/-" { permission java.security.AllPermission; }; grant codeBase "file:${user.install.root}/classes/-" { permission java.security.AllPermission; }; 如果節點上有一些服務器程序需要許可權,而這些許可權在 server.policy 文件和 server.policy 文件中未定義為缺省值,那么更新 server.policy 文件。缺少許可權將創建 java.security.AccessControlException 異常。缺少的許可權在異常數據中列示。 posted @ 2009-12-09 17:04 河馬虎 閱讀(1441) | 評論 (0) | 編輯 收藏 startup class interface of tomcat \jboss \ webSphere
1 startup class on jboss
MBeanRegistration or ServiceMBeanSupport 和ServiceMBean 2 startup class on Websphere customService interface (need com.ibm.ws.runtime.jar ) 3 startup class on tomcat ServletContextListener interface posted @ 2009-12-02 16:23 河馬虎 閱讀(242) | 評論 (0) | 編輯 收藏 JDK配置
1 因為是默認安裝,所以JDK1.5是安裝在C:\Program Files\Java\jdk1.5.0里了。現在為三個變量設值;
新建 JAVA_HOME 設值 C:\Program Files\Java\jdk1.5.0 新建 CLASSPATH 設值 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar 編輯 PATH 設值 ;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin 注意事項: 配置JAVA_HOME變量的作用:JAVA_HOME路徑下包括lib,bin,jre等文件夾,以后配tomcat,eclipse等java開發軟件可能需要依賴此變量。 在設置系統變量Path(系統已經有),要注意前面的分號“;”,配置Path的作用:Path使系統可以在任何路徑下識別java命令。 在設置系統變量CLASSPATH時,要注意前面的注意前面的“.;”,配置CLASSPATH變量的作用: 為系統指明java加載類(class or lib)的路徑,只有類在classpath中,java命令才能識別,其中,%JAVA_HOME%就是引用前面指定的JAVA_HOME。 用戶變量的設置必須注銷重登錄后才起作用,但是當本次配置中所有環境變量都是系統變量,而設置系統變量的則不用。 2. 測試JDK1.5的環境變量是否配置成功。 “開始”->“運行”,鍵入“cmd”進入命令提示符下,鍵入命令“java -version”,出現如下信息,說明環境變量配置成功: java version "1.5.0" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-b64) Java HotSpot(TM) Client VM (build 1.5.0-b64, mixed mode, sharing) 3. 用一個小程序測試JDK1.5是否能成功運行JAVA程序。 現在我們編輯一個java小程序,然后進行測試。現在我們就直接在C盤建一個“Hello.java”的文件吧,并記事本打開它,在它里面輸入如下代碼: posted @ 2009-11-02 11:48 河馬虎 閱讀(132) | 評論 (0) | 編輯 收藏 英語口語100句
Any day will do? 哪一天都可以?
Are you by yourself? 你一個人來嗎?
Any messages for me? 有我的留言嗎?
All right with you? 你沒有問題吧?
Are you free tomorrow? 明天有空嗎?
Are you kidding me? 你在跟我開玩笑吧?
As soon as possible! 盡可能快!
Back in a moment! 馬上回來!
Believe it or not! 信不信由你!
Better luck next time! 下次會更好!
Boy will be boys 本性難移!
Come to the point! 有話直說!
Do you accept plastic? 收不收行用卡?
Does it keep long? 可以保存嗎?
Dont be so fussy! 別挑剔了!
Dont count to me! 別指望我!
Dont fall for it! 不要上當!
Dont get me wrong! 你搞錯了!
Dont give me that! 少來這套!
Dont let me down! 別讓我失望!
Dont lose your head! 別樂昏了頭!
Dont over do it! 別做過頭了!
Dont sit there daydreaming! 別閑著做白日夢!
Dont stand on ceremony! 別太拘束!
Drop me a line! 要寫信給我!
Easy come easy go! 來得容易去得也快!
First come first served! 先到先得!
Get a move on! 快點吧!
Get off my back! 不要嘲笑我!
Give him the works! 給他點教訓!
Give me a break! 饒了我吧!
Give me a hand! 幫我一個忙!
Great minds think alike! 英雄所見略同!
Ill treat you to lunch. 午餐我請你!
In one ear, out the other ear. 一耳進,一耳出!
Im spaced-out! 我開小差了!
I beg your pardon! 請你再說一遍!
I cant afford that! 我付不起!
I cant follow you! 我不懂你說的!
I cant help it! 我情不自禁!
I couldnt reach him! 我聯絡不上他!
I cross my heart! 我發誓是真的!
I dont mean it! 我不是故意的!
I feel very miserable! 我好沮喪! I have no choice! 我別無選擇了!
I watch my money! 視財如命!
Ill be in touch! 保持聯絡!
Ill check it out! 我去看看!
Ill show you around! 我帶你四處逛逛!
Ill see to it! 我會留意的!
Im crazy for you! 我為你瘋狂!
You make me jump! 你嚇了我一跳!
Make up your mind. 作個決定吧!
Make yourself at home! 就當在家一樣!
My mouth is watering! 我要流口水了!
Never heard of it! 沒聽說過!
Nice talking to you! 很高興和你聊天!
No doubt about it! 勿庸置疑!
No pain no gain! 不經一事,不長一智!
None of your business! 要你管?
There is nothing on your business! 這沒你的事!
Now you are really talking! 說得對!
Please dont rush me! 請不要吹促我!
Please keep me informed! 請一定要通知我
She looks blue today. 她今天很憂郁! She is under the weather. 她心情不好!
So far, so good. 過得去。
Speaking of the devil! 一說曹操,曹操就到!
Stay away from me! 離我遠一點!
Stay on the ball! 集中注意力!
That makes no difference. 不都一樣嗎?
Thats a touchy issue! 這是個辣手得問題!
Thats always the case! 習以為常!
Thats going too far! 這太離譜了!
Thats more like that! 這才象話嘛!
The answer is zero! 白忙了!
The dice is cast! 已成定局了!
The same as usual! 一如既往!
The walls have ears! 隔墻有耳!
There you go again! 你又來了!
Time is running out! 沒有時間了!
We better get going! 最好馬上就走!
Well discuss it later! 回頭再說吧!
Well find out shortly! 我們很快就知道了!
We are all for it! 我們全都贊成!
Weve been expecting you! 我們正等著你呢!
What a good deal! 真便宜!
What a let down! 真令人失望!
What do you figure? 你有什么想法?
What happened to you? 你怎么了?
What should I do? 我應該怎樣做?
Whats would you recommend? 你有何意見?
posted @ 2009-10-30 15:55 河馬虎 閱讀(160) | 評論 (0) | 編輯 收藏 JDIC-JDesktop Integration Components (JDIC)JDIC-JDesktop Integration Components (JDIC)JDIC主頁:
http://javadesktop.org/articles/jdic/index.html JDIC作用: posted @ 2009-10-27 08:40 河馬虎 閱讀(140) | 評論 (0) | 編輯 收藏 用JAVA實現捕獲和發送網絡數據包Jpcap is a Java library for capturing and sending network packets. Using Jpcap, you can develop applications to capture packets from a network interface and visualize/analyze them in Java. You can also develop Java applications to send arbitrary packets through a network interface.
posted @ 2009-10-27 08:35 河馬虎 閱讀(743) | 評論 (0) | 編輯 收藏 |
||||||||||