什麼是(IPC,RPC,LPC),NFS,REST,WSDL,SOAP,SOA,IoC,GoF,ROA,ESB,AOP,DCOM,CORBA之類很多很雜。

tags:    時間:2013-12-14 14:22:13
什麼是(IPC,RPC,LPC),NFS,REST,WSDL,SOAP,SOA,IoC,GoF,ROA,ESB,AOP,DCOM,CORBA等等很多很雜。。
最近惡補了一些東西,裡面的東西有的不是說看過就能理解的,也不是說一兩句話就可以說清出的,是需要領悟的,所以在這裡做個記錄,也順便和人討論討論:
比如RPC...,NFS,REST,SOA,IoC,ROA,ESB這些東西總是容易讓人感覺很抽象,這裡做個簡單的介紹:
先看各個到底是什麼意思,然後我們來個總結:

引用
進程間通信(IPC,Inter-Process Communication),指至少兩個進程或線程間傳送數據或信號的一些技術或方法。進程是計算機系統分配資源的最小單位。每個進程都有自己的一部分獨立的系統資源,彼此是隔離的。為了能使不同的進程互相訪問資源並進行協調工作,才有了進程間通信。這些進程可以運行在同一計算機上或網路連接的不同計算機上。 進程間通信技術包括消息傳遞、同步、共享內存和遠程過程調用。 IPC是一種標準的Unix通信機制;

LPC:本地過程調用,用在多任務操作系統中,使得同時運行的任務能互相會話。這些任務共享內存空間使任務同步和互相發送信息。
RPC:Remote Procedure Call遠程過程調用;遠程調用類似與LRC,只是他是在網路上工作。
而,所謂過程調用,就是將控制從一個過程 A 傳遞到另一個過程 B, 返回時過程 B 將控制進程交給過程 A。目前大多數系統中, 調用者和被調用者都在給定主機系統中的一個進程中, 它們是在生成可執行文件時由鏈接器連接起來的, 這類過程調用稱為本地過程調用。

NFS,Network File System網路文件系統. 網路文件系統是FreeBSD支持的文件系統中的一種,也被稱為NFS. NFS允許一個系統在網路上與它人共享目錄和文件。通過使用NFS,用戶和程序可以象訪問本地文件一樣訪問遠端系統上的文件。
註:NFS客戶端也可以安裝在windows的系統上(之前以為只能在都是linux機子的網路下。。。);
REST: 從資源的角度來觀察整個網路,分佈在各處的資源由URI確定,而客戶端的應用通過URI來獲取資源的表形。獲得這些表形致使這些應用程序轉變了其狀態。隨著不斷獲取資源的表形,客戶端應用不斷地在轉變著其狀態,所謂表形化的狀態轉變(Representational State Transfer)。因為REST模式的Web服務與複雜的SOAP和XML-RPC對比來講明顯的更加簡潔,越來越多的web服務開始採用REST風格設計和實現。
SOAP 是指簡單對象訪問協議(simple object access protocal)。
SOAP是基於 XML 的簡易協議,可使應用程序在 HTTP 之上進行信息交換。或者更簡單地說:SOAP 是用於訪問網路服務的協議。是一種通信協議,是基於應用程序級別的通訊;
對於應用程序開發來說,使程序之間進行網際網路通信是很重要的。
目前的應用程序通過使用遠程過程調用(RPC)在諸如 DCOM 與 CORBA 等對象之間進行通信,但是 HTTP 不是為此設計的。RPC 會產生兼容性以及安全問題;防火牆和代理伺服器通常會阻止此類流量。通過 HTTP 在應用程序間通信是更好的方法,因為 HTTP 得到了所有的網際網路瀏覽器及伺服器的支持。SOAP 就是被創造出來完成這個任務的。SOAP 提供了一種標準的方法,使得運行在不同的操作系統並使用不同的技術和編程語言的應用程序可以互相進行通信。
WSDL 網路服務描述語言 (Web Services Description Language)。
WSDL 是一種使用 XML 編寫的文檔。這種文檔可描述某個 Web service。它可規定服務的位置,以及此服務提供的操作(或方法)(還不是 W3C 標準)。
UDDI 是一種目錄服務,企業可以使用它對 Web services 進行註冊和搜索。
UDDI,英文為 "Universal Description, Discovery and Integration",可譯為「通用描述、發現與集成服務」。是一個獨立於平台的框架,用於通過使用 Internet 來描述服務,發現企業,並對企業服務進行集成。
•UDDI 指的是通用描述、發現與集成服務
•UDDI 是一種用於存儲有關 web services 的信息的目錄。
•UDDI 是一種由 WSDL 描述的 web services 界面的目錄。
•UDDI 經由 SOAP 進行通信
•UDDI 被構建入了微軟的 .NET 平台
UDDI 使用 W3C 和 IETF* 的網際網路標準,比如 XML、HTTP 和 DNS 協議。
UDDI 使用 WSDL 來描述到達 web services 的界面;
在 UDDI 之前,還不存在一種 Internet 標準,可以供企業為它們的企業和夥伴提供有關其產品和服務的信息。也不存在一種方法,來集成到彼此的系統和進程中。

SOA:
SOA面向服務的體系結構(service-oriented architecture,SOA)是一個系統軟體組件模型,它將應用程序的不同功能單元(稱為服務)通過這些服務之間定義良好的介面和契約聯繫起來。介面是採用中立的方式進行定義的,它應該獨立於實現服務的硬體平台、操作系統和編程語言。這使得構建在各種這樣的系統中的服務可以以一種統一和通用的方式進行交互。

