2010-08-26 13 views
11

No estoy familiarizado con estos "componentes" de "framework", pero ¿alguien puede darme una introducción acerca de la relación que tienen con cada uno? ¿otro? Básicamente, quiero saber más o menos sobre: ​​OSGi vs Spring vs Struts vs EJB vs. Hibernate - una pregunta totalmente para novatos

  1. qué y cuáles son homólogos entre sí

  2. qué y cuáles son tecnologías complementarias (por ejemplo, A como un marco puede ser utilizado con B como un componente)

  3. ¿Qué grandes nombres he perdido la lista anterior que no debería tener?

¿Alguien me puede dar una introducción de alto nivel? Después de leer las dos primeras respuestas, ¿alguien puede dar más explicaciones sobre Spring vs. OSGi? ¿Están en un mercado separado (Enterprise vs. Mobile)?

Muchas gracias

Respuesta

10

Bueno, que probablemente se podría tratar de leer algo acerca de ellos?

  • puntales - es un marco para la creación de sitios web en la parte superior de la "tecnología" de servlets de Java
  • primavera - es un "contenedor" dependencia de inyección para la gestión de la configuración de los programas de Java (es decir, el cableado sus componentes juntos)
  • Hibernate - es un marco de mapeo relacional de objetos para bridging bases de datos relacionales (RDMS) y programas orientados a objetos.
  • EJB - es parte de la especificación Java Enterprise Edition. El objetivo de estos era vender muchos servidores de aplicaciones caras de Oracle, BEA e IBM. Fallaron (bueno, un poco); por lo tanto, Spring
  • OSGi - es un "contenedor" para gestionar una aplicación compuesta por varios componentes, en la que desea intercambiar implementaciones de módulos (o actualizarlos) sin reiniciar el sistema. Comenzó orientada hacia el mercado de la telefonía móvil y nunca me he encontrado que "en la empresa"

Estos son, en cierta medida ortogonales tecnologías, es decir, que no son mutuamente excluyentes. Spring ahora es complementario con OSGi, por ejemplo, y la tecnología de servlets es un subconjunto de Java EE.

+1

¿Puedes comentar sobre la parte "Primavera y OSGi son complementarios"? – sean

+0

El * punto * de EJB era proporcionar un modelo de componentes distribuidos con gestión de transacciones (globales), seguridad, etc. (todo lo demás es marketing no técnico y material relacionado con el comercio). Y también tendría sentido distinguir EJB 2.x de EJB 3.x ya que tienen poco en común (Spring fue una reacción a EJB 2.x, EJB 3.x son POJOs que pueden ejecutarse en contenedores integrados similares a Spring) . En realidad, personalmente no tengo muchas cosas negativas que decir sobre EJB 3.x. –

+0

@sean - sí, no estaba seguro de qué palabra usar. Spring tiene OSGi-d en sí de los últimos años, aunque yo no he usado ese lado yo mismo –

13

El "vs" es incorrecto, porque muchos de estos se pueden usar juntos.

  • OSGi es una técnica de modularización (en lugar de un marco). Le da la capacidad de separar su software en módulos independientes que pueden coexistir en diferentes versiones, con y sin otros módulos

  • Contenedor de inyección de dependencia de muelle ligero. Le permite conectar sus componentes definiendo sus dependencias y dejando que el marco los cree y configure, lo que permite una mayor flexibilidad (no podría decir más palabras de moda aquí).

  • puntales - un MVC, marco basado en la acción - se utiliza en la capa web

  • EJB - Los componnets negocio de JavaEE - que colocar su lógica de negocio en Enterprise JavaBeans, y usted tiene el tratamiento de transacciones, manejo de estado , (JMS) el consumo de mensajes, temporizadores, etc. fuera de la caja

  • Hibernate - un ORM (mapeo objeto-relacional) solución -, básicamente, que le permite trabajar con objetos (POO) cuando se tiene una base de datos relacional como un almacenamiento de datos.

+1

+1 pero considero que parte de Spring te refieres a más como un contenedor que como un framework (venderlo como framework era parte del marketing, pero en realidad es un contenedor). –

+4

Spring es más que DI. Nadie piensa en el AOP tanto como deberían. Hay tres patas para el taburete Spring: DI, AOP y módulos. – duffymo

+0

pero luego OSGi también es un contenedor. vs se ve correcto para OSGi y par de primavera, donde la primavera parece un claro ganador. –

0

También sugiero que lea algo sobre GWT. Los chicos de Google hacen un buen esfuerzo al explicar toda la arquitectura relacionada con la web.