2010-09-22 9 views
9

Estoy ejecutando una interfaz PHP en una aplicación que trabaja mucho con los datos y usa Cassandra como un almacén de datos.Uso de C++ para cálculos de back-end en una aplicación web

Sin embargo Sé PHP no me va a dar el rendimiento que necesito para algunos de los cálculos (así como la gestión de la enorme cantidad de datos que es necesario estar en la memoria)

me gustaría escribir las cosas respaldadas en C++ y acceda a ellas desde la aplicación PHP. Estoy tratando de descubrir la mejor forma de conectar los dos.

Algunas opciones que he visto:

  1. Thrift (Una elección natural como yo ya lo estoy usando para Cassandra)
  2. de Google Protocol Buffers
  3. gSOAP
  4. Apache Axis

Lo anterior son solo cosas que miré, no me estoy limitando.

Los datos que se transfieren a la aplicación PHP son muy pequeños, por lo que no se requiere la transmisión. Solo se transfieren los resultados de los cálculos.

¿Qué piensan?

+0

+1 para una buena pregunta. Espero las respuestas (por cierto, lirk gSoap) – Mawg

+0

Gracias, ¿qué te gusta de gSOAP? –

Respuesta

1

Más detalles acerca de cuántos datos necesitarán sus cálculos serían útiles. Ahorrar parece una elección razonable. Podrías usarlo entre PHP, tu nodo de computación y el back-end de Cassandra. Si su resultado es pequeño, su transporte de RPC entre PHP y el nodo de computación no hará mucha diferencia.

2

¿Se está limitando a tener C++ como una aplicación separada? ¿Has considerado interconectarlo con el PHP directamente? (es decir, vincular una extensión C++ en su aplicación PHP).

No estoy diciendo que el segundo enfoque sea necesariamente mejor que el primero, pero debe considerarlo de todos modos, ya que ofrece algunas opciones diferentes de compromiso. Por ejemplo, la latencia de pasar cosas entre PHP y C++ seguramente sería mayor cuando las dos son aplicaciones separadas que cuando son la misma aplicación vinculada dinámicamente.

+0

He considerado agregarlo con SWIG, pero creo que tiene más sentido para mí extraer los datos de Cassandra en lugar de ahorrarlos en mi aplicación C++, hacer el cálculo y consultar el resultado de PHP. –

+0

@Stephen: en última instancia es su elección, por supuesto, solo quería resaltar que este también es un camino válido para tomar –

3

Si yo fuera tú, usaría el ahorro, no tiene sentido tirar en otro marco RPC. Ve con lo que tienes y ya sabes. Thrift lo hace tan fácil (también lo hace el protocolo de buffers de Google, pero en realidad no necesita dos mecanismos diferentes)

Cuestiones relacionadas