日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

使用SMTP和WebSphere Studio的Web服務(wù)—引言和設(shè)計(jì)( 三 )


最常見(jiàn)的是ApacheSOAP , 它提供一個(gè)servlet(RPCRouter)來(lái)接收傳入的SOAP/HTTP請(qǐng)求 , 假如需要的話對(duì)它們進(jìn)行解碼 , 然后將它們傳遞給目標(biāo)Java對(duì)象 。這是最初的實(shí)現(xiàn) , 但不幸的是它受到了一個(gè)主要問(wèn)題的困擾:由于它使用DOM來(lái)處理XML , 所以速度比較慢 。處理SOAP中使用的XML可能是最慢的 , 而且可能是Web服務(wù)請(qǐng)求中最集中的處理部分 。由于這個(gè)和其他幾個(gè)原因 , 已經(jīng)發(fā)起了另一個(gè)倡導(dǎo) , 并且這個(gè)倡導(dǎo)已經(jīng)成了Apache項(xiàng)目Axis的一部分 。它對(duì)SOAP消息使用SAX解析 , 這就為XML提供了一個(gè)簡(jiǎn)單而又更加快捷的接口 。Axis項(xiàng)目的工作正在進(jìn)行中 , 即將發(fā)行代碼的beta測(cè)試版 。
這個(gè)項(xiàng)目使用Axis是因?yàn)樗俣雀?。從理論上講 , 由于我們將對(duì)請(qǐng)求作異步處理 , 因此性能在這里并不那么重要 。但這并不意味著我們就可以心安理得地慢下來(lái) , 或者能接受DOM解析器的額外處理要求 。我們只要解析XML就可以讓服務(wù)器敗下陣來(lái) , 更不要說(shuō)Web服務(wù)自身的處理要求了 。
高級(jí)設(shè)計(jì)
高級(jí)設(shè)計(jì)使用的是啟動(dòng)時(shí)加載(load-at-startup)servlet 。這些servlet啟動(dòng)使用原始SMTP綁定到端口25并等待傳入的電子郵件的守護(hù)線程 , 或者周期性地向POP服務(wù)器輪詢等待中的電子郵件的守護(hù)線程 。圖1顯示了POPservlet、輪詢守護(hù)程序、處理器以及處理程序之間的一個(gè)對(duì)象交互圖:
圖1.對(duì)象交互圖
【使用SMTP和WebSphere Studio的Web服務(wù)—引言和設(shè)計(jì)】

守護(hù)線程將根據(jù)它們正處理的協(xié)議做不同的工作 。對(duì)于原始SMTP , 該線程將獲得一個(gè)連接請(qǐng)求 , 然后將套接字傳遞給一個(gè)處理器(Processor)類來(lái)處理SMTP協(xié)議并檢索電子郵件 。對(duì)于POP實(shí)現(xiàn) , 該線程將周期性地輪詢POP服務(wù)器 , 并將各個(gè)電子郵件傳遞給特定于POP的處理器類 。
我們的處理器類實(shí)現(xiàn)一個(gè)MailProcessor接口 , 并可以繼續(xù)一個(gè)AbstractProcessor類 , AbstractProcessor包含我們所需的每個(gè)電子郵件協(xié)議都有的公共函數(shù) 。這些類獲得電子郵件并將它們傳遞給一串處理程序(Handler)對(duì)象 。
處理程序?qū)ο箧溈梢员慌渲脼閳?zhí)行日志記錄、將服務(wù)請(qǐng)求傳遞給SOAP引擎或處理響應(yīng)等獨(dú)立的任務(wù) 。我們的處理程序類可以繼續(xù)AbstractHandler , 也包含公共函數(shù) 。
結(jié)束語(yǔ)
本文介紹了許多關(guān)于我們的SOAP/SMTP實(shí)現(xiàn)的背景知識(shí) , 包括SOAP/SMTP的優(yōu)點(diǎn)、各種方法的優(yōu)缺點(diǎn)和高級(jí)設(shè)計(jì) 。下一篇文章將討論實(shí)際的實(shí)現(xiàn) , 包括怎樣開(kāi)始實(shí)現(xiàn)以及如何讓該實(shí)現(xiàn)在WebSphereStudioIDE中運(yùn)行 。

推薦閱讀