2011-12-14 26 views
0

我現在正在撰寫關於分佈式系統監視的碩士論文。爲此,我設計了一個框架,可以記錄監控數據並在一系列過濾器(管道和過濾器樣式)中分析這些數據。它基於Kieker monitoring frameworkJava中的可執行管道和過濾器圖形

您可以通過訂閱輸出端口,像這樣連接不同的過濾器,以對方:

DurationFilter durationFilter = new DurationFilter(); 
Timeline timeline = new Timeline(...); 
durationFilter.getOutputPort().subscribe(timeline); 

該機制由Kieker框架,我使用提供。

要運行分析,用戶當前必須通過寫出代碼手動連接過濾器。我現在要做的就是編寫一個帶有GUI的工具,以便於創建配置(過濾器集,輸入文件和連接集)。理想情況下,用戶可以像在UML編輯器中那樣做,創建盒子(過濾器),並將它們連接到線路(連接)並設置輸入參數(輸入文件)等。

然後需要執行這些配置我需要從圖形到代碼到Java代碼的映射。那是我迄今爲止的想法。首先:你認爲這種方法適合這項任務嗎?

在我的研究中,我發現了框架JHotDraw,它具有很多我剛剛提到的功能。通過JHotDraw,我可以在繪圖區(DrawingEditor)上創建視覺元素(圖),包括一組用於創建,編輯和連接元素的工具。這我已經完成了,而且非常簡單。獎勵是JHotDraw的撤銷/重做功能。

現在我的問題:我不知道我應該如何從編輯器中的圖形表示得到java代碼。我所擁有的是該框架假定使用的MVC模式的V部分。這些圖是視圖。但是模型到底在哪裏?它如何融入框架?我在想,對於DrawingEditor中顯示的每個元素,我都必須有一個對應的模型來存儲元素的數據。一個FilterModel將具有像輸入數據類型(可以處理哪些數據),輸出端口及其數據類型(它創建什麼類型的數據)以及過濾器類型(對應於Java類)的屬性。這些是必要的,以檢查一個過濾器是否可以連接到另一個過濾器並最終執行整個過程。

不知道我是否清楚自己。如果有什麼不清楚的地方,請詢問。

+0

下面是JHotDraw圖表我能夠爲例:[圖像](http://img542.imageshack.us/img542/5168/editordemo.png)。 – zerus 2011-12-14 14:21:41

+0

您可以考慮的另一項技術是[GEF](http://www.eclipse.org/gef/)。 – sudocode 2011-12-14 14:28:52

回答

1

我們目前正在爲Kieker開發一個基於Web的用戶界面。這將允許用戶定義和執行Kieker管道和過濾器圖。如果您仍然對此感興趣,請隨時與我們聯繫。您可以在kieker.sf.net/support/上找到我們的聯繫信息。另外,我會對你在論文中做什麼感興趣;-)。

問候,安德烈