發表文章

分散式系統 Distributed Systems_Chapter 02: Architectures_Week2筆記

圖片
軟體架構 (Software architectures) : 說明各種軟體元件是如何組織的,以及它們應該如何互動。 分散式系統中軟體架構目標 :  透過提供中介層 (middleware layer),將應用程式與底層平台分離。 系統架構(System Architecture) : 決定軟體元件、它們之間互動方式,以及它們的部署位置,最終形成一具體的軟體架構實例。 Architectural styles (replaceable) components with well-defined interfaces 可替換的元件之間透過明確定義的介面彼此互動 the way that components are connected to each other 元件之間的連接方式 the data exchanged between components 元件間交換的資料 how these components and connectors are jointly configured into a system. 系統的整體配置,元件與 連接器 如何組合成一個完整的系統。 連接器 (Connector): 是一種機制,用來調節元件之間的通訊 (communication)、協調 (coordination)、合作 (cooperation)。 例如:用於遠端程序呼叫(RPC)、訊息傳遞(messaging)或資料串流(streaming)的機制。 Layered architecture Pure layered org : Only downcalls to the next lower layer are made. mixed layered org : take layer n-1. There’s an app called A. this will invoke an OS library that’s available in layer n-3. AS WELL as n-3, A will call layer n-2,wihich holds a maths library . maths library itself relies on OS library in layer n-3! So n-2 has to call n-...

分散式系統 Distributed Systems_Chapter 01: Introduction_Week1筆記_part3

圖片
Three types of distributed systems High performance distributed computing systems(高效能分散式計算系統) Ex:Parallel computing Distributed information systems(分散式資訊系統) Distributed systems for pervasive computing(普及運算的分散式系統) Parallel computing Multiprocessor(多處理器系統) 在同一台電腦中,安裝多個處理器(CPU),共享同一個記憶體與 I/O 系統。 Multicore(多核心處理器) 屬於「Private memory架構」,單一處理器晶片內含多個運算核心,每個核心能獨立執行指令。 Multicomputer(多電腦系統) 屬於「分散式記憶體架構」,多台獨立電腦(節點)透過網路連接,協同完成任務。 Grid Computing(網格運算)架構 為了促進協作,運算通常使用虛擬組織(virtual organizations)。可理解為是一組使用者ID的集合,用來進行資源分配的授權。 特徵 異質性(Heterogeneous):節點來自不同硬體、軟體平台。 跨組織(Dispersed across several organizations):資源分布於多個管理領域。 廣域網路(Wide-area network):容易跨越 WAN 進行協作。 Grid Computing 的4層架構各自組成(由下Laryer1至上Layer4) L1.Fabric:Provides interfaces to local resources 提供本地資源的介面 L2.Connectivity:Communication/transaction protocols 通訊與交易協定 L2.Resource: Manages a single resource 管理單一資源 L3.Collective:Handles access to multiple resources or protocols 提供資源發現(discovery)、排程(scheduling)、複製(replication)等功能 L4.Application: Contains...

分散式系統 Distributed Systems_Chapter 01: Introduction_Week1筆記_part2

圖片
就Policies(政策) 或 Mechanisms(技術機制) 各自實施作法比較 就Policies(政策)  我們需要對客戶端快取(client-cached)資料維持何種一致性層級?(What level of consistency) 我們允許下載的程式碼執行哪些操作?(Which operations do we allow downloaded code) 在面對不同頻寬時,我們會調整哪些服務品質(QoS)需求?(Which QoS requirements) 我們要求通訊具備何種等級的保密性?(What level of secrecy) 就Mechanisms(技術機制) Allow (dynamic) setting of caching policies 允許(動態)設定快取政策 Support different levels of trust for mobile code Provide adjustable Quality of Service (QoS) parameters per data stream 針對每個資料流提供可調整的服務品質(QoS)參數 Offer different encryption algorithms 策略與機制越嚴格的話,我們就越需要確保適當的機制,也因此會進而導致管理上與配置上的參數會更複雜。硬編碼(Hard coding)策略通常以降低靈活性的代價來簡化管理並降低複雜性。 Scale in distributed systems (怎麼定義系統具有可擴展性?) 至少有三個面向的可擴展性需要考慮: 使用者數量與/或程序數量(Size scalability) 系統能否隨著使用者或程序數量的增加而持續有效運作。 節點之間的最大距離(Geographical scalability) 系統能否在節點分布於更廣泛的地理範圍時,仍維持合理的效能與一致性。 管理領域的數量(Administrative scalability) 系統能否跨越多個獨立的管理領域(如不同組織或機構)而仍能協同運作。 需要明確說明系統在 規模、地理分布、管理領域 三個層面上如何應對挑戰。 絕大部分系統僅在「規模可擴展性(size scalability)」上有所考量,也就是隨著使用者或程序數量的增加,系統能否持續運作。...

