Posteado por: Jose David Baena | febrero 27, 2008

Charla SAI de Sun

 

Hay diferentes plataformas:

Micro Edition
Standard Edition
Enterprise Edition

De las que hablaron las que más me interesan son Enterprise Edition y Standard Edition, que son las que más me atraen. La de Micro Edition me atraía de antes, pero mirando a un futuro laboral, veo mejor EE y SE.

 

JAVA SE:

Tenemos dos versiones:
La JRE que es la máquina virtual. También se compone de la librería de clase y poco más.
También tenemos el JDK, el cual incluye el JRE además de un entorno de desarrollo y documentación (bastante importante para los programadores,no?) Yo siempre me he instalado los JDK, ya que la documentación la he consultado varias veces; y se la recomiendo a todo aquel que quiera aprender o programar medio decente.

Podemos destacar algunas cosas de la versión:

Las conexiones de red.
Entrada y salida.
La gestión de memoria… que cada lenguaje tiene sus cosas buenas y cosas malas.

Este apartado no me convenció de verás ya que estaban nombrando ventajas asociadas al lenguaje y también tienen los otros lenguajes ventajas respecto a este. Quizás me quede con la gestión respecto a la computación en paralelo ya que los he visto en profundidad en algunas asignaturas y por mi cuenta y es algo realmente bueno.

Todo esto me lo ofrece la maquina virtual de Java, yo solo me tengo que preocupar de programar mi código(Recuerdo aquellos días en los que te tenías que construir tus propios semáforos en C, que por cierto me encantaban, para garantizar la exclusión mutua…).

Quizás una cosa buena de Java es que es un sistema multiplataforma que nos permite ejecutar el mismo código en distintas de esta. Pero esto no es solo caracteristico de Java, sino de cualquier legnuaje interpretado que tenga soporte para distintos sistemas operativos, así que no lo considero realmente una novedad del lenguaje.

Otra cosa en la que hicieron hincapie fue en que Java no es lento, podía haberse sido en el pasado pero ahora no lo es.

De hecho nos comentaron que se han probado códigos y hecho pruebas en general en la cual (en linux) el código ensamblador que genera dicho sistema operativo es más eficiente que el generado por ejemplo con una instrucción de reserva de memoria dinámica (malloc) en lenguaje C. Esto ,aunque no me sirva realmente para algo útil en el futuro (Espero que si) son de las cosas que me gusta saber y que después comentando con tus amigos sobre programación dinámica y eficiencia quedas como el guru que no eres, jeje 🙂

 

A continuación hicieron una rápida pasada por las distintas versiones de Java:

JAVA ME:

Donde hay más pasta. En esta edición hay diferentes maquinas virtuales dependiendo de los requerimientos y de la máquina…
No ha profundizado mucho, pero para todos aquellos que quieran desarrollar aplicaciones para móviles, estáis de suerte, por que este campo está generando mucho dinero desde hace unos años, y en mi opinión seguirá unos más. Lástima que no sea lo que más me motive.

 

JAVA EE:

Para aplicación empresarial…Tenemos sistemas distribuidos, vamos a grande escala…
Es un diseño basado en componentes, n-capas,servidores de aplicación…
La verdad es que esta es la versión por la que estoy más interesado, de hecho he tenido una asignatura en la que trabajábamos con EJB, JNDI y este tipo de cosas que tanto se lleva en la empresa. De hecho el trabajo final fue la creación de un sistema desde cero dada una arquitectura dada por el arquitecto del sistema, que en nuestro caso , fue un sistema de subastas… Me alegro de haber hecho dicho trabajo pero no volvería a repetirlo.

 

Los servicios creados por niveles me los ofrece el contenedor. De las arquitecturas que he visto la que más me ha gustado ha sido la de niveles, por lo que simple y eficaz que me ha parecido. Siempre me ha gustado abstraer y no delegar en los demás, pero es solo un capricho de programador. Otra cosa buena, como hemos dicho antes es que no te tienes que preocupar de crear todo el proceso de negocio, sino que solo te limitas a diseñar el código. Si alguna vez programáis en EJB sabréis de lo que estoy hablando.

 

 

Vimos frameworks y librerías:

Struts
Velocity
Project jMaki

