隨筆-10  評論-36  文章-6  trackbacks-0
          所謂報文驅動,就是模塊間的相互調用通過定義了格式的報文傳遞輸入參數,返回值通過應答報文傳遞的模塊調用方式。模塊指實現獨立業務功能的服務類,而非方法間的調用。例如:轉賬模塊調用記賬模塊。模塊間的報文傳遞,可以是WebService、RMI等同步方式,也可以是MQ等異步方式。本文不是完整的實現過程,而是綱要,防止自己忘記的備忘錄。
          本文的軟件系統架構參考《基于EJB 3.0的企業應用后端框架》。

          1、創建數據庫及數據庫表。

          2、創建實體類及相應的DAO類庫,本庫是EJB模塊,可以動態更換。實體類總是對應數據庫表,每個表對應一個或多個實體類。實體類是POJO對象。DAO類使用JPA完成實體對象的增、刪、改、查、鎖等操作,和具體業務邏輯無關。
          (1)創建EJB項目,包含ejbModule、testcase、script等目錄。源碼放置到ejbModule目錄,測試代碼放置到testcase,數據庫相關腳本放置到Script目錄。
          (2)給項目添加JPA支持。從ApplicationServer支持的JPA中選擇一款JPA實現。實際部署時,JPA模塊是可以動態更換的。
          (3)編輯項目的持久化配置文件,和數據庫配置保持一致。
          (4)給測試或JPA添加依賴的外部JAR包。
          --------- 準備就緒
          (5)從數據庫生成實體類并定制,確保每個實體類有唯一的序列化ID。每個實體類有主鍵,實體類和主鍵類均是可序列化的。如果實體對象和數據庫數據間要進行某種轉換動作,由實體類的Get/Set方法完成。
          (6)編寫一個AbstractEnityDao類實現調用JPA完成實體對象的持久化操作。為每個實體類派生一個DAO類完成該實體的持久化。該DAO是一個SessionBean,且只實現本地方法。如果要對實體的值合法性進行檢查,則在DAO類完成。
          (7)編寫DAO和實體類的測試代碼,確認每個DAO類均工作正常。

          3、創建實體類及DAO類的client庫。本庫是普通的JAR包,給未來使用實體對象和DAO對象的對象使用。
          (1)DAO類庫完成并定版后,創建JAR庫。
          (2)復制DAO類庫的全部實體類到本庫,確保包名沒有變化。
          (3)復制DAO類庫的全部DAO接口到本庫,確保包名沒有變化。
          (4)編輯全部實體類,去掉@JPA的注釋并糾正import語句,以減少本庫的依賴性。

          4、創建報文庫,本庫是普通Jar包。
          (1)為每個報文創建一個報文類。報文類是POJO對象,且必須可序列化。
          (2)如果使用報文的全部時JAVA代碼,則使用默認的Java序列化對象的方法傳遞報文對象。否則,實現序列化方法,將報文串轉換為報文對象和將報文對象轉換為報文串。Java內部使用報文對象,模塊間調用使用報文串。
          (3)如果使用XML作為報文串,則可以為每個報文創建一個類和一個映射文件,通過XML通用類庫實現對象和串的轉換。

          5、編寫業務服務庫,本庫是EJB模塊。
          (1)創建AbstractBusinessService類,定義業務服務的接口,并實現通用的方法。
          (2)為每個報文創建一個業務服務類繼承AbstractBusinessService類,并實現對報文的特殊處理。業務服務類是SessionBean,實現本地接口。
          (3)為每個業務服務類編寫測試代碼,確保每個服務類均可以正常工作。

          6、編寫業務引擎服務(EJB服務)
          (1)本服務提供本地和遠程方法供Client使用,接收Client傳遞的業務報文對象,根據配置創建并調用業務服務對報文進行處理。
          (2)業務引擎通常提供實時調用和MQ調用兩類引擎,后者是消息驅動Bean。

          7、Web服務
          (1)將業務引擎服務封裝為WebService或http/REST風格的服務,供外部系統調用。
          ------------- 完成全部項目

          8、部署:將全部類庫打包為EAR發布,將報文庫發布給Java外部客戶。


           
          posted on 2011-10-29 20:22 飛鷹 閱讀(633) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 昂仁县| 隆德县| 晋宁县| 锡林浩特市| 基隆市| 冷水江市| 保靖县| 梁河县| 宁津县| 吴川市| 屯门区| 上栗县| 肇源县| 靖西县| 名山县| 三原县| 剑河县| 琼海市| 枣阳市| 桐城市| 丰原市| 隆子县| 大邑县| 灌南县| 阳高县| 旬阳县| 南充市| 东丽区| 四会市| 霸州市| 海口市| 宁蒗| 胶南市| 昭通市| 侯马市| 临清市| 揭西县| 元谋县| 淳化县| 张掖市| 正蓝旗|