2010-07-22 210 views
1

我正在開發一個開放的「協議」,用於使用移動電話的動態乘車服務。 它基於XML-RPC並使用編組對象作爲參數(非常像Soap)。是基於現有協議的協議還是協議?

草稿中將詳細記錄每個實體和操作。例如,看看在協議中使用的Prefs對象的第一個骨架。


偏好設置對象

存儲由誰創造它的人設置了旅行的喜好[..]

Attribute Type  Requirement 
age   string  MAY 
nonsmoking boolean  MAY 
gender  string  MAY 
drive  boolean  MAY 
ride  boolean  MAY 
  • 即使偏好設置對象的所有屬性都是可選,在進行XML-RPC調用時必須提供Prefs類型的對象。在零情況下屬性提供,一個空的XML-RPC結構一個空對象representend必須被提供
  • 性別MUST是任何值{ 'M', 'F', 'B' 的},意爲 '男', '女' 或 '兩者'

以下是在協議操作中使用的一個有效的偏好設置對象:

<struct> 
<member> 
    <name>nonsmoking</name> 
    <value> 
    <boolean>0</boolean> 
    </value> 
</member> 
<member> 
    <name>gender</name> 
    <value> 
    <string/> 
    </value> 
</member> 
<member> 
    <name>ride</name> 
    <value> 
    <boolean>0</boolean> 
    </value> 
</member> 
<member> 
    <name>drive</name> 
    <value> 
    <boolean>0</boolean> 
    </value> 
</member> 
<member> 
    <name>age</name> 
    <value> 
    <string>18-40</string> 
    </value> 
</member> 
</struct> 

使用Prefs對象的操作將具有包含所有細節的HTTP POST操作的完整描述。

您會稱這一個爲Protocol還是API?也就是說,如果我們編寫一個基於另一個協議(在本例中是XML-RPC)的協議,衍生作品又是一個協議?

我想知道,因爲我將在我的學士論文談到這一點,我不想說一些很愚蠢的:)

謝謝!

回答

3

嚴格來說,每個API都是一個協議。協議通常基於其他協議。 TCP基於IP。 HTTP位於TCP之上,HTTPS基於HTTP等。

您的協議不是網絡協議,而是應用級通信協議。

+0

非常感謝您的澄清! – dgraziotin 2010-07-22 12:59:13

2

該協議本身就像一種機制,提供一組相關功能在網絡中的節點上工作。 協議的上層可以是應用程序或其他協議。 該協議提供了一個API(又名服務訪問點)到上層訪問其功能。