為了實現平台+外掛程式結構的軟體設計需要定義兩個標準介面,一個為由平台所實現的平台擴充介面,一個為外掛程式所實現的外掛程式介面。這裡需要說明的是:平台擴充介面完全由平台實現,外掛程式只是調用和使用,外掛程式介面完全由外掛程式實現,平台也只是調用和使用。平台擴充介面實現外掛程式向平台方向的單向通訊,外掛程式通過平台擴充介面可擷取主架構的各種資源和資料,可包括各種系統控制代碼,程式內部資料以及記憶體配置等。外掛程式介面為平台向外掛程式方向的單向通訊,平台通過外掛程式介面調用外掛程式所實現的功能,讀取外掛程式處理資料等。
平台外掛程式處理功能包括外掛程式註冊、管理和調用,以及平台擴充介面的功能實現。外掛程式註冊為按照某種機制首先在系統中搜尋已安裝外掛程式,之後將搜尋到的外掛程式註冊到平台上,並在平台上產生相應的調用機制,這包括菜單選項、工具列、內部調用等。外掛程式管理完成外掛程式與平台的協調,為各外掛程式在平台上產生管理資訊以及進行外掛程式的狀態跟蹤。外掛程式調用為調用各外掛程式所實現的功能。平台外掛程式處理功能實現的另一部分功能為平台擴充介面的具體實現。
外掛程式軟體設計步驟包括:
1、 確定平台準系統和外掛程式要完成系列化功能或擴充功能;
2、 定義平台擴充介面和外掛程式介面;
3、 完成平台設計,主要是平台外掛程式處理功能;
4、 向外掛程式開發人員提供主平台程式(執行代碼),公布平台擴充介面和外掛程式要實現的介面,可能包括開發用的SDK;
5、 外掛程式開發人員按要求開發外掛程式,實現外掛程式介面,開發人員可使用提供的主平台程式測試外掛程式;
6、 主平台設計者繼續完成主平台的核心功能,並可隨時公布新增加主平台擴充介面和外掛程式介面;
7、 實現4-6步驟的良性迴圈,整個軟體系統不斷向前進化。
平台+外掛程式軟體設計的優點:
1、 實現真正意義上的軟體組件的“隨插即用”;
2、 在二進位級上整合軟體,減少大量的軟體重新編譯與發布麻煩與時間;
3、 能夠很好實現軟體模組的分工開發,能夠大量吸取他人的優長;
4、 可較好實現程式碼後置,保護智慧財產權。