Si estamos montando una aplicación y tenemos que usar algo en concreto , antes de reinventar la rueda nos vamos a java.source y vemos si ya está. Seguro que está y además estará implementado de forma eficiente por lo que no deberíamos preocuparnos por dicha agregación o acoplamiento a nuestro código.

 

Servidores:

GlassFish
Tomcat…
Habló de otros servidores pero no me acuerdo de ningún otro. De hecho solo recuerdo los que he usado una o dos veces pero solo para trastear.

 

 

Ventajas técnicas de JavaSE:

En el lenguaje Java:

Simple y potente
Orientación a objetos.
Continua evolución-> Solo hay que ver el cambio que ha habido a partir de Java SE 5…

 

Una única compilación -> ejecución universal.

Bytecode ->código intermedio

Maquina virtual:

JIT y Hotspot <- esto es algo realmente importante pero no me enteré bien, ya me entretendré buscando.

Garbage collector: por ejemplo en los sistemas de tiempo real es muy útil. En un sistema de tiempo real la ejecución de un método tiene que ser determinista en el tiempo. Es decir, mi método tiene que ocupar 3 mseg, ni uno mas, si no no me servirá. Un caso que nos sirve como ejemplo es la dirección asistida de un coche…

Multihilo

Seguridad

Multiplataforma

librería de clases: no me complico en escribir metodos ya implementados y optimizados…

 

 

Servlets

Es una de las tecnologias básicas en JavaEE. Son objetos java que extienden la funcionalidad de un servidor HTTP.La principal desventaja es hay que cabiar muchas cosas para emitir una respuesta html distinita de la prevista…(Modificar codigo , recompilar y volver a arrancar la aplicación)… Me recuerda mucho cuando estaba trabajando con los Enterprise Java Beans (que lata, estaba la mitad del tiempo volviendo a arrancar la aplicación).

 

EJB(Enterprise Java Beans)

Tecnologia de ocmponentes en el lado del servidor.

 

 

 

JMS(Java Message Service)

Parece que la charla iba destinada a la gente que habia hecho la asignatura de libre configuracion ISGM (Ingenieria de lSoftware Guiada por Modelos Enterprise Java Beans). Esto tambien lo habia visto .
Y de hecho , no he tenido una buena experiencia con esto realmente ya que al implantarlo en el trabajo que estabamos haciendo para una asignatura, teniamos que modificar muchisimo codigo xml a mano para poderlo configurar a nuestro gusto y crearnos las colas de mensajes que nos hacían falta… En mi opinión debería haber alguna ayuda que te lo hiciese automáticamente sin el menor esfuerzo pero todavía no la he encontrado. (Existen algunas herramientas como el JDeveloper pero para mi gusto complican las cosas más que facilitarlas…)

 

JAAS (Java Authentication & Authorization Service)

Entorno de seguridad basado en componentes configurables;

Usuario,contraseña
Smartcard
Kerberos
Biometrica

Esta es la parte por la que había venido a la charla realamtne… y no se habló en profundidad.

 

 

 

 

 

 

JNDI(Java Naming and Directory Interface)

JNDI define un mapeo de nombres logicos y se ubica la direccion fisica en el contenedor.Si trabajais con EJ, éste tiene plasmada dicha idea del mapeo de nombres con las EJBlocalReferences…

 

JDBC

Proporciona el API de acceso a datos relacionados. Usa SQL. Los fabricantes de basses de datos proporcionan los drivers JDBC para sus productos.

 

 

Esto es lo que más se me ha quedado de la charla, está un poco desordenada pero espero que sirva para ver más o menos de qué ha ido ésta y decidir si merece la pena ir a la próxima. Saludos a todos desde el salón de actos donde acaba de terminar dicha charla…

 

Bueno lo último que queda por decir (y creo que es el motivo de la charla ) son las diferentes dertificaciones de las que nos han hablado. La verdad es que son varias y creo que no las contaría tan bien como está en la página web , por lo que os remito a ellas. Quizá algún día, cuando intente sacarme alguna (en menos de 3 meses imagino) hablaré sobre ellas.
Aquí teneis una imagen que vale por todo lo que nos ha dicho:

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Categorías

A %d blogueros les gusta esto: