TW201413584A - 偵測與解析應用程式介面之方法與系統 - Google Patents

偵測與解析應用程式介面之方法與系統 Download PDF

Info

Publication number
TW201413584A
TW201413584A TW102125505A TW102125505A TW201413584A TW 201413584 A TW201413584 A TW 201413584A TW 102125505 A TW102125505 A TW 102125505A TW 102125505 A TW102125505 A TW 102125505A TW 201413584 A TW201413584 A TW 201413584A
Authority
TW
Taiwan
Prior art keywords
application interface
server
client
identifier
definition
Prior art date
Application number
TW102125505A
Other languages
English (en)
Other versions
TWI506553B (zh
Inventor
Zhen-Chao Hong
Yuh-Jzer Joung
Original Assignee
Univ Nat Taiwan
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Univ Nat Taiwan filed Critical Univ Nat Taiwan
Publication of TW201413584A publication Critical patent/TW201413584A/zh
Application granted granted Critical
Publication of TWI506553B publication Critical patent/TWI506553B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/541Client-server

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

本發明提供一種偵測與解析應用程式介面(Application Programming Interfaces, APIs)之機制,包含:一客戶端向一伺服端裝置請求該伺服端所支援之應用程式介面;以及該伺服端以一列表回覆該客戶端,該列表包含該伺服端所支援應用程式介面之識別符,其中每一應用程式介面之識別符包含可以取得對應於該識別符之應用程式介面定義資料之網路位址。該機制提供一系統化之方法以建立一客戶端與一伺服端間對於應用程式介面定義之共識,即使該客戶端、該伺服端、以及該應用程式介面定義係各自由不同研發人員所發展。因此本發明使得各自獨立發展之裝置能夠輕易地整合成一系統,其中一客戶端裝置可以自動且正確的決定執行時,與一伺服端裝置溝通所使用之應用程式介面。

Description

偵測與解析應用程式介面之方法與系統
本發明關於應用程式介面,更明確地,是一種在分散式系統中,偵測與解析一伺服端之應用程式介面(APIs)之方法。
分散式系統是由藉著網路彼此互動的電腦所組成的一個網路。分散式系統中的裝置通常包含由個人筆記型電腦到大型主機的各種電腦,亦可能包含諸如行動電話或家用娛樂裝置之其他型態運算裝置。系統中之一伺服端藉由接受網路上客戶端所傳送之請求訊息,向網路上其他裝置提供服務。舉例而言,一網路印表機在接收一列印請求後,列印一份文件;一網路攝影機在接收一水平移動請求後,水平轉向左側;又或一資料庫伺服端在接收一銷售報告請求後,回傳一銷售資料列表。為在一伺服端上觸發此類動作,一客戶端裝置需要知道該伺服端支援何種動作以及觸發該等動作所需之訊息;更具體地說,該客戶端裝置需要了解該伺服端的應用程式介面(Application Programming Interfaces,APIs);在具備該伺服端應用程式介面之資訊後,該客戶端裝置可以藉由使用該應用程式介面所描述之方法,在該伺服端上觸 發動作。
一客戶端裝置在建置開發時即選定使用一特定之伺服端來提供服務,則關於該伺服端之資訊,如伺服端網路位址及其應用程式介面等,可直接內建在該客戶端裝置中。舉例而言,一客戶端裝置可被建置成使用網路上之一特定地圖伺服端取得地圖資訊,以在地圖上顯示餐廳位置。由於網路上之該地圖伺服端在該客戶端裝置建置開發發展時就被選定,該伺服端之網址(Uniform Resource Locator,URL)及其應用程式介面可被編譯進該客戶端裝置之程式中。
然而在許多的應用中,伺服端的資訊並無法在客戶端建置開發時得知。舉例來說,不同公司的網路具有不同的列印伺服端、網路攝影機、或是資料庫伺服端;該等伺服端之資訊,只有當一客戶端裝置在執行時加入該網路後,才可以被取得;在該客戶端裝置建置開發發展時,無法得知該等資訊。過去,為建立一客戶端裝置與此等伺服端之溝通,該客戶端之程式係被建立成以一組特定之應用程式介面工作,並且該客戶端在執行時,使用一應用程式介面偵測機制詢問是否一給定之伺服端支援該等應用程式介面。由於一客戶端裝置可能在不同之網路面對不同之伺服端,上述應用程式介面偵測機制需要能應用在一廣泛範圍之伺服端。隨著網際網路及移動通訊的進展,偵測未知伺服端之應用程式界面更顯重要,因為一客戶端裝置可能與世界上的任何一個伺服端建立溝通。
然而,目前應用程式介面偵測機制只能應用在非常有限的伺服端上,也就是與客戶端的建置開發有緊密關 係之伺服器端;此等機制不但無法用來偵測其他伺服端的應用程式界面,偵測甚至可能導致錯誤的結果。其原因在於大多數的應用程式介面偵測機制需要客戶端裝置內建某些伺服端之特定資訊,此類資訊無法在執行取得,因此無法應用在其他不具有相同特定資訊之伺服端。
舉例而言,根據目前的應用程式介面偵測機制,一伺服端可能藉由提供一客戶端一應用程式介面名稱列表,諸如CORBA interface IDs或Java介面類別名稱,將其應用程式介面名稱呈現給該客戶端。接著該客戶端比較該等名稱與該客戶端所能辨識之應用程式介面名稱。然而,每一名稱所代表之應用程式介面定義僅在程式發展階段可被取得,並且,該應用程式介面定義資訊係被編譯進該客戶端及該伺服端之程式之中,此一資訊並非在執行時透過該應用程式介面偵測機制可以取得。一不具有該應用程式介面定義資訊之異質客戶端裝置,將無法了解該伺服端上該等應用程式介面名稱所代表之內涵。一更差的情況下,該異質客戶端裝置可能具有一不同之應用程式介面定義,該不同之應用程式介面定義碰巧被指定與該伺服端使用之應用程式介面相同之名稱,此種狀況即一般所認知的應用程式介面名稱衝突。其結果是該異質客戶端裝置將錯誤地認為該伺服端支援該異質客戶端所知悉之應用程式介面,然而該伺服端事實上支援一不同之應用程式界面定義,該客戶端與該伺服端對於該名稱所表徵的應用程式介面定義,並不具有共識。
在另一個例子中,根據目前的應用程式介面偵測機 制,一伺服端可能提供其完整的應用程式介面定義給一客戶端,例如一可被遠端呼叫的函數名稱列表。此種方法並沒有免除客戶端裝置對於伺服端特定資訊的需求,因為客戶端必須知道該特定伺服端上該等函數的特定用途。在一伺服端上,一個名為「draw」的函數可能會產生圖形輸出,然而在另一伺服端上,一個名為「draw」的函數可能終結一打成平手的棋局。因此,了解由自一異質伺服端而來的應用程式界面定義包含一名稱為「draw」的函數,並不足以使一客戶端裝置在該伺服端上執行繪圖的動作,盲目地在該異質伺服端上呼叫該函數可能導致無法預料的結果,此一問題同樣來自於應用程式界面名稱衝突所導致對於應用程式界面定義缺乏共識。
上述問題使得現在的應用程式界面偵測機制難以應用在偵測網路伺服端之應用程式介面。網際網路上,大量的網路應用伺服端大幅增加應用程式界面名稱衝突的可能性,而在不同的網路伺服端間,達成應用程式界面定義的共識係十分困難,因為每一網路伺服端可能由不同的單位或機構所管理操作。在缺乏應用程式界面定義共識的情況下,一客戶端將無法在執行時,可靠地偵測一異質網路應用伺服端的應用程式界面,並在其後正確地與該伺服端溝通。
因此一種允許一客戶端裝置自動地解析一伺服端之應用程式界面有其需求,即使該客戶端、該伺服端、以及該應用程式界面定義係由不同之機構或單位所發展,該機制依然能在該客戶端以及該伺服端之間,建立應用程式界面定義之共識。
本發明係關於一種方法與系統,該方法與系統允許一客戶端根據執行時所獲得之資訊,自動地決定是否可依照某特定應用程式界面定義與一伺服端溝通。上述功能的達成是藉由:一客戶端裝置向一伺服端請求該伺服端所支援之應用程式介面;以及該伺服端裝置以包含一應用程式介面識別符列表之資訊回覆該客戶端,其中每一識別符包含對應於該識別符之應用程式界面定義資料存放之網路位址。該客戶端接著建立上述列表中應用程式介面識別符與該客戶端所了解的應用程式介面間的關聯,以解析出可用於與該伺服端溝通的應用程式介面。在此,「一客戶端了解一應用程式介面」係指該客戶端支援該應用程式介面,並能根據該應用程式介面與另一裝置溝通。
本發明的重點在於使用可取得一應用程式介面定義資料之網路位址作為應用程式介面識別符,以協助該應用程式介面偵測與解析之過程。使用此種識別符將優於使用一任意之名稱,其原因在於此種識別符在以此識別符參照該應用程式介面之客戶端與伺服端之間,建立起應用程式介面定義之共識,所有的裝置可以自該識別符所表徵之網路位址,取得相同之應用程式介面定義;而不同之應用程式介面係被儲存於不同之網路位址;因此使用此種應用程式介面識別符,將可避免應用程式介面名稱衝突。此種應用程式介面識別符亦建立了應用程式介面定義的權威性,因為在該被表徵網路位址之裝置提供該應用程式介面定義資料,而僅有控制該裝置的單 位或機構,可以變更該應用程式介面定義資料;其結果是使用這種方法,不同的伺服端將不能對相同的識別符提供不一致的定義資料,因此建立了不同裝置間,對於對應於應用程式介面識別符之應用程式介面定義之共識。
在本發明中,一應用程式介面可延伸自一系列原始應用程式介面,以附加額外的溝通動作於該等原始的應用程式介面;該包含額外動作的應用程式介面,被稱為一延伸應用程式介面,而該等原始應用程式介面,被稱為該延伸應用程式介面之親代應用程式介面。一延伸應用程式介面之定義資料,包含額外溝通動作之定義,以及一網路位址列表,其中每一網路位址為一親代應用程式介面之應用程式介面識別符。相同於所有定義在該延伸應用程式介面之親代應用程式介面中之動作,該等額外動作可被用來與一支援該延伸應用程式介面之伺服端溝通。
藉由表列親代應用程式介面之識別符於一延伸應用程式介面之定義資料,本發明進一步允許一客戶端自動地解析其與一伺服端之應用程式介面相容性,即使是在一伺服端的應用程式介面識別符並不能被該客戶端所直接辨識的情況下。藉由遞迴式追蹤對應於一無法識別的應用程式介面識別符,一客戶端可以探究該無法識別的應用程式介面識別符。該遞迴式程序如下:該客戶端自該無法辨識識別符所指向的網路位址取得應用程式介面定義;如果該定義包含一親代應用程式介面識別符列表(該無法辨識之應用程式介面係延伸自該等親代應用程式介面),並且該客戶端能夠辨識出該等親代應 用程式介面識別符之任何一個,則該客戶端可藉由被辨識出之親代應用程式介面,與該伺服端溝通;如果該客戶端不能夠辨識該列表中之該等親代應用程式介面識別符,該客戶端可以進一步取得該等親代應用程式介面之定義,該等定義包含更多親代應用程式介面識別符(再上一代的親代應用程式介面),以供該客戶端探究相容性。此遞迴式程序將持續直至該客戶端辨識出一親代應用程式介面識別符,或是所有的親代應用程式識別符均被探究而該客戶端仍無法確認其相容性。須說明的是,透過此一遞迴搜尋程序,所找到對應於所有可取得之親代應用程式介面識別符之應用程式介面,在此均被稱為該延伸應用程式介面之親代應用程式介面。
本發明並包含允許一客戶端自動地發現在一網路中支援一特定應用程式介面之伺服端之方法及系統。當一客戶端裝置尋找支援一特定應用程式介面之伺服端裝置,該客戶端裝置發送一廣播訊息至該網路中的所有裝置,該訊息包含該應用程式介面之前述應用程式介面識別符,一接收到該訊息之伺服端,將決定該被查詢應用程式介面與該伺服端應用程式介面之相容性,並且,如果該伺服端確定兩者相容,該伺服端會將該伺服端之網路位址回報給該客戶端。
100‧‧‧分散式系統
110‧‧‧客戶端
120‧‧‧伺服端
125‧‧‧伺服端規格資料
130‧‧‧電腦主機
135‧‧‧應用程式界面定義資料
200‧‧‧分散式系統
210‧‧‧客戶端
220‧‧‧伺服端
225‧‧‧伺服端規格資料
230‧‧‧伺服端
235‧‧‧伺服端規格資料
240‧‧‧電腦主機
245‧‧‧應用程式界面定義資料
250‧‧‧電腦主機
255‧‧‧應用程式界面定義資料
260‧‧‧電腦主機
265‧‧‧應用程式界面定義資料
300‧‧‧分散式系統
310‧‧‧客戶端
320‧‧‧伺服端
325‧‧‧伺服端規格資料
330‧‧‧伺服端
335‧‧‧伺服端規格資料
340‧‧‧伺服端
345‧‧‧伺服端規格資料
350‧‧‧電腦主機
355‧‧‧應用程式界面定義資料
360‧‧‧電腦主機
365‧‧‧應用程式界面定義資料
400‧‧‧分散式系統
410‧‧‧客戶端
420‧‧‧伺服端
430‧‧‧伺服端
440‧‧‧伺服端
450‧‧‧電腦主機
455‧‧‧應用程式界面定義資料
460‧‧‧電腦主機
465‧‧‧應用程式界面定義資料
470‧‧‧電腦主機
475‧‧‧應用程式界面定義資料
第一圖對應於本發明第一實施例,例式一分散式系統,其中一客戶端決定一伺服端對於應用程式介面之支援情況。
第二圖對應於本發明第二實施例,例式一分散式系 統,其中一客戶端決定一伺服端對於應用程式介面之支援情況。
第三圖對應於本發明第三實施例,例式一分散式系統,其中一客戶端決定一伺服端對於應用程式介面之支援情況。
第四圖為一流程圖,例式本發明決定一伺服端對於應用程式介面之支援情況之程序。
第五圖對應於本發明第四實施例,例式一分散式系統,其中一客戶端發現支援一應用程式介面之伺服端。
以下將配合圖示詳細敘述例示實施例。然而,這些實施例可以包含於不同的形式中,且不應被解釋為用以限制本發明。這些實施例之提供使得本發明之揭露完整與完全,熟知此技術之人將能經由該些實施例了解本發明之範疇。
在本發明中,客戶端與伺服端,為連接於網路且具有運算能力之裝置,例如個人電腦、大型主機、行動電話、家用娛樂裝置、或是具有運算及連網能力之嵌入式裝置。一裝置為一客戶端裝置或是一伺服端裝置,則取決於在一特定操作中該裝置之角色;一發出請求之裝置被稱為一客戶端裝置,而一回覆該請求之裝置被稱為一伺服端裝置。一裝置在一操作中可為一客戶端裝置,然而在另一操作中,該裝置可為一伺服端裝置。舉例而言,一網路印表機在回應列印請求時為一伺服端裝置,然而當向一網路時間伺服端請求日期及時間資訊時,同一印表機變成一客戶端裝置。
第一圖例式本發明第一實施例。在一分散式系統100中,一客戶端110欲使用應用程式界面定義資料135所描述的方法,與一伺服端120溝通。應用程式界面定義資料135描述一應用程式界面定義以一機器可處理之格式,例如工業標準規格XML或JSON,描述一應用程式界面定義。該應用程式界面定義資料135詳述應用在與一支援該應用程式介面伺服端溝通之動作,例如一可在該伺服端上呼叫的函數之函數名稱列表,該列表並包含該等函數的輸出與輸入資料型態;可自該伺服端讀取或寫入該伺服端的屬性之列表;以及一用在溝通之特殊資料型態定義之列表等。
該應用程式界面定義資料135係被儲存於該分散式系統100之一電腦主機130;第一圖中之(a)為一網路位址,在分散式系統100中,應用程式界面定義資料135可自該網路位址(a)所取得;許多標準技術允許該電腦主機130在該網路上提供該應用程式界面定義資料135。舉例而言,電腦主機130可包含一網路伺服端運作於其上,以在收到請求時,藉由超文件傳輸協定(HTTP)提供應用程式界面定義資料135;在這個例子中,(a)為超文件傳輸協定一致資源定位器位址(HTTP URL address),應用程式界面定義資料135可根據該位址自該網路伺服端被取得。在此,(a)亦被用做應用程式介面識別符,以代表描述於應用程式界面定義資料135之應用程式界面定義;在這裡的討論中,該應用程式介面被簡稱為應用程式介面(a)。
該客戶端110被建置成與任何支援應用程式介面(a)之伺服端溝通。當發展該客戶端時,一程式設計師自網 路位址(a)取得該應用程式介面定義資料135(第一圖,步驟I),並且電腦主機130回傳該應用程式介面定義資料135(第一圖,步驟II)。其後,該程式設計師建置一程式,該程式可依據描述於應用程式介面定義資料135之溝通方法,發送溝通動作至一伺服端,該應用程式介面識別符(a)亦被包含在該客戶端程式,以在應用程式介面偵測過程中被使用。
該伺服端120被建置成支援應用程式介面(a),因此該伺服端依照應用程式界面定義資料135接受請求並產生回應。當發展該伺服端時,一程式設計師自網路位址(a)取得該應用程式介面定義資料135(第一圖,步驟III),並且電腦主機130回傳該應用程式介面定義資料135(第一圖,步驟IV)。其後,該程式設計師依據該應用程式介面定義,建置該伺服端程式;該應用程式介面識別符(a)亦被包含在該伺服端程式,以在應用程式介面偵測過程中被使用。
在此須說明的是本發明中的應用程式介面定義資料並不需包含可執行該等被定義溝通動作之程式碼,不同的伺服端裝置可具有以不同的程式語言所寫成的不同程式以實施符合一應用程式界面定義之該等溝通動作。類似地,不同伺服端裝置上的程式,亦可以不同的程式語言所寫成,以依據應用程式界面定義資料與客戶端溝通。
在執行時,伺服端120上的程式聽取來自網路的請求,該客戶端110自不同之來源,例如使用者輸入、設定檔案或與另一伺服端之溝通,取得該伺服端120之網路位址;其後該客戶端110嘗試與該伺服端120溝通。 在客戶端110從未與該伺服端120溝通的狀況下,該客戶端110需要偵測該伺服端120之應用程式介面,並且解析是否該客戶端所理解之應用程式介面(a)為該伺服端所支援之應用程式介面之一。因此,該客戶端110發送一應用程式介面詢問請求至該伺服端120(第一圖,步驟V),並且該伺服端回傳一伺服端規格資料125(第一圖,步驟VI)。在此需注意的是,發送該應用程式介面詢問請求之機制係根據該客戶端110與該伺服端120間之網路協定。舉例而言,該伺服端120可為一使用HTTP協定之網路伺服端,並且該伺服端之超文件傳輸協定一致資源定位器位址(HTTP URL location)係被給予該客戶端110。在此種狀況下,該客戶端110所發送之應用程式介面詢問請求為一標準HTTP GET請求,被發送至該伺服端的URL位址,並且該伺服端將以一HTTP回應訊息回傳伺服端規格資料125。
一伺服端規格資料包含一應用程式介面識別符之列表,該等識別符對應於該伺服端所支援之應用程式介面,該伺服端規格資料並選擇性地包含該伺服端所特定的溝通動作列表,該等溝通動作並非上述列表中應用程式介面之一部分。一伺服端可支援多個應用程式介面,且該等應用程式介面之識別符係表列在該伺服端規格資料中。該伺服端規格資料可在該伺服端發展時被產生,或是在執行時由該伺服端程式所產生。
在此實施例中,該伺服端規格資料125包含該應用程式介面識別符(a)。一但該客戶端110取得該伺服端規格資料125,該客戶端110比較列於該伺服端規格資料125之識別符與應用程式介面識別符(a)。如果該應用程 式介面識別符(a)與列於伺服端規格資料125中之一識別符相符合,該客戶端110斷定該客戶端110可與該伺服端120以應用程式介面(a)所定義之方式溝通。舉例而言,如果該應用程式介面(a)包含一遠端函數之定義,該客戶端110可在該伺服端120上呼叫該遠端函數。在此需注意的是,一客戶端可被建置成支援多個應用程式介面,並且決定是否每一該等應用程式介面被一伺服端所支援,接著再選擇被該伺服端所支援之應用程式介面與該伺服端溝通。
此應用程式介面偵測方式之重要性在於該客戶端110並不需要將該伺服端120相關之資訊建置進客戶端程式以正確地偵測伺服端之應用程式介面。藉由在執行時,由伺服端規格資料125辨識應用程式介面(a),該客戶端110可以確信該伺服端120支援之應用程式介面與該客戶端所了解之應用程式介面相同,因為應用程式介面識別符(a)明確地指向該應用程式介面定義資料135。也因此,該客戶端110與該伺服端120可以由不同的研發者分別獨立研發,該等研發者之間幾乎沒有共享資訊,但產出的客戶端與伺服端程式仍能正確溝通。
在此須說明,電腦主機130可由一不同於該客戶端或該伺服端之第三方所操作;在此狀況下,該客戶端或該伺服端之研發者均不能更動應用程式介面(a)之定義,因為僅有電腦主機130之操作者擁有更動應用程式介面定義資料135之權限;這樣,整個系統之一致性得以維持,因為沒有其他人可以賦予應用程式介面(a)一歧異之定義。
承上所述,電腦主機130之操作者仍然可以更動應 用程式介面定義資料135並因此而改變應用程式介面(a)之定義,例如增加新函數或是修正錯誤。一根據舊版本應用程式介面(a)所建置之裝置,將無法正確與根據最新版本應用程式介面(a)所建置之裝置溝通。有鑑於此,一裝置中之程式,可在執行時週期性的取得應用程式介面定義資料135,並且將之與程式發展當時使用的應用程式介面版本相比較,以偵測應用程式介面(a)定義的更動。在此客戶端110與伺服端120均可在執行時週期性的取得應用程式介面定義資料135並執行上述比較,以確認該等裝置所了解的應用程式介面(a)與最新定義的應用程式介面(a)一致,當不一致的情況發生時,裝置中之程式會觸發處理應用程式介面更動之動作,例如通知程式設計師。不論如何,應用程式介面(a)之最新定義均不會產生混淆,因為該最新版本永遠均是現存於電腦主機130之應用程式介面定義資料135。
在此須說明,分散式系統100中的多個裝置,可經由均質或異質網路而相互連接;換句話說,客戶端110、伺服端120與電腦主機130,並不需要以相同之網路技術互相連接。舉例而言,客戶端110可以使用藍芽技術與伺服端120溝通、而網際網路上之電腦主機130係透過TCP/IP協定被使用。客戶端110可以經由藍芽技術取得伺服端規格資料125,而應用程式介面定義資料135之取得係透過一TCP/IP連線之HTTP協定。表列在一伺服端規格資料之每一應用程式介面識別符,可參照不同網路技術之網路位址;相似地,表列在一延伸應用程式介面定義資料之每一親代應用程式介面識別符,亦可參照不同網路技術之網路位址。
第二圖例式本發明第二實施例。在一分散式系統200中,一客戶端210欲使用應用程式界面定義資料245所描述的方法,與伺服端220與230溝通。應用程式界面定義資料245、255及265分別儲存在分散式系統200中的電腦主機240、250及260;上述應用程式界面定義資料可分別自分散式系統200中的網路位址(b)、(c)、(d)取得;(b)、(c)、(d)被用做應用程式界面識別符,以分別代表分散式系統200中描述於應用程式界面定義資料245、255及265之應用程式界面定義;該等應用程式介面被簡稱為應用程式介面(b)、應用程式介面(c)及應用程式介面(d)。
該客戶端210被建置成與任何支援應用程式介面(b)之伺服端溝通。在執行時,該客戶端自不同之來源,例如使用者輸入、設定檔案或與另一伺服端之溝通,取得該伺服端220之網路位址;其後該客戶端嘗試與伺服端220溝通。該客戶端210需要偵測該伺服端220之應用程式介面,並且解析是否該客戶端所理解之應用程式介面(b)為該伺服端所支援之應用程式介面之一。因此,該客戶端210發送一應用程式介面詢問請求至該伺服端220(第二圖,步驟I),並且該伺服端回傳一伺服端規格資料225(第二圖,步驟II),其包含應用程式介面識別符(c)及(d);由於識別符(c)或(d)均與客戶端210所理解的應用程式介面識別符(b)不相符,客戶端需要進一步探究,是否應用程式介面(c)或應用程式介面(d)延伸自應用程式介面(b),因而與應用程式介面(b)相容。
一第一應用程式介面可藉由增加額外之特徵而自一第二應用程式介面延伸,例如增加可在伺服端被呼叫 的一額外函數名稱列表以及相對應之輸入及輸出資料型態,一可自伺服端讀出或寫入伺服端之額外屬性列表,以及一可使用於溝通之額外特殊資料型態定義列表等;該第一應用程式介面被稱為一延伸應用程式介面,而該第二應用程式介面被稱為該延伸應用程式介面之親代應用程式介面;一延伸應用程式介面可延伸自數個親代應用程式介面。與一支援一延伸應用程式介面之伺服端之溝通,可藉由定義在該應用程式介面之額外特徵,以及定義在該應用程式介面的親代應用程式介面之所有動作。一延伸應用程式介面之目的,在於允許一伺服端支援一應用程式介面之額外特徵,但仍與僅了解該應用程式介面的親代應用程式介面之客戶端裝置相容。舉例而言,一原本的應用程式介面可允許一客戶端裝置藉由專輯名稱,在一伺服端裝置搜尋音樂專輯,而一更新的延伸應用程式介面可延伸自該原本的應用程式介面並且加入依據演出者名稱搜尋之特徵;了解該更新延伸應用程式介面之客戶端可以根據專輯名稱或演出者名稱執行搜尋,而了解該原本應用程式介面之客戶端仍可以根據專輯名稱執行搜尋。
一延伸應用程式介面之應用程式介面定義資料包含一網路位址列表,其中每一位址係為一親代應用程式介面之應用程式介面識別符,該定義資料並包含額外溝通動作之定義,例如一可在一伺服端呼叫的函數名稱列表,以及該等函數對應之輸入及輸出資料型態,一可自伺服端讀出或寫入伺服端之額外屬性列表,以及一可使用於溝通之額外特殊資料型態定義列表等。需注意的是,該應用程式介面延伸關係,可延伸超過一個階層, 換言之一應用程式介面延伸自一親代應用程式介面,而該親代應用程式介面可延伸自另一親代應用程式介面,這種關係可以不斷延續;所有應用程式介面,直接或間接延伸出一延伸應用程式介面,均被稱為該延伸應用程式介面之親代應用程式介面。
在此實施例中,客戶端210需要決定應用程式介面(c)或應用程式介面(d)是否延伸自該客戶端所理解之應用程式介面(b)。為研究應用程式介面(c),客戶端210傳送一請求至網路位址(c)(第二圖,步驟III)以自電腦主機250獲得應用程式介面定義資料255(第二圖,步驟IV)。在此,應用程式介面定義資料255中的應用程式介面定義並未將(b)列為一親代應用程式介面。因此客戶端210判斷應用程式介面(c)並非延伸自應用程式介面(b)。接下來,為研究應用程式介面(d),客戶端210傳送一請求至網路位址(d)(第二圖,步驟V),以自電腦主機260獲得應用程式介面定義資料265(第二圖,步驟VI)。在此實施例中,應用程式介面定義資料265將應用程式介面識別符(b)列為一親代應用程式介面,因此客戶端210判斷應用程式介面(d)係延伸自應用程式介面(b),客戶端210因而結論可根據應用程式介面(b)而與伺服端220溝通,因為伺服端220支援應用程式介面(d)而應用程式介面(d)係延伸自應用程式介面(b)。客戶端210可選擇在一段期間內,儲存應用程式介面定義資料255與265,使得當需要應用程式介面(c)或(d)之定義時,該客戶端不需要再次取得該等應用程式介面定義資料。
在此須說明的是,一應用程式介面的定義資料以及 其所有之親代應用程式介面定義資料可被儲存於不同之電腦主機,該等電腦主機係由不同管理者所控制。在本實施例中,應用程式介面(b)及(d)係分別儲存於電腦主機240及260,並且每一電腦可被不同之管理者所控制。因此,即使電腦主機260的管理者具有應用程式介面(d)定義之權限,該管理者並不具有其親代應用程式介面(b)定義之權限。換句話說,即使該管理者可以更動應用程式介面定義資料265以變更應用程式介面(d)之定義,例如修改屬於應用程式介面(d)之溝通動作,甚或自其親代應用程式介面列表中移除應用程式介面識別符(b),但不論如何,應用程式介面定義資料265將不會影響定義在應用程式界面定義資料245中的應用程式介面(b)之定義。這即是使用可取得一應用程式介面定義資料之網路位址以辨識該應用程式介面的優點,因為該應用程式介面的定義在整個分散式系統中均保持不變。
在此實施例中,客戶端210亦接收伺服端230之網路位址並嘗試與伺服端230溝通。客戶端210傳送一應用程式介面詢問請求至伺服端230(第二圖,步驟VII),並且伺服端230回傳一伺服端規格資料235(第二圖,步驟VIII),該伺服端規格資料235包含一應用程式介面識別符(c)。為決定是否應用程式介面(c)延伸自應用程式介面(b),在偵測伺服端220之應用程式介面後,客戶端210可以使用已儲存在該客戶端之應用程式介面定義資料,或是自網路位址(c)再次取得應用程式介面定義資料255之另一副本。不論使用何種方式,客戶端210均會知悉在應用程式介面定義資料255中,應用程式介面識別符(b)並未被列為應用程式介面(c)之親代 應用程式介面;由於應用程式介面(c)為伺服端230所支援之唯一應用程式介面,客戶端210結論其無法根據應用程式介面(b)而與伺服端230溝通。
在本發明的前兩個實施例中,在與一伺服端裝置開始溝通前,若一客戶端缺乏該伺服端所支援之應用程式介面資訊,該客戶端需要傳送一應用程式介面詢問請求至該伺服端以偵測該伺服端之應用程式介面;假若該客戶端需要查詢許多個伺服端該客戶端,這個過程可能極為耗時。因此在本發明的第三個實施例中,另一種關於決定一伺服端所支援應用程式介面之方法被提出。
第三圖例示本發明第三實施例。在一分散式系統300中,一客戶端310欲使用應用程式界面定義資料355所描述的方法,與伺服端320、330與340溝通。應用程式界面定義資料355及365分別儲存在分散式系統300中的電腦主機350及360;上述應用程式界面定義資料可分別自分散式系統300中的網路位址(e)即(t)取得;(e)及(t)被用做應用程式界面識別符,以分別代表分散式系統300中描述於應用程式界面定義資料355及365之應用程式界面定義;該等應用程式介面被簡稱為應用程式介面(e)及應用程式介面(t)。
該客戶端310被建置成與任何支援應用程式介面(e)之伺服端溝通。在執行時,該客戶端自不同之來源,例如使用者輸入、設定檔案或與另一伺服端之溝通,取得該伺服端320、330與340之網路位址;其後該客戶端嘗試與該等伺服端溝通。在本實施例中,該客戶端所接收到的位址資訊係以一複合位址之形式,其中每一複合位址包含該伺服端之網路位址以及一該伺服端所支援 之應用程式介面之應用程式介面識別符列表。在此實施例中,address(server 320)#encoded(t)、address(server 330)#encoded(t)、以及address(server 340)#encoded(t)為三個複合位址。在每一複合位址中,符號#前之部分為該伺服端之網路位址,並且符號#後之部分為該伺服端所支援應用程式介面識別符之編碼字串。須說明的是,不同的複合位址格式可能被使用在該客戶端裝置,並且該格式選擇取決於該客戶端程式之支援以及該系統中所使用之網路位址格式。具例而言,在一系統中,該伺服端位址以及位址(t)均為超文件傳輸協定一致資源定位器位址(HTTP URL),該複合位置可被建構為連接該伺服端之URL、符號#以及一使用定義在全球資源辨識符(URI)規格之標準percent-encoding機制之一編碼字串URL(t)。
當客戶端裝置310嘗試與複合位址address(server 320)#encoded(t)所表徵之伺服端溝通時,該客戶端將該複合位址解碼為伺服端320之網路位址以及應用程式介面識別符(t)。因此,該客戶端310了解該伺服端支援應用程式介面(t)。由於該客戶端320並無法辨識應用程式介面識別符(t),該客戶端傳送一應用程式介面查詢請求至網路位址(t)(第三圖,步驟I)以自電腦主機360取得應用程式介面定義資料365(第三圖,步驟II)。在此實施例中,應用程式介面定義資料365將應用程式介面識別符(e)列為一應用程式介面(t)之親代應用程式介面。該客戶端因而結論可根據應用程式介面(e)而與伺服端320溝通,因為伺服端320支援應用程式介面(t),而應用程式介面(t)係延伸自應用程式介面(e)。
接下來,當客戶端310將複合位址address(server 330)#encoded(t)以及address(server 340)#encoded(t)解碼,該客戶端了解可能可與伺服端330及伺服端340以應用程式介面(e)溝通,因為該等複合位址指出伺服端330與伺服端340均支援應用程式介面(t)。以此種方式,客戶端310可以解析其與伺服端320、330、及340之應用程式介面相容性,而不需自每一伺服端取得伺服端規格資料325、335、及345;因此效率得以提升。
第四圖係一流程,顯示藉由上述各實施例之所有方法,決定是否可根據一應用程式界面定義(a)與在位址(n)的一伺服端溝通。該流程開始於給定一位址(n)(第四圖,步驟I)。如果該位址格式不被支援(第四圖,步驟II),則該程序結論在位址(n)之伺服端,並不支援應用程式界面(a),並且不應使用應用程式界面(a)與之溝通(第四圖,步驟XIX)。若該位址格式被支援,該位址將被分析以判斷其是否為一組合位址(第四圖,步驟III)。如果該位址非為一組合位址,則該位址(n)即為該伺服端之網路位址(r)(第四圖,步驟IV)。其後一網路請求被傳送到(r)以取得該伺服端之應用程式界面資訊(第四圖,步驟V)。該資訊包含一應用程式界面識別符列表(L)(第四圖,步驟VI)。相反地,若該位址(n)為一組合位置,該位址(n)將被解碼為該伺服端之網路位址(r)以及一應用程式界面識別符列表(L)(第四圖,步驟VII)。不論該位址是否為一組合位址,(L)均會包含由位址(n)所表徵的伺服端所支援之應用程式介面識別符之一列表。其後,一空清單(V)被產生以儲存在該流程所分析過的該等識別符(第四圖,步驟VIII)。
列表(L)中的應用程式介面識別符s in(L)以如下方式所分析。一列表(L)中的應用程式介面識別符(w)被選擇並自列表(L)中移除(第四圖,步驟X)。如果識別符(w)等同於(a),該程序立即結束並結論由(n)所表徵之伺服端支援應用程式介面(a),並且該伺服端可在網路位址(r)被溝通(第四圖,步驟XX)。如果識別符(w)不等同於(a),首先(w)將被加入列表(V)(第四圖,步驟XII),其後被檢視是否應用程式介面(w)之定義資料之前已被取得過(第四圖,步驟XIII)。若之前沒有被取得過,一網路請求將被傳送至一網路位置(w)(第四圖,步驟XIV),並且應用程式介面(w)之定義資料將在回應訊息中被接收(第四圖,步驟XV)。如果該定義資料包含代表應用程式介面(w)親代應用程式介面之應用程式介面識別符(第四圖,步驟XVI),所有該等應用程式介面識別符被加入列表(L)(第四圖,步驟XVII)。其後,列表(L)被檢視以移除同時存在於列表(L)與(V)之應用程式介面識別符(第四圖,步驟XVIII)。步驟IX至XVIII係被反覆執行直至一列表(L)中的應用程式介面識別符與(a)相符,或者列表(L)被清空而仍無識別符與(a)相符;在後者的狀況中,該程序終結並結論為位址(n)所表徵之伺服端並不支援應用程式介面(a)(第四圖,步驟XIX)。
在本發明的前三個實施例中,一伺服端之網路位址係藉由非客戶端裝置所控制之方法被給予該客戶端裝置,例如使用者輸入或是設定檔。本發明第五實施例提出一種方法,該方法自動發現支援一應用程式介面之伺服端的網路位址。
第五圖例示本發明第四實施例。在一分散式系統400中,一客戶端410試圖發現在該系統中,能以應用程式介面定義資料455中之方法溝通之伺服端之網路位址。應用程式介面定義資料455、465、及475分別被儲存於分散式系統400中的電腦主機450、460以及470;該等應用程式介面定義資料可分別於網路位址(f)、(g)、及(h)被取得;(f)、(g)、及(h)亦為應用程式介面識別符以分別代表描述於應用程式介面定義資料455、465、及475之應用程式介面定義。該等應用程式介面被稱為應用程式介面(f)、應用程式介面(g)以及應用程式介面(h)。
客戶端裝置410被建置為與任何支援應用程式介面(f)之伺服端溝通,為發現在分散式系統400中支援應用程式介面(f)之伺服端,客戶端410發送一廣播請求訊息至網路中的所有伺服端(第五圖,步驟I),其中該廣播請求訊息包含應用程式介面識別符(f)及客戶端410之網路位址。該廣播請求訊息請求該網路中,所有支援應用程式介面(f)之伺服端向客戶端410回報其網路位址。須說明的是,發送廣播訊息之機制,係與分散式系統400的網路型態相關。
一允許其存在被自動發現之伺服端裝置具有一程式碼,該程式碼常態性地監聽該網路中的廣播訊息。在本實施例中,伺服端裝置420、430、及440均監聽該網路中的廣播訊息。伺服端420支援應用程式介面(f),因此一接收到客戶端410所發送尋找支援應用程式介面(f)之伺服端之廣播請求訊息,伺服端420傳送一回應訊息給客戶端410,該回應訊息包含伺服端420之網路位址(第五圖,步驟II)。伺服端430支援應用程式介面(g), 應用程式介面(g)為應用程式介面(f)之一延伸應用程式介面。當接收到客戶端410所發送之廣播請求訊息,伺服端430了解雖其支援應用程式介面(g),但仍可以應用程式介面(f)溝通,因此伺服端430傳送一回應訊息給客戶端410,該回應訊息包含伺服端430之網路位址(第五圖,步驟III)。伺服端440支援應用程式介面(h),應用程式介面(h)並非延伸自應用程式介面(f)。因此伺服端440接收到客戶端410所發送之廣播請求訊息後,未做任何回應。當收到伺服端420與430之回應訊息,客戶端410取得伺服端420及430之網路位址,並且該發現程序完成。其後客戶端可根據應用程式介面(f)與伺服端420及430溝通。
需注意的是,一客戶端裝置傳送的廣播請求訊息可能包含不只一個應用程式介面,並且布林條件(Boolean conditions)可能被用以表達該請求之需求。舉例而言,該傳送至分散式系統400之廣播請求訊息可能請求支援應用程式介面(g)或應用程式介面(h)之伺服端回應,或是請求支援應用程式介面(g)及應用程式介面(h)之伺服端回應。在前者之狀況中,伺服端430與440均會回應,然而在後者的狀況中,沒有任何伺服端會回應,因為沒有任何伺服端同時支援應用程式介面(b)及應用程式介面(h)。
另外需注意的是,用以發現伺服端之網路未必與儲存應用程式介面定義之網路相同。舉例而言,客戶端410以及伺服端420、430、及440可以IEEE 1394之排線連接,然而電腦主機450、460、及470以TCP/IP協定連接於網際網路。在這種情況下,本實施例中之步驟I、II、 及III係在該IEEE 1394排線中執行,然而該客戶端以及該等伺服端可自網際網路取得應用程式介面定義資料。
藉由本發明實施例所示範之方法與系統,一客戶端裝置可以根據本應用程式介面偵測程序所獲得之資訊,輕易地偵測並解析一伺服端裝置之應用程式介面。更重要的是,客戶端與伺服端對於應用程式介面之定義可被建立,因為用以表徵一應用程式介面之識別符清楚地指向該應用程式介面之定義資料。藉由此種建立應用程式介面之能力,客戶端裝置、伺服端裝置、以及應用程式介面定義可分別由不同之開發者所開發,並且該等裝置仍可加入一系統,並且正確的彼此溝通。因此,本發明所提供之方法特別適合包含許多各自獨立開發之裝置之大型分散式系統。
100‧‧‧分散式系統
110‧‧‧客戶端
120‧‧‧伺服端
125‧‧‧伺服端規格資料
130‧‧‧電腦主機
135‧‧‧應用程式介面定義資料

Claims (20)

  1. 一種在分散式系統中,偵測與解析一伺服端之應用程式介面之方法,包含:一客戶端向一伺服端請求該伺服端所支援之應用程式介面;以及該客戶端接收該伺服端回覆之一列表,該列表包含該伺服端所支援應用程式介面之識別符,其中每一該伺服端所支援之應用程式介面之識別符包含可以取得相對應之該應用程式介面之定義資料之網路位址。
  2. 如申請專利範圍第1項所述之方法,更包含:自至少一親代應用程式介面延伸額外特徵成為一延伸應用程式介面;以及在該延伸應用程式介面之定義資料表列該額外特徵以及該至少一親代應用程式介面之識別符,其中每一親代應用程式介面之識別符包含可以取得相對應之該親代應用程式介面之定義資料之網路位址。
  3. 如申請專利範圍第1項或第2項所述之方法,其中該客戶端或該伺服端之一程式被設置成:由該程式所支援之一應用程式介面之識別符所指向之網路位址,取得該應用程式介面之定義資料;及比較被取得之該應用程式介面之定義資料與該程式建立時所使用相對應之該應用程式介面之定義資料,以偵測該應用程式介面定義之更改。
  4. 如申請專利範圍第1項或第2項所述之方法,更包含: 該客戶端選擇對應於該客戶端所了解之一應用程式介面之一識別符,該選擇選自:(a)該伺服端所回應之該列表中的識別符;(b)該伺服端所回應之該列表中之一延伸應用程式介面之親代應用程式介面之識別符;以及該客戶端根據與所選擇之該識別符對應之應用程式介面之定義資料與該伺服端溝通。
  5. 一種在分散式系統中,偵測與解析一伺服端之應用程式介面之方法,包含:一客戶端接收一伺服端之一複合位址,其中該複合位址由下列資訊編碼而成:(a)該伺服端之網路位址;以及(b)一包含該伺服端所支援應用程式介面之識別符之列表,其中每一該伺服端所支援之應用程式介面之識別符包含可以取得相對應之該應用程式介面之定義資料之網路位址;以及該客戶端將該複合位址解碼為該伺服端之網路位址以及該伺服端所支援應用程式介面之識別符之一列表。
  6. 如申請專利範圍第5項所述之方法,更包含:自至少一親代應用程式介面延伸額外特徵成為一延伸應用程式介面;以及在該延伸應用程式介面之定義資料表列該額外特徵以及 該至少一親代應用程式介面之識別符,其中每一親代應用程式介面之識別符包含可以取得相對應之該親代應用程式介面之定義資料之網路位址。
  7. 如申請專利範圍第5項或第6項所述之方法,更包含:該客戶端選擇對應於該客戶端所了解之一應用程式介面之一識別符,該選擇選自:(c)被解碼之該列表中的識別符;(d)被解碼之該列表中之一延伸應用程式介面之親代應用程式介面之識別符;以及該客戶端根據與所選擇之該識別符對應之應用程式介面之定義資料與該伺服端溝通。
  8. 一自動偵測並解析應用程式介面之分散式系統,包含:連接於至少一網路之一伺服端,該伺服端包含一電腦程式以設置該伺服端,使得該伺服端:接收一請求,該請求查詢該伺服端所支援之應用程式介面;回覆一列表,該列表包含該伺服端所支援應用程式介面之識別符,其中每一該伺服端所支援之應用程式介面之識別符包含可以取得相對應之該應用程式介面之定義資料之網路位址;以及根據與該列表中之識別符對應之應用程式介面之定義資料溝通。
  9. 如申請專利範圍第8項所述之系統,更包含: 一個或多個電腦主機其中每一電腦主機提供應用程式介面定義資料,該等應用程式介面定義資料可自下列識別符所指向之網路位址取得:(a)該伺服端回覆之該表中的一個或多個識別符;及/或(b)該伺服端回覆之該列表中之一延伸應用程式介面之一個或多個親代應用程式介面之識別符。
  10. 如申請專利範圍第8項或第9項所述之系統,更包含:連接於至少一網路之一客戶端,該客戶端包含一電腦程式以設置該客戶端,使得該客戶端:請求該伺服端,以查詢該伺服端所支援之應用程式介面;選擇對應於該客戶端所了解之一應用程式介面之一識別符,該選擇選自:(c)該伺服端所回應之該列表中的識別符;(d)該伺服端所回應之該列表中之一延伸應用程式介面之親代應用程式介面之識別符;以及根據與所選擇之該識別符對應之應用程式介面之定義資料與該伺服端溝通。
  11. 如申請專利範圍第8項或第9項所述之系統,更包含:連接於至少一網路之一客戶端,該客戶端包含一電腦程式以設置該客戶端,使得該客戶端:接收該伺服端之一複合位址,其中該複合位址由下列資訊編碼而成: (e)該伺服端之網路位址;以及(f)一包含該伺服端所支援應用程式介面之識別符之列表,其中每一該伺服端所支援之應用程式介面之識別符包含可以取得相對應之該應用程式介面之定義資料之網路位址;將該複合位址解碼為該伺服端之網路位址以及該伺服端所支援應用程式介面之識別符之一列表;選擇對應於該客戶端所了解之一應用程式介面之一識別符,該選擇選自:(g)被解碼之該列表中的識別符;(h)被解碼之該列表中之一延伸應用程式介面之親代應用程式介面之識別符;以及根據與所選擇之該識別符對應之應用程式介面之定義資料與該伺服端溝通。
  12. 如申請專利範圍第10項所述之系統,其中連接客戶端、該伺服端以及該等電腦主機之網路可為同質網路或異質網路。
  13. 如申請專利範圍第11項所述之系統,其中連接客戶端、該伺服端以及該等電腦主機之網路可為同質網路或異質網路。
  14. 一種在一分散式系統中,發現一個或多個伺服端支援一應用程式介面之方法,包含:一客戶端向一個或多個伺服端請求該應用程式介面之識別符,其中該識別符包含可以取得相對應之該被請求應 用程式介面之定義資料之網路位址;以及該客戶端接收該等伺服端中,支援該被請求應用程式介面之伺服端之回應訊息,其中每一回應訊息包含回應之該伺服端之網路位址。
  15. 如申請專利範圍第14項所述之方法,更包含:自至少一親代應用程式介面延伸額外特徵成為一延伸應用程式介面;以及在該延伸應用程式介面之定義資料表列該額外特徵以及該至少一親代應用程式介面之識別符,其中每一親代應用程式介面之識別符包含可以取得相對應之該親代應用程式介面之定義資料之網路位址。
  16. 如申請專利範圍第14項或第15項所述之方法,更包含:該客戶端接收該等伺服端中,支援延伸自該被請求應用程式介面之一延伸應用程式介面之伺服端之回應訊息,其中每一回應訊息包含回應之該伺服端之網路位址。
  17. 一自動發現伺服端之分散式系統,包含:連接於至少一網路之一伺服端,該伺服端包含一電腦程式以設置該伺服端,使得該伺服端:接收以一特定應用程式介面之識別符查詢該特定應用程式介面之一請求,其中該識別符包含可以取得該特定應用程式介面之定義資料之網路位址;以及如該伺服端可以該識別符所對應之應用程式介面定義資料溝通,該伺服端以一回應訊息回應該請求,其中該回應訊息包含該伺服端之網路位址。
  18. 如申請專利範圍第17項所述之系統,更包含: 一個或多個電腦主機其中每一電腦主機提供應用程式介面定義資料,該等應用程式介面定義資料可自下列識別符所指向之網路位址取得:(a)該特定應用程式介面之識別符;及/或(b)該特定應用程式介面之一個或多個親代應用程式介面之識別符。
  19. 如申請專利範圍第17項或第18項所述之系統,更包含:連接於至少一網路之一客戶端,該客戶端包含一電腦程式以設置該客戶端,使得該客戶端:向一個或多個伺服端請求該特定應用程式介面之識別符,其中該識別符包含可以取得該特定應用程式介面之定義資料之網路位址;以及接收一個或多個回應,其中每一回應包含可以該識別符所對應之應用程式介面定義資料溝通之一伺服端之網路位址。
  20. 如申請專利範圍第19項所述之系統,其中連接客戶端、該伺服端以及該等電腦主機之網路可為同質網路或異質網路。
TW102125505A 2012-09-27 2013-07-17 偵測與解析應用程式介面之方法與系統 TWI506553B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/628,189 US9323587B2 (en) 2012-09-27 2012-09-27 Method and system for automatic detecting and resolving APIs

Publications (2)

Publication Number Publication Date
TW201413584A true TW201413584A (zh) 2014-04-01
TWI506553B TWI506553B (zh) 2015-11-01

Family

ID=50339965

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102125505A TWI506553B (zh) 2012-09-27 2013-07-17 偵測與解析應用程式介面之方法與系統

Country Status (2)

Country Link
US (1) US9323587B2 (zh)
TW (1) TWI506553B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9292446B2 (en) * 2012-10-04 2016-03-22 International Business Machines Corporation Speculative prefetching of remote data
US20150033209A1 (en) * 2013-07-26 2015-01-29 Netapp, Inc. Dynamic Cluster Wide Subsystem Engagement Using a Tracing Schema
CN104539454B (zh) * 2014-12-24 2018-09-04 小米科技有限责任公司 设备管理方法、装置及系统
US9960968B2 (en) 2015-12-22 2018-05-01 Ca, Inc. Identification of networking component application programming interfaces
CN107547593B (zh) * 2016-06-27 2020-05-08 华为技术有限公司 一种实现日志同步的方法、装置及分布式系统
US10523531B2 (en) * 2016-11-15 2019-12-31 Verizon Deutschland Gmbh SDN-based API controller
US10592318B2 (en) * 2017-11-09 2020-03-17 International Business Machines Corporation Application programming interfaces in a multi-server environment
US11138033B1 (en) * 2018-08-24 2021-10-05 Amazon Technologies, Inc. Providing an application programming interface (API) including a bulk computing task operation
US11381564B2 (en) * 2020-10-09 2022-07-05 Sap Se Resource security integration platform
US11307847B1 (en) 2020-12-10 2022-04-19 International Business Machines Corporation Contextual application programming interfaces in a development environment
CN114844875B (zh) * 2022-04-21 2024-02-06 深圳依时货拉拉科技有限公司 一种应用程序编程接口api管理方法、装置、设备及介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5864669A (en) * 1996-07-11 1999-01-26 Microsoft Corporation Method and system for accessing a particular instantiation of a server process
CA2369797A1 (en) * 2002-01-31 2003-07-31 Bridgewater Systems Corporation System and method for web service management
US7840614B2 (en) * 2003-02-20 2010-11-23 Bea Systems, Inc. Virtual content repository application program interface
US20050015220A1 (en) * 2003-07-17 2005-01-20 Sun Microsystems, Inc. Automatic application programming interface (api) detection and methods of use thereof
US8533253B2 (en) * 2005-06-09 2013-09-10 Whirlpool Corporation Distributed object-oriented appliance control system
TWI409698B (zh) * 2007-06-07 2013-09-21 Chunghwa Telecom Co Ltd Can any removable API design system
CN100492369C (zh) * 2007-09-29 2009-05-27 北京交通大学 扩展uddi实现语义及个性化查询的方法及系统
US9015733B2 (en) * 2012-08-31 2015-04-21 Facebook, Inc. API version testing based on query schema
US8577914B2 (en) * 2011-05-18 2013-11-05 Google Inc. APIS discovery service
US8972489B2 (en) * 2011-11-15 2015-03-03 Google Inc. Providing a client interface for a server-based web application programming interface

Also Published As

Publication number Publication date
US20140089383A1 (en) 2014-03-27
US9323587B2 (en) 2016-04-26
TWI506553B (zh) 2015-11-01

Similar Documents

Publication Publication Date Title
TWI506553B (zh) 偵測與解析應用程式介面之方法與系統
JP6408545B2 (ja) ロケーションニュートラルソフトウェアの需要増大に伴う展開に対するシステム及び方法
US8656417B2 (en) Interface for telecommunication services using uniform resource identifiers
RU2503056C2 (ru) Веб-канал, базируемый на языке xml, для веб-доступа удаленных источников
KR100470493B1 (ko) 특수 도메인네임 분해 서비스 방법
CN110636093B (zh) 微服务注册和发现方法、设备、存储介质以及微服务系统
US20110099159A1 (en) System and Methods for Web Data Transformation Sourcing
US20110320522A1 (en) Context-specific network resource addressing model for distributed services
US7509422B2 (en) System and method for locating web services
CN112040013B (zh) 用于页面路由的方法、计算设备和计算机存储介质
CN108306844B (zh) 用于服务器与客户端之间的api通信的方法
JP2007026441A (ja) ウェブサービス政策の合意を行う装置及び方法
KR101775026B1 (ko) 페어 플레이 서비스 제공 방법 및 장치
US11303583B2 (en) Resource trees by management controller
CN113039498A (zh) 在工业系统网络中调试现场设备的方法
JP2009540462A (ja) コンパイルスコープを用いたサービスの発見
CN113961463A (zh) 应用环境切换方法及系统、存储介质和电子设备
CN110727417A (zh) 一种数据处理方法和装置
CN111008254A (zh) 一种对象创建方法、装置、计算机设备和存储介质
CN110933188A (zh) 远程服务的调用方法、系统、服务器及存储介质
CN108111496B (zh) 为dubbo分布式应用暴露http服务的方法、装置及系统
CN105306602A (zh) 超文本传输协议请求的处理方法、处理装置和服务器
WO2014043864A1 (zh) 应用调用的方法及操作系统、浏览器
CN112583891B (zh) 接口文档获取方法、装置和服务器
CN112783842B (zh) 一种日志收集方法和装置