WSDL,UDDI和SOAP是SOA基礎的基礎部件。WSDL用來描述服務;UDDI用來註冊和查找服務;而SOAP,作為傳輸層,用來在消費者和服務提供者之間傳送消息。SOAP是Web服務的默認機制,其他的技術為可以服務實現其他類型的綁定。一個消費者可以在UDDI註冊表(registry)查找服務,取得服務的WSDL描述,然後通過SOAP來調用服務。

ESB全稱為Enterprise Service Bus,即企業服務匯流排。它是傳統中間件技術與XML、Web服務等技術結合的產物。ESB提供了網路中最基本的連接中樞,是構築企業神經系統的必要元素。   
ESB的出現改變了傳統的軟體架構,可以提供比傳統中間件產品更為廉價的解決方案,同時它還可以消除不同應用之間的技術差異,讓不同的應用伺服器協調運作,實現了不同服務之間的通信與整合。從功能上看,ESB提供了事件驅動和文檔導向的處理模式,以及分散式的運行管理機制,它支持基於內容的路由和過濾,具備了複雜數據的傳輸能力,並可以提供一系列的標準介面。
ESB 不是萬能的,他不是一個應用程序框架,也不是一個企業應用的解決方案.它只是一個基於消息的調用企業服務的通信模塊!你可以把它嵌入到你的應用程序框架中,例如嵌入到spring容器裡面,或者嵌入到工作流系統中.它的作用是對企業裡面的SOA服務的調用提供一個框架和簡便的方法.
ROA:Return On Assets,資產收益率.沒啥好說的。。。。
AOP:面向切面編程(也叫面向方面):Aspect Oriented Programming   
AOP是OOP的延續,是(Aspect Oriented Programming)的縮寫,意思是面向切面(方面)編程。   
主要的功能是:日誌記錄,性能統計,安全控制,事務處理,異常處理等等。   
主要的意圖是:將日誌記錄,性能統計,安全控制,事務處理,異常處理等代碼從業務邏輯代碼中劃分出來,通過對這些行為的分離,我們希望可以將它們獨立到非指導業務邏輯的方法中,進而改變這些行為的時候不影響業務邏輯的代碼。
 在Spring中提供了面向切面編程的豐富支持,允許通過分離應用的業務邏輯與系統級服務(例如審計(auditing)和事務(transaction)管理)進行內聚性的開發。應用對象只實現它們應該做的——完成業務邏輯——僅此而已。它們並不負責(甚至是意識)其它的系統級關注點,例如日誌或事務支持。
DCOM(分散式組件對象模型)是一系列微軟的概念和程序介面,利用這個介面,客戶端程序對象能夠請求來自網路中另一台計算機上的伺服器程序對象。DCOM基於組件對象模型(COM),COM提供了一套允許同一台計算機上的客戶端和伺服器之間進行通信的介面(運行在Windows95或者其後的版本上)。
CORBA(Common Object Request Broker Architecture,公共對象請求代理體系結構,通用對象請求代理體系結構)是由OMG組織制訂的一種標準的面向對象應用程 序體系規範。或者說 CORBA體系結構是對象管理組織(OMG)為解決分散式處理環境(DCE)中,硬體和軟體系統的互連而提出的一種解決方案;OMG組織是一個國際性的非盈利組織,其職責是為應用開發提供一個公共框架,制訂工業指南和對象管理規範,加快對象技術的發展。
IoC Inversion of Control

控制反轉。在Java開發中,IoC意味著將你設計好的類交給系統去控制,而不是在你的類內部控制。這稱為控制反轉。
不創建對象,但是描述創建它們的方式。在代碼中不直接與對象和服務連接,但在配置文件中描述哪一個組件需要哪一項服務。容器負責將這些聯繫在一起。其原理是基於OO設計原則的TheHollywoodPrinciple:Don'tcallus,we'llcallyou(別找我,我會來找你的)。也就是說,所有的組件都是被動的(Passive),所有的組件初始化和調用都由容器負責。組件處在一個容器當中,由容器負責管理。簡單的來講,就是由容器控制程序之間的關係,而非傳統實現中,由程序代碼直接操控。這也就是所謂「控制反轉」的概念所在:控制權由應用代碼中轉到了外部容器,控制權的轉移,這就是反轉。

GoF"四人組",代表著設計模式。不僅僅Java。



********************************************************************************************************************************************
今天上來,發現這篇文章被踩了好幾下。。。。失落感頓生。。。文中所提到的大部分是一些理論原理之類的知識,或許太簡單了點,但對於剛接觸的我來說,他們是很有吸引了的。。。。。。。********************************************************************************************************************************************


參考資料:
1,WebService與使用風格RPC/SOA/REST
http://www.cnblogs.com/itech/archive/2010/06/30/1768327.html
2,大家能談談SOAP與CORBA,COM/DCOM的區別?
http://topic.csdn.net/t/20021231/12/1316022.html
3,[SOA介紹]什麼是SOA?
http://java.ccidnet.com/art/3559/20041125/478009_1.html
4,什麼是SOA?soa是什麼意思?
http://www.eqccd.com/academy/ShowPost.asp?ThreadID=96
5,進程間通信IPC、LPC、RPC
http://www.cnblogs.com/gsk99/archive/2010/12/13/1904541.html
6,【C++】【CPR】淺析遠程過程調用 RPC
http://blog.csdn.net/sunnykaho/archive/2009/12/03/4935419.aspx

推薦閱讀文章

Bookmark the permalink ,來源:互聯網