[發明專利]一種結合功能指標和非功能指標的自動化微服務識別方法有效
| 申請號: | 202010066666.2 | 申請日: | 2020-01-20 |
| 公開(公告)號: | CN111277650B | 公開(公告)日: | 2021-07-09 |
| 發明(設計)人: | 張煜堃;劉波 | 申請(專利權)人: | 南京航空航天大學 |
| 主分類號: | H04L29/08 | 分類號: | H04L29/08;G06F11/30;G06F11/34;G06N3/12 |
| 代理公司: | 南京蘇高專利商標事務所(普通合伙) 32204 | 代理人: | 顏盈靜 |
| 地址: | 210016 江*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 結合 功能 指標 自動化 微服 識別 方法 | ||
本發明公開了一種結合功能指標和非功能指標的自動化微服務識別方法,該方法能夠從遺留系統的可執行包中識別出合適并且負載均衡的微服務候選集合。
技術領域
本發明公開了一種結合功能指標和非功能指標的自動化微服務識別方法,屬于微服務識別技術領域。
背景技術
軟件系統通常需要被一直地維護和修改以適應需求的變換,目前將其中的一類系統劃分為單體系統,單體系統通常將系統的所有業務邏輯,包括界面,數據都實現在一個應用程序之中,并且部署在單個進程之中。這類系統在小規模情況下具有開發和部署簡易的優勢,但隨著系統的發展,修改,部署,更新的成本會快速上升,以至于到難以承受。
針對這樣的問題,從基于服務架構(SOA)衍生出來的微服務架構逐漸獲得了學術界的關注和工業界的落地,微服務架構描述了一種將應用程序構造為一組小型,定義明確,高內聚,低耦合,可獨立部署,分布式和自治的服務(即微服務)的特定方式。每個微服務都旨在實現單個業務功能,該業務功能具有一個相對集成的領域模型,其中包括數據,邏輯和行為。它運行在自己的進程中(例如,像Tomcat這樣的容器),通過輕量級機制(例如,HTTP的RESTish協議,或RabbitMQ等輕量級的消息總線)相互通信,并且在不影響其他服務的前提下獨立地更新和擴展。具有以上特征為基于微服務的應用程序,相對于單體系統,在可維護性,可伸縮性和擴展性更具有優勢。
盡管行業中微服務風格的架構的趨勢似乎勢不可擋,但它仍不是軟件系統的主要形式。許多公司已經運行多年的單體系統仍在商業中提供著不可缺少的功能,貢獻著舉足輕重的價值。盡管舊有系統不斷為所有者帶來價值,但它們卻帶來不便,例如,對系統的一小部分進行更改需要重建并重新部署整個整體。目前的一個可行的選項是通過從現有軟件工件中提取微服務來重新設計整體應用程序。
從單體遺留系統中識別微服務的方法分為兩類:一類是靜態識別方法,該方法依賴的是代碼的結構,倉庫信息,數據庫信息或者其他靜態信息;另一類是動態識別方法,該方法需要啟動目標遺留系統,從而獲得系統相關的動態信息。該方法在微服務識別問題上相對于靜態方法的研究要少得多,而且現存的動態方法差異較大。
以下為代表靜態方法的典型工作示例:
Mazlami【Extraction of Microservices from Monolithic SoftwareArchitectures】的工作將目標遺留系統的Git代碼倉庫作為方法的輸入,倉庫涵蓋了代碼文件,版本歷史以及代碼提交者等信息。這份工作將整個Git倉庫抽象為一個三元組(CM,HM,DM),CM是當前版本的代碼文件集合,Hm是修改歷史,DM是開發者的共享者集合。HM被定義一個有序事件序列(h1,h2,...hn),每一個事件h又可以被表示為另一個三元組h=(E,t,d),E為這個事件所涉及修改,刪除,增加的文件集合,t為事件戳,d為貢獻者。然后將每一個代碼文件作為一個圖中節點,節點和節點之間的帶權關系通過分析三元組的信息,從邏輯,語義和貢獻者三個角度計算而得。最后在圖上應用一個圖劃分算法,可以得到服務識別結果。其中當兩個類在同一次提交中被修改時,兩個類之間具有邏輯關系;當兩個類被抽象成文本后,兩者文本之間的相似性將作為語義關系;當兩個類由同一個工程師進行修改時,兩者在貢獻者的角度上就被關聯在一起。
以下為動態方法示例:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于南京航空航天大學,未經南京航空航天大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010066666.2/2.html,轉載請聲明來源鉆瓜專利網。





