首頁 公司 產品 產業/方案 服務 夥伴 客戶 論壇 ICE Developer Center Site Map          [搜尋]
產品 ICE MOMs Overview ICE iPush Communication Server ICE iPush Communication Server Embedded ICE Data Exchange Center



 .What's New in iPush Server V2. 


ICE iPush® Communication Server V2 (簡稱 iPush® Server V2),保留了 iPush® Server V1.5 與 iPush® Server V1.5 - Subject Edition 一貫的鉅量連線即時傳訊能力 (Massive Connection Real-time Messaging) 外,又增加了多項功能特性,以方便應用軟體規劃者加值利用,快速開發出高品質的即時訊息服務應用。

這些新增的功能特性,我們可分類列表如下:

Category
Item
Memo
Messaging Kernel Subject Addressing  
Subject Message Scrambling  
Queue for Point-to-Point  
Guaranteed Delivery Persistent Message / Durable Subscription / Store-and-Forward / Once-and-only-once
Quality of Service (QoS)  
Message Priority  
Time-To-Live (TTL)  
Connection ID  
As a Service in Windows System  
API UDP support  
BackOffice JSP / Java Servlet-based Management Tools  
Data Sourcing Raw Data Service Framework  
Service Extension Add-on Service Framework  

Messaging Kernel

Subject Addressing
雖然 Subject Addressing 訊息定址方式 (相對於 Channel Addressing),在先前的 iPush® Server V1.5 – Subject Edition 就已經被提出,但在 iPush® Server V2 中,我們賦予它更多的附加特性,如稍後會一一提到的:
  • Subject Message Scrambling
  • Point-to-Point (Queue) Messaging Model
  • Store-and-Forward
  • Persistent Message
  • Durable Subscription
  • Once-and-only-once
  • Quality of Service (QoS)
  • Time-To-Live (TTL)
  • Connection ID

一個 Subject Name 是一段以 ‘.’ 連接,並較易為人所理解的字串,例如 ICE.testing.subject,最大可接受之總長度為 223 字元。

  • 禁用字元:共有 9 個禁用的字元,’*’、’%’、’,’、’.’、space、tab、0x0D、0x0A、與 0x00 (此處是指在一個對定義者來說有意義的連續字串中,不允許出現這些字元)。
  • 建議使用字元:’-’ 與其他非英文字元。
  • 不像 iPush Server V1.5 – Subject Edition,在 iPush Server V2 BackOffice 中的 Subject Name ,已經不須在前面加寫 %T。以整體應用規劃而言,到底一個字串是 Channel ID 還是 Subject Name ?將交給 Programmer 選用的是 Channel 還是 Subject 相關函式呼叫來決定;至於其有效性與正確性,則是交由 iPush Server 中的 Subject Management 功能來決定。

單獨定義 ‘*’ 則表示為所有的 Subjects。

Subjects 同樣有階層的概念,並以 ‘.’ 字元作為階層區隔字元。如 ICE.A 表示 ICE.A 以及所有以 ICE.A.開頭的Subjects,例如 ICE.A.B、ICE.A.Test 等。

Subject Message Scrambling

  • Subject Message Scrambling Subject 訊息編碼

    讀當成千上萬的訊息在網路中流動時,訊息的安全性會是被相當重視的一個議題。試想一下,不管是商業訊息、交易訊息,甚至是國防機密訊息,如果在傳遞的過程中被不肖份子攔截了,就可能會在安全或與財產上造成損害。因此,要如何保障訊息的機密性,是訊息中介軟體開發者所必須思考的機制。
    有鑑於此,iPush Server V2 的訊息應用程式開發界面 (API) 就具有自動將屬於 Subject Addressing 的訊息內容編碼的能力,這種能力即是對訊息資料進行即時加解密的動作。訊息資料在經過加密後,需經由系統配對的程式與當時連線的金鑰 (Session Key) 方可解開;在這期間,即使被攔截,有不法意圖者亦無法解讀訊息的內容。

