代理中間件
A. 什麼是中間件
中間件(middleware)是基礎軟體的一大類,屬於可復用軟體的范疇。顧名思義,中間件處於操作系統軟體與用戶的應用軟體的中間。
中間件在操作系統、網路和資料庫之上,應用軟體的下層,總的作用是為處於自己上層的應用軟體提供運行與開發的環境,幫助用戶靈活、高效地開發和集成復雜的應用軟體。在眾多關於中間件的定義中,比較普遍被接受的是IDC表述的:中間件是一種獨立的系統軟體或服務程序,分布式應用軟體藉助這種軟體在不同的技術之間共享資源,中間件位於客戶機伺服器的操作系統之上,管理計算資源和網路通信。
IDC對中間件的定義表明,中間件是一類軟體,而非一種軟體;中間件不僅僅實現互連,還要實現應用之間的互操作;中間件是基於分布式處理的軟體,最突出的特點是其網路通信功能。
最早具有中間件技術思想及功能的軟體是IBM的CICS,但由於CICS不是分布式環境的產物,因此人們一般把Tuxedo作為第一個嚴格意義上的中間件產品。Tuxedo是1984年在當時屬於AT&&T的貝爾實驗室開發完成的,但由於分布式處理當時並沒有在商業應用上獲得像今天一樣的成功,Tuxedo在很長一段時期里只是實驗室產品,後來被Novell收購,在經過Novell並不成功的商業推廣之後,1995年被現在的BEA公司收購。盡管中間件的概念很早就已經產生,但中間件技術的廣泛運用卻是在最近10年之中。BEA公司1995年成立後收購Tuxedo才成為一個真正的中間件廠商,IBM的中間件MQSeries也是90年代的產品,其它許多中間件產品也都是最近幾年才成熟起來。
B. 什麼是中間件
中間件是一種獨立的系統軟體或服務程序,分布式應用軟體藉助這種軟體在不同的技術之間共享資源。中間件位於客戶機/ 伺服器的操作系統之上,管理計算機資源和網路通訊。是連接兩個獨立應用程序或獨立系統的軟體。相連接的系統,即使它們具有不同的介面,但通過中間件相互之間仍能交換信息。
執行中間件的一個關鍵途徑是信息傳遞。通過中間件,應用程序可以工作於多平台或OS環境。
中間件是基礎軟體的一大類,屬於可復用軟體的范疇。顧名思義,中間件處於操作系統軟體與用戶的應用軟體的中間。
(2)代理中間件擴展閱讀
中間件在操作系統、網路和資料庫之上,應用軟體的下層,總的作用是為處於自己上層的應用軟體提供運行與開發的環境,幫助用戶靈活、高效地開發和集成復雜的應用軟體。
在眾多關於中間件的定義中,比較普遍被接受的是IDC表述的:中間件是一種獨立的系統軟體或服務程序,分布式應用軟體藉助這種軟體在不同的技術之間共享資源,中間件位於客戶機伺服器的操作系統之上,管理計算資源和網路通信。
由於標准介面對於可移植性、標准協議對於互操作性的重要性,中間件已成為許多標准化工作的主要部分。對於應用軟體開發,中間件遠比操作系統和網路服務更為重要,中間件提供的程序介面定義了一個相對穩定的高層應用環境,不管底層的計算機硬體和系統軟體怎樣更新換代,只要將中間件升級更新,並保持中間件對外的介面定義不變,應用軟體就幾乎不需任何修改,從而保護了企業在應用軟體開發和維護中的重大投資。
C. 中間件是什麼幹嘛用的
中間件是一種獨立的系統軟體或服務程序,是連接兩個獨立應用程序或獨立系統的軟體,即使它們具有不同的介面,但通過中間件相互之間仍能交換信息。
中間件在操作系統、網路和資料庫之上,應用軟體的下層,總的作用是為處於自己上層的應用軟體提供運行與開發的環境,幫助用戶靈活、高效地開發和集成復雜的應用軟體。
隨著計算機技術的快速發展,更多的應用軟體被要求在許多不同的網路協議、不同的硬體生產廠商以及不一樣的網路平台和環境上運營。這導致了軟體開發者需要需要開發多種應用程序來達到運營的目的。所以,中間件技術的產生,在極大程度上減輕了開發者的負擔,使得網路的運行更有效率。
(3)代理中間件擴展閱讀
中間件技術
1、遠程過程調用
一個應用程序使用RPC來「遠程」執行一個位於不同地址空間里的過程,並且從效果上看和執行本地調用相同。事實上,一個RPC應用分為兩個部分:server和client。server提供一個或多個遠程過程;client向server發出遠程調用。
在RPC模型中,client和server只要具備了相應的RPC介面,並且具有RPC運行支持,就可以完成相應的互操作,而不必限制於特定的server。
2、面向消息的中間件
MOM指的是利用高效可靠的消息傳遞機制進行平台無關的數據交流,並基於數據通信來進行分布式系統的集成。消息放入適當的隊列時,目標程序甚至根本不需要正在運行;即使目標程序在運行,也不意味著要立即處理該消息。
對應用程序的結構沒有約束:在復雜的應用場合中,通訊程序之間不僅可以是一對一的關系,還可以進行一對多和多對一方式,甚至是上述多種方式的組合。多種通訊方式的構造並沒有增加應用程序的復雜性。
3、對象請求代理
可向上提供不同形式的通訊服務,包括同步、排隊、訂閱發布、廣播等等,在這些基本的通訊平台之上,可構築各種框架,為應用程序提供不同領域內的服務,如事務處理監控器、分布數據訪問、對象事務管理器OTM等。
4、事務處理監控
事務處理監控最早出現在大型機上,為其提供支持大規模事務處理的可靠運行環境。隨著分布計算技術的發展,分布應用系統對大規模的事務處理提出了需求,比如商業活動中大量的關鍵事務處理。
D. j2ee的中間件有哪些
中間件的定義很寬廣 你說到這些都可以認為是中間件的一種
中間件的作用就是將2個沒辦法通信或者交互的系統,通過中間件可以交互
這么理解也就是和組件的相互調用了
E. 請教哪些軟體算是中間件呢
只知道中間件是用於各平台之間的相互連接和互操作回的.
分成 資料庫中間答件,遠程調用中間件,面向消息中間件,對象請求代理,事務處理管理,專用中間件 幾類.
有沒有對各種中間件都比較了解的人,可以幫忙給上面幾種分類每種都列出一兩個軟體呢,這
樣就形像多了.
比如,JAVA 虛擬機和.net framework 算是中間件嗎.ODBC,JDBC 算中間件嗎.hibernate 算中間件嗎.
另外weblogic 算是中間件嗎,有人說它是應用伺服器,有人說它是中間件,那麼它和普通應用
------解決方案--------------------------------------------------------
F. 做中間件銷售,需要懂些什麼東西。
中間軟體應抄該就是軟體代理吧。這個市場需要有比較好的人脈關系或者市場開發能力。這個是上游供貨商與你合作的前提。這個工作的開展一般是你的公司有一定關系,先熟悉關系,了解需求。然後根據需求考慮什麼地方會需要這個產品,在此基礎上進一步的去開展工作。
G. 什麼叫做中間件
其實就像代理一樣,把我們自己的東西給中間件,別人就可以通過中間件看你自己的東西。
像Tomcat等伺服器,公司都喜歡叫中間件。
H. mysql 代理中間件能減輕資料庫壓力嗎
當使用MySQL資料庫的網站訪問量越來越大的時候,它的壓力也會越來越大,那麼如何給MySQL資料庫減壓呢?那就是優化! 單機MySQL的優化有三種方法。分別是:一、伺服器物理硬體的優化;二、MySQL安裝時的編譯優化;三、自身配置文件my.cnf的優化。一、伺服器物理硬體的優化1、磁碟尋道能力(磁碟I/O) 是制約MySQL性能的最大因素之一,建議使用RAID1+0磁碟陣列,另外最好不要嘗試使用RAID-5,因為MySQL在RAID-5磁碟陣列上的效率實際上並不是很快;2、CPU也很重要,對於MySQL應用,推薦使用DELL R710,E5620 @2.40GHz(4 core)* 2或跟這個處理能力差不多的也行。 3、物理內存,物理內存對於一台使用MySQL的Database Server來說,伺服器內存建議不要小於2GB,推薦使用4GB以上的物理內存。二、MySQL安裝時的編譯優化 建議採取編譯安裝的方法,這樣性能上有較大提升,伺服器系統建議用64bit的Centos5.5,源碼包的編譯參數會默認以Debgu模式生成二進制代碼,而Debug模式給MySQL帶來的性能損失是比較大的,所以當我們編譯准備安裝的產品代碼時,一定不要忘記使用「—without-debug」參數禁用Debug模式。 而如果把—with-mysqld-ldflags和—with-client-ldflags二個編譯參數設置為—all-static的話,可以告訴編譯器以靜態方式編譯和編譯結果代碼得到最高的性能。使用靜態編譯和使用動態編譯的代碼相比,性能差距可能會達到5%至10%之多。三、自身配置文件my.cnf的優化 當解決了上述伺服器硬體制約因素後,讓我們看看MySQL自身的優化是如何操作的。對 MySQL自身的優化主要是對其配置文件my.cnf中的各項參數進行優化調整。下面我們介紹一些對性能影響較大的參數。下面,我們根據以上硬體配置結合一份已經優化好的my.cnf進行說明:#vim /etc/my.cnf以下只列出my.cnf文件中[mysqld]段落中的內容,其他段落內容對MySQL運行性能影響甚微,因而姑且忽略。[mysqld] port = 3306 serverid = 1 socket = /tmp/mysql.sockskip-locking#避免MySQL的外部鎖定,減少出錯幾率增強穩定性。skip-name-resolve#禁止MySQL對外部連接進行DNS解析,使用這一選項可以消除MySQL進行DNS解析的時間。但需要注意,如果開啟該選項,則所有遠程主機連接授權都要使用IP地址方式,否則MySQL將無法正常處理連接請求!back_log = 384#back_log參數的值指出在MySQL暫時停止響應新請求之前的短時間內多少個請求可以被存在堆棧中。 如果系統在一個短時間內有很多連接,則需要增大該參數的值,該參數值指定到來的TCP/IP連接的偵聽隊列的大小。不同的操作系統在這個隊列大小上有它自 己的限制。 試圖設定back_log高於你的操作系統的限制將是無效的。默認值為50。對於Linux系統推薦設置為小於512的整數。key_buffer_size = 384M#key_buffer_size指定用於索引的緩沖區大小,增加它可得到更好的索引處理性能。對於內存在4GB左右的伺服器該參數可設置為256M或384M。注意:該參數值設置的過大反而會是伺服器整體效率降低!max_allowed_packet = 4M thread_stack = 256K table_cache = 614K sort_buffer_size = 6M#查詢排序時所能使用的緩沖區大小。注意:該參數對應的分配內存是每連接獨占,如果有100個連接,那麼實際分配的總共排序緩沖區大小為100 × 6 = 600MB。所以,對於內存在4GB左右的伺服器推薦設置為6-8M。read_buffer_size = 4M#讀查詢操作所能使用的緩沖區大小。和sort_buffer_size一樣,該參數對應的分配內存也是每連接獨享。join_buffer_size = 8M#聯合查詢操作所能使用的緩沖區大小,和sort_buffer_size一樣,該參數對應的分配內存也是每連接獨享。myisam_sort_buffer_size = 64M table_cache = 512 thread_cache_size = 64 query_cache_size = 64M#指定MySQL查詢緩沖區的大小。可以通過在MySQL控制台觀察,如果Qcache_lowmem_prunes的值非常大,則表明經常出現緩沖不夠 的情況;如果Qcache_hits的值非常大,則表明查詢緩沖使用非常頻繁,如果該值較小反而會影響效率,那麼可以考慮不用查詢緩沖;Qcache_free_blocks,如果該值非常大,則表明緩沖區中碎片很多。tmp_table_size = 256M max_connections = 768#指定MySQL允許的最大連接進程數。如果在訪問論壇時經常出現Too Many Connections的錯誤提 示,則需要增大該參數值。max_connect_errors = 1000 wait_timeout = 10#指定一個請求的最大連接時間,對於4GB左右內存的伺服器可以設置為5-10。thread_concurrency = 8#該參數取值為伺服器邏輯CPU數量*2,在本例中,伺服器有2顆物理CPU,而每顆物理CPU又支持H.T超線程,所以實際取值為4*2=8;這個目前也是雙四核主流伺服器配置。skip-networking#開啟該選項可以徹底關閉MySQL的TCP/IP連接方式,如果WEB伺服器是以遠程連接的方式訪問MySQL資料庫伺服器則不要開啟該選項!否則將無法正常連接!table_cache=1024#物理內存越大,設置就越大.默認為2402,調到512-1024最佳innodb_additional_mem_pool_size=4M#默認為2Minnodb_flush_log_at_trx_commit=1#設置為0就是等到innodb_log_buffer_size列隊滿後再統一儲存,默認為1innodb_log_buffer_size=2M#默認為1Minnodb_thread_concurrency=8#你的伺服器CPU有幾個就設置為幾,建議用默認一般為8key_buffer_size=256M#默認為218,調到128最佳tmp_table_size=64M#默認為16M,調到64-256最掛read_buffer_size=4M#默認為64Kread_rnd_buffer_size=16M#默認為256Ksort_buffer_size=32M#默認為256Kthread_cache_size=120#默認為60query_cache_size=32M 另外很多情況需要具體情況具體分析1、如果Key_reads太大,則應該把my.cnf中Key_buffer_size變大,保持Key_reads/Key_read_requests至少1/100以上,越小越好。2、如果Qcache_lowmem_prunes很大,就要增加Query_cache_size的值。 通過參數設置進行性能優化或多或少可以帶來性能的提升,但效果不一定會很突出。
I. 中間件和代理的差別是什麼
中間商差不多是貿易公司,而代理是代理總公司的產品
J. 中間件的分類
中間件分類(IDC的分類):大致可分為六類:終端模擬/屏幕轉換中間件、數據訪問中間件、遠程過程調用中間件、消息中間件、交易中間件、對象中間件。
中間件所包括的范圍十分廣泛,針對不同的應用需求涌現出多種各具特色的中間件產品。但至今中間件還沒有一個比較精確的定義,因此,在不同的角度或不同的層次上,對中間件的分類也會有所不同。由於中間件需要屏蔽分布環境中異構的操作系統和網路協議,它必須能夠提供分布環境下的通訊服務,我們將這種通訊服務稱之為平台。基於目的和實現機制的不同,我們將平台分為以下主要幾類:
遠程過程調用中間件(Remote Procere Call)
面向消息的中間件(MesSAge-Oriented Middleware)
對象請求代理中間件(object RequeST Brokers)
它們可向上提供不同形式的通訊服務,包括同步、排隊、訂閱發布、廣播等等,在這些基本的通訊平台之上,可構築各種框架,為應用程序提供不同領域內的服務,如事務處理監控器、分布數據訪問、對象事務管理器OTM等。平台為上層應用屏蔽了異構平台的差異,而其上的框架又定義了相應領域內的應用的系統結構、標準的服務組件等,用戶只需告訴框架所關心的事件,然後提供處理這些事件的代碼。當事件發生時,框架則會調用用戶的代碼。用戶代碼不用調用框架,用戶程序也不必關心框架結構、執行流程、對系統級API的調用等,所有這些由框架負責完成。因此,基於中間件開發的應用具有良好的可擴充性、易管理性、高可用性和可移植性。
遠程過程調用
遠程過程調用是一種廣泛使用的分布式應用程序處理方法。一個應用程序使用RPC來「遠程」執行一個位於不同地址空間里的過程,並且從效果上看和執行本地調用相同。事實上,一個RPC應用分為兩個部分:server和Client。server提供一個或多個遠程過程;client向server發出遠程調用。server和client可以位於同一台計算機,也可以位於不同的計算機,甚至運行在不同的操作系統之上。它們通過網路進行通訊。相應的stub和運行支持提供數據轉換和通訊服務,從而屏蔽不同的操作系統和網路協議。在這里RPC通訊是同步的。採用線程可以進行非同步調用。
在RPC模型中,client和server只要具備了相應的RPC介面,並且具有RPC運行支持,就可以完成相應的互操作,而不必限制於特定的server。因此,RPC為client/server分布式計算提供了有力的支持。同時,遠程過程調用RPC所提供的是基於過程的服務訪問,client與server進行直接連接,沒有中間機構來處理請求,因此也具有一定的局限性。比如,RPC通常需要一些網路細節以定位server;在client發出請求的同時,要求server必須是活動的等等。
面向消息的中間件
MOM指的是利用高效可靠的消息傳遞機制進行平台無關的數據交流,並基於數據通信來進行分布式系統的集成。通過提供消息傳遞和消息排隊模型,它可在分布環境下擴展進程間的通信,並支持多通訊協議、語言、應用程序、硬體和軟體平台。流行的MOM中間件產品有IBM的MQSeries、BEA的MessageQ等。消息傳遞和排隊技術有以下三個主要特點:
1、通訊程序可在不同的時間運行
程序不在網路上直接相互通話,而是間接地將消息放入消息隊列,因為程序間沒有直接的聯系。所以它們不必同時運行。消息放入適當的隊列時,目標程序甚至根本不需要正在運行;即使目標程序在運行,也不意味著要立即處理該消息。
2、對應用程序的結構沒有約束
在復雜的應用場合中,通訊程序之間不僅可以是一對一的關系,還可以進行一對多和多對一方式,甚至是上述多種方式的組合。多種通訊方式的構造並沒有增加應用程序的復雜性。
3、程序與網路復雜性相隔離
程序將消息放入消息隊列或從消息隊列中取出消息來進行通訊,與此關聯的全部活動,比如維護消息隊列、維護程序和隊列之間的關系、處理網路的重新啟動和在網路中移動消息等是MOM的任務,程序不直接與其它程序通話,並且它們不涉及網路通訊的復雜性。
對象請求代理
隨著對象技術與分布式計算技術的發展,兩者相互結合形成了分布對象計算,並發展為當今軟體技術的主流方向。1990年底,對象管理集團OMG首次推出對象管理結構OMA(ObjECt Management Architecture),對象請求代理(Object Request Broker)是這個模型的核心組件。它的作用在於提供一個通信框架,透明地在異構的分布計算環境中傳遞對象請求。CORBA規范包括了ORB的所有標准介面。1991年推出的CORBA 1.1 定義了介面描述語言OMG IDL和支持Client/Server對象在具體的ORB上進行互操作的API。CORBA 2.0 規范描述的是不同廠商提供的ORB之間的互操作。
對象請求代理(ORB)是對象匯流排,它在CORBA規范中處於核心地位,定義異構環境下對象透明地發送請求和接收響應的基本機制,是建立對象之間client/server關系的中間件。ORB使得對象可以透明地向其他對象發出請求或接受其他對象的響應,這些對象可以位於本地也可以位於遠程機器。ORB攔截請求調用,並負責找到可以實現請求的對象、傳送參數、調用相應的方法、返回結果等。client對象並不知道同server對象通訊、激活或存儲server對象的機制,也不必知道server對象位於何處、它是用何種語言實現的、使用什麼操作系統或其他不屬於對象介面的系統成分。
值得指出的是client和server角色只是用來協調對象之間的相互作用,根據相應的場合,ORB上的對象可以是client,也可以是server,甚至兼有兩者。當對象發出一個請求時,它是處於client角色;當它在接收請求時,它就處於server角色。大部分的對象都是既扮演client角色又扮演server角色。另外由於ORB負責對象請求的傳送和server的管理,client和server之間並不直接連接,因此,與RPC所支持的單純的Client/Server結構相比,ORB可以支持更加復雜的結構。
事務處理監控
事務處理監控(Transaction processing monitors)最早出現在大型機上,為其提供支持大規模事務處理的可靠運行環境。隨著分布計算技術的發展,分布應用系統對大規模的事務處理提出了需求,比如商業活動中大量的關鍵事務處理。事務處理監控界於client和server之間,進行事務管理與協調、負載平衡、失敗恢復等,以提高系統的整體性能。它可以被看作是事務處理應用程序的「操作系統」。總體上來說,事務處理監控有以下功能:
進程管理,包括啟動server進程、為其分配任務、監控其執行並對負載進行平衡。
事務管理,即保證在其監控下的事務處理的原子性、一致性、獨立性和持久性。
通訊管理,為client和server之間提供了多種通訊機制,包括請求響應、會話、排隊、訂閱發布和廣播等。
事務處理監控能夠為大量的client提供服務,比如飛機定票系統。如果server為每一個client都分配其所需要的資源的話,那server將不堪重負(如圖2所示)。但實際上,在同一時刻並不是所有的client都需要請求服務,而一旦某個client請求了服務,它希望得到快速的響應。事務處理監控在操作系統之上提供一組服務,對client請求進行管理並為其分配相應的服務進程,使server在有限的系統資源下能夠高效地為大規模的客戶提供服務。