Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Temas relacionados > Debates
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-06-2012
mcs mcs is offline
Miembro
 
Registrado: may 2007
Ubicación: Girona
Posts: 229
Poder: 18
mcs Va por buen camino
¿Se fian los usuarios de las aplicaciones hospedadas (SaaS)?

El título es bastante descriptivo, pero voy a detallar más mi dilema.

En 2006, realizé una aplicación para una asociación. Dicha aplicación servía para llevar el control de socios, la contabilidad y una serie de informes.

La aplicación ha estado creciendo durante este tiempo, y ha llegado el momento de crear una versión nueva. La versión actual está escrita en Java+Swing+MySQL.

Cómo esta aplicación es útil, y prácticamente única en su campo, mi intención es comercializarla más, y este es el motivo por el cual necesito una nueva versión.

Para la versión nueva tengo dos opciones:
a) Que sea una aplicación de escritorio y la programe en Delphi. Se vende la aplicación al usuario final y, si este lo desea, cada año se cobra mantenimiento o puede comprar actualizaciones.
b) Que sea una aplicación web hospedada creada en Rails o similar. Mensualmente (o anualmente) se cobra una cantidad fija en concepto de derecho de uso.

Desde el punto de vista técnico, prefiero la versión Delphi. Desde un punto de vista monetario, prefiero la versión web.

Pero mi gran duda es: ¿Los usuarios se fían de las aplicaciones hospedadas?

Debemos tener en cuenta que esta aplicación no es la típica para almacenar fotos de los niños o de las pasadas vacaciones, sinó que aquí van a haber datos personales (nombre, dirección, teléfono, nif) y bancarios (se puede pagar por domiciliación bancaria) de los socios, así como toda la contabilidad de la asociación.

Por otra parte, la grandeza de las aplicaciones hospedadas es que el usuario se olvida totalmente del tema mantenimiento: no debe hacer copias de seguridad, no debe instalar actualizaciones... Además, puede usar la aplicación desde cualquier ordenador y no debe instalar nada. Eso si, si no tiene conexión a Internet, no puede acceder a sus datos.

Las asociaciones a que van dirigidas esta aplicación son españolas, de ámbito local, y generalmente pequeñas (unos 100-200 socios). Y, por norma general, una única persona es la responsable de la contabilidad y el control de los socios.

¿Vosotros qué creéis, la gente se fiaría de una aplicación hospedada, teniendo en cuenta que detrás de esta aplicación sólo hay una persona (un autónomo, no una sociedad)? ¿O mejor me olvido del tema, y vendo una versión instalable del programa?

Muchas gracias por vuestras aportaciones!
Responder Con Cita
  #2  
Antiguo 15-06-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.042
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Bueno, lo que comentas es lo que hoy llaman "aplicaciones en la nube", ¿la gente se fia?, normalmente sí, en mi caso... no, rotundo
Como dices, tiene la ventaja de que el usuario se olvida de backups y cosas así, un gran error, ya que lo primero que yo haría en esos casos es precisamente eso, hacer más backups de lo habitual, vayan a perder mis datos allá "arriba".
Si vas a manejar los datos "sensibles" que dices, entonces tendrás que asegurarte muy bien en cumplir la ley de protección de datos, ya sabes, te pueden caer multas bien gordas. Así que además deberías cifrar/encriptar los datos, tener un buen sistema de control de los usuarios para que no haya problemas de usurpación, etc.
Desde luego, una aplicación de escritorio es más cómoda, segura, etc.
Aunque en este caso tendrás que decidir tú
Responder Con Cita
  #3  
Antiguo 15-06-2012
mcs mcs is offline
Miembro
 
Registrado: may 2007
Ubicación: Girona
Posts: 229
Poder: 18
mcs Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Bueno, lo que comentas es lo que hoy llaman "aplicaciones en la nube", ¿la gente se fia?, normalmente sí, en mi caso... no, rotundo
Como dices, tiene la ventaja de que el usuario se olvida de backups y cosas así, un gran error, ya que lo primero que yo haría en esos casos es precisamente eso, hacer más backups de lo habitual, vayan a perder mis datos allá "arriba".
Si vas a manejar los datos "sensibles" que dices, entonces tendrás que asegurarte muy bien en cumplir la ley de protección de datos, ya sabes, te pueden caer multas bien gordas. Así que además deberías cifrar/encriptar los datos, tener un buen sistema de control de los usuarios para que no haya problemas de usurpación, etc.
Desde luego, una aplicación de escritorio es más cómoda, segura, etc.
Aunque en este caso tendrás que decidir tú
Muy buen punto, el de la LOPD... no había pensado en ello. Gracias!
Responder Con Cita
  #4  
