一種光纖連接的樹形網絡結構中設備軟體批量升級方法
2023-09-22 02:30:55 3
一種光纖連接的樹形網絡結構中設備軟體批量升級方法
【專利摘要】本發明提供一種光纖連接的樹形網絡結構中設備軟體批量升級方法,包括樹型分層結構中主端設備廣播告知從端設備升級需求,從端設備根據主端的升級命令要求,結合自身內部文件信息情況,主動發起升級流程,控制自身的升級準備流程及數據傳輸流程。本發明提出的針對光纖連接樹形網絡結構中設備的批量升級方法,解決的是:不具備網際網路連接特性的嵌入式設備尤其是分布式數字光纖直放站領域的近遠端設備之間批量升級的問題,本方法操作步驟簡便、成功率高、方案可延展性強,可以應用到類似的一對多批量升級需求中去。
【專利說明】一種光纖連接的樹形網絡結構中設備軟體批量升級方法
【技術領域】
[0001]本發明屬於電信通信【技術領域】,涉及以光纖為物理連接介質的嵌入式設備之間,尤其是分布式光纖直放站通信系統中設備軟體的批量升級方法,具體是一種光纖連接的樹形網絡結構中設備軟體批量升級方法。
【背景技術】
[0002]隨著現代建築特點的變化,日益密集的高層鋼筋混凝土建築結構給傳統直放站的室內信號覆蓋帶來了很大影響,信號覆蓋深度和質量亟待提高,原有的以一個近端設備AU通過光纖直接拖掛多個較大功率遠端RRU設備為特徵的寬範圍、粗覆蓋方式,已很難滿足用戶實際使用環境的需求,由此作為主流的分布式光纖通信系統覆蓋方式逐漸演變為每個近端AU通過光纖拖拉多個擴展端設備EU,EU通過光纖拖掛多個微功率的拉遠單元RRU,同時EU還可以繼續通過光纖級聯多級EU。此覆蓋方式採用的樹形網絡結構,作為樹葉的遠端設備均為小體積、微功率的RRU單元,通過增加RRU的個數實現了室內高密度的無死角深度覆蓋。但RRU數量的增加同時給全網設備的管理,特別是對於全網設備的升級管理帶來了挑戰,已有的很多批量升級方案均基於乙太網連接的物理設備,設備組網及在TCP\IP協議基礎上開發的各種升級應用非常豐富,實現方法較多,對於分布式光纖通信系統中AU、EU和RRU設備,自身軟硬體資源有限,特別是有些模塊級的RRU受成本管控在系統規劃之初便無網口規劃,升級管理方法根本無法像普通網絡設備那樣便捷,且EU和RRU設備都放於室夕卜,分布環境複雜,不易直接接觸,全網設備管理全部在AU端依靠光纖鏈路實現簡單的數據通信,包括對EU和RRU的升級,多數情況下只能依靠先給AU上傳升級包後,再由AU給EU或RRU升級,現有的很多批量升級方案不能滿足系統要求,因此急需提出一種相對高效而穩定的升級方案來滿足這類光纖分布式通信系統的設備升級需求。
【發明內容】
[0003]針對【背景技術】存在的問題,本發明提供一種光纖連接的樹形網絡結構中設備軟體批量升級方法,用以解決對分布式光纖通信中簡單嵌入式設備進行升級。
[0004]本發明的技術方案包括一種光纖連接的樹形網絡結構中設備軟體批量升級方法,所述樹型網絡結構包括接入設備AU,擴展單元EU,射頻拉遠微功率單元RRU,此方案實施例中的AU與EU之間,EU與RRU之間數據交互通信採用廣播方式,且這種數據廣播為分層廣播,AU僅能廣播給所有EU,EU有兩條廣播通路,一條屬於與AU之間互通的廣播路,另外一條為與RRU互通的廣播通路,此方法涉及AU給所有拖掛的EU升級和EU給所有拖掛的RRU升級,兩種升級情況下的拖掛端統稱為主端,被拖掛端稱為從端,主端給從端批量升級包括兩大步驟,
步驟1,主端批量升級開關處理,實現方式如下,
主端設置自身的批量升級開關,開關只有開啟和關閉兩種;主端判斷自身批量升級開關由關閉變為開啟或由開啟變為關閉定義為有效改變狀態,此時主端需以廣播方式下發批量升級開關狀態給所有從端,其他非有效改變狀態不廣播下發到從端;主端在有效改變狀態出現後開啟一個定時器,用於在主端和從端無交互數據後關閉批量升級;
步驟2,從端定期檢查升級開關是否開啟,在開關開啟後開始執行與主端的升級數據交互流程,實現方式如下:
從端收到主端廣播的批量升級開關為關閉狀態時,結束交互,處理升級停止的各項後續服務工作;當主端廣播的批量升級開關為開啟狀態時,由從端主動發起和主端的升級交互步驟,完成升級包的下載及處理。
[0005]主端發起對從端升級的命令之後,升級主動權交由從端,自身充當伺服器功能。
[0006]主端充當伺服器後,開啟定時器,在定時器預先設定的時間內沒有任何從端的請求後,主端自行關閉服務狀態;否則定時器清空重新計時。
[0007]主端發出批量升級需求後,不用等待所有從端設備的應答數據,直接進入被動需求狀態。
[0008]從端主動發起升級控制流程,根據自身運行狀態決定自身的升級流程的繼續和終止,不用告知主端自身已終止升級的狀態。
[0009]所述從端主動發起的升級控制流程,包括準備工作的控制流程及數據傳輸過程的控制兩大部分流程。
[0010]所述步驟2中從端的具體流程如下;
流程節點200、檢查是否收到主端廣播來的升級開關需求,有就進入下一個流程節點,否則繼續延時一段後重新檢查判斷;
流程節點210、根據主端設置過來的升級開關狀態進行判斷分別進入下一層流程節
佔.流程節點220、從端判斷出主端升級開關要求為開啟時進入該流程節點,此流程節點判斷自身是否已經處於升級狀態,自身處於升級狀態時不需要進行其他動作,直接跳回流程節點200,否則進入下一個流程節點240開始升級;
流程節點230、主端升級開關要求為關閉時進入該流程節點,此流程節點判斷自身是否已經處於關閉狀態,在自身已處於關閉情況下直接跳轉回流程節點200,否則執行下一個流程節點250 ;
流程節點240、由從端發起的從主端下載所需升級包文件的控制流程、升級包文件數據傳輸交互處理流程;
流程節點250、從端執行關閉升級的各種服務,包括保存臨時升級文件,升級狀態變為關閉。
[0011]所述流程節點240的具體執行流程是主端充當伺服器特徵後,從端從伺服器下載所需文件的控制流程及數據傳輸處理流程,具體包括以下流程:
流程節點300、從端主動向主端發起查詢升級前的準備信息,包括文件名,文件大小,文件類型,同時作為發起方在此數據包中提供與主端交互的唯一 ID號,避免主端無法區分和回應從端;
流程節點310、從端延時判斷主端是否對自己發起的查詢回應,無回應時進入流程節點320,有回應進入流程節點330 ;
流程節點320、從端判斷查詢主端次數是否超過3次,未到3次跳轉到300繼續發起對主端查詢,超過3次,進入流程節點360 ;
流程節點330、從端根據主端回應數據獲取升級包的相關信息,包括大小,文件名,文件類型;
流程節點340、從端根據獲取的升級包文件大小信息進行判斷是否包大小異常,包過大,或包大小為0,則進入流程節點350,否則進入流程節點370進一步作判斷;
流程節點350、關閉自身升級,將升級結果賦值為升級包文件大小異常;
流程節點360、關閉自身升級,將升級結果賦值為主端不應答;
流程節點370、從端根據獲取的升級包文件頭進行判斷是否正確文件頭,文件頭錯誤則進入流程節點380,否則進入流程節點390進行實質性的數據傳輸;
流程節點380、關閉自身升級,將升級結果賦值為升級文件不匹配;
流程節點390、從端發起的數據傳輸控制流程;
流程節點400、升級數據傳輸完成後判斷文件的校驗碼是否正確,校驗通過進入流程節點410,校驗不通過執行流程節點420 ;
流程節點410、關閉自身升級,將升級結果賦值為升級成功,之後根據文件類型做升級的處理,包括新文件的轉移,命令等;
流程節點420、關閉自身升級,將升級結果賦值為文件保存錯誤。
[0012]所述流程節點390的具體執行流程如下;
流程節點500、從端數據傳輸開始前的準備工作;
流程節點510、從端主動請求主端發升級文件數據,請求數據中包含所需文件的數據偏移地址;
流程節點520、從端判斷主端是否回應請求,無回應進入流程節點550,有回應進入流程節點530 ;
流程節點530、從端判斷數據是否取完,取完進入流程節點540,未取完跳轉到510繼續請求主端發數據;
流程節點540、從端取完數據後進入相應的數據處理;
流程節點550、從端判斷主端無回應次數是否超過3次,未到3次跳轉到510繼續發起對主端查詢,超過3次,進入流程節點560 ;
流程節點560、關閉自身升級,將升級結果賦值為數據傳輸失敗。
[0013]所述流程節點520和流程節點310中,從端根據主端發送數據的內容判斷是否回應主端請求的具體執行流程,具體流程如下;
流程節點600、從端採用定時阻塞方式等待接收主端數據,採用該方式當真實數據到來時會立即退出執行下一步,否則會一直等待超時後執行下一步;
流程節點610、從端根據流程節點600的執行結果判斷是否收到數據;
流程節點620、從端判斷數據內容是否為主端發過來的終止升級要求;
流程節點630、從端判斷出不是終止升級要求後進入本節點,本節點繼續判斷收到數據是否為本從端需要的回應數據,是則認為受到了回應,否則認為沒有回應;
流程節點640、關閉自身升級,將升級結果賦值為取消升級。
[0014]本發明所提供技術方案的升級方法是在分層樹形結構中特有的被動式升級,特別適合非總線結構下一對多的升級,特別是在本方案實施例的分層廣播系統中。本發明穩定可靠、升級過程不影響設備的查詢設置控制功能;本發明可解決不具備網際網路連接特性的嵌入式設備尤其是分布式數字光纖直放站領域的近遠端設備之間批量升級的問題,其操作步驟簡便、成功率高、方案可延展性強,可以應用到類似的一對多批量升級需求中去。
【專利附圖】
【附圖說明】
[0015]圖1是本發明實施例的拓撲框圖。
[0016]圖2是本發明實施例的主端批量開關控制流程圖。
[0017]圖3是本發明實施例的從端批量開關控制流程圖。
[0018]圖4是本發明實施例的從端升級控制交互流程圖。
[0019]圖5是本發明實施例的從端升級數據交互流程圖。
[0020]圖6是本發明實施例的從端阻塞等待主端數據並對不同的內容做不同回應的流程圖。
[0021]【具體實施方式】
以下結合附圖和實施例說明本發明技術方案。
[0022]實施例中構成樹形結構的設備包括:
近端信源接入單元(AU),擴展單元(EU),射頻拉遠單元(RRU),圖1給出了整個系統組成的簡要樹形拓撲框圖,圖中AU(1)與EU(20,30,40)構成主從關係,AU(1)為主端,EU(20, 30,40)為從端。EU(40)與 RRU(70,80)構成主從關係,EU(40)為主端,RRU(70,80)為從端,同樣EU(30)與RRU(60),EU(20)與RRU(50)同樣構成主從關係,主從端與EU(40)判斷相同,值得注意的是EU(20)與EU(40)不構成主從關係,兩者從邏輯上平級。
[0023]實施例提供的主端給從端升級的方法包括以下步驟:
步驟1,主端批量升級開關處理,實現方式如下,
主端判斷批量升級開關狀態,根據有效改變狀態廣播給從端開關狀態。
[0024]結合圖2本步驟中,主端創建有一個專用任務用於升級處理,任務運行流程如下: 流程節點100、開始進行初始化的一些工作(「一些工作」:為本實施例中軟體代碼所需
的變量進行初始化,由於本發明不具體指定特定的變量,所以初始化的一些工作由具體實施者根據自身編寫代碼決定);
流程節點110、判斷批量開關是否有效變化,無變化就延時I秒再進行判斷;
流程節點120、主端通過廣播鏈路將新設置的開關狀態廣播給所有從端;
本步驟根據批量升級開關狀態的有效改變發起對從端的升級要求,在發起要求完成後主端直接進入被動狀態或伺服器狀態,此時主端開啟一個定時器,在定時時間(本實施例中選取I分鐘)到後檢查本時段內是否有從端的數據或命令請求,有則重新設定定時器有效繼續等待下一個定時時間到,否則關閉定時器,主端退出伺服器狀態,不再對後續從端請求響應。
[0025]步驟2,從端定期檢查升級開關是否開啟,在開關開啟後開始執行與主端的升級數據交互流程,實現方式如下,
實施例中從端也創建有專用任務用於升級處理,結合圖3說明任務的總體流程如下:流程節點200、檢查是否收到主端廣播來的升級開關需求,有就進入下一個流程節點,否則繼續延時一段後重新檢查判斷;流程節點210、根據主端設置過來的升級開關狀態進行判斷分別進入下一層流程節
佔.流程節點220、從端判斷出主端升級開關要求為開啟時進入該流程節點,此流程節點判斷自身是否已經處於升級狀態,自身處於升級狀態時不需要進行其他動作,直接跳回流程節點200,否則進入下一個流程節點240開始升級;
流程節點230、主端升級開關要求為關閉時進入該流程節點,此流程節點判斷自身是否已經處於關閉狀態,在自身已處於關閉情況下直接跳轉回流程節點200,否則執行下一個流程節點250 ;
流程節點240、由從端發起的從主端下載所需升級包文件的控制流程、升級包文件數據傳輸交互處理流程
流程節點250、從端執行關閉升級的各種服務,包括保存臨時升級文件,升級狀態變為關閉;
圖4為流程節點240的具體執行流程,流程如下:
流程節點300、從端主動向主端發起查詢升級前的準備信息,包括文件名,文件大小,文件類型,同時作為發起方在此數據包中提供與主端交互的唯一 ID號,避免主端無法區分和回應從端;
流程節點310、從端延時判斷主端是否對自己發起的查詢回應,無回應時進入流程節點320,有回應進入流程節點330 ;
流程節點320、從端判斷查詢主端次數是否超過3次,未到3次跳轉到300繼續發起對主端查詢,超過3次,進入流程節點360 ;
流程節點330、從端根據主端回應數據獲取升級包的相關信息,包括大小,文件名,文件類型;
流程節點340、從端根據獲取的升級包文件大小信息進行判斷是否包大小異常,包過大(本方案實施例定義大於2M byte為過大)或包大小為0,則進入流程節點350,否則進入流程節點370進一步作判斷;
流程節點350、關閉自身升級,將升級結果賦值為升級包文件大小異常;
流程節點360、關閉自身升級,將升級結果賦值為主端不應答;
流程節點370、從端根據獲取的升級包文件頭進行判斷是否正確文件頭,文件頭錯誤則進入流程節點380,否則進入流程節點390進行實質性的數據傳輸;
流程節點380、關閉自身升級,將升級結果賦值為升級文件不匹配;
流程節點390、從端發起的數據傳輸控制流程;
流程節點400、升級數據傳輸完成後判斷文件的校驗碼是否正確,校驗通過進入流程節點410,校驗不通過執行流程節點420 ;
流程節點410、關閉自身升級,將升級結果賦值為升級成功,之後根據文件類型做升級的處理,包括新文件的轉移,命令等;
流程節點420、關閉自身升級,將升級結果賦值為文件保存錯誤;
整個240流程是主端充當伺服器特徵後,從端從伺服器下載所需文件的控制流程及數據傳輸處理流程。
[0026]圖5為流程節點390的具體執行流程,流程如下: 流程節點500、從端數據傳輸開始前的準備工作;
流程節點510、從端主動請求主端發升級文件數據,請求數據中包含所需文件的數據偏移地址;
流程節點520、從端判斷主端是否回應請求,無回應進入流程節點550,有回應進入流程節點530 ;
流程節點530、從端判斷數據是否取完,取完進入流程節點540,未取完跳轉到510繼續請求主端發數據;
流程節點540、從端取完數據後進入相應的數據處理;
流程節點550、從端判斷主端無回應次數是否超過3次,未到3次跳轉到510繼續發起對主端查詢,超過3次,進入流程節點560 ;
流程節點560、關閉自身升級,將升級結果賦值為數據傳輸失敗;
圖6為流程節點520和流程節點310中從端根據主端發送數據內容,判斷是否回應主端請求的具體執行流程,流程如下:
流程節點600、從端採用定時阻塞方式等待接收主端數據,採用該方式當真實數據到來時會立即退出執行下一步,否則會一直等待超時後執行下一步;
流程節點610、從端根據流程節點600的執行結果判斷是否收到數據;
流程節點620、從端判斷數據內容是否為主端發過來的終止升級要求;
流程節點630、從端判斷出不是終止升級要求後進入本節點,本節點繼續判斷收到數據是否為本從端需要的回應數據,是則認為受到了回應,否則認為沒有回應;
流程節點640、關閉自身升級,將升級結果賦值為取消升級;
除以上圖解說明流程節點外,還需明確流程節點350、360、380、410、420、560功能均為關閉升級後對升級過程中涉及的變量及升級文件包數據緩存的保存,處理過程一樣,僅升級結果由具體所處流程節點不同而不同,在從端關閉升級後無需告知主端已關閉升級,且不用主動上報關閉升級的原因。
[0027]以上對本發明實施例所提供的主從批量升級方法進行了詳細介紹,本文中應用了具體個例對本發明的原理及實施例方式進行了闡述,以上實施例的說明只是用於幫助理解本發明的方法及其核心思想;同時,對於本領域的一般技術人員,依據本發明的思想,在【具體實施方式】及應用範圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本發明的限制。
【權利要求】
1.一種光纖連接的樹形網絡結構中設備軟體批量升級方法,其特徵在於:包括以下步驟, 步驟I,主端批量升級開關處理;實現方式如下: 主端設置自身的批量升級開關,開關只有開啟和關閉兩種;主端判斷自身批量升級開關由關閉變為開啟或由開啟變為關閉定義為有效改變狀態,此時主端以廣播方式下發批量升級開關狀態給所有從端,其他非有效改變狀態不廣播下發到從端;主端在有效改變狀態出現後開啟一個定時器,用於在主端和從端無交互數據後關閉批量升級; 步驟2,從端定期檢查升級開關是否開啟,在開關開啟後開始執行與主端的升級數據交互流程;實現方式如下: 從端收到主端廣播的批量升級開關為關閉狀態時,結束交互,處理升級停止的各項後續服務工作;當主端廣播的批量升級開關為開啟狀態時,由從端主動發起和主端的升級交互步驟,完成升級包的下載及處理。
2.根據權利要求1所述的一種光纖連接的樹形網絡結構中設備軟體批量升級方法,其特徵在於:主端發起對從端升級的命令之後,升級主動權交由從端,自身充當伺服器功能。
3.根據權利要求2所述的一種光纖連接的樹形網絡結構中設備軟體批量升級方法,其特徵在於:主端充當伺服器後,開啟定時器,在定時器預先設定的時間內沒有任何從端的請求後,主端自行關閉服務狀態;否則定時器清空重新計時。
4.根據權利要求 1-3中任意一項所述的一種光纖連接的樹形網絡結構中設備軟體批量升級方法方法,其特徵在於:主端發出批量升級需求後,不用等待所有從端設備的應答數據,直接進入被動需求狀態。
5.根據權利要求1-3中任意一項所述的一種光纖連接的樹形網絡結構中設備軟體批量升級方法,其特徵在於:從端主動發起升級控制流程,根據自身運行狀態決定自身的升級流程的繼續和終止,不用告知主端自身已終止升級的狀態。
6.根據權利要求5所述的一種光纖連接的樹形網絡結構中設備軟體批量升級方法,其特徵在於:所述從端主動發起的升級控制流程,包括準備工作的控制流程及數據傳輸過程的控制兩大部分流程。
7.根據權利要求1所述的一種光纖連接的樹形網絡結構中設備軟體批量升級方法,其特徵在於:所述步驟2中從端的具體流程如下; 流程節點200、檢查是否收到主端廣播來的升級開關需求,有就進入下一個流程節點,否則繼續延時一段後重新檢查判斷; 流程節點210、根據主端設置過來的升級開關狀態進行判斷分別進入下一層流程節佔.流程節點220、從端判斷出主端升級開關要求為開啟時進入該流程節點,此流程節點判斷自身是否已經處於升級狀態,自身處於升級狀態時不需要進行其他動作,直接跳回流程節點200,否則進入下一個流程節點240開始升級; 流程節點230、主端升級開關要求為關閉時進入該流程節點,此流程節點判斷自身是否已經處於關閉狀態,在自身已處於關閉情況下直接跳轉回流程節點200,否則執行下一個流程節點250 ; 流程節點240、由從端發起的從主端下載所需升級包文件的控制流程、升級包文件數據傳輸交互處理流程; 流程節點250、從端執行關閉升級的各種服務,包括保存臨時升級文件,升級狀態變為關閉。
8.根據權利要求7所述的一種光纖連接的樹形網絡結構中設備軟體批量升級方法,其特徵在於:所述流程節點240的具體執行流程是主端充當伺服器特徵後,從端從伺服器下載所需文件的控制流程及數據傳輸處理流程,具體包括以下流程: 流程節點300、從端主動向主端發起查詢升級前的準備信息,包括文件名,文件大小,文件類型,同時作為發起方在此數據包中提供與主端交互的唯一 ID號,避免主端無法區分和回應從端; 流程節點310、從端延時判斷主端是否對自己發起的查詢回應,無回應時進入流程節點320,有回應進入流程節點330 ; 流程節點320、從端判斷查詢主端次數是否超過3次,未到3次跳轉到300繼續發起對主端查詢,超過3次,進入流程節點360 ; 流程節點330、從端根據主端回應數據獲取升級包的相關信息,包括大小,文件名,文件類型; 流程節點340、從端根據獲取的升級包文件大小信息進行判斷是否包大小異常,包過大,或包大小為0,則進入流程節點350,否則進入流程節點370進一步作判斷; 流程節點350、關閉自身升級,將升級結果賦值為升級包文件大小異常; 流程節點360、關閉自身升級,將升級結果賦值為主端不應答; 流程節點370、從端根據獲取的升級包文件頭進行判斷是否正確文件頭,文件頭錯誤則進入流程節點380,否則進入流程節點390進行實質性的數據傳輸; 流程節點380、關閉自身升級,將升級結果賦值為升級文件不匹配; 流程節點390、從端發起的數據傳輸控制流程; 流程節點400、升級數據傳輸完成後判斷文件的校驗碼是否正確,校驗通過進入流程節點410,校驗不通過執行流程節點420 ; 流程節點410、關閉自身升級,將升級結果賦值為升級成功,之後根據文件類型做升級的處理,包括新文件的轉移,命令等; 流程節點420、關閉自身升級,將升級結果賦值為文件保存錯誤。
9.根據權利要求8所述的一種光纖連接的樹形網絡結構中設備軟體批量升級方法,其特徵在於:所述流程節點390的具體執行流程如下; 流程節點500、從端數據傳輸開始前的準備工作; 流程節點510、從端主動請求主端發升級文件數據,請求數據中包含所需文件的數據偏移地址; 流程節點520、從端判斷主端是否回應請求,無回應進入流程節點550,有回應進入流程節點530 ; 流程節點530、從端判斷數據是否取完,取完進入流程節點540,未取完跳轉到510繼續請求主端發數據; 流程節點540、從端取完數據後進入相應的數據處理; 流程節點550、從端判斷主端無回應次數是否超過3次,未到3次跳轉到510繼續發起對主端查詢,超過3次,進入流程節點560 ; 流程節點560、關閉自身升級,將升級結果賦值為數據傳輸失敗。
10.根據權利要求9所述的一種光纖連接的樹形網絡結構中設備軟體批量升級方法,其特徵在於:所述流程節點520和流程節點310中,從端根據主端發送數據的內容判斷是否回應主端請求的具體執行流程,具體流程如下; 流程節點600、從端採用定時阻塞方式等待接收主端數據,採用該方式當真實數據到來時會立即退出執行下一步,否則會一直等待超時後執行下一步; 流程節點610、從端根據流程節點600的執行結果判斷是否收到數據; 流程節點620、從端判斷數據內容是否為主端發過來的終止升級要求; 流程節點630、從端判斷出不是終止升級要求後進入本節點,本節點繼續判斷收到數據是否為本從端需要的回應數據,是則認為受到了回應,否則認為沒有回應; 流程節點640、關閉自身升級,將升級結果賦值為取消升級。
【文檔編號】H04B10/25GK104038557SQ201410296268
【公開日】2014年9月10日 申請日期:2014年6月27日 優先權日:2014年6月27日
【發明者】高國慶, 羅昆初 申請人:武漢虹信通信技術有限責任公司