Sistema Netbeans y MySQL- JPA, RMI, Hybernate?

Saludos.
Les presento la idea que tengo para mi proyecto de titulación.
En lo que tiene que ver con la parte práctica.. pueden observar el gráfico y sacar sus conclusiones.Se trata de un sistema para control de produccion en imprentas donde sus talleres trabajan basandose en Ordenes de produccion.
Ahora, con la ayuda de algunas opiniones en este blog he decidido usar una metodologia de diseño de sistemas dinámicos DSDM. Con pueden ver este sistema funcionara dentro de una intranet por lo que usando Java en 2 capas pienso que es suficiente, gracias a la Persistencia en JPA.

Bueno espero que me ayuden en mi sueño de ser ingeniero, y mis primeras inquietudes son:
¿Si realizo un sistema Java en 2 capas, puedo luego pasarlo a 3? la capa RMI es facil de implementar?
¿Tengo entendido que los modulos que usa la capa Persistencia son: ORM, Entity Manager, JPQL. Que diferencia hay si utilizo JDBC ?
¿De que forma puedo aplicar hybernate?

Disculpen si debia publicar esto en el foro de discusion pero, a partir de estas inquietudes puedo empezar a desarrollar el proyecto.

Muchas Gracias.

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de luxspes

En lo que tiene que ver con

En lo que tiene que ver con la parte práctica.. pueden observar el gráfico y sacar sus conclusiones.

El grafico? Que grafico?

Ahora, con la ayuda de algunas opiniones en este blog he decidido usar una metodologia de diseño de sistemas dinámicos DSDM

Que original... ;-)

Con pueden ver este sistema funcionara dentro de una intranet por lo que usando Java en 2 capas pienso que es suficiente, gracias a la Persistencia en JPA.

En donde lo podemos ver?

¿Si realizo un sistema Java en 2 capas, puedo luego pasarlo a 3? la capa RMI es facil de implementar?

Puedes pasarlo, facil... depende de tu nivel de habilidad... si lo haces con EclipseLink en ves de con Hibernate, mas facil, por que EclipseLink si soporta 3 capas (Hibernate que yo sepa no). EclipseLink y Hibernate sigen el estandar JPA, asi que no te deberia ser dificil aplicar lo que sepas de Hibernate a EclipseLink.

¿Tengo entendido que los modulos que usa la capa Persistencia son: ORM, Entity Manager, JPQL. Que diferencia hay si utilizo JDBC ?

Supongo que deberias leer de JDBC y JPA para enterder la diferencia. En resumen, JPA proporciona un enfoque mas orientado a objetos.

Imagen de Jvan

Todo eso lo puedes usar en

Todo eso lo puedes usar en Netbeans pero... se puede usar EclipseLink en Netbeans???

Imagen de luxspes

EclipseLink funciona con Netbeans

Si se puede usar EclipseLink en Netbeans, hecho hubo un tiempo que lo incluia de paquete (no se si todavia es asi). EclipseLink es la implementacion de referencia. Y ahora que Oracle (el creador de EclipseLink), es dueño tambien de Netbeans, lo mas probable es que la integracion aumente

Imagen de Dav-el

A lo que me referia..

Que tal luxspes.. a esto me referia en la entrada
A lo de la parte practica, me refiero a el diseño de los modulos del sistema, es decir que modulo de la aplicacion, funcionara en cada lado de una imprenta.
Por otro lado, a menos que los diseñadores y el taller esten a una "distancia considerable", no utilizare Java RMI, o sea, para una intranet comun es suficiente tener la aplicacion como cliente y la base de datos en el servidor. Solo era una pregunta suelta.
Lo de la originalidad, tienen razon.. lo que pasa es que entre las metodologias de diseño que existen.. necesito una que me ayude a utilizar lo que mas pueda las herramientas que ya existen, y no tratar de hacer de nuevo algo que ya esta hecho, probado y gratis.

Imagen de Dav-el

Persistencia

Es la forma en que se logra el almacenamiento de un estado de un objeto en disco duro.
Objetos(Instancias de Clases): ---> Registros fisicos(en una Base de datos relacional)

Para lograr persistencia se conocen 3 metodos:
1.-Serializacion: convertir los objetos en una serie de bits para almacenarlos como podamos.
2.-Java database connectivity(JDBC): interfaz para acceder a sistemas gestores de bases de datos relacionales. Muy utilizado
3.-Java Persistence API. (JPA): mapeo(transformacion) objeto-relacional para manejo de la base de datos.
La gestion de acceso la realiza la interfaz (Entity manager) y las consultas se hacen con un lenguaje de consultas de entidades(java persistence query languaje).

Existen proveedores de persistencia que trabajan con JPA.
Hibernate - IBM
TopLink- Oracle

Oracle es dueño de NetbeanS?no lo sabia.

Saludos.

Imagen de ezamudio

Oracle es dueño de Sun

NetBeans era de Sun. Oracle compra Sun, con lo cual compra Java, NetBeans, Glassfish, y cualquier otra cosa que tenga Sun.

Imagen de luxspes

DSDM: Y la evidencia?

Lo de la originalidad, tienen razon.. lo que pasa es que entre las metodologias de diseño que existen.. necesito una que me ayude a utilizar lo que mas pueda las herramientas que ya existen, y no tratar de hacer de nuevo algo que ya esta hecho, probado y gratis.

Y que te hace creer que DSDM te permitira "utilizar lo que mas pueda las herramientas que ya existen, y no tratar de hacer de nuevo algo que ya esta hecho, probado y gratis" ? Me encantaria saber en que libro dice eso... y me encantaria todavia mas ver como demuestran de forma objetiva que DSDM lo hace mejor que XP, Agile, Scrum o alguna otra...

Imagen de Dav-el

DSDM: metodogia tradicional o veterana?

Una vez mas, gracias por sus comentarios.
Si queria utilizar DSDM era porque pense que para un proyecto de tesis me iban a exigir un metodo como que mas tradicional, pero pensandolo bien supongo que mi tutor no deberia tener problemas si aplico un metodo mas actual y eficiente, verdad?

http://www.marblestation.com/?p=661

"Actualmente, la metodología ágil más popular para la gestión de proyectos es Scrum. Se presenta como contrapunto a PMBOK y PRINCE2, siendo utilizada tanto para desarrollo de software como para otro tipo de productos.

Por otra parte, también se disponen de metodologías específicas para el desarrollo de software que pretenden ser alternativas a estándares como ISO/IEC 15504, ISO/IEC 12207 y CMMI. Por ejemplo:

* Dynamic Systems Development Method (DSDM): Metodología ágil más veterana y la que más se aproxima a los métodos tradicionales, su implantación incluso permitiría alcanzar un nivel 2 de madurez según CMMI.
* Extreme Programming (XP): La metodología ágil más radical y popular. XP se centra en el ciclo de vida del desarrollo de software.
* Agile Modeling: Metodología para el modelado y la generación de documentación que se encuentra alineado con los principios del desarrollo ágil y que puede ser utilizado como substituto del UML estándar.
* Feature Driven Development (FCC): Metodología de desarrollo de software orientada a la generación de valor para el cliente.

Si bien las metodologías tradicionales de desarrollo de software como CMMI o ISO 15504 presentan procesos que cubren todas las necesidades de los sistemas de información, las metodologías ágiles listadas abarcan áreas complementarías entre si. Por ese motivo, es posible aplicar diversas de ellas en conjunto (p.ej. Scrum, XP y Agile Modelling)."

Imagen de luxspes

Tu eleccion

Si quería utilizar DSDM era porque pensé que para un proyecto de tesis me iban a exigir un método como que mas tradicional, pero pensándolo bien supongo que mi tutor no debería tener problemas si aplico un método mas actual y eficiente, verdad?

Hazlo con lo que tu juzques mas conveniente, pero ten cuidado de justificar bien tus razones.... si no despues, si resulta que no te da los beneficios que te imaginaste, sera solo tu culpa, por que tal ves los beneficios que esperabas no son los que dicha metodologia proporciona.

