服務組合與服務協作的區別

由於服務組合與服務協作都涉及一組服務以及這些服務之間的交互和協作,很容易混淆,在此作一區分:

      1、在SOA中,所謂服務組合是指以流程的方式完成服務的編排(orchestration)。服務的編排由一箇中心協調者(如音樂指揮)完成。這個中心協調者依據流程規劃協調對不同服務的調用,以完成既定的業務目標,而參與流程的服務並不知道流程的全貌。服務組合語言就是編制服務調用的流程規劃的語言,該流程規劃一般也具有服務接口,稱爲複合服務。

      2、在服務協作中,並不存在一箇中心協調者,所以服務以對等的方式互相協作,因此每個服務都需要知道和說明自己接受和發送消息的約定。描述這種約定的語言通常稱爲編舞(choreography)語言。之所以稱爲編舞是因爲服務的協作就像表演的一個集體舞蹈,所有服務作爲參與者都需要事先明確自己的活動順序,協作開始執行後沒有一箇中心協調者告訴你什麼時候該幹什麼。

 

      服務組合和服務協作之間存在一定的聯繫,比如如果把中心協調者看成一項普通服務,那麼服務之間的協作可以由某種服務編排語言來描述。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章