圖 1 個人金融應用程序和服務通常由獨立的團隊分別負責同時開發這兩個獨立的部分。一個團隊負責開發 SOA-SC——對用戶而言的應用程序。另一個團隊負責開發 SOA-SP,或許存在多個負責此項任務的團隊,而每個團隊負責開發若干服務。雖然可能已經實現了一些提供程序,但可能仍然需要專門為此應用程序實現其他的提供程序。而這給我們提出了第一個問題:假如某些提供程序尚未實現,協調程序開發團隊如何開發其負責的應用程序部分呢?這兩個團隊——開發服務的團隊和開發協調程序的團隊——需要使其活動同步。他們必須就服務 API 達成一致;服務 API 可以是簡單的 java™ 接口或 Java Message Service (JMS) 消息格式和隊列名稱,但必須就此達成一致。但僅就接口達成一致是不夠的;服務具有行為,因此團隊必須就服務的行為達成一致。服務并不會始終成功地工作,因此團隊還必須就錯誤情況和相應的響應達成一致。在理想的情況下,多個團隊可以非常輕易地協調工作,最初的決策可以稍后進行修改,而所造成的影響卻非常小,并且評估工作非常靈活,此外還會不斷地進行改進。在現實世界中,團隊之間經常存在協作問題,往往較早地(甚至不成熟地)做出不可更改的決策,而且評估方法是固定的。這樣就帶來了第二個問題:協調程序和提供程序團隊如何較早而可靠地就服務如何工作達成一致?經常通過多個提供程序來實現服務冗余。這樣就可以在提供程序之間提供負載平衡和故障轉移功能,從而使得協調程序的服務體驗更為一致和可靠。冗余可以通過多次部署同一服務實現來實現。不過,當不同的供給商部署了不同的提供程序時,服務幾乎肯定具有不同的實現。盡管如此,對于協調程序,所有提供程序的全部實現的工作方式都必須一致,以便協調程序可以采用可交換的方式來調用提供程序。服務的不同實現(非凡是來自不同供給商的不同實現)是由不同的團隊開發的,而這些團隊必須加以協調,以確保開發的是相同的服務。因此,第三個問題就是:多個提供程序團隊如何實現相同的服務,以確保他們的實現具有兼容性?以上是使用 SOA 進行開發的主要問題。必須實現尚未開發的服務來開發協調程序,協調程序團隊和提供程序團隊必須就服務如何工作達成一致,而且,多個提供程序團隊也必須就服務如何工作達成一致。假如沒有良好的流程,這就會導致一片混亂,假如不對其進行檢查,將會導致 SOA 項目失敗。SOA 開發流程下面給出用于對協調程序和提供程序團隊進行同步的簡單流程,以幫助確保可重用服務以及使用這些服務的應用程序能夠成功地進行開發:
圖 1 個人金融應用程序和服務通常由獨立的團隊分別負責同時開發這兩個獨立的部分。一個團隊負責開發 SOA-SC——對用戶而言的應用程序。另一個團隊負責開發 SOA-SP,或許存在多個負責此項任務的團隊,而每個團隊負責開發若干服務。雖然可能已經實現了一些提供程序,但可能仍然需要專門為此應用程序實現其他的提供程序。而這給我們提出了第一個問題:假如某些提供程序尚未實現,協調程序開發團隊如何開發其負責的應用程序部分呢?這兩個團隊——開發服務的團隊和開發協調程序的團隊——需要使其活動同步。他們必須就服務 API 達成一致;服務 API 可以是簡單的 Java™ 接口或 Java Message Service (JMS) 消息格式和隊列名稱,但必須就此達成一致。但僅就接口達成一致是不夠的;服務具有行為,因此團隊必須就服務的行為達成一致。服務并不會始終成功地工作,因此團隊還必須就錯誤情況和相應的響應達成一致。在理想的情況下,多個團隊可以非常輕易地協調工作,最初的決策可以稍后進行修改,而所造成的影響卻非常小,并且評估工作非常靈活,此外還會不斷地進行改進。在現實世界中,團隊之間經常存在協作問題,往往較早地(甚至不成熟地)做出不可更改的決策,而且評估方法是固定的。這樣就帶來了第二個問題:協調程序和提供程序團隊如何較早而可靠地就服務如何工作達成一致?經常通過多個提供程序來實現服務冗余。這樣就可以在提供程序之間提供負載平衡和故障轉移功能,從而使得協調程序的服務體驗更為一致和可靠。冗余可以通過多次部署同一服務實現來實現。不過,當不同的供給商部署了不同的提供程序時,服務幾乎肯定具有不同的實現。盡管如此,對于協調程序,所有提供程序的全部實現的工作方式都必須一致,以便協調程序可以采用可交換的方式來調用提供程序。服務的不同實現(非凡是來自不同供給商的不同實現)是由不同的團隊開發的,而這些團隊必須加以協調,以確保開發的是相同的服務。因此,第三個問題就是:多個提供程序團隊如何實現相同的服務,以確保他們的實現具有兼容性?以上是使用 SOA 進行開發的主要問題。必須實現尚未開發的服務來開發協調程序,協調程序團隊和提供程序團隊必須就服務如何工作達成一致,而且,多個提供程序團隊也必須就服務如何工作達成一致。假如沒有良好的流程,這就會導致一片混亂,假如不對其進行檢查,將會導致 SOA 項目失敗。SOA 開發流程下面給出用于對協調程序和提供程序團隊進行同步的簡單流程,以幫助確保可重用服務以及使用這些服務的應用程序能夠成功地進行開發:
圖 1 個人金融應用程序和服務通常由獨立的團隊分別負責同時開發這兩個獨立的部分。一個團隊負責開發 SOA-SC——對用戶而言的應用程序。另一個團隊負責開發 SOA-SP,或許存在多個負責此項任務的團隊,而每個團隊負責開發若干服務。雖然可能已經實現了一些提供程序,但可能仍然需要專門為此應用程序實現其他的提供程序。而這給我們提出了第一個問題:假如某些提供程序尚未實現,協調程序開發團隊如何開發其負責的應用程序部分呢?這兩個團隊——開發服務的團隊和開發協調程序的團隊——需要使其活動同步。他們必須就服務 API 達成一致;服務 API 可以是簡單的 Java™ 接口或 Java Message Service (JMS) 消息格式和隊列名稱,但必須就此達成一致。但僅就接口達成一致是不夠的;服務具有行為,因此團隊必須就服務的行為達成一致。服務并不會始終成功地工作,因此團隊還必須就錯誤情況和相應的響應達成一致。在理想的情況下,多個團隊可以非常輕易地協調工作,最初的決策可以稍后進行修改,而所造成的影響卻非常小,并且評估工作非常靈活,此外還會不斷地進行改進。在現實世界中,團隊之間經常存在協作問題,往往較早地(甚至不成熟地)做出不可更改的決策,而且評估方法是固定的。這樣就帶來了第二個問題:協調程序和提供程序團隊如何較早而可靠地就服務如何工作達成一致?經常通過多個提供程序來實現服務冗余。這樣就可以在提供程序之間提供負載平衡和故障轉移功能,從而使得協調程序的服務體驗更為一致和可靠。冗余可以通過多次部署同一服務實現來實現。不過,當不同的供給商部署了不同的提供程序時,服務幾乎肯定具有不同的實現。盡管如此,對于協調程序,所有提供程序的全部實現的工作方式都必須一致,以便協調程序可以采用可交換的方式來調用提供程序。服務的不同實現(非凡是來自不同供給商的不同實現)是由不同的團隊開發的,而這些團隊必須加以協調,以確保開發的是相同的服務。因此,第三個問題就是:多個提供程序團隊如何實現相同的服務,以確保他們的實現具有兼容性?以上是使用 SOA 進行開發的主要問題。必須實現尚未開發的服務來開發協調程序,協調程序團隊和提供程序團隊必須就服務如何工作達成一致,而且,多個提供程序團隊也必須就服務如何工作達成一致。假如沒有良好的流程,這就會導致一片混亂,假如不對其進行檢查,將會導致 SOA 項目失敗。SOA 開發流程下面給出用于對協調程序和提供程序團隊進行同步的簡單流程,以幫助確保可重用服務以及使用這些服務的應用程序能夠成功地進行開發:新聞熱點
疑難解答