近年來,服務導向架構(Service-Orientation Architecture)不管在學術上或實務上都受到極度的重視,與服務導向技術相關的研究也相當多元,如服務描述(service description)、服務探索(service discovery)、服務遞送(service delivery)、服務組合(service composition)以及服務品質(quality of services)等。而其中,服務組合技術更為軟體技術帶來新的里程碑:服務提供者不需自己「發展」服務元件,只需「組裝」服務元件,即可建置出各式各樣的功能。本論文的重點就在於提出一個以服務探索為基底之服務組合機制,一方面讓服務提供者可將數個網際服務組合成一個功能更強大的複合服務(composite service),另一方面,亦可讓服務需求者可以獲得更符合其需求之複合服務。在此服務組合機制中,有幾個主要的貢獻: (1)根據服務組合生命週期(Lifecycle of Service Composition)發展出動態服務組合(Dynamic Service Composition, DSC)樣式(Pattern),以提供發展、部屬、執行與管理複合服務之骨幹。 (2)根據服務組合生命週期與動態服務組合樣式,擴充Contract Net Protocol(CNP),以協調多個服務組合流程中的重要活動,包含不同階段之服務探索、服務組裝、服務工作分配,以及服務執行錯誤時的因應措施。此機制即稱之為Extended Contract Net Protocol (ECNP)。 (3)根據DSC樣式與ECNP發展出一個軟體系統架構,以落實DSC樣式與ECNP。 此外,本研究可帶來以下的好處: (1)提高使用便利性(usability):在服務執行之前,ECNP將要求選定之複合服務挑選「最合適」的元件服務,再進行「服務綁定(service binding)」的程序。當中服務的挑選是透過服務探索機制的協助,可找到最符合服務使用者需求(如服務品質、價格或地理位置等)之元件服務。 (2)提高服務可用度(availability) :在服務執行中,如果有任何元件服務取消登錄(unregistered)或無法運作,本方法將盡可能的協助找到一個可替代其任務之元件服務來接手。服務使用者仍可使用到正確執行之複合服務。 Service-orientation is a trend in software engineering that promotes the construction of applications based on the notion of services. Recently, it has attracted the researchers' attention and has been adopted industry-wide. However, service composition that enables one to aggregate existing services into a new composite service is still a highly complex and critical task in service-oriented technologies. To locate constituent services in the various phases of the lifecycle of service composition effectively, and to enhance usability, availability, and reliability of composite services, we propose a discovery-based service composition framework to better integrate individual services in both static and dynamic manner. In the making of the proposed framework, there are three key features: (1) the use of composite patterns with formal specifications for addressing the essence of service composition; (2) an extension of Contract Net Protocol to coordinate activities of service discovery, service composition, and service invocation based on the composite patterns; and (3) the development of a system architecture to realize Dynamic Service Composition (DSC) pattern and Extended Contract Net Protocol (ECNP).