Antiguo 15-06-2012
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por mcs Ver Mensaje
El título es bastante descriptivo, pero voy a detallar más mi dilema.

1:

La aplicación ha estado creciendo durante este tiempo, y ha llegado el momento de crear una versión nueva. La versión actual está escrita en Java+Swing+MySQL.

a) Que sea una aplicación de escritorio y la programe en Delphi. Se vende la aplicación al usuario final y, si este lo desea, cada año se cobra mantenimiento o puede comprar actualizaciones.
b) Que sea una aplicación web hospedada creada en Rails o similar. Mensualmente (o anualmente) se cobra una cantidad fija en concepto de derecho de uso.
-----
2:

Desde el punto de vista técnico, prefiero la versión Delphi. Desde un punto de vista monetario, prefiero la versión web.
----
3:

Por otra parte, la grandeza de las aplicaciones hospedadas es que el usuario se olvida totalmente del tema mantenimiento: no debe hacer copias de seguridad, no debe instalar actualizaciones... Además, puede usar la aplicación desde cualquier ordenador y no debe instalar nada. Eso si, si no tiene conexión a Internet, no puede acceder a sus datos.
Te deshueso los puntos claves en mi opinion:

1:

No veo el porque ha llegado de crear una version nueva, como en el sentido de " Reescribir todo, en otro lenguaje y plataforma, simplemente porque supongo que nube lo obliga".

Una reescritura es el error estrategico #1:

http://local.joelonsoftware.com/wiki...hacer,_Parte_I

Porque esta en conflicto con parte del

2:

Cita:
Desde un punto de vista monetario..
Porque desligas el tecnico del monetario? Se puede argumentar que el monetario es MAS importante. Porque si te quedas sin gasolina, no solo tu proyecto se va a pique sino todos los que hayan confiado en tu proyecto como sus usuarios.

Ya que el tema de confianza es clave, que tu proyecto sea solido economicamente es critico, no?

Ademas, Delphi no significa "no web". Web <> HTML, Web es una plataforma que PERFECTAMENTE permite clientes nativos (quizas la validación mas poderosa es el AppStore, donde las aplicaciones de iOS usan servicios web para operar).

http://blog.elmalabarista.com/post/1...ion-remobjects

PERO, igual no veo el porque la reescritura. Eso retrasara el proyecto. Diria quizas una reingenieria para adaptarlo al entorno de nube.

3:

Mas que el ahorro de que un usuario no haga un backup (que igual es algo que debes permitir: Que el usuario descargue copia de sus datos, ojala en un formato abierto como CVS, JSON o XML) la ventaja ppal es para ti.

Casimiro apunta a las dificultades de hacer las cosas bien y seguras. El problema de estas apps es la infraestructura: Como hacer un servicio escalable, seguro, rapido, confiable?

Si lo haces TODO TU, te resultara un lio. Ahora lo que esta de moda, y una moda buena, son los PAAS (Plataformas como servicio). Por ejemplo:

http://www.heroku.com/

https://www.windowsazure.com

Donde de forma notable otra entidad te administra la BD (y otros servicios) y ellos (osea MS o Azure) cumplen con las regulaciones y estándares a un nivel superior. Son plataformas probadas y con clientes grandes, y te ahorra un tiempo y pasta enorme.

Por ejemplo, ahora que estoy con heroku+azure. En heroku usando:

https://postgres.heroku.com/

El servicio de tener un motor de BD administrado por heroku es un PLUS tremendo y te quita mucho dolor de cabeza (igual con azure y su sql server).

Ahora igual debes encriptar y hacer segura tu app y todo eso. Lo MISMO que si la hicieras local, solo que es MUCHO mas seguro en la nube que local.

Porque?

Maxima de seguridad #1: El acceso FISICO a la maquina es la anulacion TOTAL de CUALQUIER seguridad. Es superfacil cojer el disco duro y acceder a la BD.

1000 a 1 a que la infraestructura de heroku/azure/amazon es MAS segura a todo nivel que cualquiera de las infraestructuras de red/bd de tus clientes.

Solo debes agregar seguridad de *datos*:

1- Comunicarte solo por HTTPS: Facilísimo y superbarato (los certificados valen centavos)
2- Encriptar los datos sensibles. Lo unico dificil es elegir bien el esquema de seguridad. Al dia de hoy: NO USES MD5 (que no es encriptacion sino hashing)
3- Preferiblemente, auditar con un experto tu seguridad. Te sale mas facil y barato hacerlo contra tu propia servidor (ej nube) que contra los servidores cliente.

El tener nube NO SIGNIFICA PERDIDA DE OPERAR LOCALMENTE.

Ahora tengo 3 proyectos que van a correr sobre nube. Todos pueden operar desconectados (bajo un subconjunto de datos a una BD local) y se sincroniza con el servidor.
-----

Lo ultimo es si tus clientes aceptaran o no. Eso es dificil de saber. Hay clientes que no lo quieren asi.

En general, es mas probable que un cliente pequeño te acepte el trato que un grande. Las opciones:

1- Vas cloud 100% y que se pudra al que no le guste. Sorprendentemente, es algo que funciona en general muy bien (pero depende del publico objetivo

2- Vas cloud, pero das opcion de tener un cloud privado.

Por ejemplo, si hospedas con heroku, tener un paquete donde esta la mayoria y creas instancias privadas para X clientes. Osea, un cliente = 1 heroku.

3- Lo anterior + instalacion local

Lo ultimo es que la mayoria lo haces en cloud pero permites que se instale de forma local en la empresa. Aqui se complica la cosa porque tienes que preocuparte de infraestructura y sincronizar las versiones entre el cloud y los locales, que es en parte la gracia con un PAAS.

Una forma de manejarlo, es usar algo como

http://www.cloudfoundry.com/

Donde permite crear clouds locales. Asi puedes tener el mismo ambiente en todos lados, e implenentar un despacho de codigo automatizado para que cuando actualizes en cloud, se actualizen en los clientes.
__________________
El malabarista.
Responder Con Cita
  #5  
Antiguo 15-06-2012
mcs mcs is offline
Miembro
 
Registrado: may 2007
Ubicación: Girona
Posts: 229
Poder: 18
mcs Va por buen camino
mamcx, muchas gracias por tu aportación.

Primero, querría aclararte una serie de temas: El tema de reescritura no es por el traspaso de la aplicación a web. Es porqué la aplicación empezó siendo una cosa pequeñita y ha crecido mucho, hasta el punto que ahora se necesita una limpieza completa. Ya hace tiempo que he leído el famoso artículo de Joel sobre el tema de la reescritura de Netscape 6 (es este que enlazas, no? es que no he visitado el link), y entiendo completamente los problemas y peligros que hay en una reescritura... Pero es que la verdad es que me *interesa* abandonar el actual programa (a parte que el actual es para un único cliente, sin posibilidad de personalización, y con algunos bugs y detallitos).

El tema de versión mixta (cliente local, datos en nube) y de dos versiones (local y nube) los tengo totalmente descartados. Dejando a parte el tema del sobreesfuerzo necesario para crear esto, lo único que se consigue es complicar todavía más la aplicación. Sincronizar versiones, permitir actualizaciones de desktop a web, etc...

Otro inconveniente (bajo mi punto de vista) de la versión mixta, es que tiene "lo malo" de los dos modos de trabajo: se tiene que controlar las actualizaciones de la versión desktop, y además hay el peligro de la seguridad de los datos en internet.

El tema de alquilar un Heroku o un Azure es algo que tengo que mirar. Hasta el momento tenía la idea de simplemente alquilar otro Linode, y allí plantar el Rails, una base de datos Postgre o Mysql, un servidor web light, y ya está. De esta forma me ahorro el trabajo de administrar y vigilar el servidor. Me gusta. De todas formas, no tengo tan claro el tema de la LOPD (Ley de Protección de Datos) usando Azure o Heroku.

Lo de que los usuarios puedan hacer backups de sus datos en csv o xml es algo que siempre he tenido en mente. Principalmente porqué creo que ellos son los dueños, y si quieren usar mi plataforma que sea porqué les gusta, no porqué les secuestro los datos.

Sobre el tema de seguridad local... La verdad, no me preocupa. Si yo ofrezco el servicio de almacenar los datos y la aplicación, yo soy el responsable. Si lo que hago es vender/licenciar la aplicación a Fulanito y él lo tiene en su disco duro, él es el responsable.

Ah, y mis clientes, tal cómo he dicho antes, son todos clientes pequeños. La posibilidad de tener un cloud/instancia privada ni siquiera la voy a plantear, y mucho menos la opción de instalar la aplicación en el servidor del cliente.
Responder Con Cita
  #6  
Antiguo 15-06-2012
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Cita:
Empezado por mcs Ver Mensaje
Además, puede usar la aplicación desde cualquier ordenador y no debe instalar nada. Eso si, si no tiene conexión a Internet, no puede acceder a sus datos.
De hecho no es tan así. Los exploradores modernos brindan tecnologías que permiten a tu aplicación mantener un caché de tos datos para ser leídos cuando el usuario no esté conectado al internet.
http://www.html5rocks.com/en/features/offline

Cita:
Empezado por mcs Ver Mensaje
Lo de que los usuarios puedan hacer backups de sus datos en csv o xml es algo que siempre he tenido en mente. Principalmente porqué creo que ellos son los dueños, y si quieren usar mi plataforma que sea porqué les gusta, no porqué les secuestro los datos.
Estoy desarrollando una aplicación en appengine. Pero aunque pueda parecer tonto, no pienso ofrecer la posibilidad de que el usuario descargue sus datos cada vez que se les ocurra. Esto es porque ofrecer esta posibilidad en appengine puede resultar demasiado costoso.

Tampoco es que pienso quedarme con sus datos. Pero tendré que limitarlos a que puedan descargar los datos una vez hallan cancelado la cuenta. O sea, solo una vez en la vida. Suena apocalíptico, pero en realidad para el público estratégico al que pienso vender preferirán que estos datos estén custodiados por mí y Google antes que se vallan a perder y filtrar gracias a una USB perdida.

Con respecto a tu pregunta, yo creo que si sabes venderte como una empresa sólida, responsable y seria, los clientes confiarán en ti.

ACTUALIZACIÓN: Cuando dijé que "ofrecer esta posibilidad [descargar copia de los datos] en appengine puede resultar demasiado costoso" me refería utilizando la Datastore de appengine. Si tu aplicación utiliza Google Cloud SQL tus costos no aumentarían significativamente si ofreces la posibilidad de descarga a tus clientes. Google Cloud SQL funciona como otras PaaS, pagas por las horas que está activa tu instancia.

Saludos!
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web

Última edición por Chris fecha: 15-06-2012 a las 23:28:58.
Responder Con Cita
  #7  
Antiguo 17-06-2012
mcs mcs is offline
Miembro
 
Registrado: may 2007
Ubicación: Girona
Posts: 229
Poder: 18
mcs Va por buen camino
Muchas gracias por vuestro comentarios.

mamcx, dices que tienes algunos proyectos hospedados en Heroku, no? Si es así, que tal es la fiabilidad de la plataforma? Es que he estado investigando, y parece que hay bastantes problemas de disponibilidad...
Responder Con Cita
  #8  
Antiguo 17-06-2012
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Hace poco heroku tuvo una caida. Puedes ver el estado del servicio en:

https://status.heroku.com/

(Practicamente todos los PAAS tienen una pagina igual).

Eso es algo "normal" y predecible. Cualquier servicio sobre el que montes se va a caer, y un dia de estos, bien feo. Es la realidad.

Es ilusorio creer que hay servicios 100% confiables. Lo que *realmente* debe evaluarse es la habilidad para responder a esos problemas.

Mira por ejemplo (este fue el problema mas serio):

https://status.heroku.com/incidents/372

(PD: Heroku corre sobre Amazon EC2)

Ahora, pienso que en terminos generales es peor cuando uno trata de manejar toda la infraestructura, a menos que se cuente con personal capacitado y se pague por un hosting de extra-calidad (como www.rackspace.com).

Algunos lo que hacen es que tienen unos servidores de respaldo en otro proveedor (e inlcuso, continente) para cuando esto ocurre.

Pero en terminos generales seran problemas mas de tus aplicaciones que de los servicios externos. Por eso es importante tener un monitoreo del sistema (ej: www.newrelic.com).
__________________
El malabarista.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Fin de las aplicaciones win 32? Paulao Varios 4 14-05-2008 17:51:51
Aplicaciones web Wolfyx Internet 3 19-02-2008 16:46:15
Aplicaciones .net marceloalegre .NET 3 06-01-2006 16:54:06
aplicaciones en red jean Conexión con bases de datos 1 16-09-2005 21:21:37
Parametros al ejecutar Aplicaciones + Aplicaciones en Mi PC NeWNeO Varios 4 19-08-2004 14:01:30


La franja horaria es GMT +2. Ahora son las 04:35:51.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi