2009-04-29 24 views
7

Estamos desarrollando una aplicación Java EE respaldada por cualquier base de datos de elección del cliente.¿Cómo crear una aplicación Java EE con licencia segura?

Venderemos a los clientes según el precio de la licencia del usuario. ¿Cómo me aseguro de que la aplicación se esté utilizando según nuestras condiciones, es decir, no sea fácilmente pirateable? ¿Hay algún tutorial disponible?

+2

Consulte http://stackoverflow.com/questions/475216/python-applications-can-you-secure-your-code-somehow. Lenguaje diferente, pero el mismo enfoque equivocado. –

+1

Leí las respuestas a esa pregunta, pero no es lo que quiero. Sé que todo es pirateable, pero al menos tratamos de dificultarlo. –

+0

¿Esta solicitud proviene de la gerencia? –

Respuesta

5

Bill Karwin's answer fue la más útil de las respuestas de la pregunta mencionada en los comentarios. Suponiendo que va a seguir adelante con un esquema de "protección", intente hacer el mínimo indispensable. Cualquier otra cosa tiende a frustrar enormemente a los usuarios y conduce a una menor cantidad de negocios y/o un mayor deseo de piratear su frustrante sistema.

De su pregunta, es difícil decir si cada usuario instalará la aplicación. Si es así, probablemente solo necesites solicitar un código de licencia para que se comuniquen contigo de alguna manera. Si se trata de un asunto cliente-servidor, entonces sus opciones son mucho más limitadas; de hecho, no puedo pensar en una sola solución que alguna vez haya diseñado en mi cabeza o me haya encontrado en la práctica que no sea masivamente frustrante. Probablemente también podría hacer una solución de código de licencia aquí, excepto que el código de licencia de alguna manera llevaría una carga útil que indica el número de usuarios que pagaron y luego no permite la creación/uso de usuarios que excedan ese número. En ese punto, sin embargo, realmente estás caminando por esa línea de frustración que mencioné.

+0

Es una aplicación cliente-servidor. Los usuarios usan broswer como cliente. El servidor se instalará en la red de clientes. Cada usuario tendrá una cuenta creada por su administrador pero hasta el número para el que haya comprado la licencia. Si alcanzan ese máximo y quieren más licencias, simplemente pueden comprarlo y actualizar la licencia en su sistema y listo. –

+0

En ese caso, yo diría que usar la clave de licencia para indicar que el límite es el camino a seguir. –

3

Si puede ofuscarse, esta es la manera de comenzar. Pero podría ser doloroso si usa marcos de inversión de control (por ejemplo, primavera). Escuché que también es posible ofuscar el contexto primaveral, pero nunca lo intenté. También (adivinando) podría haber algunas sorpresas con reflejos, proxies dinámicos y demás. En cuanto a la licencia, puedo sugerir usar TrueLicense. Tiene medios muy flexibles para manejar diversos aspectos de la protección, así como períodos de prueba gratuitos listos para usar. Funciona muy bien y tiene una gran documentación.

0

¿Los clientes pagan por el soporte de esta aplicación? Si es así, existe la posibilidad de que el soporte sea más rentable que la licencia de la aplicación. Si es así, puede considerar no bloqueando la aplicación, sino más bien, elegir proporcionar solo soporte para copias auténticas del software (copias no modificadas comprobadas mediante sumas de comprobación y similares). Muchas empresas que otorgan licencias de este software estarían más inclinadas a evitar cualquier modificación (aunque la probabilidad de que realmente quieran hacerlo es probablemente muy pequeña) para no poner en peligro su apoyo.

FYI: Así es como Oracle tiende a operar con su e-Business Suite. Puede modificar casi cualquier componente que desee. ¡Buena suerte para obtener apoyo, sin embargo!

0

Mire cómo Atlassian vende sus productos. Creo que este es un enfoque que funciona muy bien, y probablemente también para ti. Nota: ¡Debe haber un valor agregado al suscribirse a las actualizaciones!