Queue for Point-to-Point

  • Point-to-Point Messaging Model 點對點訊息傳遞模式

    可簡寫為 P2P 或 PTP。與 Publish/Subscribe (Pub/Sub,出版與訂閱) 同為訊息傳遞模式 (messaging model 或 messaging domain) 之一,其主要特性有以下幾點︰

    1. 訊息透過稱為佇列 (queue) 的虛擬通道來進行交換。佇列是訊息產生者送出訊息的目的地,也是訊息接收者收取訊息的來源地。
    2. 詢息在佇列內等待發送時,該訊息是可以被監控並可視情況由伺服器系統將其移除的。
    3. 一個訊息只能有一個接收者。許多接收者可以同時連到同一佇列,但是佇列中的每一個訊息,只能被送給其中一個接收者。
    4. 佇列中的訊息是有次序的。佇列傳遞訊息給接收者,必須依照訊息伺服器所安排的次序,越是排在佇列前面的訊息,會越早被接收走。
    5. iPush Server V2 中的 P2P 訊息傳遞模式,只支援 Subject Addressing,也就是說,Channel Addressing 並無 P2P 的能力。
  • Queue 佇列

    Queue 其實就是 iPush Server V2 在訊息引擎內的P2P實作。通過訊息引擎佇列管道所發送出來的資料,只能由單一的接收者接收,而不像 Pub/Sub 的訊息,同一訊息可讓多人訂閱,各自接收一份;所以 Queue 適用在訊息的 1-to-1 傳遞。 另外,佇列中的訊息是有次序的,佇列傳送訊息給消費者,必須依照訊息伺服器所安排的次序,越是排在佇列前面的訊息會越早被接收走。 因此,使用 Pub/Sub 所傳送的訊息,通常是要滿足大量訂閱者對一相同資訊的需求性,如股票的即時行情報價。而 Queue 則是針對某一特定的訊息,要指派給單一的接收者進行處理,如線上購物的訂單。 雖說一家公司可能有一個訂單處理 (order process) 部門的多位業務人員在接收同一個 Order Queue,但一張訂單只需一位業務人員處理即可,並不需要一個以上的人員來同時處理,所以該訂單只會被一位業務人員接收去;至於何時該由何人來接收,則是公司內部的訂單接收處理規則,屬於商業邏輯的範疇,不在訊息技術討論之列。

Guaranteed Delivery
Persistent Message / Durable Subscription / Store-and-Forward / Once-and-only-once

  • Guaranteed Message Delivery 訊息保證送達

    當資訊經由 iPush Server 傳遞給各個接收端時,發送者所關心的一個重點,就是所發出去的資訊是否已被使用者接收,也就是要如何有效地得知該訊息發送的狀況;訊息保證送達的機制因而產生了。這項需求是為了能夠讓訊息經由 iPush Server 處理後,為 100% 的送達率提出保證。

    而為實際達到此一保證目標, iPush Server 實作了包含 Persistent Message、Durable Subscription、Store-and-Forward、以及 Once-and-only-once 等功能特性,以做為手段。

    訊息保證送達的運作模式,是當 iPush Server 接收到訊息發送者所傳來的資訊後,即將它暫存起來,然後才告知發送者資訊已確定收到了 (Acknowledgement);如此保證了訊息前段的傳遞 (此即 Persistent Publishing)。而後段的保證,是來自於接收者的回應;如果 iPush Server 沒有收到來自接收者的回應 (Acknowledgement),則存於伺服器的訊息,將被再次發送出去,直至接收者確實收到為止 (此即 Durable Subscription)。

  • Persistent Message 持續性訊息

    在保障訊息確實被傳遞的方法中,只要是資料被標示了 “Persistent”,理論上這筆資料就一定會被送達。其運作的模式是應用程式開發界面 (API) 在傳送端將該訊息標注上 “Persistent” 的標頭 (Header),當 iPush Server 接收到含有 “Persistent” 標頭的訊息時,系統會將資料先儲存起來,然後向傳送端發出回應訊息以示收到;同時系統也將該資料傳送至訂閱接收端,並等待它的回覆,之後才將儲存的資料刪除。 在這傳遞過程中,如有任何意外發生 (如連線突然中斷,或是當機),系統或傳送端皆不會收到回覆。於此同時,系統/程式會自動檢視訊息的表頭是否有含“Persistent” 的要求。如果是,系統或傳送端將此訊息再次發送出去,直至收到回覆訊息為止。 iPush Server 有了 “Persistent”,將使得訊息的傳遞更為穩健安全。

  • Durable Subscription 持久性訂閱

    持久性訂閱是訊息中介軟體 (MOM) 於訊息保證送達規範的其中一項特性。Durable Subscription 只可實施在 Subject Addressing Pub/Sub 訊息傳遞模式的應用上。 訂閱者在 Pub/Sub 的模式下,可針對某一特定的 Subject,選擇成為持久性的訂閱者。當 iPush Server 在處理屬於該一特定 Subject 的訊息時,如果訂閱者處於離線的狀態,系統會自動查詢訊息的訂閱者是否為持久性的訂閱者。如果是,系統會將該訊息儲存起來,並等待下一次該訂閱者上線或恢復連線狀態,iPush Server 再將此一訊息傳送給該訂閱者。有了這樣的機制,訂閱者將不會因為暫時離線的關係,而錯失接收訊息。

  • Store-and-Forward 先儲存再傳遞

    在前面提及的 Persistent Message (持續性訊息) 與 Guaranteed Message Delivery (保證訊息傳達)。要達成這兩點訊息特性,iPush Server 就必須先執行 "先儲存再傳遞" 的動作。 無論是 Persistent Message 還是 Guaranteed Message Delivery,訊息系統講求的是訊息在發送之後,要能保證不會因為任何原因遺失。所以 iPush Server 會先將從發送者傳來的訊息,先儲存起來,然後再送給接收者。iPush Server 在尚未收到接收者回應確認 (Acknowledgement) 的情況下,將會再次嘗試將該訊息發送出去,直至確認接收者收到為止,之後才會將儲存在系統中的訊息刪除。

  • Once-and-only-once 一次且唯一性傳遞

    有了這個 Store-and-Forward Messaging (訊息留存後轉送)的特性,在使用者斷線、伺服器終止服務等異常情況下, iPush Server 還是會將留存的持續性訊息,在使用者恢復連線後,傳送給他們。並且在使用者程式不結束的情況下,達成 Once-and-only-once 訊息傳送的唯一性。 也就是說,Once-and-only-once 保證一個 Persistent Message 只會送給 Durable Subscriber 一次。這個特性可避免訂閱者重複接收到同一訊息,以致重複處理資訊。

