用Ajax和Apache Geronimo建立非同步訊息架構

來源:互聯網
上載者:User

架構組件概覽

經過良好設計的面向服務的業務層可以協助您將鬆散耦合的服務組成過程和複合應用程式。面向服務的架構(Service-Oriented Architecture,SOA)中的這種服務組合使您能夠用不同環境中的服務構建應用程式和過程,而無需瞭解每種環境的細節。使用 SOA 可獲得的益處依賴於使用一般、粗略的介面設計和實現的服務。

在開發基於瀏覽器的 UI 時,Ajax 編程將為您提供強大的功能和很大的靈活性。將此 UI 功能與面向服務的業務層結合使用還將為您提供更大的靈活度。Ajax 編程本身十分適於進行非同步請求和響應。在將 Ajax 的非同步本性與基於非同步訊息傳遞系統結合使用時,您可以構建基於瀏覽器的應用程式,這樣做將使使用者體驗更近似於傳統型應用程式,給使用者一種更加即時的感受。

Apache Geronimo 是一個模組化的符合 Java™ 2 Platform, Enterprise Edition (J2EE) 規範的應用伺服器平台,它基於使用控制反轉(Inversion of Control,IoC)的架構解耦組件和服務以構建企業級應用程式和服務。

在本文中,您將瞭解如何使用基於訊息的架構或匯流排處理來自客戶機的非同步業務請求,以便在多個基於 Ajax 的客戶機與基於 Geronimo 的伺服器之間進行互動。瞭解如何在瀏覽器與伺服器之間跟蹤基於 Ajax 的客戶機請求。並瞭解如何通過目標商務服務的面向訊息的服務匯流排在伺服器端跟蹤這些請求。

Ajax 簡介

Ajax 是一個受基於 XML 的請求和響應伺服器調用模型驅動的 UI 功能和概念的架構。這些概念本性上大都具有不定性,但是都根據約定經過標準化。這些概念在 Ajax 應用程式開發中大多以標準的形式出現,已成為主流 網頁瀏覽器的功能。

Ajax UI 依賴於瀏覽器中的文件物件模型(Document Object Model,DOM)功能和 JavaScript 組件,這些功能和組件用於在任何指定時間解析和顯示 Web 頁面。很多(但不是所有)這類功能和組件都是由大多數主流 網頁瀏覽器共用的。這麼多的內容掌握起來可能有些困難,因此本文僅討論 DOM 和面向 Ajax 的 JavaScript 代碼的最基礎功能。

幾乎所有稱得上是基於 Ajax 的應用程式都會建立稱為 XMLHttpRequest 對象的組件。此 JavaScript 對象用於構造請求和在瀏覽器與伺服器之間來回傳輸請求。清單 1 中的程式碼片段將建立可以在 Mozilla Firefox 瀏覽器或 Microsoft® Windows® Internet Explorer® 瀏覽器與伺服器之間使用的 XMLHttpRequest 對象的執行個體。

清單 1. 建立 XMLHttpRequest 對象

function getHTTPObject()
{
  var xmlhttp = null;
  var success = false;
 
  // List of MS XMLHTTP versions - newest first
  var MSXML_XMLHTTP_PROGIDS = new Array(
    'MSXML2.XMLHTTP.5.0',
    'MSXML2.XMLHTTP.4.0',
    'MSXML2.XMLHTTP.3.0',
    'MSXML2.XMLHTTP',
    'Microsoft.XMLHTTP'
  );
  for (var i = 0; i < MSXML_XMLHTTP_PROGIDS.length && !success; i++)
  {
   try
   {
     xmlhttp = new ActiveXObject(MSXML_XMLHTTP_PROGIDS[i]);
     success = true;
     return xmlhttp;
   }
   catch (e)
   {
     xmlhttp = false;
   }
  }
  if (!xmlhttp && typeof XMLHttpRequest != 'undefined')
  {
   try
   {
     xmlhttp = new XMLHttpRequest();
   }
   catch (e)
   {
     xmlhttp = false;
   }
  }
  return xmlhttp;
}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.