Категории

Apache Thrift

Apache Thrift (е език за описание на интерфейси, който се използва за дефиниране и създаване на услуги за различни езици за програмиране. Той е рамка за отдалечено извикване на процедури (RPC). Разработена е от Facebook като мащабируема междуезикова услуга за разработка.

Apache Thrift съчетава програмен конвейер с механизъм за генериране на код за разработване на услуги, които работят ефективно и лесно между езици като C#, C++, Cappuccino, Cocoa, Delphi, Erlang, Go, Haskell, Java, OCaml (Objective Caml ), Perl, PHP, Python, Ruby и Smalltalk. Казано по-просто, Apache Thrift е двоичен протокол за комуникация.

Софтуерният конвейер, се състои от шест нива, за обработка на клиентската и сървърната страна. Най-горното ниво е генерираният код за описание Apache Thrift. Услугите генерират клиентски и сървърен код от него. За разлика от вградените типове, генерираната структура от данни се връща като резултат в генерирания код. Протоколните и транспортните нива са част от библиотеката runtime-. В Apache Thrift е възможно да се избират услуги и да се променят протоколът и транспортът, без да се прекомпилира кодът. В допълнение към клиентската част Thrift включва сървърна инфраструктура за протоколна и транспортна комуникация в сървърите blocking, non-blocking и multi-threaded. Рамката на входно-изходния слой е реализирана по различен начин за различните езици.

От април 2007 г. тя се разработва като проект Open Source от Apache Software Foundation.

Поддържани протоколи Apache Thrift

Подходящ за парсване в скриптови езици.

Поддържани преносители Apache Thrift

Изпраща данни на кадри, като всеки кадър е предшестван от информация с определена дължина.

Реализацията на Java използва прост вграден ByteArrayOutputStream.

Използва се в комбинация с друг транспорт. Не присъства в изпълнението Java.

Поддържани сървъри Apache Thrift

Тези сървъри трябва да използват TFramedTransport.

Полезно за тестване.

Използване на сайтове Apache Thrift

Предимства на Apache Thrift

Не се нуждае от рамка за кода. Не използва конфигурация на XML-.

Например, Java използва ArrayList. C++ използва std::vector.

Те могат да бъдат променяни независимо една от друга.

двоичен код, удобен за HTTP и компактен двоичен код.

Apache Thrift не изисква централизиран и явен механизъм като major-version/minor-version. Свободно свързаните групи могат свободно да преминат към повиквания на RPC.

Няма несъвместими софтуерни лицензи.

Категории: Други езици, За разработчици, Компоненти и библиотеки, Средства за разработка

Реклама