Quality of Service (QoS)

  • Quality of Service (QoS) 服務品質

    訊息伺服器平時要處理成千上萬筆的訊息資料,如果每一筆訊息都一定要送到接收者端,那麼對於一些連線速度較慢的接收者,其所接收到的訊息很可能就不是最即時的訊息。 有鑑於此,iPush Server V2 為 Subject Addressing 添加了 QoS 機制,來做為提昇訊息傳遞整體服務品質的一種手段。此機制可為每一筆即將發送出去的 Subject 訊息,按照發送者的需求,標記 QoS 等級。 對於每一個訊息接收者而言,系統會為其建立並維護專屬的訊息待發區 (message buffer),若該訊息待發區出現壅塞現象,系統即會開始執行 QoS 分級處理,亦即要派送給他接收的訊息,若 QoS 等級較低,會被捨棄;而 QoS 等級較高者,則系統會為其找一個 QoS 等級較其低者加以取代,將其擠入待發區中。如此一來,針對每一個獨立的訊息接收者,在訊息待發區大小無法無窮擴大的情況下,系統即可提昇其訊息傳遞的服務品質了。

Message Priority

  • Message Priority 訊息優先順序

    其實這個機制與上面所提到的 QoS 非常相似,也是為每一筆訊息標示它的優先等級,Priority 等級越高者,訊息伺服器將優先處理和發送。

    為什麼會有兩個類似的機制存在於新一代的智慧型訊息伺服系統 iPush Server V2 中呢?它們不會起衝突嗎?

    答案是這樣的:雖然 Message Priority 與 QoS 都被拿來定義一筆訊息的重要性,以做為伺服器優先處理的準則,但是這兩者作用的範圍不同。Message Priority 容許訊息在待發區中插隊,而 QoS 則否。

    當接收者的訊息待發區出現壅塞時,QoS 分級作業會先被執行。伺服系統接獲訊息排送任務時,會先檢查該訊息的 QoS 等級,等級較高的訊息會被排入訊息待發區中,如上所述。之後,系統會再依該訊息被標示的 Message Priority 等級,越過待發區中 Priority 等級較低的訊息,將其排在同一 Priority 等級的最後。

    綜合以上 Quality of Service 與 Message Priority 的運作,很重要的兩個觀念要再提醒的是:
    1. 如果說訊息接收者專屬的訊息待發區根本就收發順暢,完全沒有訊息排隊的情況出現,那麼,系統根本就不會也不必啟動 QoS 與 Message Priority 分級作業。
    2. 在實際應用時,每一個訊息的 QoS 等級與 Priority 等級,都是由訊息發送者指定的。也就是說,訊息發送者必須根據應用的性質,先行為每一個訊息決定當接收者的訊息待發區發生擁塞的狀況時,訊息伺服器該如何處理該訊息:是要捨棄,還是將另一個訊息取代掉;要不要讓它具有插隊的權力?賦予它插隊的權力等級是多高?而訊息伺服器,只不過是聽從這些等級指示做事罷了。

