Tengo que hacer una aplicación SaaS que es una herramienta colaborativa de edición UML. ¿Qué debo saber para hacer esta aplicación?

* Autenticación: mejor si es suficiente permitir iniciar sesión con Facebook o Google y así.

* Dibujo de lienzo HTML5: creo que una aplicación moderna donde manipulas gráficos debe estar libre de complementos para funcionar en todos los dispositivos.

* Web Sockets: para mantener a todos los colaboradores actualizados en tiempo real, necesitará una forma de distribuir los cambios de forma instantánea y eficiente en todos los navegadores con el mismo dibujo que se muestra en la pantalla.

* UML: por supuesto que necesita saber sobre el tema.

* Un mecanismo de persistencia: necesitará un almacén de datos capaz de manejar sus necesidades de datos. Exampe, bases de datos SQL como MySQL, Oracle, PostgreSQL o aquellos almacenes de datos NoSql de tendencia como Mongodb, Google Appengine Datastore o Amazon DynamoDB. Desde el punto de vista del usuario no hay diferencia. Sus datos se persisten en el tiempo. Es más una cuestión de su experiencia disponible.

* Entrega continua y automatización de despliegue: todo SaaS debe actualizarse con frecuencia y con un tiempo de inactividad cercano a cero. Necesita una configuración que envíe fácilmente sus cambios a todos sus servidores. Como, no copie el nuevo código / ejecutable con un comando SCP. Ejemplo, marioneta y chef. Esos se integran muy bien con la infraestructura de la nube. Es posible que no necesite esto si implementa en un PaaS.

* Pruebas y garantía de calidad: un error en su software puede causar grandes pérdidas de usuarios. Debe calcular cuánto hacen las pruebas unitarias y / o las pruebas de integración y / o las pruebas de humo y / o las pruebas funcionales (manuales) y / o las pruebas automatizadas en el navegador (sugerencia: controlador web), etc. Si hace demasiado, entonces los costos aumentan, pero si hace un mínimo, la calidad disminuye. Es complicado.

* Control de tareas y control de versiones de origen e integración continua: debe realizar un seguimiento de cómo está cambiando qué y cómo esos cambios “se ejecutan” en sus pruebas automatizadas. Ejemplo, Jira, Gitorius, Git, Svn, Jenkins, Travis-ci, Github.

* Virtualización e infraestructura en la nube: necesita hardware resistente a fallas. No importa si está utilizando servidores dedicados, un proveedor de nube IaaS o PaaS. Debe diseñar una configuración con equilibradores de carga, aprovisionamiento de instancias de máquinas virtuales, dns, redes, etc. para garantizar que una falla en una sola pieza de hardware no afecte a todos los usuarios. Quizás esto no sea un problema si usa un PaaS, pero tenga en cuenta los costos y la flexibilidad de esos.

* Redes de entrega de contenido: cuando tiene activos estáticos como css, js, imágenes o archivos que sabe que no cambiarán, entonces tiene la oportunidad de descargar el ancho de banda de descarga y las conexiones de sus servidores. Le permite escalar a más usuarios distribuidos geográficamente y tener la tranquilidad de no reinventar la rueda. Por ejemplo, Amazon S3 (el más popular), Akamai CDN (el que usa Facebook), Softlayer cdn, etc.

He implementado la herramienta de diagrama de flujo colaborativo ( http://flow.oodupinc.com/ ) usando Java, HTML, CSS, AJAX, SVG y JS puros, donde cada solicitud de diagrama de flujo se identifica usando una cadena de acceso que se descompone en parámetros adecuados. La solicitud se satisface leyendo datos de la memoria caché. Después de cada actualización, se borra el caché adecuado para que la nueva solicitud necesite una lectura de la base de datos.
Utilizo el diseño de software jerárquico reubicable.

Gracias por el a2a

Benny Schmidt ya hizo una buena recomendación. Mientras mira alrededor, le sugiero que también eche un vistazo a sails.js. Es un framework nodejs con una gran cantidad de cableado ya hecho para usted, por lo que puede comenzar con su aplicación de inmediato

En ese momento para esta tarea uso: StarUML (código abierto),
que tienen perfiles JAVA, EJB, PHP para agregar.
Los momentos positivos son una sólida gobernanza UML y una estructura completa que también se aplica en la generación de código.
Recomendar…

Tendrá que almacenar la información del modelo UML. Por lo general, esto se hace con XML, lo que significa que su sitio web será eliminado de algún tipo de base de datos. Por lo tanto, el desafío es la velocidad, especialmente para los modelos UML grandes.

1. que UML no es tan útil 😉
2. Node.JS, express, mangosta y MongoDB (o equivalentes), SVG, Socket.IO, html / css, por supuesto …

Definitivamente deberías saber quién lo va a pagar. El descanso seguirá.

More Interesting

¿Cuál es la mejor herramienta en línea para un cuestionario incrustado en un sitio web? Será una sola pregunta todos los días, los puntos para todas las preguntas se sumarán al final de la tercera semana y las preguntas de los días anteriores no estarán disponibles.

Al construir una nueva compañía de inventario / bienes físicos desde cero, ¿cuál es el mejor conjunto de SAAS / Cloud para la gestión de inventario, etc.?

¿Cuáles son los conceptos básicos de marketing del crecimiento de SaaS?

¿Qué software de tablero es útil para rastrear métricas críticas para nuevas empresas? ¿Qué métricas rastrea? ¿Hace comparaciones históricas? Los sistemas de inteligencia empresarial como Jasper y Pentaho parecen excesivos. ¿Hay soluciones más livianas?

¿Quiénes son los líderes de opinión clave en el campo de cómo administrar una empresa SaaS?

Cómo automatizar un producto SAAS

¿Cómo conseguiste tus primeros 1000 clientes para tu startup SaaS? ¿Fue dificil?

¿Existe alguna herramienta que combine la facilidad de comunicación de Intercom, el enfoque analítico de Kissmetrics con la interfaz de análisis de datos fácil de usar de Mixpanel (producto)?

Jason M. Lemkin, ¿cuáles son las señales que utiliza para identificar una startup 'muerta en el agua' o 'zombie'?

Un gran cliente solicita una configuración de inquilino único para utilizar nuestro producto SaaS. ¿Hay que decir que no?

¿Cómo deciden las personas la duración de la prueba gratuita?

¿Cuál es EL mejor software de reservas de clientes de SaaS para un sitio web / aplicación que ofrece servicios a pedido (piense de manera similar a la limpieza del hogar de Homejoy, la limpieza en seco de Washio para usted, etc.)? Gracias Quorers!

¿Cómo diseñó Atlassian los precios de JIRA y Confluence?

¿Cuáles son las mejores soluciones de CRM en la nube para una pequeña empresa que funcionan con Outlook?

¿Qué depara el futuro para los ingenieros de construcción y lanzamiento?