SlideShare a Scribd company logo
1 of 26
DDS 中的各種 Entities
(Entities in DCPS)
20170220
Taka Wang
In a Nutshell
• Introduce major entities in DCPS (Data-Centric Publish-Subscribe)
specification from the class diagram and implementation
viewpoints.
• Know the relationships and cardinalities among these entities.
• Discuss two ways (sync, async) to receive notification from DDS
middleware and common pitfalls.
• Summarize learning resources.
Take Aways For Busy People
• Create Few Domain Participants
• Create Entities Early
• Prefer Waitset over Listener
• ⼀一個 publisher/subscriber 上,可以有多個 datawriter/datareader
• ⼀一個 datawriter/datareader 只能對應⼀一個 topic (concrete class),但
不同 datawriter/reader 可以對應同⼀一個 topic
Let's Dive Right In
0. 也許你看過這張概念念圖
但沒有深入了了解各⾃自的⽬目的,也不知道彼此的association
總之就是照抄範例例,創建⼀一堆 entities,然後開始⽤用reader, writer 讀寫
0.1 DCPS 的模組 (module) 組成
Infrastructure Module
Domain Module
Publication Module Subscription Module
Topic-Definition Module
內含 Entity
Entity 是上⾯面四個模組的
abstract base class
Source Page
本⽂文略略過(不難理理解),請參參考此⾴頁⾯面
Entity is an Abstract Base Class
• An Entity is the common parent for the most important DDS-elements:
• DomainParticipant: Application connector to a Network Domain. 

(是⽤用來來進入不同 Domain 的物件,不同 domain 間訊息不會互通,是隔離的)
• Topic: Defines the messages that will be transmitted across the network.
• DataWriter: Accessor to write typed data (Topic) into a Domain.
• DataReader: Accessor to read typed data (Topic) from a Domain.
• Publisher: Aggregation of DataWriter objects, used to disseminate data.
• Subscriber: Aggregation of DataReader objects, used to collect data.
1. Infrastructure Module
主要包括:
- Entity 這個抽象基類
- Listener 與 WaitSet 這
兩兩種互動模式
- Qos 與 Status 定義
Source Page
1.1. Conceptional DataReader
Listener
Listener 是 middleware ⽤用來來非同步 (async) 的通知應⽤用
程式,有 status 改變了了
Source Page
1.2. Listener Class Diagram
Source Page
• 所有的 Entity 都有對應的 Listener
• 例例如 DataReaderListener 就是
Data Reader 的 Listener
• Listener 定義很多 Callback,⽤用來來
跟應⽤用程式互動, 通知應⽤用程式
Status 發⽣生不同的改變
• 類似 exception handler 機制,如
果 Subscriber 已經處理理這個狀狀態改
變,則上層的 DataReader 就不⽤用
處理理這個改變。反之,⼀一路路往
parent 傳遞 (propagation)。
parent
1.3. Status and Waitset
• Topic, Subscriber, Data Reader 與 Data Writer 四種 Entity 上有對應
的 Status
• 請參參考下列列⾴頁⾯面的 Class Diagram 與列列表
• Status
• Waitset
1.4. Conceptional DataReader WaitSet
應⽤用程式將關注的 Condition 丟進 waitset (步驟⼀一),然後等待 StatusCondition
中任⼀一 trigger_value 從 FALSE 變成 TRUE (步驟⼆二), 這時候應⽤用程式主動去拿
等待的結果並做處理理 (步驟三)。換句句話說,應⽤用程式是卡住等待狀狀態改變的。
步驟⼀一通常在應⽤用程式初始化設定,步驟⼆二跟三通常放在應⽤用程式主迴圈中等待
Source Page
2. Domain Module
主要包括:
- Domain Participant 這
個 Entity 抽象類 的 ⼦子
類
- Domain Participant
Factory 類
- Domain Participant
Listener 類有很多

factory method
Source Page
2.1 Domain Participant
• 因為是 Entity 的⼦子類,所以有 QosPolicies, StatusCondition 與 Listener (詳⾒見見 1. Infrastructure
Module 的 class diagram)
• Domain Participant 扮演的⾓角⾊色
• 應⽤用程式要進入特定 Domain,需要透過 Domain Participant 建立 Virtual network Link,做到
Physical Network 上不同 DDS 應⽤用隔離互不⼲干擾的效果。
• 是所有 Entities 的⼯工廠 (⾒見見上⾴頁的 Factory methods)
• 是所有 Entities (詳⾒見見 0.) 的容器 (container)
• 沒有⾃自⼰己專⽤用的 Listener (domain listener) 去聽 domain 狀狀態變化,⽽而是⽤用來來處理理容器內所
有 Entities 沒有處理理的狀狀態變化 (還記得1.1的⼀一路路往 parent 傳遞 (propagation) 嗎?)
Source Page
3. Subscription Module
主要包括下列列四個重要的類別:
- Subscriber
- DataReader
- DataSample
- SampleInfo
Listener 與 Condition 請參參考前⾯面
介紹
DataReader 加上 Subscriber 形
成 Subscription 概念念
Source Page
3.1. Subscriber & Sample
• Subscriber 主要負責收集來來⾃自不同 Publisher 的資料
• DataReader 不負責從 Network 直接收資料,⽽而是由 Subscriber 決
定何時、如何將資料傳到 DataReader
• Subscriber 只收所屬 Partition 的 samples
• Subscriber 也是 DataReaders 的⼯工廠 (DomainParticipant 也是)
• SampleInfo ⽤用來來描述 Sample 的相關狀狀態
Source Page
3.2 DataReader
• DataReader 是 abstract class, 針對特定 type,有各⾃自的 concrete
data reader (例例如 Foo Type 會由 preprocessor 產⽣生
FooDataReader)
• Typed DataReader ⽤用來來存取對應 type 的 sample 與其對應的
SampleInfo
• DataReader 上有 Listeners, Conditions 與 Qos
Source Page
4. Publication Module
主要包括下列列兩兩個重要的類別:
- Publisher
- DataWriter
DataWriter 加上 Publisher 形成
Publication 概念念
Source Page
Discussion and Best Practices
Prefer Waitset over Listener
• 從⽂文件上可以知道 Data Reader 有兩兩種接收資料的⽅方式
• waitset: blocking (透過 condition variable 去卡,類似 Unix Select的⾏行行為)
• listener: non-blocking, aka. async (透過 register callback handler)
• 如果接收端 (application) 的 waiting loop 並沒有其他⼯工作要做,只是等待資
料進來來做後續處理理,這時候請盡量量使⽤用 waitset。這樣的 code 比較安全 (雖
然有 Context Switch 的 Overhead),除非 callback 內的處理理非常快,追求
extreme 的效能才⽤用 listener (做 benchmark,⽽而不是 production)
Why Waitset?
• Listener 的 callback 是被 DDS middleware 的 thread 呼叫的,但 DDS middleware thread 通常都在做
這些事情:
• 為各個 Data Reader 收資料
• 收發 metadata 給 Data Writer
• 處理理 Deadline 與 Liveliness 之類的 Qos
• 呼叫 Callback 時,接收端的 main thread 雖然還在跑 (async),但 DDS middleware 的 thread 此時卡
住,要等 Callback 內的事情處理理完 (寫檔、寫資料庫等等),造成下列列後果:
• Data Readers 會漏資料
• 無法正確處理理(通知別⼈人) Liveliness 狀狀態
Notice from documents about listener
• PT: Something worth pointing out is that the handler code will
execute in a middleware thread. As a result, when using listeners
you should try to minimize the time spent in the listener itself.
• RTI: While a Listener is used to provide a callback for
asynchronous access, Conditions and WaitSets provide
synchronous data access. This means that you use a WaitSet to
block an application thread until data becomes available. This is
safer than using a listener because you do not have to worry about
blocking Connext's threads.
Entities management
• Create Few DomainParticipants (在⼀一程式中,⼀一個 Domain,⼀一個 DP 就好),否則會浪
費很多系統資源,因為它主要⽤用來來:
• DomainParticipants ⽤用來來尋找 Domain 中的其他 Entities,並管理理這些關聯聯
• 創建 Thread
• Create Entities Early (不要等到要 Read/Write 才創建 DataWriter/DataReader,程式⼀一開
始初始化時就應該創建)
• 需要幫⾃自⼰己 Allocate Queue
• 傳送 discovery 訊息通知其他程式,⾃自⼰己已經存在於 Domain 中 (可想⽽而知需要點時間)
Take Aways
• Create Few Domain Participants
• Create Entities Early
• Prefer Waitset over Listener
• ⼀一個 publisher/subscriber 上,可以有多個 datawriter/datareader
• ⼀一個 datawriter/datareader 只能對應⼀一個 topic (concrete class),但
不同 datawriter/reader 可以對應同⼀一個 topic
Reference
• Vortex Lite C99 API Reference Guide (了了解 DCPS 概念念與架構,推薦閱讀⽽而不是只當作
API 查閱⽂文件,與 ISO C++ 章節內容完全相同)
• Best Practices using RTI Connext DDS (同樣適⽤用於 PT 的實作,推薦閱讀)
• Vortex - The DDS Tutorial (最輕量量化的教學⽂文件,短短20多⾴頁,幫助你掌握八成重要的概
念念)
• DataWriters/Publishers and DataReaders/Subscribers (清楚的解釋四種 Entities 的關係)
• RTI: WaitSet with Status Condition (介紹 Waitset 概念念)
• PT: Reading and Writing Data (介紹 Waitset 與 Listener ⽤用法)
Thank you

More Related Content

What's hot

What's hot (6)

Struts Mitac(1)
Struts Mitac(1)Struts Mitac(1)
Struts Mitac(1)
 
Java annotation
Java annotationJava annotation
Java annotation
 
Sun java
Sun javaSun java
Sun java
 
SCJP ch17
SCJP ch17SCJP ch17
SCJP ch17
 
Object-Based Programming Part II
Object-Based Programming Part IIObject-Based Programming Part II
Object-Based Programming Part II
 
Java Script 引擎技术
Java Script 引擎技术Java Script 引擎技术
Java Script 引擎技术
 

Viewers also liked

軟體品質與持續整合
軟體品質與持續整合軟體品質與持續整合
軟體品質與持續整合家弘 周
 
Jiaqi UML DIAGRAM
Jiaqi UML DIAGRAMJiaqi UML DIAGRAM
Jiaqi UML DIAGRAMJiaqi Xi
 
A Document Similarity Measurement without Dictionaries
A Document Similarity Measurement without DictionariesA Document Similarity Measurement without Dictionaries
A Document Similarity Measurement without Dictionaries鍾誠 陳鍾誠
 
結合統計與規則的多層次中文斷詞系統
結合統計與規則的多層次中文斷詞系統結合統計與規則的多層次中文斷詞系統
結合統計與規則的多層次中文斷詞系統鍾誠 陳鍾誠
 
十分鐘化學史 (一) 《拉瓦錫之前的那些事兒》
十分鐘化學史 (一)  《拉瓦錫之前的那些事兒》十分鐘化學史 (一)  《拉瓦錫之前的那些事兒》
十分鐘化學史 (一) 《拉瓦錫之前的那些事兒》鍾誠 陳鍾誠
 
用十分鐘搞懂 《系統分析、軟體工程、專案管理與設計模式》
用十分鐘搞懂   《系統分析、軟體工程、專案管理與設計模式》用十分鐘搞懂   《系統分析、軟體工程、專案管理與設計模式》
用十分鐘搞懂 《系統分析、軟體工程、專案管理與設計模式》鍾誠 陳鍾誠
 
用十分鐘搞懂 《電腦如何解方程式》
用十分鐘搞懂  《電腦如何解方程式》用十分鐘搞懂  《電腦如何解方程式》
用十分鐘搞懂 《電腦如何解方程式》鍾誠 陳鍾誠
 
最佳化問題的公理化方法
最佳化問題的公理化方法最佳化問題的公理化方法
最佳化問題的公理化方法鍾誠 陳鍾誠
 
基於欄位填充機制的 XML 文件檢索方法 (博士論文口試簡報)
基於欄位填充機制的 XML 文件檢索方法 (博士論文口試簡報)基於欄位填充機制的 XML 文件檢索方法 (博士論文口試簡報)
基於欄位填充機制的 XML 文件檢索方法 (博士論文口試簡報)鍾誠 陳鍾誠
 
用十分鐘瞭解《大學專題的那些事兒》!
用十分鐘瞭解《大學專題的那些事兒》!用十分鐘瞭解《大學專題的那些事兒》!
用十分鐘瞭解《大學專題的那些事兒》!鍾誠 陳鍾誠
 
用20分鐘搞懂 《系統分析、軟體工程、專案管理與設計模式》
用20分鐘搞懂   《系統分析、軟體工程、專案管理與設計模式》用20分鐘搞懂   《系統分析、軟體工程、專案管理與設計模式》
用20分鐘搞懂 《系統分析、軟體工程、專案管理與設計模式》鍾誠 陳鍾誠
 
用十分鐘 向jserv學習作業系統設計
用十分鐘  向jserv學習作業系統設計用十分鐘  向jserv學習作業系統設計
用十分鐘 向jserv學習作業系統設計鍾誠 陳鍾誠
 
《計算機結構與作業系統裏》-- 資工系學生們經常搞錯的那些事兒!
《計算機結構與作業系統裏》--  資工系學生們經常搞錯的那些事兒!《計算機結構與作業系統裏》--  資工系學生們經常搞錯的那些事兒!
《計算機結構與作業系統裏》-- 資工系學生們經常搞錯的那些事兒!鍾誠 陳鍾誠
 
用十分鐘瞭解 《JavaScript的程式世界》
用十分鐘瞭解  《JavaScript的程式世界》用十分鐘瞭解  《JavaScript的程式世界》
用十分鐘瞭解 《JavaScript的程式世界》鍾誠 陳鍾誠
 
FastData 快速的人文資料庫撰寫方式
FastData  快速的人文資料庫撰寫方式FastData  快速的人文資料庫撰寫方式
FastData 快速的人文資料庫撰寫方式鍾誠 陳鍾誠
 
用十分鐘將你的網站送上雲端
用十分鐘將你的網站送上雲端用十分鐘將你的網站送上雲端
用十分鐘將你的網站送上雲端鍾誠 陳鍾誠
 
用十分鐘《讓你的專案一開始就搞砸》!
用十分鐘《讓你的專案一開始就搞砸》!用十分鐘《讓你的專案一開始就搞砸》!
用十分鐘《讓你的專案一開始就搞砸》!鍾誠 陳鍾誠
 

Viewers also liked (20)

軟體品質與持續整合
軟體品質與持續整合軟體品質與持續整合
軟體品質與持續整合
 
Creational Design Patterns
Creational Design PatternsCreational Design Patterns
Creational Design Patterns
 
Jiaqi UML DIAGRAM
Jiaqi UML DIAGRAMJiaqi UML DIAGRAM
Jiaqi UML DIAGRAM
 
A Document Similarity Measurement without Dictionaries
A Document Similarity Measurement without DictionariesA Document Similarity Measurement without Dictionaries
A Document Similarity Measurement without Dictionaries
 
結合統計與規則的多層次中文斷詞系統
結合統計與規則的多層次中文斷詞系統結合統計與規則的多層次中文斷詞系統
結合統計與規則的多層次中文斷詞系統
 
UML 101
UML 101UML 101
UML 101
 
十分鐘化學史 (一) 《拉瓦錫之前的那些事兒》
十分鐘化學史 (一)  《拉瓦錫之前的那些事兒》十分鐘化學史 (一)  《拉瓦錫之前的那些事兒》
十分鐘化學史 (一) 《拉瓦錫之前的那些事兒》
 
Machine Learning in R
Machine Learning in RMachine Learning in R
Machine Learning in R
 
用十分鐘搞懂 《系統分析、軟體工程、專案管理與設計模式》
用十分鐘搞懂   《系統分析、軟體工程、專案管理與設計模式》用十分鐘搞懂   《系統分析、軟體工程、專案管理與設計模式》
用十分鐘搞懂 《系統分析、軟體工程、專案管理與設計模式》
 
用十分鐘搞懂 《電腦如何解方程式》
用十分鐘搞懂  《電腦如何解方程式》用十分鐘搞懂  《電腦如何解方程式》
用十分鐘搞懂 《電腦如何解方程式》
 
最佳化問題的公理化方法
最佳化問題的公理化方法最佳化問題的公理化方法
最佳化問題的公理化方法
 
基於欄位填充機制的 XML 文件檢索方法 (博士論文口試簡報)
基於欄位填充機制的 XML 文件檢索方法 (博士論文口試簡報)基於欄位填充機制的 XML 文件檢索方法 (博士論文口試簡報)
基於欄位填充機制的 XML 文件檢索方法 (博士論文口試簡報)
 
用十分鐘瞭解《大學專題的那些事兒》!
用十分鐘瞭解《大學專題的那些事兒》!用十分鐘瞭解《大學專題的那些事兒》!
用十分鐘瞭解《大學專題的那些事兒》!
 
用20分鐘搞懂 《系統分析、軟體工程、專案管理與設計模式》
用20分鐘搞懂   《系統分析、軟體工程、專案管理與設計模式》用20分鐘搞懂   《系統分析、軟體工程、專案管理與設計模式》
用20分鐘搞懂 《系統分析、軟體工程、專案管理與設計模式》
 
用十分鐘 向jserv學習作業系統設計
用十分鐘  向jserv學習作業系統設計用十分鐘  向jserv學習作業系統設計
用十分鐘 向jserv學習作業系統設計
 
《計算機結構與作業系統裏》-- 資工系學生們經常搞錯的那些事兒!
《計算機結構與作業系統裏》--  資工系學生們經常搞錯的那些事兒!《計算機結構與作業系統裏》--  資工系學生們經常搞錯的那些事兒!
《計算機結構與作業系統裏》-- 資工系學生們經常搞錯的那些事兒!
 
用十分鐘瞭解 《JavaScript的程式世界》
用十分鐘瞭解  《JavaScript的程式世界》用十分鐘瞭解  《JavaScript的程式世界》
用十分鐘瞭解 《JavaScript的程式世界》
 
FastData 快速的人文資料庫撰寫方式
FastData  快速的人文資料庫撰寫方式FastData  快速的人文資料庫撰寫方式
FastData 快速的人文資料庫撰寫方式
 
用十分鐘將你的網站送上雲端
用十分鐘將你的網站送上雲端用十分鐘將你的網站送上雲端
用十分鐘將你的網站送上雲端
 
用十分鐘《讓你的專案一開始就搞砸》!
用十分鐘《讓你的專案一開始就搞砸》!用十分鐘《讓你的專案一開始就搞砸》!
用十分鐘《讓你的專案一開始就搞砸》!
 

Similar to Entities in DCPS (DDS)

Big Data, NoSQL, and MongoDB
Big Data, NoSQL, and MongoDBBig Data, NoSQL, and MongoDB
Big Data, NoSQL, and MongoDBMonster Supreme
 
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页liu sheng
 
Times Ten Training
Times Ten TrainingTimes Ten Training
Times Ten TrainingLi Chen
 
丁原:海量数据迁移方案
丁原:海量数据迁移方案丁原:海量数据迁移方案
丁原:海量数据迁移方案YANGL *
 
数据访问层开发实践
数据访问层开发实践数据访问层开发实践
数据访问层开发实践xcq
 
一次Web性能测试小结
一次Web性能测试小结一次Web性能测试小结
一次Web性能测试小结beiyu95
 
COSCUP 2019 - 開源大數據引擎 Greenplum
COSCUP 2019 - 開源大數據引擎 GreenplumCOSCUP 2019 - 開源大數據引擎 Greenplum
COSCUP 2019 - 開源大數據引擎 GreenplumOmni-Alex Chen
 
Taobao数据库这5年
Taobao数据库这5年Taobao数据库这5年
Taobao数据库这5年yp_fangdong
 
N-layer design & development
N-layer design & developmentN-layer design & development
N-layer design & developmentXuefeng Zhang
 
Struts+Spring+Hibernate整合教程
Struts+Spring+Hibernate整合教程Struts+Spring+Hibernate整合教程
Struts+Spring+Hibernate整合教程yiditushe
 
Struts+Spring+Hibernate整合教程
Struts+Spring+Hibernate整合教程Struts+Spring+Hibernate整合教程
Struts+Spring+Hibernate整合教程appollo0312
 
Azure Data Lake 簡介
Azure Data Lake 簡介Azure Data Lake 簡介
Azure Data Lake 簡介Herman Wu
 
20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性
20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性
20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性liu sheng
 
20140326联动优势数据访问层DAL架构和实践7(刘胜)工行交流
20140326联动优势数据访问层DAL架构和实践7(刘胜)工行交流20140326联动优势数据访问层DAL架构和实践7(刘胜)工行交流
20140326联动优势数据访问层DAL架构和实践7(刘胜)工行交流liu sheng
 
数据库性能诊断的七种武器
数据库性能诊断的七种武器数据库性能诊断的七种武器
数据库性能诊断的七种武器Leyi (Kamus) Zhang
 
前端性能优化和自动化
前端性能优化和自动化前端性能优化和自动化
前端性能优化和自动化kaven yan
 
数据库系统设计漫谈
数据库系统设计漫谈数据库系统设计漫谈
数据库系统设计漫谈james tong
 
網站設計100步
網站設計100步網站設計100步
網站設計100步evercislide
 

Similar to Entities in DCPS (DDS) (20)

Entities in DCPS (DDS)
Entities in DCPS (DDS)Entities in DCPS (DDS)
Entities in DCPS (DDS)
 
Big Data, NoSQL, and MongoDB
Big Data, NoSQL, and MongoDBBig Data, NoSQL, and MongoDB
Big Data, NoSQL, and MongoDB
 
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页
 
Times Ten Training
Times Ten TrainingTimes Ten Training
Times Ten Training
 
丁原:海量数据迁移方案
丁原:海量数据迁移方案丁原:海量数据迁移方案
丁原:海量数据迁移方案
 
N bear
N bearN bear
N bear
 
数据访问层开发实践
数据访问层开发实践数据访问层开发实践
数据访问层开发实践
 
一次Web性能测试小结
一次Web性能测试小结一次Web性能测试小结
一次Web性能测试小结
 
COSCUP 2019 - 開源大數據引擎 Greenplum
COSCUP 2019 - 開源大數據引擎 GreenplumCOSCUP 2019 - 開源大數據引擎 Greenplum
COSCUP 2019 - 開源大數據引擎 Greenplum
 
Taobao数据库这5年
Taobao数据库这5年Taobao数据库这5年
Taobao数据库这5年
 
N-layer design & development
N-layer design & developmentN-layer design & development
N-layer design & development
 
Struts+Spring+Hibernate整合教程
Struts+Spring+Hibernate整合教程Struts+Spring+Hibernate整合教程
Struts+Spring+Hibernate整合教程
 
Struts+Spring+Hibernate整合教程
Struts+Spring+Hibernate整合教程Struts+Spring+Hibernate整合教程
Struts+Spring+Hibernate整合教程
 
Azure Data Lake 簡介
Azure Data Lake 簡介Azure Data Lake 簡介
Azure Data Lake 簡介
 
20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性
20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性
20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性
 
20140326联动优势数据访问层DAL架构和实践7(刘胜)工行交流
20140326联动优势数据访问层DAL架构和实践7(刘胜)工行交流20140326联动优势数据访问层DAL架构和实践7(刘胜)工行交流
20140326联动优势数据访问层DAL架构和实践7(刘胜)工行交流
 
数据库性能诊断的七种武器
数据库性能诊断的七种武器数据库性能诊断的七种武器
数据库性能诊断的七种武器
 
前端性能优化和自动化
前端性能优化和自动化前端性能优化和自动化
前端性能优化和自动化
 
数据库系统设计漫谈
数据库系统设计漫谈数据库系统设计漫谈
数据库系统设计漫谈
 
網站設計100步
網站設計100步網站設計100步
網站設計100步
 

More from Jamie (Taka) Wang

More from Jamie (Taka) Wang (20)

20200606_insight_Ignition
20200606_insight_Ignition20200606_insight_Ignition
20200606_insight_Ignition
 
20200727_Insight workstation
20200727_Insight workstation20200727_Insight workstation
20200727_Insight workstation
 
20200723_insight_release_plan
20200723_insight_release_plan20200723_insight_release_plan
20200723_insight_release_plan
 
20210105_量產技轉
20210105_量產技轉20210105_量產技轉
20210105_量產技轉
 
20200808自營電商平台策略討論
20200808自營電商平台策略討論20200808自營電商平台策略討論
20200808自營電商平台策略討論
 
20200427_hardware
20200427_hardware20200427_hardware
20200427_hardware
 
20200429_ec
20200429_ec20200429_ec
20200429_ec
 
20200607_insight_sync
20200607_insight_sync20200607_insight_sync
20200607_insight_sync
 
20220113_product_day
20220113_product_day20220113_product_day
20220113_product_day
 
20200429_software
20200429_software20200429_software
20200429_software
 
20200602_insight_business
20200602_insight_business20200602_insight_business
20200602_insight_business
 
20200408_gen11_sequence_diagram
20200408_gen11_sequence_diagram20200408_gen11_sequence_diagram
20200408_gen11_sequence_diagram
 
20190827_activity_diagram
20190827_activity_diagram20190827_activity_diagram
20190827_activity_diagram
 
20150722 - AGV
20150722 - AGV20150722 - AGV
20150722 - AGV
 
20161220 - microservice
20161220 - microservice20161220 - microservice
20161220 - microservice
 
20160217 - Overview of Vortex Intelligent Data Sharing Platform
20160217 - Overview of Vortex Intelligent Data Sharing Platform20160217 - Overview of Vortex Intelligent Data Sharing Platform
20160217 - Overview of Vortex Intelligent Data Sharing Platform
 
20151111 - IoT Sync Up
20151111 - IoT Sync Up20151111 - IoT Sync Up
20151111 - IoT Sync Up
 
20151207 - iot strategy
20151207 - iot strategy20151207 - iot strategy
20151207 - iot strategy
 
20141210 - Microservice Container
20141210 - Microservice Container20141210 - Microservice Container
20141210 - Microservice Container
 
20161027 - edge part2
20161027 - edge part220161027 - edge part2
20161027 - edge part2
 

Recently uploaded

未毕业在线购买日本神户国际大学学位记🏆学习成绩单电子版定制🏆仿制西班牙大学毕业证🏆香港中学会考证书定制
未毕业在线购买日本神户国际大学学位记🏆学习成绩单电子版定制🏆仿制西班牙大学毕业证🏆香港中学会考证书定制未毕业在线购买日本神户国际大学学位记🏆学习成绩单电子版定制🏆仿制西班牙大学毕业证🏆香港中学会考证书定制
未毕业在线购买日本神户国际大学学位记🏆学习成绩单电子版定制🏆仿制西班牙大学毕业证🏆香港中学会考证书定制radeybfgkf477
 
我曾试图入侵正方教务系统,但我发现它有一些漏洞找黑客入侵电脑,找黑客入侵服务器,找黑客破解密码,怎么找黑客?【微 tytyqqww 信】
我曾试图入侵正方教务系统,但我发现它有一些漏洞找黑客入侵电脑,找黑客入侵服务器,找黑客破解密码,怎么找黑客?【微 tytyqqww 信】我曾试图入侵正方教务系统,但我发现它有一些漏洞找黑客入侵电脑,找黑客入侵服务器,找黑客破解密码,怎么找黑客?【微 tytyqqww 信】
我曾试图入侵正方教务系统,但我发现它有一些漏洞找黑客入侵电脑,找黑客入侵服务器,找黑客破解密码,怎么找黑客?【微 tytyqqww 信】黑客 接单【TG/微信qoqoqdqd】
 
DIGNITAS INFINITA - 人类尊严 - 教区信仰教义宣言.pptx
DIGNITAS INFINITA - 人类尊严  -  教区信仰教义宣言.pptxDIGNITAS INFINITA - 人类尊严  -  教区信仰教义宣言.pptx
DIGNITAS INFINITA - 人类尊严 - 教区信仰教义宣言.pptxMartin M Flynn
 
30T.ppt【国外大学文凭样本】TWU毕业证认证Q/微:892798920办西三一大学毕业证留信留服使馆公证,TWU硕士毕业证,TWU研究生毕业证,文凭...
30T.ppt【国外大学文凭样本】TWU毕业证认证Q/微:892798920办西三一大学毕业证留信留服使馆公证,TWU硕士毕业证,TWU研究生毕业证,文凭...30T.ppt【国外大学文凭样本】TWU毕业证认证Q/微:892798920办西三一大学毕业证留信留服使馆公证,TWU硕士毕业证,TWU研究生毕业证,文凭...
30T.ppt【国外大学文凭样本】TWU毕业证认证Q/微:892798920办西三一大学毕业证留信留服使馆公证,TWU硕士毕业证,TWU研究生毕业证,文凭...ggbob1
 
1.🔥承接黑客破解任务,你的难题我们来解决! 💡无论你是游戏玩家、企业用户还是个人用户,都能在这里找到满意的解决方案。 💪经验丰富的专业团队为您提供全方位...
1.🔥承接黑客破解任务,你的难题我们来解决! 💡无论你是游戏玩家、企业用户还是个人用户,都能在这里找到满意的解决方案。 💪经验丰富的专业团队为您提供全方位...1.🔥承接黑客破解任务,你的难题我们来解决! 💡无论你是游戏玩家、企业用户还是个人用户,都能在这里找到满意的解决方案。 💪经验丰富的专业团队为您提供全方位...
1.🔥承接黑客破解任务,你的难题我们来解决! 💡无论你是游戏玩家、企业用户还是个人用户,都能在这里找到满意的解决方案。 💪经验丰富的专业团队为您提供全方位...黑客 接单【TG/微信qoqoqdqd】
 
快速定制高仿日本广岛修道大学学位记/入学许可证书PDF修改/意大利大学文凭制作/日语JLPT证书定制
快速定制高仿日本广岛修道大学学位记/入学许可证书PDF修改/意大利大学文凭制作/日语JLPT证书定制快速定制高仿日本广岛修道大学学位记/入学许可证书PDF修改/意大利大学文凭制作/日语JLPT证书定制
快速定制高仿日本广岛修道大学学位记/入学许可证书PDF修改/意大利大学文凭制作/日语JLPT证书定制paulachevez2
 
为了确保自己的安全和合法权益,我选择购买高品質的假护照、身份证明以及结婚证等证件。这些都是真实有效且具有法律效力的文件【微 tytyqqww 信】
为了确保自己的安全和合法权益,我选择购买高品質的假护照、身份证明以及结婚证等证件。这些都是真实有效且具有法律效力的文件【微 tytyqqww 信】为了确保自己的安全和合法权益,我选择购买高品質的假护照、身份证明以及结婚证等证件。这些都是真实有效且具有法律效力的文件【微 tytyqqww 信】
为了确保自己的安全和合法权益,我选择购买高品質的假护照、身份证明以及结婚证等证件。这些都是真实有效且具有法律效力的文件【微 tytyqqww 信】黑客 接单【TG/微信qoqoqdqd】
 
