喻 會
(長江職業學院 湖北 武漢 430074)
在現如今的互聯網時代背景中,國內大部分的行業領域都已經逐漸步入了全面的信息化轉換的過程,然而目前來說部分企業中的信息系統并不夠智能化,其系統對于各類數據和信息的收集以及處理較為復雜和緩慢,從而導致企業的運營效益和生產效率并不能獲得有效的提升。同時各個企業對于自身的信息系統的檢修和更新的時候所需要耗費的精力和資金也較多,讓企業的發展進步受到了較多的阻礙。因此將微服務架構應用到其信息系統的開發中,可以有效地幫助信息系統進行更新和監測,讓信息系統能夠更加靈活,更加智能化,運行也會更加快捷,對于數據的收集和處理也更加精準。
軟件架構是有關軟件整體結構與組件的抽象描述,用于指導大型軟件系統各個方面的設計。軟件架構是一個系統的草圖。目前制造業的發展趨勢,如工藝模塊化,要求現代裝配系統集成大量的子系統,如裝配站、固定裝置、人機界面控制(HMI)等,這導致了信息交換的增加,同時對靈活性和可重構性的要求也越來越高。本文綜述了DDS標準及其在精密裝配領域的潛在優勢,描述了基于DDS的應用程序的基本概念,并對建立數據傳輸實體的體系結構進行了概述,隨后討論了3個可以促進開發精密裝配平臺的功能,最后通過一個簡單的應用實例來說明DDS中間件的一些優點[1]。
微服務架構,主要是指性質為高內聚性的,按照業務范圍確定服務范圍的較小協同工作單位。而其中的每個單位所具備的自治度相對來說都比較高,能夠作為獨立實體并在系統里獨立運作,并且還能夠將其當作系統進程,服務間采用網絡調用方法,這種方法能夠有效提升服務間的隔離性,從而預防緊耦合現象的產生。微服務構架模式為適配性結構,按照業務的上下文來選擇其所對應的適配性語言和工具,接著把單獨的應用程序進行拆解,把程序里的服務劃分為組,在和服務互相協調配合的情況下,讓服務能夠按照其業務的實際情況來進行構造,并且讓其能夠在獨立的進程里順利運轉。
微服務架構所具備的特征大致有3類,而它所具備的這些特征能夠幫助它在和以往的組件比較中彰顯更多的優異之處,其3類特征主要內容如下。
1.2.1 分解化服務處理
根據相關的技術方面來說,把微服務當作組件,這種類型的組件和以往的組件相比,其優勢就在于它的運作更加快捷方便,在系統中所占的內存更少。以往的組件會把業務獨立部分隔離或者會將公用的部分進行抽取,從而讓整個程序模塊化,以此來達成復用和解耦的操作。而如今的微服務架構就會把系統直接分離成若干服務,并讓這些服務間能夠具備些許耦合關系,從而讓應用程序中功能只用把單一系統改變,接著再把相應的服務進行重構部署就可以了。
1.2.2 復雜程度減小
微服務構架的原理就是把單體應用根據組別分割成若干單獨的服務,從而讓程序里各種復雜的數據處理問題得到有效的解決,并且能夠有效防止一些垃圾信息占據進程空間,導致系統的執行速度降低。如若在保持功能不變的環境中,應用分割為若干個單獨的服務過后,利用微服務構架就能夠實現將復雜功能模塊化的操作。以此來讓單體應用編碼復雜造成應用編碼方式不易完成的問題得以解決,讓服務的檢修和開發工作能夠更加迅速和簡便。
1.2.3 技術多樣化
以往的組件研發方法中對于應用的構建方法是采用同類技術,但是微服務構架的關鍵技術是無中心化的組織架構,構建方式沒有側重點,并且在實際運用里服務按照其行業發展的狀態和其自己的服務范圍能夠得到相對的判定,并將其技術類型確立之后展開對口服務,從而讓整體的服務能夠具備更多的專業性、系統性和科學性,并且還能夠讓服務對于各種數據信息的處理速度更加迅速,對于信息整理識別的精準度更高,讓其服務的整體運行效率能夠更快。
軟件架構描述的對象是直接構成系統的抽象組件。各個組件之間的連接則明確和相對細致地描述組件之間的通信。在實現階段,這些抽象組件被細化為實際的組件,比如具體某個類或者對象。在面向對象領域中,組件之間的連接通常用接口來實現。另一個面向消息的發布訂閱中間件是Java消息傳遞服務(Java MessagingService,JMS)。盡管這些系統被允許在多個節點之間進行健壯的通信,然而面向消息的通信似乎占用了大量的處理時間來轉換節點中的各種消息。尤其是JMS僅限于Java編程語言,因此會缺乏平臺無關性。除此之外,JMS不支持以即插即用的方式動態發現新組件,因為應用發現是管理和集中的。數據分發服務標準(Direct Digital Synthesizer,DDS)同DSP(數字信號處理)一樣,是一項關鍵的數字化技術。DS芯片中主要包括頻率控制寄存器、高速相位累加器和正弦計算器三個部分(如Q2220)。DDS是直接數字式頻率合成器(Direct Digital Synthesizer)的英文縮寫。與傳統的頻率合成器相比,DDS具有低成本、低功耗、高分辨率和快速轉換時間等優點,廣泛使用在電信與電子儀器領域,是實現設備全數字化的一個關鍵技術。隨著DDS的廣泛應用,對象管理小組(OMG)最近發布了一個獨立于平臺的標準,用于以數據為中心的發布-訂閱中間件,該標準專門針對資源有限的實時應用程序的需求。與以前提到的方法不同,DDS不交換封裝在消息中的數據。相反,要交換的數據結構是用形式接口定義語言(IDL)建模的。在此數據定義的基礎上,自動生成用于準確發送和接收信息的所有源代碼,這樣信息交流的速度就可以大大加快[2]。
DDS提供了公共的應用層接口,允許進程(所謂的參與者)以主題的形式交換信息。后者是具有標識符和數據類型的數據流,DDS應用程序的典型體系結構,希望編寫數據的應用程序聲明它們的意圖是成為主題的“發布者”。同樣,希望從主題中讀取數據的應用程序聲明它們的意圖是成為“訂閱者”。在下面,DDS中間件負責在不同數量的發布者和訂閱者之間分發信息。它管理這些聲明,自動為匹配的主題在發布者和訂閱者之間建立連接,并動態地檢測系統中的新參與者。此外,DDS允許使用服務質量(Qos)概念精確地配置信息交換的屬性,這對于資源有限的實時系統尤其重要[3]。
DDS規范的核心是以數據為中心的發布訂閱模型(DCPS),它組織了通信參與者之間的數據交換,完成通信的所有類都是從中心類實體擴展的,該類提供了以下功能:使用服務質量參數配置、偵聽器對象通知事件和附加應用程序可以等待的條件。實體的所有子類都有一套專門的QoS策略,它提供了微調數據交換的能力。作為應用程序發行者的類型化訪問器,并且是特定于要發送的數據類型的訪問器,如果應用程序希望發送agiven類型的數據,則應用程序必須使用此對象,然后該數據將觸發發布服務器根據服務質量設置發出數據。通信的訂閱端具有類似的結構,訂戶在內部負責接收已發布的數據,并根據qossttings使其可用。應用程序可以通過為每種數據類型生成的DataReader對象訪問接收的數據[4]。
發布和訂閱之間的關聯是通過主題對象來完成的,主題將與數據本身相關的唯一名稱、數據類型和服務質量關聯起來。DDS中間件實現提供工具,在數據類型定義的基礎上自動生成這些類的代碼。為了實現通信,應用程序必須使用這些方法并調用所提供的方法。
通信的發布端由發布服務器和一個或多個DataWriter對象之間的關聯表示。發布服務器在內部被DDS中間件用來發布要發送的數據[5]。
精確組合平臺被越來越多地實現為動態分布式系統,其中許多組件需要以健壯、平臺無關和確定性的方式交換數據。根據Joshi的說法,開發suchsystem的關鍵技術挑戰是:(1)阻抗失配;(2)動態實時適配;(3)增量和獨立開發。第1個挑戰涉及應用程序的集成問題,這些應用程序對數據交換提出了不同的要求,例如數據量、數據速率或時間限制,動態實時適配解決了隨著組件從平臺中添加或刪除而發現拓撲更改的需要。第3個挑戰是裝配平臺的各個子系統,通常是由獨立方開發的,它們在逐步升級組件的同時,也會對組件進行升級。
現代制造系統的組件通常是由不同的供應商開發的。因此,這些子系統可以在不同的硬件架構、操作系統和編程語言的基礎上實現,這增加了將它們集成到一個工作系統中的挑戰,而且每個組件都可能受到增量更改或升級的影響。
DDS由平臺無關模型(PIM)定義,可以實現處理器體系結構、編程語言和操作系統的任意組合。商用DDS中間件實現為編程語言C、C++和Java以及各種操作系統(如VxWorks、Windows、Lynx和Unix派生程序)提供了解決方案。由于DDS從應用程序代碼中隱藏了通信方面的內容,它允許在VxWorks上運行的C語言編寫的應用程序與在Windows PC上運行的Java開發的應用程序無縫集成,因此使用DDS作為組裝系統內部通信的骨干可以大大減少系統集成任務的難度。此外,以數據為中心的發布-訂閱模式比傳統的面向對象或客戶機-服務器方法引入了更少的應用程序之間的依賴關系。這是因為在以數據為中心的體系結構中,應用程序僅由數據模型連接,不公開行為。由于數據模型通常是應用程序中最常使用的方面,因此DDS支持子系統的增量和獨立開發[6]。
本文通過一個簡化的示例應用程序來說明上面提到的DDS的一些特性。它是利用實時創新公司提供的DDS實現開發的,稱為RTI DDS 4.le。該示例使用DDS標準實現了基于傳感器的主動固定系統[7]。
該系統由可變數量的物理夾具模塊、夾具控制軟件、可變數量的人機界面(HMI)組成。為了簡單起見,CACH模塊由1個線性執行器和3個傳感器組成,前者充當工件的定位和夾緊銷,而傳感器則反饋接觸點的反作用力、位置和溫度。夾具模塊被實現為具有本地控制例程的智能設備[8]。
它們有嵌入式傳感器/執行器設備。進一步假定每個固定模塊都配置了一個獨特的枚舉標識符,并對其傳感器和執行器進行了配置,這樣該模塊能夠將來自傳感器(例如電壓)的信號轉換成有意義的信息(例如牛頓中的反作用力),然后通過DDS發布。夾具控制實現了夾具的全局控制例程。它處理來自各個模塊的數據,并通過發布它們的期望狀態來控制執行器的運動。為了演示DDS的一些特性,我們定義了整個系統的下列要求。
在初始啟動時,每個夾具模塊發布關于其傳感器和執行機構的元信息,以便訂閱應用程序來解釋傳感器數據。遲交申請應自動收到此信息[9]。
HMI應用程序應每500 ms接收一次力傳感器讀數,每1 000 ms接收一次溫度讀數,無論模塊發布此信息的速度有多快。
夾具控制及連接的HMI應用程序一次只考慮一個夾具模塊的溫度讀數。如果在4 000 ms內沒有從這個最受信任的傳感器源接收數據,溫度數據將自動從另一個模塊接收,從而允許無障礙故障轉移。本文未詳細描述此應用程序的控制邏輯。相反,描述集中在數據建模和QoS-sttings的定義上,以滿足需求[10]。
以數據為中心的應用程序的開發從定義應用程序之間應該交換的數據結構開始。在我們的簡單示例中,我們為每種傳感器類型創建了兩個數據結構。第一數據結構包含要在組裝過程中傳輸的實際傳感器數據,包含唯一標識傳感器的字段和當前傳感器讀取的字段。為了正確解釋傳感器值,訂戶需要額外的元信息。這些細節是在另一個結構中建模的,只需要在應用程序啟動或傳感器交換時發布。
微服務可以將傳統應用程序里所存在的各種問題進行妥善的處理,并且能夠讓其信息系統擁有更加多樣化和方便快捷的特性,并且其所囊括的服務范圍更加廣泛,自治性更高,讓信息系統對于信息化和智能化的轉變更加迅速,讓其能夠滿足社會發展的需求。本文提出了一種新的以數據為中心的發布-訂閱通信標準,并將其應用于下一代精密裝配平臺的開發。該標準稱為數據分發服務,特別是針對需要管理數據傳輸的資源消耗和及時性的實時應用程序。DDS允許平臺無關、多到多的通信,并緩解了一些對分布式裝配系統的發展特別有意義的常見問題。