Grupa Allegro udostępniła kolejny projekt open source, tym razem dedykowany programistom PHP. PHP Protobuf to mechanizm, który umożliwia transformację danych do ustandaryzowanej postaci w celu przekazania innemu użytkownikowi. To jedyna tak wydajna implementacja dla języka PHP.

Protocol Buffers (w skrócie Protobuf) to niezależny od języka programowania i od platformy rozszerzalny mechanizm serializacji danych strukturalnych. Serializacja danych strukturalnych to ich transformacja do postaci, która może być przesłana poprzez sieć do innego komputera lub zapisana na dysku twardym. Dane można serializować do formatu XML, JSON oraz właśnie do Protocol Buffers, który jest jednak mniejszy, szybszy i prostszy. Definiuje się strukturę danych, następnie używa się specjalnie wygenerowanego kodu źródłowego do łatwego odczytu i zapisu tych danych z i do różnego rodzaju strumieni, korzystając z dowolnego języka programowania.

Protobuf powstał z myślą o zastosowaniu w protokołach RPC (ang. Remote Procedure Call – zdalne wywołanie procedury) oraz bazach danych. W Allegro sprawdza się w warstwie cache'ującej aplikacji w protokole komunikacji. Szybko okazało się, że w niektórych przypadkach tłumaczenie danych z jednej postaci na drugą jest nadmiarowe. Składując dane w tym samym formacie, upraszcza się obsługę zapytań oraz zwiększa jej wydajność.

W czasie, kiedy zainteresowaliśmy się Protocol Buffers istniała gotowa implementacja dla języka PHP – pb4php. Niestety, jej wydajność była niesatysfakcjonująca. Dzięki temu, że jest to projekt open source, udało się zlokalizować i wyeliminować wąskie gardła z kodu,  redukując czas parsowania o blisko 70 proc. Pomimo tego, wydajność wciąż nie spełniała oczekiwań. Ostatecznie wąskim gardłem okazała się technologia użyta do implementacji – język PHP – mówi Hubert Jagodziński, Specjalista ds. Rozwiązań Backendowych w Grupie Allegro, który odpowiada za ten projekt. Dlatego zdecydowaliśmy się przygotować własną implementację jako rozszerzenie PHP, czyli właśnie PHP Protobuf. W ten sposób udało się osiągnąć satysfakcjonującą wydajność – dodaje.

PHP Protobuf to jedyna wydajna implementacja open source mechanizmu dla języka PHP. Pomimo formy rozszerzenia PHP (niskopoziomowy język C), nie posiada zależności od systemu operacyjnego. Na stronie https://github.com/allegro/php-protobuf można znaleźć informacje i aktualności związane z projektem PHP Protobuf, w tym kod źródłowy.

Zawsze chętnie angażujemy się w projekty open source. W ten sposób możemy odwdzięczyć się społeczności skupionej wokół wolnego oprogramowania za to, z czego na co dzień korzystamy w naszej działalności oraz podzielić się naszą wiedzą i zaprezentować światu naszą firmę i developerów. Jest to także świetna okazja dla nas do nauki – zarówno podczas tworzenia kodu, jak i wtedy, gdy przejmuje go społeczność, która zawsze dodaje coś od siebie – mówi Krzysztof Dąbrowski, CIO Grupy Allegro.

źródło: informacja prasowa

Komentarze (0)