保分服务在SAT考试作弊问题上的应对策略和措施是否充分,如何确保服务的可靠性??
保分服务在SAT考试作弊问题上的应对策略和措施是否充分,如何确保服务的可靠性??保分服务在SAT考试作弊问题上的应对策略和措施是否充分,如何确保服务的可靠性??
保分服务在SAT考试作弊问题上的应对策略和措施是否充分,如何确保服务的可靠性??testhelper Sobrenome
 
正方教务系统的小漏洞被黑客找到啦~他现在正在偷偷溜进去玩呢!(*^__^*)法国大学挂科改成绩 德国大学挂科改成绩 韩国大学挂科改成绩大学成绩修改,找黑客...
正方教务系统的小漏洞被黑客找到啦~他现在正在偷偷溜进去玩呢!(*^__^*)法国大学挂科改成绩 德国大学挂科改成绩 韩国大学挂科改成绩大学成绩修改,找黑客...正方教务系统的小漏洞被黑客找到啦~他现在正在偷偷溜进去玩呢!(*^__^*)法国大学挂科改成绩 德国大学挂科改成绩 韩国大学挂科改成绩大学成绩修改,找黑客...
正方教务系统的小漏洞被黑客找到啦~他现在正在偷偷溜进去玩呢!(*^__^*)法国大学挂科改成绩 德国大学挂科改成绩 韩国大学挂科改成绩大学成绩修改,找黑客...黑客 接单【TG/微信qoqoqdqd】
 
在中国可以购买日本东京女子大学学位记/做个假的文凭可认证吗/定制马来西亚大学毕业证/CFA证书定制
在中国可以购买日本东京女子大学学位记/做个假的文凭可认证吗/定制马来西亚大学毕业证/CFA证书定制在中国可以购买日本东京女子大学学位记/做个假的文凭可认证吗/定制马来西亚大学毕业证/CFA证书定制
在中国可以购买日本东京女子大学学位记/做个假的文凭可认证吗/定制马来西亚大学毕业证/CFA证书定制paulachevez2
 
【国外大学文凭样本】多大毕业证认证Q/微:892798920办多伦多大学毕业证留信留服使馆公公证,多大硕士毕业证,U of T研究生毕业证,文凭,改U o...
【国外大学文凭样本】多大毕业证认证Q/微:892798920办多伦多大学毕业证留信留服使馆公公证,多大硕士毕业证,U of T研究生毕业证,文凭,改U o...【国外大学文凭样本】多大毕业证认证Q/微:892798920办多伦多大学毕业证留信留服使馆公公证,多大硕士毕业证,U of T研究生毕业证,文凭,改U o...
【国外大学文凭样本】多大毕业证认证Q/微:892798920办多伦多大学毕业证留信留服使馆公公证,多大硕士毕业证,U of T研究生毕业证,文凭,改U o...ggbob1
 
改GPA申请研究生#大学修改成绩修改 #找黑客改分#修改成绩单听说你想改一改在美国大学的成绩?嗯,我明白你的感受。其实,成绩这事儿也不是说改就能改的,你得...
改GPA申请研究生#大学修改成绩修改 #找黑客改分#修改成绩单听说你想改一改在美国大学的成绩?嗯,我明白你的感受。其实,成绩这事儿也不是说改就能改的,你得...改GPA申请研究生#大学修改成绩修改 #找黑客改分#修改成绩单听说你想改一改在美国大学的成绩?嗯,我明白你的感受。其实,成绩这事儿也不是说改就能改的,你得...
改GPA申请研究生#大学修改成绩修改 #找黑客改分#修改成绩单听说你想改一改在美国大学的成绩?嗯,我明白你的感受。其实,成绩这事儿也不是说改就能改的,你得...黑客 接单【TG/微信qoqoqdqd】
 
加急代办一个日本秋田县立大学学位记/合格通知书电子版制作/补办国外大学毕业证/CPA证书定制
加急代办一个日本秋田县立大学学位记/合格通知书电子版制作/补办国外大学毕业证/CPA证书定制加急代办一个日本秋田县立大学学位记/合格通知书电子版制作/补办国外大学毕业证/CPA证书定制
加急代办一个日本秋田县立大学学位记/合格通知书电子版制作/补办国外大学毕业证/CPA证书定制paulachevez2
 
听说在加拿大,修改大学成绩单是学霸的日常?求秘籍📚,让我的GPA也能像枫叶一样红得耀眼!#加拿大学霸日常#黑客真的可以改业留学#毕业成绩吗?改了#成绩会被...
听说在加拿大,修改大学成绩单是学霸的日常?求秘籍📚,让我的GPA也能像枫叶一样红得耀眼!#加拿大学霸日常#黑客真的可以改业留学#毕业成绩吗?改了#成绩会被...听说在加拿大,修改大学成绩单是学霸的日常?求秘籍📚,让我的GPA也能像枫叶一样红得耀眼!#加拿大学霸日常#黑客真的可以改业留学#毕业成绩吗?改了#成绩会被...
听说在加拿大,修改大学成绩单是学霸的日常?求秘籍📚,让我的GPA也能像枫叶一样红得耀眼!#加拿大学霸日常#黑客真的可以改业留学#毕业成绩吗?改了#成绩会被...黑客 接单【TG/微信qoqoqdqd】
 
未毕业在线购买日本熊本县立大学学位记🏆学习成绩单电子版定制🏆克隆爱尔兰大学文凭🏆CFA证书定制
未毕业在线购买日本熊本县立大学学位记🏆学习成绩单电子版定制🏆克隆爱尔兰大学文凭🏆CFA证书定制未毕业在线购买日本熊本县立大学学位记🏆学习成绩单电子版定制🏆克隆爱尔兰大学文凭🏆CFA证书定制
未毕业在线购买日本熊本县立大学学位记🏆学习成绩单电子版定制🏆克隆爱尔兰大学文凭🏆CFA证书定制gravestomas0
 
未毕业在线购买日本长崎县立大学学位记🏆卒业证书外壳什么样子🏆办理比利时大学文凭🏆日语JLPT证书定制
未毕业在线购买日本长崎县立大学学位记🏆卒业证书外壳什么样子🏆办理比利时大学文凭🏆日语JLPT证书定制未毕业在线购买日本长崎县立大学学位记🏆卒业证书外壳什么样子🏆办理比利时大学文凭🏆日语JLPT证书定制
未毕业在线购买日本长崎县立大学学位记🏆卒业证书外壳什么样子🏆办理比利时大学文凭🏆日语JLPT证书定制radeybfgkf477
 
1.💥黑客接单,挑战你的想象力! 🚀💡从最炫酷的黑科技到神秘莫测的代码世界,这里都是你想要的技术。无论是破解密码、入侵系统还是开发软件,我们都能帮你实现!...
1.💥黑客接单,挑战你的想象力! 🚀💡从最炫酷的黑科技到神秘莫测的代码世界,这里都是你想要的技术。无论是破解密码、入侵系统还是开发软件,我们都能帮你实现!...1.💥黑客接单,挑战你的想象力! 🚀💡从最炫酷的黑科技到神秘莫测的代码世界,这里都是你想要的技术。无论是破解密码、入侵系统还是开发软件,我们都能帮你实现!...
1.💥黑客接单,挑战你的想象力! 🚀💡从最炫酷的黑科技到神秘莫测的代码世界,这里都是你想要的技术。无论是破解密码、入侵系统还是开发软件,我们都能帮你实现!...黑客 接单【TG/微信qoqoqdqd】
 
【創業簡報練習】當一個人吃飯會想起誰: (A)I-DOLL 陪吃娃娃|科技創業與營運實務
【創業簡報練習】當一個人吃飯會想起誰:(A)I-DOLL 陪吃娃娃|科技創業與營運實務【創業簡報練習】當一個人吃飯會想起誰:(A)I-DOLL 陪吃娃娃|科技創業與營運實務
【創業簡報練習】當一個人吃飯會想起誰: (A)I-DOLL 陪吃娃娃|科技創業與營運實務sardinesaying
 
哪里可以购买日本群马县立县民健康科学大学学位记🏆做个假的文凭可认证吗🏆台湾大学文凭制作🏆托福TOEFL证书定制
哪里可以购买日本群马县立县民健康科学大学学位记🏆做个假的文凭可认证吗🏆台湾大学文凭制作🏆托福TOEFL证书定制哪里可以购买日本群马县立县民健康科学大学学位记🏆做个假的文凭可认证吗🏆台湾大学文凭制作🏆托福TOEFL证书定制
哪里可以购买日本群马县立县民健康科学大学学位记🏆做个假的文凭可认证吗🏆台湾大学文凭制作🏆托福TOEFL证书定制radeybfgkf477
 
003 DSKP KSSR SEMAKAN 2017 BAHASA CINA TAHUN 3.pdf
003 DSKP KSSR SEMAKAN 2017 BAHASA CINA TAHUN 3.pdf003 DSKP KSSR SEMAKAN 2017 BAHASA CINA TAHUN 3.pdf
003 DSKP KSSR SEMAKAN 2017 BAHASA CINA TAHUN 3.pdfshanshanhui1
 

Recently uploaded (20)

未毕业在线购买日本神户国际大学学位记🏆学习成绩单电子版定制🏆仿制西班牙大学毕业证🏆香港中学会考证书定制
未毕业在线购买日本神户国际大学学位记🏆学习成绩单电子版定制🏆仿制西班牙大学毕业证🏆香港中学会考证书定制未毕业在线购买日本神户国际大学学位记🏆学习成绩单电子版定制🏆仿制西班牙大学毕业证🏆香港中学会考证书定制
未毕业在线购买日本神户国际大学学位记🏆学习成绩单电子版定制🏆仿制西班牙大学毕业证🏆香港中学会考证书定制
 
我曾试图入侵正方教务系统,但我发现它有一些漏洞找黑客入侵电脑,找黑客入侵服务器,找黑客破解密码,怎么找黑客?【微 tytyqqww 信】
我曾试图入侵正方教务系统,但我发现它有一些漏洞找黑客入侵电脑,找黑客入侵服务器,找黑客破解密码,怎么找黑客?【微 tytyqqww 信】我曾试图入侵正方教务系统,但我发现它有一些漏洞找黑客入侵电脑,找黑客入侵服务器,找黑客破解密码,怎么找黑客?【微 tytyqqww 信】
我曾试图入侵正方教务系统,但我发现它有一些漏洞找黑客入侵电脑,找黑客入侵服务器,找黑客破解密码,怎么找黑客?【微 tytyqqww 信】
 
DIGNITAS INFINITA - 人类尊严 - 教区信仰教义宣言.pptx
DIGNITAS INFINITA - 人类尊严  -  教区信仰教义宣言.pptxDIGNITAS INFINITA - 人类尊严  -  教区信仰教义宣言.pptx
DIGNITAS INFINITA - 人类尊严 - 教区信仰教义宣言.pptx
 
30T.ppt【国外大学文凭样本】TWU毕业证认证Q/微:892798920办西三一大学毕业证留信留服使馆公证,TWU硕士毕业证,TWU研究生毕业证,文凭...
30T.ppt【国外大学文凭样本】TWU毕业证认证Q/微:892798920办西三一大学毕业证留信留服使馆公证,TWU硕士毕业证,TWU研究生毕业证,文凭...30T.ppt【国外大学文凭样本】TWU毕业证认证Q/微:892798920办西三一大学毕业证留信留服使馆公证,TWU硕士毕业证,TWU研究生毕业证,文凭...
30T.ppt【国外大学文凭样本】TWU毕业证认证Q/微:892798920办西三一大学毕业证留信留服使馆公证,TWU硕士毕业证,TWU研究生毕业证,文凭...
 
1.🔥承接黑客破解任务,你的难题我们来解决! 💡无论你是游戏玩家、企业用户还是个人用户,都能在这里找到满意的解决方案。 💪经验丰富的专业团队为您提供全方位...
1.🔥承接黑客破解任务,你的难题我们来解决! 💡无论你是游戏玩家、企业用户还是个人用户,都能在这里找到满意的解决方案。 💪经验丰富的专业团队为您提供全方位...1.🔥承接黑客破解任务,你的难题我们来解决! 💡无论你是游戏玩家、企业用户还是个人用户,都能在这里找到满意的解决方案。 💪经验丰富的专业团队为您提供全方位...
1.🔥承接黑客破解任务,你的难题我们来解决! 💡无论你是游戏玩家、企业用户还是个人用户,都能在这里找到满意的解决方案。 💪经验丰富的专业团队为您提供全方位...
 
快速定制高仿日本广岛修道大学学位记/入学许可证书PDF修改/意大利大学文凭制作/日语JLPT证书定制
快速定制高仿日本广岛修道大学学位记/入学许可证书PDF修改/意大利大学文凭制作/日语JLPT证书定制快速定制高仿日本广岛修道大学学位记/入学许可证书PDF修改/意大利大学文凭制作/日语JLPT证书定制
快速定制高仿日本广岛修道大学学位记/入学许可证书PDF修改/意大利大学文凭制作/日语JLPT证书定制
 
为了确保自己的安全和合法权益,我选择购买高品質的假护照、身份证明以及结婚证等证件。这些都是真实有效且具有法律效力的文件【微 tytyqqww 信】
为了确保自己的安全和合法权益,我选择购买高品質的假护照、身份证明以及结婚证等证件。这些都是真实有效且具有法律效力的文件【微 tytyqqww 信】为了确保自己的安全和合法权益,我选择购买高品質的假护照、身份证明以及结婚证等证件。这些都是真实有效且具有法律效力的文件【微 tytyqqww 信】
为了确保自己的安全和合法权益,我选择购买高品質的假护照、身份证明以及结婚证等证件。这些都是真实有效且具有法律效力的文件【微 tytyqqww 信】
 
保分服务在SAT考试作弊问题上的应对策略和措施是否充分,如何确保服务的可靠性??
保分服务在SAT考试作弊问题上的应对策略和措施是否充分,如何确保服务的可靠性??保分服务在SAT考试作弊问题上的应对策略和措施是否充分,如何确保服务的可靠性??
保分服务在SAT考试作弊问题上的应对策略和措施是否充分,如何确保服务的可靠性??
 
正方教务系统的小漏洞被黑客找到啦~他现在正在偷偷溜进去玩呢!(*^__^*)法国大学挂科改成绩 德国大学挂科改成绩 韩国大学挂科改成绩大学成绩修改,找黑客...
正方教务系统的小漏洞被黑客找到啦~他现在正在偷偷溜进去玩呢!(*^__^*)法国大学挂科改成绩 德国大学挂科改成绩 韩国大学挂科改成绩大学成绩修改,找黑客...正方教务系统的小漏洞被黑客找到啦~他现在正在偷偷溜进去玩呢!(*^__^*)法国大学挂科改成绩 德国大学挂科改成绩 韩国大学挂科改成绩大学成绩修改,找黑客...
正方教务系统的小漏洞被黑客找到啦~他现在正在偷偷溜进去玩呢!(*^__^*)法国大学挂科改成绩 德国大学挂科改成绩 韩国大学挂科改成绩大学成绩修改,找黑客...
 
在中国可以购买日本东京女子大学学位记/做个假的文凭可认证吗/定制马来西亚大学毕业证/CFA证书定制
在中国可以购买日本东京女子大学学位记/做个假的文凭可认证吗/定制马来西亚大学毕业证/CFA证书定制在中国可以购买日本东京女子大学学位记/做个假的文凭可认证吗/定制马来西亚大学毕业证/CFA证书定制
在中国可以购买日本东京女子大学学位记/做个假的文凭可认证吗/定制马来西亚大学毕业证/CFA证书定制
 
