<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 34, 文章 - 1, 評論 - 2, 引用 - 0
    數據加載中……

    2009年11月24日

    產品經理編寫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 河馬虎 閱讀(315) | 評論 (0)編輯 收藏

    需求分析誰來寫?很不錯的文章


    http://news.ccidnet.com/art/1032/20060829/884159_1.html

    posted @ 2011-03-16 14:30 河馬虎 閱讀(269) | 評論 (0)編輯 收藏

    Java靜態檢測工具的簡單介紹


    轉自
    http://qa.taobao.com/?p=9015

    靜態檢查:靜態測試包括代碼檢查、靜態結構分析、代碼質量度量等。它可以由人
            工進行,充分發揮人的邏輯思維優勢,也可以借助軟件工具自動進行。
            代碼檢查代碼檢查包括代碼走查、桌面檢查、代碼審查等,主要檢查代碼和
            設計的一致性, 代碼對標準的遵循、可讀性,代碼的邏輯表達的正確性,代
            碼結構的合理性等方面;可以發現違背程序編寫標準的問題,程序中不安全、
            不明確和模糊的部分,找出程序中不可移植部分、違背程序編程風格的問題,
            包括變量檢查、命名和類型審查、程序邏輯審查、程序語法檢查和程序結構
            檢查等內容。”。看了一系列的靜態代碼掃描或者叫靜態代碼分析工具后,
            總結對工具的看法:靜態代碼掃描工具,和編譯器的某些功能其實是很相似的,
            他們也需要詞法分析,語法分析,語意分析...但和編譯器不一樣的是他們可
            以自定義各種各樣的復雜的規則去對代碼進行分析。

    靜態檢測工具:
    1. PMD
         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
         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
         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
         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
         1)定義:Lint4J是一個針對Java的源代碼分析工具,它可以對Java源碼和字節
    碼進行靜態分析,判斷其中是否存在死鎖、性能問題或者伸縮性問題。
    它可以集成到任何IDE種或構建系統
    2)特點:
    1)檢測代碼語法規則
    2)潛在的bug
    3)檢測編碼模式對代碼可讀性及大小的影響
    4)檢測是否違反EJB規范
    
    1. Sonar
         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
         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 河馬虎 閱讀(2111) | 評論 (1)編輯 收藏

    Servlet 工作原理解析

    Servlet 工作原理解析
    http://www.ibm.com/developerworks/cn/java/j-lo-servlet/

    posted @ 2011-02-26 09:47 河馬虎 閱讀(358) | 評論 (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 文檔

      http://www.andykhan.com/jexcelapi/

    posted @ 2011-01-07 10:47 河馬虎 閱讀(272) | 評論 (0)編輯 收藏

    界面設計總結

    界面設計時應考慮幾個問題;

    1、界面的布局一定要合理,首先根據應用行業和業務特點,把整個界面切成幾個大塊,每個塊的承擔的功能或者任務一定要明確。

    2、界面的可不配置化,通過界面的可配置化來屏蔽或者啟用一些功能。如果你做的產品或系統被用到同行業的許多項目現場,十幾個或者幾十個項目現場,那么在界面設計時候就一定要考慮到界面的可配置化。作為特定行業產品或者系統一般都實現了行業的核心的共性功能,但多個項目現場會提出自己本地化或者個性化的需求,在只有一個開發團隊維護一個版本情況下,盡量在界面設計的時候,實現界面可配置化,這樣A項目現場的本地化需求就不會擴散到B項目的現場,這樣有效的控制的需求擴散。另外,產品在不同的產品現場銷售或者客戶的時候,通過界面的可配置化來屏蔽非本地化的功能,避免無償將系統功能提供給客戶。

    3、界面客戶配置化,在實現的時候一定要考慮到性能問題,一般為了界面實現可配置,界面是動態生成的,如果界面生成的配置參數放在數據庫,那么在系統參與者很多的情況先,界面生成就會很慢,可以考慮將界面配置參數存放在文件中,
     
    4、對于界面配置參數文件存放位置,界面配置參數文件一般不要放在客戶機上,這樣在客戶端更新的時候,有可能覆蓋了以前的界面配置參數文件,  因此,界面配置參數文件可存放在應用服務器上(例如部署tomcat或者JBOSS服務器上),工程人員或者系統維護人員在系統升級之后,更新該界面配置參數文件, 客戶端在啟動的時候,從應用服務器上統一讀取,這樣保持了各個客戶端的一致性和可配置性。

    5、界面可配置化的程度問題,界面上大塊要可配置、數據項或者指標項也要實現可配置。因為不同的項目現場會對大的功能有不同的要求甚至對數據項也有不同的要求。


    以上界面設計經驗適用于,一個研發團隊開發一個產品部署到各個客戶現場的情況。如果是小的項目或者各個現場本地化要求不多的,則不適用。

    posted @ 2011-01-07 09:51 河馬虎 閱讀(669) | 評論 (0)編輯 收藏

    java 基礎知識

    struts是一個很好的開源項目,它所涉及到的技術在這個頁面基本列出。也是java的基本技術。

    http://struts.apache.org/primer.html

    posted @ 2010-10-20 17:35 河馬虎 閱讀(230) | 評論 (0)編輯 收藏

    java jdk & java api 幫助文檔(中文、英文版)

      java api 幫助文檔 chm 1.5 1.6 中文版英文版. 收藏
    Sun 公司提供的Java API Docs是學習和使用Java語言中最經常使用的參考資料之一。但是長期以來此文檔只有英文版,對于中國地區的Java開發者來說相當的不便。目前Sun 公司正在組織多方力量將此文檔翻譯成中文,并于2005年10月31日在Sun 中國技術社區(http://gceclub.sun.com.cn/)正式發布第一批中文版Java API文檔(包括java.lang和java.util類庫API 文檔的中文版)。經過將近10個月的努力,目前我們已經將Java SE 5.0的全部API文檔中文化。開發人員可以通過Sun 中國技術社區的網站在線瀏覽相關文檔,也可以將全部文檔下載到本地以方便檢索和使用。
    J2SE DK & API下載
    -------------------------
    http://java.sun.com/j2se/1.3/download.html
    http://java.sun.com/j2se/1.4.2/download.html
    http://java.sun.com/javase/downloads/index_jdk5.jsp
    http://java.sun.com/javase/downloads/index.jsp
    J2EE DK & API下載 
    -------------------------
    http://java.sun.com/j2ee/1.3/index.jsp
    http://java.sun.com/j2ee/1.3/download.html
    http://java.sun.com/j2ee/1.4/index.jsp
    http://java.sun.com/j2ee/1.4/download.html
    http://java.sun.com/javaee/downloads/index.jsp
    JDK1.6API中文版(全)
    -------------------------
    * HTML 格式(在線英文) http://java.sun.com/javase/6/docs/
    * HTML 格式(在線中文) http://download.java.net/jdk/jdk-api-localizations/jdk-api-zh-cn/publish/1.6.0/html/zh_CN/api/index.html
    * zip 格式(中文) http://download.java.net/jdk/jdk-api-localizations/jdk-api-zh-cn/publish/1.6.0/html_zh_CN.zip
    * CHM 格式(中文)  http://download.java.net/jdk/jdk-api-localizations/jdk-api-zh-cn/publish/1.6.0/chm/JDK_API_1_6_zh_CN.CHM

    JDK1.5API中文版(全)
    -------------------------
    * HTML 格式(在線英文) http://java.sun.com/javase/5/docs/
    * HTML 格式(在線中文)  http://gceclub.sun.com.cn/Java_Docs/html/zh_CN/api/index.html
    * zip 格式(中文) http://gceclub.sun.com.cn/Java_Docs/html_zh_CN.zip
    * CHM 格式(中文) http://download.java.net/jdk/jdk-api-localizations/jdk-api-zh-cn/builds/JDK_API_1_5_zh_CN.CHM

    相關網站
    -------------------------
    http://java.sun.com
    http://gceclub.sun.com.cn/
    http://developers.sun.com/downloads/
    http://java.sun.com/javaee/downloads/
    http://java.sun.com/javase/downloads/
    http://www.netbeans.info/downloads/
     

    本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/zhsp1029/archive/2008/04/05/2253865.aspx

    posted @ 2010-06-17 08:53 河馬虎 閱讀(11953) | 評論 (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 河馬虎 閱讀(278) | 評論 (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 河馬虎 閱讀(779) | 評論 (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 河馬虎 閱讀(272) | 評論 (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 河馬虎 閱讀(178) | 評論 (0)編輯 收藏

    J2EE Patterns Catalog

    從J2EE藍圖模式分類http://java.sun.com/blueprints/patterns/catalog.html中就可以很清楚的看到J2EE這樣一個框架軟件的架構與設計模式的關系

    posted @ 2010-04-26 15:31 河馬虎 閱讀(195) | 評論 (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接收并處理;
    DA為同一VLAN中的其它STATION,則MAC層轉發;
    DA為不同VLAN,但同一AP中的其它STATION,則執行VLAN之間的橋接協議。
    從Access端口發出的數據:不帶tag,直接發到STATION。

    這種劃分的缺點僅適合于較小的網絡,靈活性較差。比如,無法實現跨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 河馬虎 閱讀(2364) | 評論 (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 河馬虎 閱讀(365) | 評論 (0)編輯 收藏

    需求調研步驟和方法

    參考:http://www.ibm.com/developerworks/cn/java/l-anareq/

    第1章前言

    目的

    需求調研是為需要說明書做前期工作,可以說需要說明書說是從需求調研表中得到或抽取而出。

    需求調研是要了解現實世界中做實際工作的人們真正需要什么樣的程序的過程,再把這些需求開進細節整理由設計部開發,再由銷售部銷售給用戶。

    用戶:系統分析人員





    回頁首


    第2章前期準備

    2.1. 確定工具

    • 沒有什么工具是好還是壞的問題,問題是關鍵是如何使用它們,無論是什么工具也只是一個輔助工具,也不是生成工具。
    • 工具的選取要求是自己(本組)熟悉的工具,不能是一件最新時髦工具而自己對它了解很少,結果大部分時間化在學習工具上,而不是使用它為你工作。
    • 工具最好也是要求是普通流行的,因為要考慮交流的問題。

     

    2.2. 要做什么就要先了解什么

    • 如果做的項目是你所不了解的一個行業(專業)同組有要最好有要專家----最終用戶做為這個專家是最好的,最少你有了解這個專業,不是要你成為專家,但最少要了解一定的專業知識(最少專來詞匯你要知道),不然您甚至不知道去問什么問題或者如何去問他們,甚至于人家在說什么你也不知道。
    • 相應的專業資料是必須的,最少要有專業入門書籍和對應的資料,也需要求更深入的一些資料。當然有專家的參入就另當別論。
    • 如果行業的難度不是很大,可以通入分析人員的自我學習在短時間內了解行業,也許可以不用專家,否則專家是必須的。

     

    2.3. 建立設計環境

    一定建立一個專門的設計環境來為本項目服務,進行一定的資源分配,進行必要的文件管理。

    2.4. 真正了解自己和用戶

    • 那些是用戶可能明確要達到的目地
    • 要知道那些是自己能做到的,那些是自己不能做的。
    • 對于不能做的處理方法,如拒絕,轉包等
    • 那些是用戶想要做到的

     

    2.5. 列出人員分配表和所有工具列表

    • 明確項目人員分工
    • 統一項目所用的工具
    • 統一項目文件模版
    • 其它資源列表(資料,相關網站,資詢電話。。。)

     





    回頁首


    第3章調研過程

    3.1. 搜集需求得到需求說明書

    注意:

    1. 雖然最終必須要編成基于計算機解決方案的描述,但到目前為止,我們關注的焦點的文檔在相應領域方面的部分。
    2. 記住這里沒有計算機方面的行話,如果是編寫一個會計軟件,那么一位會計師都應該清楚地理解程序員寫的會計方面的問題說明書
    3. 需求說明書問題中,不要太正式。只要描述能表達您想要做的事情就行了,就和另外一個人在說話一樣就可以。
    4. 對于客戶或相應人員了解問題時,一定要有記筆記的習慣,談上幾個小時,很多細節是記不住的。

     

    3.2. 整理,檢查和細化需求說明書

    1. 對于客戶的需要進行必要的整理和分類有進從用戶那里會得到很多信息,不行進必要的整理就不能從中進行合理的分析
    2. 分清有用功能、可選功能用、無用功能及不可實現功能對于用戶來講他可以說出他想要的很多功能,但這些功能間的關系有時是清晰的,但對于很多用戶來講想通過計算機或新系統實現他以前沒有的功能,在這時他所提出的新需求的可行性和與其它模塊之間的關系就已經不清,所以對于分析員來講,要從用戶的需求中分清有用功能和無用功能和可選功能,進行分別區分處理,比如不可實現功能請用戶放棄。
    3. 不要忽略明顯的錯誤用戶倒是不經常提及他需要的東西,而這些東西對問題來說都是很基本的,要細化檢查一定有注意這個問題。
    4. 你認為的也許不是對的對于系統分析員對需求分析的自認為的情況要加以注意,對于一個行業來說,有些規則可以不是最合理,但它就是那樣存在和使用,所以對于每一個非明確確定的需求,要由專業人員來審定。除非你就是專家。

     

    3.3. 改進

    最初的第一次需求在分析,細化一定有不明及不確定之處,那么就把整理出一份問題細化問詢表,對發現的問題進行整理,列出不明之處,可根椐以下格式

    問詢人:
                問題:
                業務不清問題列表(業務描述不清):
                1 ….是什么含義?
                2 …..與XX是什么關系?
                多種選擇可以列表(請用戶進行選擇):
                1 ……有多個可能,那么現在我們使用
                A ……   B…….   C……..  D ……

    3.4. 審核需求

    1. 自我審枋
      把自己從用戶的角度來考慮
      是否合理,是否可以提高效率,是否可以達到目的,是否有完整
    2. 由用戶來評價
      由最終用戶來評價你所列的需求是否達到了用戶要求(用戶人數1-3人,再多也沒有什么益處)。
    3. 重復過程,最終通過審核完成需求說明書

     



    參考資料

    • 標準版API 規范,JAVA 2 核心技術和其他方面的信息。


    posted @ 2010-03-30 20:32 河馬虎 閱讀(7996) | 評論 (0)編輯 收藏

    需求調研

    軟件項目需求調研總結 :
    http://blog.csdn.net/success_dream/archive/2007/10/14/1824730.aspx

    軟件項目調研內容分為:項目管理方面調研和業務調研,其中項目管理方面調研包括:項目目標、項目時間、資源、地點、需要協調的事宜等,二:業務調研包括:業務目標、業務范圍、業務流程等,因此每次調研應該分兩部分來整理調研報告。

    posted @ 2010-03-03 11:36 河馬虎 閱讀(160) | 評論 (0)編輯 收藏

    產品設計

    這是一個產品分析和設計不錯的一個網站
     http://www.kuliqiang.com/?p=1345 
     
    http://hi.baidu.com/myey8

    posted @ 2010-01-23 17:22 河馬虎 閱讀(202) | 評論 (0)編輯 收藏

    Robert Eckstein blog


    Robert Eckstein  blog (  mvc)

    http://www.java.net/blog/105271

    posted @ 2010-01-15 11:19 河馬虎 閱讀(233) | 評論 (0)編輯 收藏

    MVC

  • Model - The model represents data and the rules that govern access to and updates of this data. In enterprise software, a model often serves as a software approximation of a real-world process.
  • View - The view renders the contents of a model. It specifies exactly how the model data should be presented. If the model data changes, the view must update its presentation as needed. This can be achieved by using a push model, in which the view registers itself with the model for change notifications, or a pull model, in which the view is responsible for calling the model when it needs to retrieve the most current data.
  • Controller - The controller translates the user's interactions with the view into actions that the model will perform. In a stand-alone GUI client, user interactions could be button clicks or menu selections, whereas in an enterprise web application, they appear as GET 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
        http://javadude.com/articles/index.html


    posted @ 2010-01-14 15:04 河馬虎 閱讀(179) | 評論 (0)編輯 收藏

    分析Eclipse源代碼,理解OSGI插件機制內幕(轉)

    http://blog.csdn.net/gonxi/archive/2006/02/26/610146.aspx

    posted @ 2009-12-30 12:11 河馬虎 閱讀(191) | 評論 (0)編輯 收藏

    體系結構方面

    關于體系結構方面,目前國內已經有很多人闡述過。
     
    http://blog.csdn.net/computer286/archive/2005/11/17/531408.aspx

    http://www.tkk7.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 河馬虎 閱讀(167) | 評論 (0)編輯 收藏

    eclipse中國社區

    http://www.eclipseworld.org/bbs

    posted @ 2009-12-30 10:03 河馬虎 閱讀(239) | 評論 (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 河馬虎 閱讀(187) | 評論 (0)編輯 收藏

    如何做需求?

    需求要做的事情:
        1).要明確誰或者那個崗位(或者角色)要使用這個系統
        2).該崗位的業務流程
        3) 該崗位能為系統提供哪些數據
        4 )該崗位系統從系統得到哪些數據或者功能

    比如客戶提出我要做一張桌子。
     那么需求人員就要獲取一下信息:
    1 ) 這張桌子給誰用,(給小孩還是大人?)
    2) 這張桌子做什么用,(書桌還是飯桌?)
    3) 客戶希望這張桌子是一個什么樣子的(材質、顏色 、高低、形狀等屬性)
    有了以上這些信息才能進入分析設計階段。
    如何跟用戶達成一致的需求和理解:
           當然,桌子是大家經常見到的東西,需求人員和客戶溝通起來都比較好達成一致,計算機系統往往是從無到有的一個過程?那么如何準確的獲取到用戶的需求呢?通過做界面原型也許是一個很好的方式,界面原型特點是直觀,界面原型是的客戶和需求人員有了溝通的基礎和橋梁,能幫助很快達成一致。

    如何做以及維護界面原型:
    1) 界面原型技術實現盡量簡單,但功能上要豐富一些,因為要面對客戶,而且界面原型甚至確定了后來的整個系統概貌
    2) 界面原型最好要專人來維護,根據客戶的要求不同進行修改和維護
    3)界面原型的設計盡量讓 需求和分析人員、美工人員共同完成。





    posted @ 2009-12-30 09:41 河馬虎 閱讀(176) | 評論 (0)編輯 收藏

    一個美國老工程師的心理話: 給年輕工程師的十大忠告

    一個美國老工程師的心理話: 給年輕工程師的十大忠告

    [1]好好規劃自己的路,不要跟著感覺走!根據個人的理想決策安排,絕大部分人并不指望成為什么院
    士或教授,而是希望活得滋潤一些,爽一些。那么,就需要慎重安排自己的軌跡。從哪個行業入手,逐
    漸對該行業深入了解,不要頻繁跳槽,特別是不要為了一點工資而轉移陣地,從長遠看,這點錢根本不
    算什么,當你對一個行業有那么幾年的體會,以后錢根本不是問題。頻繁地動蕩不是上策,最后你對哪
    個行業都沒有摸透,永遠是新手!   

    [2]可以做技術,切不可沉湎于技術。千萬不可一門心思鉆研技術!給自己很大壓力,如果你的心思全
    部放在這上面,那么注定你將成為孔乙己一類的人物!適可而止為之,因為技術只不過是你今后前途的
    支柱之一,而且還不是最大的支柱,除非你只愿意到老還是個工程師!   

    [3]不要去做技術高手,只去做綜合素質高手!在企業里混,我們時常瞧不起某人,說他“什么都不
    懂,憑啥拿那么多錢,憑啥升官!”這是普遍的典型的工程師的迂腐之言。8051很牛嗎?人家能上去必
    然有他的本事,而且是你沒有的本事。你想想,老板搞經營那么多年,難道見識不如你這個新兵?人家
    或許善于管理,善于領會老板意圖,善于部門協調等等。因此務必培養自己多方面的能力,包括管理,
    親和力,察言觀色能力,攻關能力等,要成為綜合素質的高手,則前途無量,否則只能躲在角落看示波
    器!技術以外的技能才是更重要的本事!!從古到今,美國日本,一律如此!   

    [4]多交社會三教九流的朋友!不要只和工程師交往,認為有共同語言,其實更重要的是和其他類人物
    交往,如果你希望有朝一日當老板或高層管理,那么你整日面對的就是這些人。了解他們的經歷,思維
    習慣,愛好,學習他們處理問題的模式,了解社會各個角落的現象和問題,這是以后發展的巨大的本
    錢,沒有這些以后就會笨手笨腳,跌跌撞撞,遇到重重困難,交不少學費,成功的概率大大降低!

     [5]知識涉獵不一定專,但一定要廣!多看看其他方面的書,金融,財會,進出口,稅務,法律等
    等,為以后做一些積累,以后的用處會更大!會少交許多學費!!   

    [6]抓住時機向技術管理或市場銷售方面的轉變!要想有前途就不能一直搞開發,適當時候要轉變為管
    理或銷售,前途會更大,以前搞技術也沒有白搞,以后還用得著。搞管理可以培養自己的領導能力,搞
    銷售可以培養自己的市場概念和思維,同時為自己以后發展積累龐大的人脈!應該說這才是前途的真正
    支柱!!!   

    [7]逐漸克服自己的心里弱點和性格缺陷!多疑,敏感,天真(貶義,并不可愛),猶豫不決,膽怯,
    多慮,臉皮太薄,心不夠黑,教條式思維。。。這些工程師普遍存在的性格弱點必須改變!很難嗎?只
    在床上想一想當然不可能,去幫朋友守一個月地攤,包準有效果,去實踐,而不要只想!不克服這些缺
    點,一切不可能,甚至連項目經理都當不好--盡管你可能技術不錯!   

    [8]工作的同時要為以后做準備!建立自己的工作環境!及早為自己配置一個工作環境,裝備電腦,示
    波器(可以買個二手的),仿真器,編程器等,業余可以接點活,一方面接觸市場,培養市場感覺,同
    時也積累資金,更重要的是準備自己的產品,咱搞技術的沒有錢,只有技術,技術的代表不是學歷和證
    書,而是產品,拿出象樣的產品,就可技術轉讓或與人合作搞企業!先把東西準備好,等待機會,否
    則,有了機會也抓不住!   

    [9]要學會善于推銷自己!不僅要能干,還要能說,能寫,善于利用一切機會推銷自己,樹立自己的品
    牌形象,很必要!要創造條件讓別人了解自己,不然老板怎么知道你能干?外面的投資人怎么相信你?
    提早把自己推銷出去,機會自然會來找你!搞個個人主頁是個好注意!!特別是培養自己在行業的名
    氣,有了名氣,高薪機會自不在話下,更重要的是有合作的機會...   

    [10]該出手時便出手!永遠不可能有100%把握!!!條件差不多就要大膽去干,去闖出自己的事業,不
    要猶豫,不要彷徨,干了不一定成功,但至少為下一次沖擊積累了經驗,不干永遠沒出息,而且要干成
    必然要經歷失敗。不經歷風雨,怎么見彩虹,沒有人能隨隨便便成功!

    posted @ 2009-12-24 11:27 河馬虎 閱讀(205) | 評論 (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

                         <property name="hibernate.connection.datasource">data  source  jndi</property>
                        <property name="hibernate.connection.username">name</property>
                         <property name="hibernate.connection.password">password</property>
                         <property name="hibernate.session_factory_name">HibernateSessionFactory</property>  
                          <property name="connection.autocommit">false</property>
                        <property name="net.sf.hibernate.transaction.JTATransactionFactory">net.sf.hibernate.transaction.WebSphereTransactionManagerLookup</property>
                          <property name="show_sql">false</property>
                         <property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>

                  注意:如果是非事務性數據源  那么在hibernate.cfg.xml  必須設置 <property name="connection.autocommit">false</property>
                          為false
                               
         3   create  datasource   jndi  on  was
                 如果是非事務性數據源,在建立數據源時,也要設置為非事務性數據源。
          4    config  custom service  bean  on Websphere
                 was console >servers> application server > server1>manage>custom service >new
           5 start Server

    posted @ 2009-12-18 09:19 河馬虎 閱讀(549) | 評論 (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 河馬虎 閱讀(1436) | 評論 (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 河馬虎 閱讀(239) | 評論 (0)編輯 收藏

    Does WAS6.1 needs stubs for EJB3

    trace: http://www.ibm.com/developerworks/forums/thread.jspa?messageID=14023850

    The need to use statically-defined stubs depends only on what kind of client you have; it doesn't depend at all on where the EJB is that you're looking up or invoking. If your client is a WebSphere container that's been upgraded via the EJB 3.0 feature pack, then we have technology in the container itself that will dynamically generate the client-side stub for you in-memory when it's needed, assuming that you at least have the EJB remote interface packaged where the client can access it. So if your client is the WAS web container, EJB container, or application client container and the client environment has had the EJB 3.0 feature pack applied, you should not need to generate or package any client-side stubs with your client. If your client environment is something other than the above, then you will need to generate the client-side stubs with the createEJBStubs tool that comes with the EJB 3.0 feature pack, and package the resulting stubs in your client package. Here's a snippet of the documentation that covers this in more detail:

    Just-In-Time Deployment

    The EJB 3.0 Feature Pack adds a new feature to WebSphere application server called Just-In-Time Deployment. With Just-In-Time Deployment, the EJB container dynamically generates the wrapper, stub, and tie classes in-memory as needed when the application is running. Additionally, the web container and application client containers dynamically generate the stub class required for remote EJB invocations. Effectively, this means that you do not need to process EJB 3.0 modules, web modules that invoke EJB 3.0 beans, or client modules that invoke EJB 3.0 beans, through the EJBDeploy tool prior to running them in WebSphere.

    The createEJBStubs tool

    Even though the Just-In-Time deployment feature will, in many cases, dynamically generate the RMI-IIOP stub classes that are required for invocation of remote EJB interfaces, there remain some cases where these stub classes are not dynamically generated. For EJB 3.0 clients not running inside a WebSphere feature-pack-upgraded web container, EJB container, or client container, it is necessary for you to generate the stub classes with the createEJBStubs tool, then make the generated stubs available in the client environment's classpath. Typically you would accomplish this by copying the generated stubs to the location where the client's business interface class resides.

    To summarize, the createEJBStubs tool must be used to generate client-side stubs for the following environments:

    * "Bare" Java SE clients, where a Java SE JVM is the client environment
    * WebSphere Application Server container environments without the EJB 3.0 feature pack applied
    * Non-WebSphere application server environments

     

    posted @ 2009-11-24 15:46 河馬虎 閱讀(327) | 評論 (0)編輯 收藏

    主站蜘蛛池模板: 亚洲视频一区网站| 亚洲精品国产精品乱码不卡√| 久久精品国产亚洲AV嫖农村妇女| 一级毛片高清免费播放| 亚洲免费日韩无码系列| 有码人妻在线免费看片| 丁香五月亚洲综合深深爱| 一个人免费观看日本www视频| 亚洲av无码天堂一区二区三区 | 国产亚洲无线码一区二区| 国产又黄又爽又大的免费视频| 亚洲区小说区图片区| 97国免费在线视频| 久久国产精品亚洲一区二区| 99re6免费视频| 亚洲冬月枫中文字幕在线看| 久久电影网午夜鲁丝片免费| 亚洲日本成本人观看| 免费一级毛片清高播放| 99久久免费国产精品热| 精品无码一区二区三区亚洲桃色 | 日韩精品免费一区二区三区| 成人免费夜片在线观看| 亚洲国产精品无码久久SM| aⅴ在线免费观看| 亚洲精品无码人妻无码| 亚洲综合亚洲综合网成人| 成年私人影院免费视频网站 | 一级人做人爰a全过程免费视频| 亚洲精品成人片在线播放| 最近免费中文在线视频| 亚洲人成无码网站在线观看| 国产成人亚洲综合无码| 91成人在线免费视频| 亚洲AV无码专区在线观看成人| 国产成人精品久久亚洲| 黄色网址免费观看| 猫咪www免费人成网站| 久久亚洲精品无码aⅴ大香| 国产免费131美女视频| 国产成人一区二区三区视频免费|