似乎存在一些关于"需要SDK并希望了解底层协议之间的鸿沟"的争论(见http://www.tbray.org/ongoing/When/199x/1999/08/18/BitsOnTheWire).
我真的不明白这是指什么,或者为什么它们是相互排斥的.
每种方法的理念是什么?为什么它们会发生冲突?
假设客户端C需要与供应商V提供的服务S进行通信.如果您拥有的是SDK,则必须在客户端C上安装供应商V的SDK软件才能与S通信.另一方面,如果供应商V文档确切地说如何与服务S通信到位级别,然后您可以在客户端C上编写自己的软件以直接与服务S通信.
它们并非真正相互排斥.它更像是一个连续统一体,但系统背后的发展理念往往倾向于一端或另一端.
线路上的位基本上说通信协议很简单,可以通过一些相对简单(甚至非正式)的规范向外部开发人员描述.这意味着该服务可以以各种不可预见的方式使用,而服务消费者不必是官方支持的平台.
另一方面,拥有Apple和Microsoft等单一产品的公司可以选择另一种理念,即构建完整的端到端SDK.从理论上讲,这可以让开发人员更轻松地抽象出底层协议的复杂性,同时释放产品以执行更复杂的操作,并减少开发人员的错误.当然还有比特,它们仍然可以通过电线,它们可以进行逆向工程.然而,与使用旨在可理解的协议相比,这将相当大(数量级)更难做,特别是如果它被故意模糊或加密以服务于商业利益.