2010-07-22 209 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(又名服务访问点)到上层访问其功能。