2010-09-22 10 views
9

Używam interfejsu PHP do aplikacji, która wykonuje wiele pracy z danymi i używa Cassandra jako magazynu danych.Używanie C++ do obliczania backendu w aplikacji internetowej

Jednak wiem, PHP nie da mi potrzebne do wykonania niektórych obliczeń (jak również zarządzanie dla samej ilości danych, które muszą być w pamięci)

Chciałbym napisać wspierane pliki w C++ i dostęp do nich z aplikacji PHP. Próbuję znaleźć najlepszy sposób na połączenie dwóch.

Niektóre opcje Sprawdziliśmy:

  1. Thrift (naturalnym wyborem, ponieważ już używam go do Cassandry)
  2. Protocol Zderzaki
  3. gSOAP
  4. Apache Axis Google'a

Powyższe są tylko rzeczy, na które patrzyłem, nie ograniczam się.

Dane przesyłane do aplikacji PHP są bardzo małe, więc przesyłanie strumieniowe nie jest wymagane. Przesyłane są tylko wyniki obliczeń.

Co myślicie?

+0

+1 za dobre pytanie. Czekam na odpowiedzi (btw, I lirk gSoap) – Mawg

+0

Dzięki, co lubisz o gSOAP? –

Odpowiedz

1

Więcej informacji o tym, ile danych będą potrzebne twoje obliczenia. Oszczędzanie wydaje się rozsądnym wyborem. Możesz go użyć między PHP, twoim węzłem obliczeniowym a serwerem Cassandra. Jeśli twój wynik jest niewielki, transport RPC między PHP a węzłem obliczeniowym nie spowoduje zbyt dużej różnicy.

2

Czy ograniczasz się do posiadania C++ jako oddzielnej aplikacji? Czy rozważałeś powiązanie go z PHP bezpośrednio? (tzn. połączyć rozszerzenie C++ do twojej aplikacji PHP).

Nie twierdzę, że drugie podejście jest z konieczności lepsze od pierwszego, ale warto to rozważyć, ponieważ oferuje różne opcje kompromisu. Na przykład opóźnienie przekazywania treści między PHP i C++ na pewno będzie większe, gdy te dwie aplikacje będą osobne niż wtedy, gdy będą dynamicznie połączone z tą samą aplikacją.

+0

Zastanawiam się nad dodaniem go za pomocą SWIG, ale wydaje mi się, że bardziej sensowne jest dla mnie wyciągnięcie danych z Cassandry z nadmiaru do mojej aplikacji C++, wykonanie obliczeń i zapytanie o wynik z PHP. –

+0

@ Stephen: ostatecznie to Twój wybór, chciałbym tylko podkreślić, że jest to również poprawna ścieżka do podjęcia –

3

Gdybym był tobą, użyłbym oszczędności, bez sensu wciągając inne ramy RPC. Idź z tym, co masz i już wiesz. Thrift czyni to tak łatwym (podobnie jak bufory protokołu google, ale tak naprawdę nie potrzebujesz dwóch różnych mechanizmów)

Powiązane problemy