Scrum tampoco es perfecta. De hecho, la mayoría de las metodologías ágiles se concentra demasiado en producir codigo que funcione y demasiado poco en alinear las características del software construido con los objetivos estratégicos del negocio, lo que resultan en sistemas listos a tiempo, dentro del presupuesto, con pocos bugs (decir sin bugs seria una utopia), y que no son lo que el usuario realmente necesitaba.

Por otro lado, las metodologías no Agiles ni siguiera llegan a tener codigo que funcione.... asi que en ese sentido, en mi opinión, están aun peor, no producen ni software, ni se alinean con los objetivos del negocio... Asi que las metodologias agiles son ciertamente un paso adelante, pero su tasa de predicibilidad del exito (desde un perspectiva de negocios) solo es ligeramente superior a la de los metodos no agiles (de que te sirve un software excelente que no resuelve el problema que tienes?).

Escoger una metodología es difícil... asi que lee sobre varias, y escoge la que sientas que se adecua mas a tus necesidades... (no te guies por si es nueva o si es vieja, guiate por tus necesidades y las de tu cliente y las caracteristicas de la metodologia)

Imagen de luxspes

CMMI: Usa la metodologia que te guste

Dynamic Systems Development Method (DSDM): Metodología ágil más veterana y la que más se aproxima a los métodos tradicionales, su implantación incluso permitiría alcanzar un nivel 2 de madurez según CMMI.

DSDM no es "mejor" para CMMI, asi como XP o Agile no es "peor" para CMMI. CMMI te pide que sigas ciertos parametros para controlar tu desarrollo de software, en otras palabras te dice que deberias hacer, pero no te dice como. El como es tu eleccion (y tu problema). Puedes llegar a CMMI nivel 5 usando Agile, (o no pasar el nivel mas bajo usando DSDM o RUP)

Imagen de Dav-el

Uso de la metodologia - depende del alcance del proyecto

*

Antes de elegir la metodología para la implementación de un software, es importante determinar el alcance que tendrá y luego de ahí ver cual es la que más se acomoda en la aplicación.

Gracias a sus comentarios he podido dar un primer paso, que es el investigar detenidamente cual metodologia se adapta mejor a mi proyecto. He leido un poco y creo que al final me decidire por: XP(Xtreme Programming) , Agil, o MSF(Microsoft Solution Framework). Cualquiera de las tres, o combinaciones quizas.

Saludos.

DSDM ... buena idea :)

Si DSDM, puede ser una buena opción para desarrollar tu proyecto checa el sitio: Aqui mismo

Imagen de elthon

Ayuda

Puedes por favor explicarme como es el proceso de conexion con la base de datos o escribir en un archivo de texto aunk sea, lo mas facil posible??? necesito saber eso y otra cosa, como se puede utilizar el caracter "|" porq me sale en Netbeans que no se reconoce ese caracter .... porfa espero tu respuesta pronto, es de urgencia
muchas gracias....
Saludos desde ecuador.

Imagen de Dav-el

Perdón, estuve ocupado y no

Perdón, estuve ocupado y no he tenido tiempo para responder. Bueno primero te aconsejo que cuando tengas un apuro en resolver una pregunta vayas directo al foro de discusión porque es un poco molestoso hablar de un tema dentro de otro. Espero que hayas resuelto tus preguntas, sino, mira en Netbeans asegurate que tengas el driver de tu base de datos sea cual sea, luego la conexión es simple si te fijas en un ejemplo de Aplicacíon de Escritorio de Base de Datos. Ahi tienes lista una aplicacion CRUD(create, read, update, delete) simple. Si quieres escribir en un archivo de texto.. No se a que te refieres pero eso me suena a que revises tus conocimientos de programación Java y las clases FileWriter o FileReader. Lo de la barra vertical, nunca me ha pasado debe ser problema de tu teclado. No dejo links de información porque de estos temas abundan en google. Saludos.