分散式系統閱讀筆記(八)-----分散式物件和元件
一、介紹
在分散式系統中,一個完整的中介軟體需要展現一定的對於上層程式語言的以及底層的物理設施的抽象性。而分散式物件和分散式元件恰恰是2種重要的實現方式。
1、分散式物件包集成了面向物件的語言的特徵和優點。能夠使使用者用類似面向物件的語言呼叫的層次上去實現遠端的方法呼叫。
2、分散式物件有下面的一些優點:1、包裝性。2、他將一個物件的實現和物件本身分離了。3、具有動態性和擴充套件性。
3、分散式元件是為了克服分散式物件的一些缺點而發展而來的,他解決了在分散式系統中出現的下面的一些問題:1、不完全的獨立性,介面的描述資訊過少。2、程式的複雜性。3、應用開發者缺少對分散式的完全具體的掌控,不能處理一些比如安全,傳輸等等方面。4、分散式物件不支援部署。而統統的這些,可以在分散式元件中被逐一的解決。
二、分散式物件
1、分散式物件是由下面3現象而發展起來的:1、在分散式系統中,人們對於程式語言的抽象性的期望越來越高。2、類似於C++,java這樣的高階語言的出現了,使得分散式中的語言變得更有擴充套件性了。3、伴隨著面向物件思想和理念的程式思想的流行和相關的工具軟體的出現,比如說UML的興起,使得面向物件的設計理念更加廣泛化。
2、在分散式物件中,還存在著一些額外的複雜性:1、分散式物件間的互動通訊。2、分散式物件的生命週期的管理。3、分散式物件的啟用態和非啟用態的轉換隨著呼叫和被呼叫的操作。3、永恆物件的管理。
三、學習列子:CORBA
CORBA是一個典型的基於分散式物件的中介軟體。裡面有個很重要的概念叫做,ORB,物件請求中斷器。
1、CORBA RMI是比較類似於 java RMI的,但是裡面又有些不同的地方,有些新的概念需要了解:1、CORBA提供的物件模型。2、他的介面定義語言。3、CORBA對於多語言的實現的對映。
2、CORBA的結構包括ORB的核心,物件介面卡,stub-skeleton結構,repository,裡面包含了對於名字介面卡的對映關係。
3、CORBA的遠端物件引用有自己的獨有的格式,裡面包括了下面幾個域的資訊:1、物件介面的ID標識。2、指定了傳輸的協議。3、指定了ORB對於CORBA物件的一個標示。
4、CORBA內部包含了多種服務:1、命名服務。2、安全服務。3、併發控制服務。3、事件通知服務。4、事務服務。等等
5、在CORBA的客戶端和服務端的呼叫過程中,客戶端同樣可以將自己的Callback回撥作為引數讓其遠端呼叫,當服務端處理操作結束後,可以主動呼叫客戶端的回撥函式。
三、分散式元件
正如上文中所提到的,分散式物件的服務是非常龐大複雜的,儘管他現在已經被大規模的被部署和使用。人們越來越想要一個輕量級的類似於此的服務。隨著分散式物件的廣泛應用,他的缺點和限制 越漸漸的暴露了出來。
1、一下為分散式物件的缺點(前文中已部分提過):1、絕對的獨立性,要求能夠對於分散式物件的有更多的配置和操作能力。2、互動的簡化性,分散式物件的整個通訊互動流程過於複雜,急需簡化,明瞭。3、缺乏對於分散式的掌控,比如安全方面,你不能做自己想做的。4、不支援部署服務,就是說不支援可配置的部署服務。
2、而基於元件的分散式元件服務則恰恰解決了上述的一些問題,可以用一句話來說,他是一個多個元件的複合物,並且每個元件之間具有關聯性。每個元件包含了一些對外的介面。
3、一個典型的分散式元件的例子是EJB。在EJB中,多元件是以Contain容器的方式出現的。一個容器中包含了一個客戶端,還有包含了很多業務處理邏輯的元件。
4、在Contain中,一個很重要的機理是攔截,通過攔截,可以實現很多的方便和好處。
5、在分散式元件,是支援配置部署的,配置的描述以XML的格式可以被解析並配置。
四、學習例子:EJB和Fractal
EJB是一個簡化後的分散式元件的中介軟體,而Fractal則是一個輕量級的和最簡化的基於元件的服務。
1、在EJB中,對於各個元件和角色採用的極大的分離,包括下列一些構成:1、bean provider2、the application seesembler3、the service provider4、the persistence provider5、the contain provider 6、the system administrator。
2、在 EJB中,提供了一個或多個業務的介面給潛在的物件。EJB中通過Annotation註釋的方式實現了非常多的DI(依賴注入)的控制。通過注入的方式,可以對呼叫多的方法進行攔截,就可以在其中做自己想做的事了,比如ACL訪問控制,或者做日誌操作等等。
3、Fractal是一個輕量級的分散式元件服務,他也可以支援多語言。他的核心包含2部分,服務端介面和客戶端介面。
4、Fractal有著與EJB類似的結構,在主要的內容和外界互動之間,有一個Membranes隔膜層,裡面包含了多個controller控制器,這些控制器就是實現了攔截的功能的。
參考文獻:<<Distributed Sysytems Concepts And Design>>原版第五版,author:George Coulouris,Jean Dollimore, Tim Kindberg,Gordon Blair
相關推薦
分散式系統閱讀筆記(八)-----分散式物件和元件
一、介紹 在分散式系統中,一個完整的中介軟體需要展現一定的對於上層程式語言的以及底層的物理設施的抽象性。而分散式物件和分散式元件恰恰是2種重要的實現方式。 1、分散式物件包集成了面向物件的語言的特徵和
分散式系統閱讀筆記(一)-----分散式系統的特徵
1)引言 從今天開始,我將會開始學習分散式系統的一些理論知識,全方面的重新學習分散式的各個技術點,所以選用了原版本的英文教材<<Dstributed Sysytems Concepts A
分散式系統閱讀筆記(十八)-----副本備份技術
介紹 在分散式系統中,副本和備份是一個用來提供高可用性和一定的容錯能力的手段和措施。HA(高可用性)在當前越來越成為一個趨勢在一些移動計算的領域和一些失去連線的狀態場景之下。在這篇筆記中,我會介紹一些
分散式系統閱讀筆記(二十二)-----時鐘和時鐘同步
時鐘的基本概念 時鐘 時鐘在一般意義上指的是一個計算機的物理時間,每個計算機都會包括他們自己的物理時鐘,不同的計算機的物理可能會不同。 時鐘漂移 經過在同個地方的計算機,他們的物理也有可能會不一樣,如
嵌入式系統移植筆記(八) --製作rootfs
Linux核心啟動後,需要掛載根檔案系統。本章介紹檔案系統的製作過程,並且讓開發板通過網路遠端掛載nfs系統來驗證製作的rootfs。。 檔案系統格式 上面不同的檔案系統格式,有適合不同的應用場合。nfs rootfs,實際nfs是將伺服器端的目錄通過網路的形式共享出
3.2《深入理解計算機系統》筆記(二)內存和高速緩存的原理【插圖】
img sram 本質 text ddr rate too 是我 很大的 《深入計算機系統》筆記(一)主要是講解程序的構成、執行和控制。接下來就是運行了。我跳過了“處理器體系結構”和“優化程序性能”,這兩章的筆記繼續往後延遲! 《深入計算機系統》的一個很大的用處
Linux學習筆記(八)文件和目錄權限chmod、更改所有者和所屬組chown、umask、隱藏權限
筆記 前三 表示 col color 新建 ttr 執行文件 mar 一、chmod chmod 命令用於修改文件或者文件夾的權限, 之前學習過 ls -l 如圖,第一位-之前已經學習過,代指這是一個文本之後的 rw-r--r--是文件的權限前三位rw-是文件所有者的權限中
JavaEE互聯網輕量級框架整合開發(書籍)閱讀筆記(1):Mybatis和Hibernate概念理解
bat 特定 定義 理解 緩存 面向 ont span 等待 一、關鍵字說明: oop:面向對象 aop:面向切面 ioc:控制反轉 orm:對象關系映射 pojo:數據庫表映射的java實體類 二、常識說明:1.hibernate和mybatis都屬於持久層、orm
Software Testing 閱讀筆記(二)離散數學和泛化程式碼
泛化的虛擬碼,根據我的理解,就是單元和程式元件,就是單詞加上一個尖括號來代表步驟,省略了大部分程式。 經典問題 三角形問題 判斷三角形的形狀:輸入為三條邊,輸出為三角形的形狀 以下是其三角形程式的資料流圖展示: 注意圖中,我們可以分析到有六個箭頭指向非三角形,三個指向等腰三
分散式系統概念與設計——閱讀筆記(一)
一、分散式系統的挑戰 分散式系統的挑戰,其實就是某種意義上分散式系統研究的重點內容。 1、異構性 分散式系統的執行環境,存在下列異構性(即存在多樣性和差別):網路、計算機硬體、作業系統、程式語言、由不同開發者完成的軟體實現。中介軟體是解決異構性的一種方式,中介軟體是指一個
spring分散式事務學習筆記(2)
此文已由作者夏昀授權網易雲社群釋出。 歡迎訪問網易雲社群,瞭解更多網易技術產品運營經驗。 Model類如下:package com.xy.model 1 package com.xy.model; 2 3 /**  
java分散式系統部署學習(九)ansible-playbook進階
一、併發執行 ansible預設只會建立5個程序,所以一次任務只能同時控制5臺機器執行.那如果你有大量的機器需要控制,或者你希望減少程序數,那你可以採取非同步執行.ansible的模組可以把task放進後臺,然後輪詢它.這使得在一定程序數下能讓大量需要的機器同時運作起來. 使用asy
《高校校園超市管理系統的設計及實現》論文筆記(八)
一、基本資訊 標題:高校校園超市管理系統的設計及實現 時間:2016 來源:湖南大學 關鍵詞:校園超市; 管理資訊系統; 管理模組; 二、研究內容 1.管理系統: 該篇論文很清晰的解釋了一個概念,管理系統。概念的創始人G
Spark Streaming實時流處理筆記(4)—— 分散式訊息佇列Kafka
1 Kafka概述 和訊息系統類似 1.1 訊息中介軟體 生產者和消費者 1.2 Kafka 架構和概念 producer:生產者(生產饅頭) consumer:消費者(吃饅頭) broker:籃子 topic : 主題,給饅頭帶一個標籤,(
spring分散式事務學習筆記(1)
此文已由作者夏昀授權網易雲社群釋出。 歡迎訪問網易雲社群,瞭解更多網易技術產品運營經驗。 分散式事務對效能有一定的影響,所以不是最佳的解決方案,能通過設計避免最好儘量避免。 分散式事務(Distributed transactions),也稱作XA事務(XA是一個協議的名字),在spring中被稱作glob
Redis學習筆記(五)--分散式資料庫CAP原理
傳統資料庫的ACID Atomicity 原子性 事務裡面的所有操作要麼全部做完,要麼都不做,事務成功的條件是事務裡的所有操作都成功,只要有一個操作失敗,整個事務就失敗,需要回滾。 Consistency 一致性 資料庫要一直處於一致的狀態
高併發服務端分散式系統設計概要(上)
又是快一年沒寫部落格了,2013年也只剩尾巴,也不知道今年都忙了些什麼。寫這篇文章的目的,主要是把今年以來學習的一些東西積澱下來,同時作為之前文章《高效能分散式計算與儲存系統設計概要》的補充與提升,然而本人水平非常有限,回頭看之前寫的文章也有許多不足,甚至是
分散式系統之Quorum (NRW)演算法
基於Quorum投票的冗餘控制演算法 Quorom 機制,是一種分散式系統中常用的,用來保證資料冗餘和最終一致性的投票演算法,其主要數學思想來源於鴿巢原理。 在有冗餘資料的分散式儲存系統當中,冗餘資料物件會在不同的機器之間存放多份拷貝。但是同一時刻一個數據物件的多份拷貝只能用於讀或者用於寫。 該演算法可
java分散式系統部署學習(六)ansible Ad-hoc與commands模組
Ad-Hoc 是指ansible下臨時執行的一條命令,並且不需要儲存的命令,對於複雜的命令後面會說playbook。講到Ad-hoc 就要提到模組,所有的命令執行都要依賴於事先寫好的模組,預設安裝好的ansible 裡面已經自帶了很多模組,如:command、r
java分散式系統部署學習(五)ansible Dynamic Inventory
Ansible Inventory實際上是包含靜態Inventory和動態Inventory兩部分,靜態Inventory指的是在檔案/etc/ansible/hosts中指定的主機和組,Dynamic Inventory指通過外部指令碼獲取主機列表,並按照an