2023/01/30

技術成熟度曲線 Gartner Hype Cycle

技術成熟度曲線 Gartner Hype Cycle 又稱為技術循環曲線、炒作週期,是由 Gartner 顧問公司於 1995 年開始,製作的技術發展模型,通常是以領域區分,列出該領域中,各項新興技術在 hype cycle 五個階段中的哪一個,並於下面這樣的圖中標示出來。

Understanding Gartner’s Hype Cycles

Gartner 每年都會在不同領域提出超過 100 個 hyper cycle,讓其客戶能追蹤技術的成熟度,並了解未來的發展潛力。

Gartner 認為一項技術從發展到成熟會經過五個階段

  1. Innovation Trigger 技術誕生初期

  2. Peak of Inflated Expectations 過高期望的峰值期

  3. Trough of Disillusionment 泡沫化的低谷期

  4. Slope of Enlightenment 穩定上升的光明期

  5. Plateau of Productivity 實質生產的高原期

像這篇文章,在 2022/8 以 hype cycle 討論 NFT 的狀態,標示了 NFT 已經過了峰值,開始進入泡沫化,未來期待有可能會再度進入穩定上升期。而 web3 已經快到了高原期。metaverse 則還是在技術發展的初期。

3 Exciting New Trends in the Gartner Emerging Technologies Hype Cycle


Gartner 另外還有提出新興技術優先性矩陣 Emerging Technology Priority Matrix

對於技術開發來說,只知道 hype cycle 是不夠的,還需要了解新興技術未來可能的機會,並決定未來的開發計畫。

新興技術優先性矩陣是一個 4X4矩陣,橫軸為新興技術到高峰期的時間,包括A.小於2年(less than 2 years)、B. 2-5年(2 to 5 years)、C. 5-10年(5 to 10 years)、D. 10年以上(more than 10 years)。縱軸為新興技術之效益與預期影響,包括顛覆性的效益(Transformational)、高效益(High)、中效益(Moderate)與低效益(Low)。

References

技術成熟度曲線 - 維基百科,自由的百科全書

技術成熟度曲線:技術成熟度曲線(The Hype Cycle),又稱技術 -百科知識中文網

Gartner發布2022年新興技術成熟度曲線,這三大趨勢值得關注

新興技術評估與炒作曲線

2023/01/16

Complex Event Processing - CEP

David Luckham 與Brian Fraseca 於1990年提出複合事件架構,使用模式比對、事件的相互關係、事件間的聚合關係,目的從事件雲(event cloud)中找出有意義的相關事件,IT 系統可以更彈性使用事件驅動架構,並且能使企業更能快速的開發出更複雜的架構。這邊提到的事件雲,代表企業內部的多個事件資料庫,系統可從不同的事件資料庫,統整出相關的事件,建構快速反應的系統。

在簡單的事件處理系統中,通常是針對每一個單一事件作過濾 filtering 與 routing,決定要不要轉發事件,把事件發送給誰。例如溫度感測器,當感測溫度超過某個設定值,就要發送事件給訂閱者處理。

在複合事件處理系統中,會透過處理的機制,在某個時間範圍中,判讀並關聯相關的事件,統整後,做後續的事件處理。例如證券行情推薦系統,可同時針對多個市場股票,新聞事件,狀態,成交量等等許多的資訊事件流,動態統整出一個推薦結果。即時戰略遊戲中,系統對所有角色的位置與行為事件,統整出一個新的對應策略。根據天色,氣象局資料,現場雷聲閃電等等,預測氣候狀況,作出對應的處理對策。

Flink 是一個分散式資料流處理架構,Apache Flink: Use Cases 裡面提到要運用資料流處理的三類系統。

  • Event-Driven Application

    ex: Fraud detection, Anomaly detection, Rule-based altering, Business processing monitoring, Soical network web application

  • Data Analyics Application

    ex: Quality monitoring of telco networks, Ad-hoc analysis of live data in consumer technology

  • Data Pipeline Application

    ex: Real-time search index building in e-commerce

隨著時間經過,事件要經過這些步驟處理

  1. 事件發生

  2. 資料擷取

  3. 理解事件

  4. 訂立決策

  5. 採取行動