分散式系統 Distributed Systems_Chapter 01: Introduction_Week1筆記_part1

圖片
Distributed System A distributed system is a collection of autonomous (自主性) computing elements that appears to its users as a single coherent system . Distributed Systems: Principles and Paradigms 一書中的定義 A distributed system is a collection of independent computers that appears to its users as a single coherent system. 由多個彼此獨立運作的節點(可能是硬體裝置或軟體程序)所組成的整體。這些節點透過協作來對外呈現為一個單一、一致的系統。 自主節點的集合且彼此要能相互協作才能組成分散式系統,讓User 用起來 或其他應用程式存取、就像是單體。 補充: 自主運算元素(Autonomous computing elements),也稱為節點(nodes),可以是硬體裝置或軟體程序。 單一一致的系統(Single coherent system):使用者或應用程式將其視為一個整體的單一系統。因此,節點之間必須進行協作;若缺乏協作,則無法構成分散式系統。 分散式系統中常見問題(Collection of autonomous nodes) Problem1.同步與協調問題(synchronization and coordination problems) 由於每個節點皆為自主運作,因此各自維持獨立的時間觀(own notion of time),系統中並不存在統一的全域時鐘(global clock)。這種特性引發了分散式系統中最根本的同步與協調問題。 Problem2.如何管理群組成員資格、如何確認你確實正在與一位已授權的(非)成員進行通訊? 開放式群組(Open group):任何人都可以加入並向其他人傳送訊息。 封閉式群組(Closed group):只有群組成員之間才能互相通訊,並且需要透過特定的加入與退出流程。 覆疊網路(Overlay network) 集合中的每個節點 僅與系統內的其他節點(即其鄰居)進行通訊 。鄰居的集合可能是動態變化的,甚至...

分散式系統報告參考資料

https://twiki.di.uniroma1.it/pub/Reti_elab/MZ/WebHome/Lezione_P2P-2.pdf https://www.kth.se/mwg-internal/de5fs23hu73ds/progress?id=Ve8FdOgvYxAWjFnLtpMJiEXbD4dLcRHhYDoiN98eH0E,&dl https://www.wikiwand.com/zh/articles/Vorbis https://news.post76.hk/2016/04/%E4%B8%B2%E6%B5%81%E9%9F%B3%E6%A8%82%E6%8A%80%E8%A1%93%E7%9F%A5%E5%A4%9Ad/

Spotify – Large Scale, Low Latency, P2P Music-on-Demand Streaming

Spotify – Large Scale, Low Latency, P2P Music-on-Demand Streaming https://www.csc.kth.se/~gkreitz/spotify-p2p10/spotify-p2p10.pdf https://ieeexplore.ieee.org/document/5569963 Peer-to-peer streaming of media content https://patents.google.com/patent/US8316146B2/en former Spotify CTO-Andreas Ehn https://marketrealist.com/tech-comm-services/andreas-ehn-spotify-now/ Gunnar Kreitz https://www.csc.kth.se/~gkreitz/ Ludvig Strigeus https://torrentfreak.com/utorrent-inventor-wins-prestigious-technology-innovation-award-221114/ Spotify 於 2008 年 10 月推出,截至2010(論文發表時間)於當時,已在六個歐洲國家擁有超過 700 萬名使用者。 服務提供兩種版本: 免費版(含廣告) 每月付費的高級版:高級版提供一些額外功能,例如以更高位元率串流音樂,以及同步播放清單以供離線使用。 兩種版本皆可無限制地串流音樂,而大多數使用者使用的是免費版。 Spotify 客戶端的一大特色是其低播放延遲。播放一首曲目的中位延遲時間為 265 毫秒。此服務並非根據網頁,而是使用專屬的客戶端與通訊協定。 市面上有諸多「隨選音樂串流服務」(on-demand music streaming services),在當時除Spotify之外,幾乎都是網頁型應用。通常使用 Adobe Flash 或網頁瀏覽器外掛程式進行串流。此外,它們都是純粹的Clinet-Server架構,並未採用P2P技術。在隨選串流領域中,點對點技術的應用在視訊隨選服務中更為普遍。 提供隨選串流的服務與檔案分享應用程式有許多共通之處。 例如,Spotify 用於尋找其他用戶的機制與 BitTorrent...

外匯(Forex / Foreign Exchange)術語知識

圖片
  在進行MetaTrader API界接封裝時,時常看到SDK官方文件諸多陌生的專業術語。 就剛好有機會做一個筆記。 https://www.forex.com/en-us/forex-trading/ 外匯(Forex / Foreign Exchange)術語知識 何謂外匯市場(Forex Market)? 是全球最大的金融市場每天交易量超過7萬億美元,不像股票有統一集中式交易所,是一個分散式網路系統。是一個24小時不停止的全球分散式交易市場,非單一交易所,比美股市場更大。 透過各大銀行、經紀商、金融機構在全球24小時不斷搓合報價並成交。 透過外匯交易賺錢的本質就是匯差,分兩種情況: 動態外匯(交易面):去跟其他外面國家做交易產生匯率的變化差異,指進出口、投資、避險等行為造成匯率變動與交易。。 靜態外匯(貨幣面):單指國外貨幣,例如「美元、日圓、歐元」。。 外匯跟股票最大差異? 除了不像股票一樣有固定開盤交易時段,周一至周五24小時都能進場。 外匯市場波動節奏會比股票來的更大。 另外股票通常是單向交易,要等漲後賣掉才有賺。有別於股票,外匯交易屬於雙向交易,漲也可賺、跌也可賺只要方向操作合理謹慎。 為何24小時開放? 因為外匯屬於全球性的交易市場,主要由亞洲、歐洲、美洲三大市場組成。 因為不同時區的國家輪流開盤,因此外匯市場從周一早上到周六凌晨一直持續運作。交易市場輪動不間斷交易。 亞洲盤有東京市場、悉尼市場在早上開市 歐洲盤倫敦市場在下午3點開市 美洲盤紐約市場在晚上8點多開市 何時做交易更好?(參考學習,非本人絕對建議習自網路) 若傾向做短線,最好是在市場較活躍比較有波動的時候,流動性較大。 比方下午3點歐洲盤開始發動時候,此時歐洲經濟數據也正在開始發布。適合交易歐元、英鎊等。最主要行情晚上美洲盤,也就是晚上8點多。美金、黃金、比特幣、原油在這時間點波動也很大。此時也會有很多經濟數據公布,像是CPI、非農(非農就業數據)等指標都會讓行情產生上下波動。 通常周一上午不建議交易,因為市場才剛剛開盤,流動性較低方向還不明朗。 還有週五快閉市時候,因為此時市場資金已經開始減少,有時可能出現異常波動。 更不建議在重大數據發布的前後做交易,波動十分劇烈容易打到止損。 誰在交易外匯? 參與者分五大類 1.各國中央銀行,比如:美國美聯儲、歐洲央行、日本央行...等等...

AZ-104考題解析_部署和管理 Azure 計算資源 (20–25%)

圖片
  Q1.You have an app named App1 that runs on an Azure web app named webapp1. The developers at your company upload an update of App1 to a Git repository named Git1. Webapp1 has the deployment slots shown in the following table. You need to ensure that the App1 update is tested before the update is made available to users. Which two actions should you perform? ○ Stop webapp1-prod.   ○ Deploy the App1 update to webapp1-prod, and then test the update. ○ Deploy the App1 update to webapp1-test, and then test the update. ○ Stop webapp1-test. ○ Swap the slots. Azure App Service 部署位置可讓您透過在預備環境中測試變更,再將其推送到生產環境,安全地部署更新。以下是此情境的運作方式: webapp1-prod → 正式環境槽位:這是使用者存取應用程式正式版本的地方。 webapp1-test → 測試/預發環境槽位:這是您在不影響使用者的情況下測試新版本的地方。 Step1.部署到 webapp1-test 確保更新能在正式應用於生產環境前,先在預備環境中進行測試。 Step2.透過位置交換來推播更新。在確認更新於預備位置運作正常後,您會將 webapp1-test 與 webapp1-prod 進行交換。這樣就能讓經過測試的更新無縫上線,不會造成服務中斷。 ======================================================================== Q2.You have an Azure subscription. You ne...