【国外大学文凭样本】多大毕业证认证Q/微:892798920办多伦多大学毕业证留信留服使馆公公证,多大硕士毕业证,U of T研究生毕业证,文凭,改U o...
【国外大学文凭样本】多大毕业证认证Q/微:892798920办多伦多大学毕业证留信留服使馆公公证,多大硕士毕业证,U of T研究生毕业证,文凭,改U o...【国外大学文凭样本】多大毕业证认证Q/微:892798920办多伦多大学毕业证留信留服使馆公公证,多大硕士毕业证,U of T研究生毕业证,文凭,改U o...
【国外大学文凭样本】多大毕业证认证Q/微:892798920办多伦多大学毕业证留信留服使馆公公证,多大硕士毕业证,U of T研究生毕业证,文凭,改U o...
 
改GPA申请研究生#大学修改成绩修改 #找黑客改分#修改成绩单听说你想改一改在美国大学的成绩?嗯,我明白你的感受。其实,成绩这事儿也不是说改就能改的,你得...
改GPA申请研究生#大学修改成绩修改 #找黑客改分#修改成绩单听说你想改一改在美国大学的成绩?嗯,我明白你的感受。其实,成绩这事儿也不是说改就能改的,你得...改GPA申请研究生#大学修改成绩修改 #找黑客改分#修改成绩单听说你想改一改在美国大学的成绩?嗯,我明白你的感受。其实,成绩这事儿也不是说改就能改的,你得...
改GPA申请研究生#大学修改成绩修改 #找黑客改分#修改成绩单听说你想改一改在美国大学的成绩?嗯,我明白你的感受。其实,成绩这事儿也不是说改就能改的,你得...
 
加急代办一个日本秋田县立大学学位记/合格通知书电子版制作/补办国外大学毕业证/CPA证书定制
加急代办一个日本秋田县立大学学位记/合格通知书电子版制作/补办国外大学毕业证/CPA证书定制加急代办一个日本秋田县立大学学位记/合格通知书电子版制作/补办国外大学毕业证/CPA证书定制
加急代办一个日本秋田县立大学学位记/合格通知书电子版制作/补办国外大学毕业证/CPA证书定制
 
听说在加拿大,修改大学成绩单是学霸的日常?求秘籍📚,让我的GPA也能像枫叶一样红得耀眼!#加拿大学霸日常#黑客真的可以改业留学#毕业成绩吗?改了#成绩会被...
听说在加拿大,修改大学成绩单是学霸的日常?求秘籍📚,让我的GPA也能像枫叶一样红得耀眼!#加拿大学霸日常#黑客真的可以改业留学#毕业成绩吗?改了#成绩会被...听说在加拿大,修改大学成绩单是学霸的日常?求秘籍📚,让我的GPA也能像枫叶一样红得耀眼!#加拿大学霸日常#黑客真的可以改业留学#毕业成绩吗?改了#成绩会被...
听说在加拿大,修改大学成绩单是学霸的日常?求秘籍📚,让我的GPA也能像枫叶一样红得耀眼!#加拿大学霸日常#黑客真的可以改业留学#毕业成绩吗?改了#成绩会被...
 
未毕业在线购买日本熊本县立大学学位记🏆学习成绩单电子版定制🏆克隆爱尔兰大学文凭🏆CFA证书定制
未毕业在线购买日本熊本县立大学学位记🏆学习成绩单电子版定制🏆克隆爱尔兰大学文凭🏆CFA证书定制未毕业在线购买日本熊本县立大学学位记🏆学习成绩单电子版定制🏆克隆爱尔兰大学文凭🏆CFA证书定制
未毕业在线购买日本熊本县立大学学位记🏆学习成绩单电子版定制🏆克隆爱尔兰大学文凭🏆CFA证书定制
 
未毕业在线购买日本长崎县立大学学位记🏆卒业证书外壳什么样子🏆办理比利时大学文凭🏆日语JLPT证书定制
未毕业在线购买日本长崎县立大学学位记🏆卒业证书外壳什么样子🏆办理比利时大学文凭🏆日语JLPT证书定制未毕业在线购买日本长崎县立大学学位记🏆卒业证书外壳什么样子🏆办理比利时大学文凭🏆日语JLPT证书定制
未毕业在线购买日本长崎县立大学学位记🏆卒业证书外壳什么样子🏆办理比利时大学文凭🏆日语JLPT证书定制
 
1.💥黑客接单,挑战你的想象力! 🚀💡从最炫酷的黑科技到神秘莫测的代码世界,这里都是你想要的技术。无论是破解密码、入侵系统还是开发软件,我们都能帮你实现!...
1.💥黑客接单,挑战你的想象力! 🚀💡从最炫酷的黑科技到神秘莫测的代码世界,这里都是你想要的技术。无论是破解密码、入侵系统还是开发软件,我们都能帮你实现!...1.💥黑客接单,挑战你的想象力! 🚀💡从最炫酷的黑科技到神秘莫测的代码世界,这里都是你想要的技术。无论是破解密码、入侵系统还是开发软件,我们都能帮你实现!...
1.💥黑客接单,挑战你的想象力! 🚀💡从最炫酷的黑科技到神秘莫测的代码世界,这里都是你想要的技术。无论是破解密码、入侵系统还是开发软件,我们都能帮你实现!...
 
【創業簡報練習】當一個人吃飯會想起誰: (A)I-DOLL 陪吃娃娃|科技創業與營運實務
【創業簡報練習】當一個人吃飯會想起誰:(A)I-DOLL 陪吃娃娃|科技創業與營運實務【創業簡報練習】當一個人吃飯會想起誰:(A)I-DOLL 陪吃娃娃|科技創業與營運實務
【創業簡報練習】當一個人吃飯會想起誰: (A)I-DOLL 陪吃娃娃|科技創業與營運實務
 
哪里可以购买日本群马县立县民健康科学大学学位记🏆做个假的文凭可认证吗🏆台湾大学文凭制作🏆托福TOEFL证书定制
哪里可以购买日本群马县立县民健康科学大学学位记🏆做个假的文凭可认证吗🏆台湾大学文凭制作🏆托福TOEFL证书定制哪里可以购买日本群马县立县民健康科学大学学位记🏆做个假的文凭可认证吗🏆台湾大学文凭制作🏆托福TOEFL证书定制
哪里可以购买日本群马县立县民健康科学大学学位记🏆做个假的文凭可认证吗🏆台湾大学文凭制作🏆托福TOEFL证书定制
 
003 DSKP KSSR SEMAKAN 2017 BAHASA CINA TAHUN 3.pdf
003 DSKP KSSR SEMAKAN 2017 BAHASA CINA TAHUN 3.pdf003 DSKP KSSR SEMAKAN 2017 BAHASA CINA TAHUN 3.pdf
003 DSKP KSSR SEMAKAN 2017 BAHASA CINA TAHUN 3.pdf
 