Time-To-Live (TTL)

  • Time-to-Live ( TTL ) 有效期限

    在訊息傳遞的環境中,TTL 表示了訊息可以在系統內存活的時間。通常每一筆 Subject 訊息產生時都會有一個相對應的 Header (標頭),Header 內記載各種資訊並分散在不同的欄位中,而該訊息的有效期限資訊,就寫在 TTL 的欄位內。

    為什麼訊息為什麼一定要有存活期限?又為什麼訊息系統需要知道每一筆訊息的有效期限呢?

    其實是這樣子的︰當訊息通過訊息 iPush Server 時,系統會將訊息儲存起來 (即以上 Store-and-Forward 所述之作業),並等收到回應確認後,即將該訊息刪除。但是,如果系統永遠都無法接到回應確認,或是接收者根本就很長一段時間未上線時,訊息不就會一直停留在系統中了嗎。有鑑於此,TTL 就是被設計來讓系統判斷何時可將訊息刪除之用,而不需痴痴地等待接收者的回應確認了。

Connection ID

  • Connection ID 連線 ID

    每一個對 iPush Server 的合法連線, iPush Server 都會在同一連線期間,賦予該連線一個唯一的 Connection ID,以便 Developer 作為辨識對方連線之應用。

As a Service in Windows System

  • As a Service in Windows System iPush 於 Windows 系統中的服務執行模式

    Windows 版的 iPush Server 執行,新增了系統服務模式,所以可讓管理者在不須登入 Windows 的情況下,即可啟動 iPush Server,這對於遠端無人機房的管理來說,相當實用。


API

UDP Connection UDP 連結通訊
除了原有的 TCP 通訊能力之外,在 Client 與 iPush Server V2 進行網路連結時,還可以選擇該次連線使用 UDP (User Datagram Protocol) 通訊協定。
相較於 TCP,UDP在應用上的確是較為簡易 (Lightweight) 及方便,因為它不保證資料封包在網路上能夠被成功送達,所以可被用來做為可靠性需求不高的網路訊息廣播。但如果使用 UDP 還要兼顧可靠性,那傳輸其間的所有錯誤處理 (Error Processing) 和失敗後再次傳遞 (Retransmission),都必須由 Developer 撰寫的應用程式自行控制。


BackOffice

JSP / Java Servlet-based Management Tools
新版的 BackOffice,也改採 JSP / Java Servlet 的網頁運作架構,不只不必再倚靠 IIS 與 Windows 來進行管理者帳號管理,其 Report Generator 產生統計報表的速度,更是超越 V1.5 / V1.5 SE 甚多,Logs 檔案越大越多,效率增加就越明顯。


Data Sourcing

Raw Data Service Framework
這是一個 Server-side 的選購模組,可依此架構簡化 iPush Server 對多種資訊來源,如 Socket、File、Database、與COM port 的連結作業。


Service Extension

Add-on Service Framework
這是一個 Server-side 的選購模組,可依此架構在伺服器端,擴充 iPush Server 的訊息處理功能。如 XML parser、XML router、E-mail forwarding、SMS forwarding、SSL/DES encryption 等。

相關文件
下載:iPush白皮書
下載:Data Sheet of iPush Server V1.5
下載:Data Sheet of iPush Server guaranteed message delivery
下載:Data Sheet of iPush Server V1.5 - Subject Edition
iPush 的七大特色
Push vs. Pull
iPush 的 Channel 概念
 
相關應用
iPush Server / Financial Pack 即時金融訊息整合平台
iPush Server / Manufacturing Pack 即時製造訊息整合平台
iPush Server / MMOG 鉅量多人連線遊戲平台
iPush Server / M2M
iPush RIA 應用範例
 
相關業務服務
接洽 iPush 相關應用、顧問服務
 
加入 ICE Developer Center
輕鬆享受 MOM 軟體下載試用、技術論壇、技術文件等資源


艾揚科技股份有限公司  台北市 103 承德路二段 81 號 15 樓之 1   電話:+886-2-25586101   傳真:+886-2-25586102

Copyright © 2002-2008 ICE Technology Corporation. All Rights Reserved.