26 maja 2009

Erlang + PHP - nastała era miksowanych rozwiązań

Jak sami wiecie najlepsze kanapki to takie, które mają wiele smakowitych składników :-)
Takie kanapki można porównać do połączenia technologii PHP oraz Erlang. Kontrast języka skryptowego PHP przeznaczonego do przetwarzania i tworzenia hipertekstu, prostych zadań po stronie serwera oraz ponadczasowego języka funkcyjnego z własnymi mikrowątkami do przetwarzania danych w chmurach obliczeniowych Erlang. Kontrast dość spory, więc postanowiłem sprawdzić, co wynika z zestawienia takich odrębnych tematów.


src: http://www.flickr.com/photos/tobiasschlitt/2644905363/

Niewątpliwie zaletą języka PHP jest jego popularność na sporej liczbie produkcyjnych serwerów serwujących dynamiczny kontekst, możliwość zestawienia połączeń z powszechnymi bazami danych, stały rozwój języka oraz prostota programowania w nim. Do tego spora społeczność znawców oraz zadających stale te same FAQ na forach powoduje mega popularyzację tematyki programowania stron oraz aplikacji internetowych. Przyglądając się rozwojowi języka z perespektywy kilku lat znajdziemy w jednym dość specyficznym temacie dość spory niedosyt. Dokładnie mam na myśli w brak wielowątkowości w języku PHP. Jest to może i śmieszne, ale bywa zgrozą na codzień dla poważniejszej kady developerów PHP. Nie będę rozpisywał się o tym, że takie języki skryptowe jak Python, Ruby, Lua mają wbudowaną obsługę wieloeątkowości ... i to je stawia zupełnie na innym podium ;)

Spoglądając z kolei na język Erlang i jego możliwości tworzenia nieograniczonej ilości wbudowanych mikrowątków, które są niezależne od platformy i wątków systemowych, można wymyślić wart świeczki pomost dla tych technologii. Warto też przytoczyć jakieś dwa przykłady, w których ten język osiągnął popularność i sukces tzn. serwer metakomunikatora ejabberd oraz baza danych Amazon SimpleDB. Chcących poznać pozostałe przykłady polecam wikipedia oraz google :)

Dla chcących wtajemniczyć się w dość ciekawy temat łączenia technologii polecam materiały dodatkowe, w których znajdują się opisy oraz objaśnienia jak takiego powiązania dokonać.

Zapraszam serdecznie chcących podyskutować o wydajności i szczegółach technicznych. Czy używacie w soich projektach takiego rozwiązania ? Czy wiecie może jakie są postępy nasza-klasa.pl we wbudowaniu ejabberd w ich portal ?



Materiały dodatkowe:

Persistent PHP processes in Erlang/OTP

PHP/Erlang aims to be a PHP extension with a simple set of functions for turning a PHP thread into an Erlang C-node

A PHP eval server for Erlang/OTP

peb (Php-Erlang Bridge) is an open-source php extension to run php as an Erlang cnode

Reading Serialized PHP Objects from Erlang

Brak komentarzy: