Платформа разработана Facebook и теперь поддерживается Apache Software Foundation. Инженеры Facebook разработали эту платформу для межъязыкового взаимодействия. Они разработали Thrift IDL — язык определения интерфейса, об этом позже.
Как это работает?
Предположим, что ваши клиентские приложения работают на java (скажем, Android), а серверные — на python. Вам нужна функция распознавания лиц на изображении в клиентском приложении и код для распознавания лиц стоит на сервере, т.е. написано на питоне. Как вы общаетесь?
А вот и бережливость. Thrift дает вам возможность написать файл IDL, в котором вы пишете фрагмент кода, связанный с вашим требованием, на языке, указанном Thrift, т.е. Thrift IDL, языке определения интерфейса. Здесь вы просто упоминаете все, что вам нужно, и бум!! Thrift выполнит остальную часть работы, создав шаблонный код для клиента и сервера.
Итак, для функции распознавания лиц ваш резервный файл состоит примерно из этого:
Обратитесь к оригинальному руководству по документации. Это просто для понимания цели
того, что происходит.
namespace for client (java) namespace for server (python) service FaceRecog{ string getBinaryStringForImage(1:string input), }
Запустите команду: thrift -gen [lang-code] filename.thrift
для клиента и сервера. Это создаст две папки, как для сервера, так и для клиента. В этом находится автоматически сгенерированный код. Как клиентский, так и серверный код содержат интерфейс с методом, который getBinaryStringForImage
должен быть реализован разработчиками. Также разработчики должны написать дополнительный код для настройки сервера и клиента, указав IP-адрес и номер порта.
Пример кода и руководство будут загружены в ближайшее время.