Entities in DCPS (DDS)

  • 1. DDS 中的各種 Entities (Entities in DCPS) 20170220 Taka Wang
  • 2. In a Nutshell • Introduce major entities in DCPS (Data-Centric Publish-Subscribe) specification from the class diagram and implementation viewpoints. • Know the relationships and cardinalities among these entities. • Discuss two ways (sync, async) to receive notification from DDS middleware and common pitfalls. • Summarize learning resources.
  • 3. Take Aways For Busy People • Create Few Domain Participants • Create Entities Early • Prefer Waitset over Listener • ⼀一個 publisher/subscriber 上,可以有多個 datawriter/datareader • ⼀一個 datawriter/datareader 只能對應⼀一個 topic (concrete class),但 不同 datawriter/reader 可以對應同⼀一個 topic
  • 6. 0.1 DCPS 的模組 (module) 組成 Infrastructure Module Domain Module Publication Module Subscription Module Topic-Definition Module 內含 Entity Entity 是上⾯面四個模組的 abstract base class Source Page 本⽂文略略過(不難理理解),請參參考此⾴頁⾯面
  • 7. Entity is an Abstract Base Class • An Entity is the common parent for the most important DDS-elements: • DomainParticipant: Application connector to a Network Domain. 
 (是⽤用來來進入不同 Domain 的物件,不同 domain 間訊息不會互通,是隔離的) • Topic: Defines the messages that will be transmitted across the network. • DataWriter: Accessor to write typed data (Topic) into a Domain. • DataReader: Accessor to read typed data (Topic) from a Domain. • Publisher: Aggregation of DataWriter objects, used to disseminate data. • Subscriber: Aggregation of DataReader objects, used to collect data.
  • 8. 1. Infrastructure Module 主要包括: - Entity 這個抽象基類 - Listener 與 WaitSet 這 兩兩種互動模式 - Qos 與 Status 定義 Source Page
  • 9. 1.1. Conceptional DataReader Listener Listener 是 middleware ⽤用來來非同步 (async) 的通知應⽤用 程式,有 status 改變了了 Source Page
  • 10. 1.2. Listener Class Diagram Source Page • 所有的 Entity 都有對應的 Listener • 例例如 DataReaderListener 就是 Data Reader 的 Listener • Listener 定義很多 Callback,⽤用來來 跟應⽤用程式互動, 通知應⽤用程式 Status 發⽣生不同的改變 • 類似 exception handler 機制,如 果 Subscriber 已經處理理這個狀狀態改 變,則上層的 DataReader 就不⽤用 處理理這個改變。反之,⼀一路路往 parent 傳遞 (propagation)。 parent
  • 11. 1.3. Status and Waitset • Topic, Subscriber, Data Reader 與 Data Writer 四種 Entity 上有對應 的 Status • 請參參考下列列⾴頁⾯面的 Class Diagram 與列列表 • Status • Waitset
  • 12. 1.4. Conceptional DataReader WaitSet 應⽤用程式將關注的 Condition 丟進 waitset (步驟⼀一),然後等待 StatusCondition 中任⼀一 trigger_value 從 FALSE 變成 TRUE (步驟⼆二), 這時候應⽤用程式主動去拿 等待的結果並做處理理 (步驟三)。換句句話說,應⽤用程式是卡住等待狀狀態改變的。 步驟⼀一通常在應⽤用程式初始化設定,步驟⼆二跟三通常放在應⽤用程式主迴圈中等待 Source Page
  • 13. 2. Domain Module 主要包括: - Domain Participant 這 個 Entity 抽象類 的 ⼦子 類 - Domain Participant Factory 類 - Domain Participant Listener 類有很多
 factory method Source Page
  • 14. 2.1 Domain Participant • 因為是 Entity 的⼦子類,所以有 QosPolicies, StatusCondition 與 Listener (詳⾒見見 1. Infrastructure Module 的 class diagram) • Domain Participant 扮演的⾓角⾊色 • 應⽤用程式要進入特定 Domain,需要透過 Domain Participant 建立 Virtual network Link,做到 Physical Network 上不同 DDS 應⽤用隔離互不⼲干擾的效果。 • 是所有 Entities 的⼯工廠 (⾒見見上⾴頁的 Factory methods) • 是所有 Entities (詳⾒見見 0.) 的容器 (container) • 沒有⾃自⼰己專⽤用的 Listener (domain listener) 去聽 domain 狀狀態變化,⽽而是⽤用來來處理理容器內所 有 Entities 沒有處理理的狀狀態變化 (還記得1.1的⼀一路路往 parent 傳遞 (propagation) 嗎?) Source Page
  • 15. 3. Subscription Module 主要包括下列列四個重要的類別: - Subscriber - DataReader - DataSample - SampleInfo Listener 與 Condition 請參參考前⾯面 介紹 DataReader 加上 Subscriber 形 成 Subscription 概念念 Source Page
  • 16. 3.1. Subscriber & Sample • Subscriber 主要負責收集來來⾃自不同 Publisher 的資料 • DataReader 不負責從 Network 直接收資料,⽽而是由 Subscriber 決 定何時、如何將資料傳到 DataReader • Subscriber 只收所屬 Partition 的 samples • Subscriber 也是 DataReaders 的⼯工廠 (DomainParticipant 也是) • SampleInfo ⽤用來來描述 Sample 的相關狀狀態 Source Page
  • 17. 3.2 DataReader • DataReader 是 abstract class, 針對特定 type,有各⾃自的 concrete data reader (例例如 Foo Type 會由 preprocessor 產⽣生 FooDataReader) • Typed DataReader ⽤用來來存取對應 type 的 sample 與其對應的 SampleInfo • DataReader 上有 Listeners, Conditions 與 Qos Source Page
  • 18. 4. Publication Module 主要包括下列列兩兩個重要的類別: - Publisher - DataWriter DataWriter 加上 Publisher 形成 Publication 概念念 Source Page
  • 19. Discussion and Best Practices
  • 20. Prefer Waitset over Listener • 從⽂文件上可以知道 Data Reader 有兩兩種接收資料的⽅方式 • waitset: blocking (透過 condition variable 去卡,類似 Unix Select的⾏行行為) • listener: non-blocking, aka. async (透過 register callback handler) • 如果接收端 (application) 的 waiting loop 並沒有其他⼯工作要做,只是等待資 料進來來做後續處理理,這時候請盡量量使⽤用 waitset。這樣的 code 比較安全 (雖 然有 Context Switch 的 Overhead),除非 callback 內的處理理非常快,追求 extreme 的效能才⽤用 listener (做 benchmark,⽽而不是 production)
  • 21. Why Waitset? • Listener 的 callback 是被 DDS middleware 的 thread 呼叫的,但 DDS middleware thread 通常都在做 這些事情: • 為各個 Data Reader 收資料 • 收發 metadata 給 Data Writer • 處理理 Deadline 與 Liveliness 之類的 Qos • 呼叫 Callback 時,接收端的 main thread 雖然還在跑 (async),但 DDS middleware 的 thread 此時卡 住,要等 Callback 內的事情處理理完 (寫檔、寫資料庫等等),造成下列列後果: • Data Readers 會漏資料 • 無法正確處理理(通知別⼈人) Liveliness 狀狀態
  • 22. Notice from documents about listener • PT: Something worth pointing out is that the handler code will execute in a middleware thread. As a result, when using listeners you should try to minimize the time spent in the listener itself. • RTI: While a Listener is used to provide a callback for asynchronous access, Conditions and WaitSets provide synchronous data access. This means that you use a WaitSet to block an application thread until data becomes available. This is safer than using a listener because you do not have to worry about blocking Connext's threads.
  • 23. Entities management • Create Few DomainParticipants (在⼀一程式中,⼀一個 Domain,⼀一個 DP 就好),否則會浪 費很多系統資源,因為它主要⽤用來來: • DomainParticipants ⽤用來來尋找 Domain 中的其他 Entities,並管理理這些關聯聯 • 創建 Thread • Create Entities Early (不要等到要 Read/Write 才創建 DataWriter/DataReader,程式⼀一開 始初始化時就應該創建) • 需要幫⾃自⼰己 Allocate Queue • 傳送 discovery 訊息通知其他程式,⾃自⼰己已經存在於 Domain 中 (可想⽽而知需要點時間)
  • 24. Take Aways • Create Few Domain Participants • Create Entities Early • Prefer Waitset over Listener • ⼀一個 publisher/subscriber 上,可以有多個 datawriter/datareader • ⼀一個 datawriter/datareader 只能對應⼀一個 topic (concrete class),但 不同 datawriter/reader 可以對應同⼀一個 topic
  • 25. Reference • Vortex Lite C99 API Reference Guide (了了解 DCPS 概念念與架構,推薦閱讀⽽而不是只當作 API 查閱⽂文件,與 ISO C++ 章節內容完全相同) • Best Practices using RTI Connext DDS (同樣適⽤用於 PT 的實作,推薦閱讀) • Vortex - The DDS Tutorial (最輕量量化的教學⽂文件,短短20多⾴頁,幫助你掌握八成重要的概 念念) • DataWriters/Publishers and DataReaders/Subscribers (清楚的解釋四種 Entities 的關係) • RTI: WaitSet with Status Condition (介紹 Waitset 概念念) • PT: Reading and Writing Data (介紹 Waitset 與 Listener ⽤用法)