О чем идет речь «SDK против« битов на проводе »? - PullRequest
7 голосов
/ 24 ноября 2008

Похоже, что идут некоторые споры о том, что «разрыв между желанием получить SDK и желанием узнать базовый протокол» (см. http://www.tbray.org/ongoing/When/199x/1999/08/18/BitsOnTheWire).

Я не очень понимаю, о чем идет речь, или почему они взаимоисключающие.

Какова философия каждого подхода и почему они конфликтуют?

Ответы [ 5 ]

10 голосов
/ 24 ноября 2008

Предположим, клиенту C необходимо связаться со службой S, предоставляемой поставщиком V. Если у вас есть только SDK, то необходимо установить программное обеспечение SDK поставщика V на клиенте C, чтобы поговорить с S. С другой стороны, если поставщик V документирует в точности как для связи со службой S вплоть до уровня битов, то вы можете написать собственное программное обеспечение на клиенте C для прямой связи со службой S.

7 голосов
/ 24 ноября 2008

Они на самом деле не являются взаимоисключающими. Это скорее континуум, но философия развития систем тяготеет к одному концу или другому.

По существу, биты в проводе говорят, что коммуникационный протокол достаточно прост, чтобы его можно было описать сторонним разработчикам с помощью некоторой относительно простой (или даже неформальной) спецификации. Это означает, что сервис может использоваться любыми непредвиденными способами, и потребитель сервиса не обязательно должен быть официально поддерживаемой платформой.

С другой стороны, компании с такими монолитными предложениями, как Apple и Microsoft, могут позволить себе роскошь выбрать другую философию, заключающуюся в создании полного сквозного SDK. Теоретически это облегчает жизнь разработчиков, абстрагируя их от сложностей базовых протоколов, одновременно освобождая продукт для выполнения более сложных задач и уменьшая ошибки разработчика. Конечно, есть еще биты, и они все еще идут по проводу, и они могут быть перепроектированы. Однако это будет значительно (на порядки) труднее сделать, чем использовать протокол, который был разработан, чтобы быть понятным, особенно если он был намеренно запутан или зашифрован для обслуживания деловых интересов.

3 голосов
/ 24 ноября 2008

Хотя в некоторых ситуациях полезно знать, что происходит на битовом уровне, особенно для устранения неполадок, использование SDK поставщика может быть лучшим способом изолировать вашу интеграцию от любых будущих изменений, которые поставщик может внести в свою структуру обмена сообщениями .

Это не означает, что не будет неудобства с точки зрения получения последней версии SDK и тому подобного, но, по крайней мере, если поставщик выполнил свою работу правильно, вам не нужно беспокоиться об изменении кода, просто используя их новый SDK.

Например, мы работали с компанией ISD, которая специализируется на продуктах для переключения платежей. Мы закодировали их SDK. Хотя их продукты прошли через некоторое управление версиями, самое большее, что мы должны были сделать, это обновить библиотеки DLL на клиентских компьютерах. DLL сохранила те же общедоступные интерфейсы.

1 голос
/ 24 ноября 2008

Если вы идете по маршруту SDK, очень важно не указывать биты в спецификации проводов, как это произошло в этой истории .

1 голос
/ 24 ноября 2008

Они не должны быть взаимоисключающими, просто любой, кто предоставляет услугу, будет либо фокусироваться на SDK, либо на проводном протоколе в качестве общедоступного обещанного интерфейса для клиентов. Вы могли бы иметь услугу, которая предоставляла бы и то, и другое, и позволить вашим клиентам выбирать, на какой из них сосредоточиться, но это может быть роскошью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...