以作者查詢圖書館館藏 、以作者查詢臺灣博碩士 、以作者查詢全國書目 、勘誤回報 、線上人數:178 、訪客IP:3.137.169.60
姓名 林欣蓓(Xin-Bei Lin) 查詢紙本館藏 畢業系所 資訊工程學系 論文名稱 實現 Parasite SDK 中跨語言支持的後端解決方案 相關論文 檔案 [Endnote RIS 格式] [Bibtex 格式] [相關文章] [文章引用] [完整記錄] [館藏目錄] 至系統瀏覽論文 (2029-7-16以後開放) 摘要(中) 在當前軟體開發的環境中,對於擴充現有應用程式功能的需求日益增加。傳統的擴充方法,如應用程式介面(API)、擴充套件(Extension)及外掛程式(Plugin),雖然在某些情況下有效,但往往受限於原始開發商的技術支援,這一限制對於非開源軟體或資源有限的開發團隊尤其明顯。
針對此問題,我們提出了「Parasite Programming」技術,並為其開發「Parasite SDK」。此 SDK 採用了一種創新方法,無需修改原始碼或依賴傳統擴充方式,而是通過在目標應用程式的圖形使用者介面(GUI)上覆蓋透明視窗,實時追蹤並利用 UI 資訊進行功能擴充。然而,這一技術在開發過程中遇到了語言間的互操作性挑戰,原因在於其依賴於 Microsoft UI Automation(UIA)技術,該技術主要支援 C/C++ 及 C# 語言。
為了克服這一挑戰,本論文提出了一套跨語言支持的後端解決方案。此方案透過前後端分離的架構設計和利用 WebSocket 協定實現前後端間的高效通訊。目前已支援 TypeScript,未來計畫支援 JavaScript、Python 等廣泛使用的程式語言。這一解決方案不僅提升了開發效率,也顯著擴大了「Parasite SDK」的應用範圍,使其在多語言開發環境中顯示出更大的靈活性和強大的功能。摘要(英) In the current software development landscape, there is an increasing demand for enhancing the functionality of existing applications. Traditional extension methods, such as Application Programming Interfaces (APIs), extensions, and plugins, are effective in certain scenarios but are often limited by the technical support of the original developers. This limitation is particularly acute for non-open-source software or teams with limited resources.
To address this issue, we introduce ``Parasite Programming′′ and develop the ``Parasite SDK.′′ This SDK employs an innovative approach that does not require modifying the original code or relying on traditional expansion methods. Instead, it overlays transparent windows on the target application′s Graphical User Interface (GUI), enabling real-time tracking and utilization of UI information for feature extension. However, this technique has encountered challenges in language interoperability during its development, primarily due to its reliance on Microsoft UI Automation (UIA) technology, which predominantly supports C/C++ and C# languages.
To address this challenge, this thesis proposes a backend solution supporting multiple languages. This solution utilizes a decoupled front-end and back-end architectural design and employs the WebSocket protocol for efficient communication between them. It currently supports TypeScript, with plans to extend support to widely-used programming languages such as JavaScript and Python in the future. This solution not only enhances development efficiency but also significantly broadens the application scope of the ``Parasite SDK,′′ demonstrating greater flexibility and powerful capabilities in a multilingual development environment.關鍵字(中) ★ 軟體擴充
★ 跨語言互操作性關鍵字(英) ★ Software Extension
★ Cross-Language Interoperability論文目次 摘要 v
Abstract vi
目錄 viii
圖目錄 xi
表目錄 xiii
一、 緒論 1
二、 相關研究 6
2.1 常見的擴充方式 6
2.1.1 應用程式介面(API) 6
2.1.2 擴充套件(Extension)和外掛程式(Plugin) 7
2.1.3 小結 9
2.2 Robotic Process Automation(RPA) 10
2.3 Microsoft UI Automation(UIA) 12
2.4 常見的跨語言溝通方式 13
2.4.1 Foreign Function Interface(FFI) 13
2.4.2 RESTful API 14
2.4.3 WebSocket 15
三、 Parasite Programming 概述 18
3.1 技術理念與原理 18
3.2 實作 Parasite 的流程 20
3.3 Parasite SDK 的架構與設計 22
3.3.1 架構概述 22
3.3.2 設計理念與挑戰 23
四、 後端架構設計與實作 25
4.1 WebSocket 溝通機制的實作 25
4.1.1 SignalR 25
4.1.2 架構和實作 28
4.2 UI 元素的實時追蹤和管理 29
4.3 UI 元素的互動與控制 32
4.3.1 UI 元素事件的處理 33
4.3.2 UI 元素屬性的取得 36
4.3.3 UI 元素的操作 38
五、 實驗設計與效能評估 41
5.1 實驗設計與方法 41
5.2 實驗結果與分析 42
5.2.1 UI 元素屬性取得的效能 43
5.2.2 操作 UI 元素的的效能 45
5.2.3 UI 元素事件處理的效能 46
5.3 實驗結果總結 47
六、 結論及未來展望 48
參考文獻 50參考文獻 [1] 劉蓉綺, “Windows 桌面應用程式的擴增實境,” M.S. thesis, 國立中央大學, 2022. [Online]. Available: https://hdl.handle.net/11296/q4qy68.
[2] 陳宏輔, “利用軟體 ui 實現擴充功能突破原始碼限制的工具,” M.S. thesis, 國立中央大學, 2023. [Online]. Available: https://hdl.handle.net/11296/3j4de7.
[3] M. Lamothe, Y.-G. Guéhéneuc, and W. Shang, “A systematic review of api evolutionliterature,” ACM Computing Surveys (CSUR), vol. 54, no. 8, pp. 1–36, 2021.
[4] P. K. Venkatesh, S. Wang, F. Zhang, Y. Zou, and A. E. Hassan, “What do client developers concern when using web apis? an empirical study on developer forums andstack overflow,” in 2016 IEEE International Conference on Web Services (ICWS), 2016,pp. 131–138. DOI: 10.1109/ICWS.2016.25.
[5] S. Sohan, C. Anslow, and F. Maurer, “A case study of web api evolution,” in 2015 IEEEWorld Congress on Services, 2015, pp. 245–252. DOI: 10.1109/SERVICES.2015.43.
[6] P. Schmiedmayer, A. Bauer, and B. Bruegge, “Reducing the impact of breaking changesto web service clients during web api evolution,” in 2023 IEEE/ACM 10th InternationalConference on Mobile Software Engineering and Systems (MOBILESoft), IEEE, 2023,pp. 1–11.
[7] J. Lin, M. Sayagh, and A. E. Hassan, “The co-evolution of the wordpress platform and itsplugins,” ACM Transactions on Software Engineering and Methodology, vol. 32, no. 1,pp. 1–24, 2023.
[8] “Extensions for visual studio family of products | visual studio marketplace.” (2024), [Online]. Available: https://marketplace.visualstudio.com/VSCode (visited on07/04/2024).
[9] D. A. da Silva Costa, H. São Mamede, and M. MIRA DA SILVA, “Robotic processautomation (rpa) adoption: A systematic literature review.,” Engineering Managementin Production & Services, vol. 14, no. 2, 2022.
[10] “Uipath.” (2005), [Online]. Available: https://www.uipath.com/ (visited on 06/20/2024).
[11] T. Chakraborti, V. Isahagian, R. Khalaf, et al., “From robotic process automation tointelligent process automation: –emerging trends–,” in Business Process Management:Blockchain and Robotic Process Automation Forum: BPM 2020 Blockchain and RPA Forum, Seville, Spain, September 13–18, 2020, Proceedings 18, Springer, 2020, pp. 215–228.
[12] “Ui automation overview.” (2021), [Online]. Available: https://learn.microsoft.com/en-us/windows/win32/winauto/uiauto-uiautomationoverview (visited on06/20/2024).
[13] “Windows accessibility api overview.” (2020), [Online]. Available: https://learn.microsoft.com/en-us/windows/win32/winauto/windows-automation-api-portal (visited on 06/20/2024).
[14] J. Carter and M. Markel, “Web accessibility for people with disabilities: An introductionfor web developers,” Writing and Speaking in the Technology Professions: A PracticalGuide, pp. 484–492, 2015.
[15] A. Neumann, N. Laranjeiro, and J. Bernardino, “An analysis of public rest web serviceapis,” IEEE Transactions on Services Computing, vol. 14, no. 4, pp. 957–970, 2018.
[16] B. Gupta and M. Vani, “An overview of web sockets: The future of real-time communication,” Int. Res. J. Eng. Technol. IRJET, vol. 5, no. 12, 2018.
[17] N. Sharma and R. Agarwal, “Http, websocket, and signalr: A comparison of real-timeonline communication protocols,” in Mining Intelligence and Knowledge Exploration,S. Kadry and R. Prasath, Eds., Cham: Springer Nature Switzerland, 2023, pp. 128–135,ISBN: 978-3-031-44084-7.
[18] “Overview of asp.net core signalr.” (2023), [Online]. Available: https : / / learn .microsoft.com/en-us/aspnet/core/signalr/introduction?view=aspnetcore-6.0 (visited on 06/20/2024).指導教授 鄭永斌(Yung-Pin Cheng) 審核日期 2024-7-27 推文 facebook plurk twitter funp google live udn HD myshare reddit netvibes friend youpush delicious baidu 網路書籤 Google bookmarks del.icio.us hemidemi myshare