麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > XML > 正文

使用XML實現多渠道接入網站的構架

2024-09-05 20:55:27
字體:
來源:轉載
供稿:網友

  其實寫這篇文章的目的最多的想法是把自己在去年在瑞士做項目時應用的一個框架給展現出來讓大家共享,但我又有點擔心我的表達能力不能將我在里面使用的思想很好的表現出來,所以遲遲 不敢下筆,最后還是下了決心,寫吧, 不行就在好好改改,當然也希望大家多提些意見。
  一.背景
  在現在的網站中,接入的渠道是越來越多了,技術也是越來越先進,WAP, SMS,EMAIL, 傳統的Web, Socket等等,如果連數據庫和LDAP也算接入的話,那在設計之中需要擴展的空間要做到很好 很好,才保證在添加新的渠道情況下不需要更多的修改代碼甚至不改代碼的情況。但可能嗎?我想也不可能,但有什么方式可以更好的解決這種多渠道接入的框架的完美性呢?
  二.構架使用XML實現多渠道接入網站的構架
  【圖一】
  如圖一所顯示,在現有的所有接入都已經使用上的時候,設計者看的都眼花繚亂了,如果是為了湊份子,那這些程序怎么寫都可以,而且也肯定可以實現,但維護起來就會比較痛苦,還是回到那個問題,怎么可以實現更完美呢?在項目組的構架討論中,我提出了路由的感念,并得到了大
  家統一的認可,如圖二顯示使用XML實現多渠道接入網站的構架
  【圖二】
  圖二看起來象個八爪的章魚,章魚腿分別連接所有的接入渠道,進行連接所有這些渠道的核心就是這個章魚的頭XMLRouter,Router在此的作用是溝通所有渠道,實現數據的路由,爭強系統在構架上的擴展性和靈活性,好處會很多很多。稱呼為XMLRouter是因為如果不使用XML這種靈活而又規范的語言來做為數據傳輸的媒介,那Router的工作量也同樣會成倍的增加,定義好XML的規范后將為以后的擴展帶來很多好處.
  三.思想和模式
  XMLRouter的最初想法來自于計算機的主板和<<Design Pattern>>之中的Builder Pattern, 計算機主板的PCI 插槽定義了PCI的規范,只要你生產的卡符合PCI標準,那你插入到這個主板上就可以工作, 至于里面是怎么工作的則是已經封裝好了. Builder Pattern則是提出將復雜的構建分離開來, 一步一步的進行實現.XMLRouter是將這些復雜的渠道分離開來,一個個的進行表現.
  Services思想:為了能和Router進行溝通,在這些渠道接入時必須定義統一的接口,這里成為Services, 只要符合Services規范的程序就可以接入到Router并進行數據的路由.
  Factory模式和Composite模式
  XMLRouter在實際的設計中將采用Factory模式產生,Router由RouterFactory生產, 在投入使用時將放置于隊列中,傳遞數據和接收數據以及返回數據都從隊列中取相應的Router來調用,應用了Composite的模式.
  四.XML配置文件
  XML文件對于Router之中的使用分為兩個部分, 第一個是Router的配置,如:
  <?xml version="1.0" ?>
<services>
   <!-- database Service -->
   <service name="database" type="database" class="com.web.service.DBService">
   <connector
       driver="com.microsoft.jdbc.sqlserver.SQLServerDriver"
       url="jdbc:microsoft:sqlserver://192.168.0.179:1433" user="test"
       passwd="test" />
   </service>
   <!-- Web Service-->
   <service name="web" type="web" class="com.web.service.WebService" >
     <connector />
   </service>
……
</services>

  這是Router的配置文件, service節點代表需要接入的渠道, service節點包含connector子節點, 子節點的配置根據type來區分, 如果是database則包含url, user, passwd,driver等屬性, 如果是socket則包含 port, maxthread等屬性, 屬性值可以根據自己的定義來配置.
  另一種XML文件則是XML交易數據文件,用于在所有的services中傳遞數據,每個Services自己包涵一個相應的XML文件,比如webtrans.xml格式如下:
  <?xml version="1.0" ?>
<transaction>
   <trans name="addDoc" service="database" method="insert">
     <property name="createtime" type="timestamp"/>
     <property name="creatorid" type="long"/>
     <property name="doctypeid" type="int"/>
     <property name="docstatusid" type="int"/>      
   </trans>    
</transaction>

  相應的dbtrans.xml格式如下
  <trans name="addDoc" table="TDOC_DOCS" method="insert">
     <primarykey name="docid" />    
     <set>
       <property name="createtime" type="timestamp"/>
       <property name="creatorid" type="long"/>
       <property name="doctypeid" type="int"/>
       <property name="docstatusid" type="int"/>      
     </set>
   </trans>

上一頁12 下一頁 閱讀全文
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久久久久久91 | 亚洲欧美一区二区三区在线观看 | 中文区永久区 | 91久久久久久久久久久久久久 | 成人黄色小视频在线观看 | 亚洲一区在线免费视频 | h视频在线播放 | 羞羞羞网站| 黄色免费播放网站 | 成人毛片网站 | 日韩精品dvd | 欧美性久久久 | 特级黄毛片| 狠狠干天天操 | 久久久久免费精品 | 日本黄色a视频 | 国产亚洲精品久久久久久久久 | 水多视频在线观看 | 久草在线视频中文 | 中国av中文字幕 | 毛片免费在线视频 | 欧美精品激情视频 | 草草免费视频 | 91久久久国产精品 | 久久精品超碰 | 在线天堂中文在线资源网 | 欧美综合日韩 | 免费看真人a一级毛片 | 欧洲成人在线视频 | 羞羞电影网 | 久久亚洲美女视频 | 在线成人www免费观看视频 | 国产做爰全免费的视频黑人 | 人禽l交免费视频观看 视频 | 欧美视频国产 | 黄色毛片视频在线观看 | 在线看一区二区三区 | 九九热视频在线免费观看 | 国内久久久久 | 深夜福利视频免费观看 | 国产精品久久久久久影视 |