Aquí analizaré los principales servidores multiusuario y de streaming que existen para Flash, Flex y Actionscript: Flash Media Server, Red5 y Wowza. He tenido la suerte de trabajar con ellos y quería dejarles mis 2 centavos.
Antes que nada aclarar que cualquiera de los 3 puede hacer perfectamente el trabajo, así que la decisión no es fácil y va mucho en los detalles. Toda esta discusión se dio por la elección de servidores de dotGaia Fleets.
Red5, Open Source, gratis, Java
Red5 tiene un punto inigualable: es gratuito y open source. Eso lo hace el candidato ideal para cualquier proyecto que arranca y para hacer pruebas. Lo he usado en broadcast y como socket server bastante bien, pero he tenido problemas reiterados de desfase de audio cuando grabo video. Otro problema es la falta de documentación y ejemplos. Si rulan por los tutoriales cubre todo lo básico, pero en contextos mas complejos hay que empezar a pelar código fuente (en Java, claro).
Hay unas cuantas herramientitas, recuerdo un panel y un debugger parecidos a los de Flash Media Server (FMS) que se conseguían por allí y que andaban decentemente. Otro problema para mi fue el hosting y donde se achica más la oferta si necesitan un entorno escalable, porque la mayoría de los Content Delivery Network (CDN) trabajan con Wowza o FMS, pero bastante poco con Red5.
Esto porque se complica dar soporte (y los tres, cuando hay mucha guerra, petan). No digo que no existan hosting basados en Red5, pero a la hora de escalar cualquier multiusuario, los costos de licencia se minimizan en la ecuación de lo que se come la torta es la transferencia y distribución.
Wowza, heredero de Flash Media Server
Wowza es un intermedio, lo hizo gente del team de Adobe FMS que se abrió por su cuenta y también usa Java del lado servidor. En esto es similar a Red5 y hay que tener en cuenta una cosa: hay que reiniciar cada vez que se sube (o parchea) un módulo. En Wowza se hace a nivel de aplicación sin problema, pero creo que con Red5 tenía que reiniciar el servidor entero (aclaración: puede que en este último año Red5 haya cambiado, es el que mas tiempo llevo sin usar).
No es gran problema en etapa de desarrollo (si no se olvidan de darle un handler a la desconexión y reciben llamadas furiosas de QA's con pantalla congelada, jeje) pero tiene cierta lentitud como proceso, si han trabajado con servlets de java sabrán lo que les digo.
Wowza tiene ventajas interesantes para broadcast de audio y video. Por ejemplo unos settings de calidad que pones en el XML de una forma tan fácil que creo que lo haría mi tía. La documentación está mucho mas completa y centralizada, y en el foro se pueden encontrar ejemplos bastante mas allá de los banales, con gente experimentada en situaciones mas complejas (que me salvó la vida, gracias).
Hace unos meses Amazon sacó un servicio de CDN con Wowza que factura por transferencia (a partir de un mínimo) bastante interesante que prometía ser la panacea de mis necesidades porque era muy asequible, pero no permite subir y distribuir módulos personalizados. Todo mi gozo en un pozo. De todas formas, se puede usar una estructura híbrida en la que un servidor haga la capa de negocios, usando esta red para streaming puro y duro.
Aunque realmente sí es necesario, porque usar simplemente la nube de Amazon para tirar de archivos estáticos es por lejos lo mas barato.
Flash Media Server de Adobe, el oficial
Y finalmente (para que negarlo) mi favorito, Flash Media Server. La opción de la que todo el mundo huye tildándola de cara. Debo decir que sin duda es el mas caro en cuanto a licencia (unos US$4000 para una licencia pro la última vez que lo averigué) ¿Pero acaso quieren instalarlo en un servidor propio?
Aquí está la diferencia en la ecuación: Si quieren hacer un hosting propio (es decir colocar su propio servidor en un NOC) entonces la licencia es ruinosa, pero si lo piensan mejor y eligen cualquiera de las CDN del mercado entonces no hace falta mucha calculadora para darse cuenta que la transferencia y disponibilidad se lleva la parte del león, y allí las diferencias tienden a achicarse. Oferta confiable sobre Red5 (estoy hablando a nivel empresarial) desconozco, la mayoría está sobre FMS y varias con Wowza que tiene variantes de precio interesantes.
Tiro algunos números más de Flash Media Server, porque creo que ese es el punto más discutido. Un hosting de desarrollo (10 usuarios, transferencia limitado, apto para demos a clientes o ping-pong entre desarrolladores) unos US$10 al mes. Uno que se la banque, entre US$100 y US$300 mensual dependiendo de la oferta de distribución.
Me baso en Influxis que es donde tengo últimamente las cosas. Hay redes similares como VitalStream o redes más caras y muy fiables como Akamai. En la web de Stefan Richter con el que tuve la suerte de trabajar, encuentran un listado bastante completo de hosting no sólo FMS.
Si se desarrollan cosas como un juegos, la latencia marca diferencias haciendo inviable un juego que se salga de cierto umbral.
Donde aprender más de servidores multiusuario y de streaming para Flash
En "Programming Flash Communication Server" se encuentra impresionante cantidad de documentación junto al mejor libro que se haya escrito jamás sobre streaming/multiusuario en Flash. También un par de pequeños frameworks dando vuelta para el lado de servidor y los peores componentes nunca vistos (jeje, nobleza obliga).
Tip para arquitectos: Con una adecuada encapsulación de la lógica multiusuario (dígase buen proxy) se puede mover de uno en otro con poco pánico.
Otro tip: Hay que evaluar si el streaming de video es realmente necesario en un proyecto (porque es de lejos lo mas caro) y si no, se puede usar una estructura híbrida (servidor multiusuario + pseudostreaming con archivos estáticos y servidor HTTP).
Espero haber aportado a la discusión. Lamento mucho no haberme sumado al equipo de dotGaia Fleets, pero estoy trabajando desde hace unos 6 meses para Electronic Arts (via consultora, no existe el trabajo para esos monstruos como freelance) a un ritmo casi vertiginoso y dudo mucho de mi disponibilidad.
Just my 2 cents.
Jorge (@solisarg)
¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.
Por Zguillez el 26 de Julio de 2010
Por Lunaty el 26 de Julio de 2010
Por XKlibur el 26 de Julio de 2010
Por leobaraldi el 26 de Julio de 2010
Por daz_angie el 26 de Julio de 2010
Genial aporte
Por Vlada el 26 de Julio de 2010
Por Pedro el 26 de Julio de 2010
Por eparada el 26 de Julio de 2010
Por Aoyama el 26 de Julio de 2010
Por solisarg el 26 de Julio de 2010
Jorge
Por bubudrc el 26 de Julio de 2010
gracias por compartirlo.
saludos
Por Huge el 26 de Julio de 2010
Saludos
Por hugo boss el 27 de Julio de 2010
Por Freddie el 27 de Julio de 2010
hugo boss-blog :
Explicarlo aporta más. También demuestra mejor know-how de tu parte
Igualmente, si "solo funcionan para multiusuario y aun asi les queda mucho que mejorar" ¿Entonces cómo experto qué elegirías? En caso de que tengas una opinión formada, claro.
Por Juanlu_001 el 27 de Julio de 2010
Mammoth Server: http://mammothserver.org/
Flazr: http://flazr.com/
En el caso del primero, ni siquiera han llegado aún a una versión estable, pero promete.
¡Saludos!
Por selecters75 el 27 de Julio de 2010
Vlada-blog :
Jorge, este es un amigo tuyo?
Muy buen articulo!
Por torrealbaruben el 27 de Julio de 2010
Por rolv el 28 de Julio de 2010
Por selecters75 el 28 de Julio de 2010
Ej: http://apps.facebook.com/j_linguo/
Por eldervaz el 28 de Julio de 2010
y pues ya lo dije antes y lo digo ahora, es un buen resumen de jorge, y tuve reiteradas oportunidades de trabajar con ellos, y pues en lo personal, me quedo, de lejos, con FMS
Por onTilt el 30 de Julio de 2010
En mi empresa, empezamos con red5, pero finalmente nos quedamos con FMS, no hay color, FMS es fácil, hay documentación y tampoco es tan caro (como bien argumenta Jorge)
Si me lo preguntan, yo FMS.
Por rolv el 31 de Julio de 2010
Gracias
Por predicol el 04 de Agosto de 2010
porque tiene que ser tan caro??
Por X_X el 19 de Octubre de 2010
Por solisarg el 19 de Octubre de 2010
Jorge
Por Alejandro el 28 de Noviembre de 2010
Si yo tengo mi server limitado a un numero de 3 a 4 usuarios con flash media puedo tener hasta cuantos usuarios viendo lo mismo que yo?
Por Vlada el 10 de Diciembre de 2010
Por Juan Carlos Agama - el 22 de Enero de 2011
corto, conciso y preciso
Por nohemi el 16 de Febrero de 2011
Por benjhy el 20 de Abril de 2011
Por mayitoperu el 27 de Abril de 2011
Por paranoio el 01 de Agosto de 2011
Por Anonymous el 10 de Agosto de 2011
Por el contexto del proyecto, creo que lo más adiente sería FMS.
Si el ancho de banda de subida des de dónde se va a emitir la señal de vídeo es de 1mbps, el vídeo que se emitirá será de 500kbps, los usuarios que podrán acceder a él dependen del ancho de banda del servidor CDN o del ancho de banda de emisión?
Es decir, actua el servidor FMS en el CDN como repetidor¿?
Muchas gracias de antemano.
Por solisarg el 10 de Agosto de 2011
Jorge
Por hieluki el 21 de Octubre de 2011
Por Alan Hugo el 11 de Septiembre de 2013
Por peterlavey el 08 de Enero de 2014