CEP 就是用來減少這些步驟過程的處理時間,快速反應減少處理的延遲,就能增加系統的價值。

References

Complex event processing - Wikipedia

複合事件處理CEP簡介 - IT閱讀

大量日誌資料複雜事件處理技術(Complex Event Processing 簡稱CEP) - 程式人生

2023/01/09

Software Architecture Patterns 3

O'Reilly 提供了一份Software Architecture Patterns [Book] ,裡面描述了五個基本的軟體架構。這邊是 space-based architecture。

Space-Based

web-based business application 通常是以下流程:browser 發 request給 app server,最後存到 database server,這個方式在 user load 增加時,就發生 bottleneck,scaling application 會需要依序擴充 web server, app server, database server,db server 是最難擴充的部分。

在有大量 concurrent user 的 high-volume application,db 會是限制有多少 transaction 的重要因素,有多種 db cache 機制可協助解決。

space-based architecture 是用來解決 scalability 與 concurrency issues,也是有效應付變化且無法預測 concurrent user volumnes 的方案,以架構解決問題,會比擴充 database 或使用 db cache 好

space-based pattern 也稱為 cloud architecture 可減輕 application scaling 問題。此 pattern 是以 "tuple space" 命名,做法是 distributed shared memory。high scalability 是藉由移除 central database,改用 in-memory data grids。APP data 存放在記憶體,複製到所有 active processing units。processing unit 可動態根據 user load 啟動或關閉,達到 variable scalability。

多數的 application 尤其是 web application 適用這個 pattern,本架構有兩個元件: a processing unit, virtualized middleware

processing unit 包含 application components,也就是 web-based components,還有backend business logic,大型 application 可將功能切割到多個 processing unit 中,processing unit 裡面包含 application module,還有 in-memory data grid,及 optional asynchronous persistent store for failover。還有 replication engine 用在 virtualized middleware,處理 data change>

virtualized middleware 處理 housekeeping 及 communication,包含控制 data synchronization 及 request handling 的元件,還有 messaging grid, data grid, processing grid, deployment manager

Pattern Dynamics

重點是 virtualized middleware 及 processing unit 的 in-memory data grid。

以下是 processing unit 的相關元件關係

virtualized middleware 控制 architecture 並管理 requests, sessions, data replication, distributed request processing 及 processing unit deployment。裡面有四個主要元件: messaging grid, data grid, processing grid, deployment manager

Messaging Grid

負責處理 input request 及 session information

當request 進入 virtualized middleware,messaging grid 會決定指派到哪一個 active processing component,可以用 round-robin 或是 next-available algorithm

Data Grid

是本 pattern 最重要的元件

在 data change 時要處理 data-replication in each processing unit

因為 messaging grid 可將 request 轉送到任一個 processing unit,重點是所有 processing unit 都有相同的資料

上圖是 synchronous data replication between processing units,但實際上會是 parallel asynchronously,並在幾 ms 內完成

Processing Grid

optional component

管理 distributed request processing

當收到 processing unit 的 request (ex: order processing unit 及 customer processing unit),processing grid 要負責協調兩個 processing unit 之間的互動

Deployement Manager

根據 loading 動態 startup/shutdown processing unit,該 component 會持續觀察 response time 及 loading,需要時啟動新的 processing unit

注意事項

本 pattern 是個複雜且昂貴的架構,但適用於 web-based application with variable load (ex: social media stire, bidding and auction sites) ,不適用於傳統有大量的 operational data 的大型 relational database application

雖然不需要 centralized datastore,但會處理 initial in-memory data grid load 及非同步 persist data update。可切割 volatile 與常用的 transactional data,以減少 memory footprint

本 pattern 的另一個名稱是 cloud-based architecture,processing unit 不一定放在 cloud-based hosted service 或 PaaS,故還是用 space-based architecture 會比較好

可用多個 3rd party 產品:GemFire, JavaSpaces, GigaSpaces, IBM Object Grid, nCache, Oracle Coherence

Pattern 分析

  • overall agility: high

  • ease of deployment: high

  • testability: low

  • performance: high

  • scalability: high

  • ease of deployment: low

    caching 及 in-memory data grid 因為不熟悉而不好做

References

软件架构入门 - 阮一峰的网络日志