El desarrollo Web está cambiando. HTML5, CSS3 y JavaScript han avanzado tanto que surgen las Single-Page Applications, aplicaciones web cuya visualización y navegación está completamente controlada por dichos lenguajes cliente, dejando al servidor como mero facilitador de datos. Hasta ahora siempre hemos concebido lenguajes distintos para cliente y servidor hasta que a un innovador ingeniero se le ocurrió desarrollar una API de servicios JavaScript en el servidor, surge Node.js. Ahora tenemos JavaScript en el cliente y JavaScript en el servidor pero ¿qué pasa con toda nuestra infraestructura Java? ¿Cómo podemos reutilizar todas las funcionalidades de Java EE como EJB, JMS o JPA y también nuestras propias librerías? La respuesta está en el Proyecto Avatar.
Más información en https://avatar.java.net/
Web framework ligeros y micros en java barcamp 2014Carlos Camacho
Presentación enfocada a mostrar las funcionalidades más importante de los micro framework Spark y Ratpack. Dando una inducción a los conceptos básicos en su utilización del protocolo HTTP y los servicios REST.
Impartida en la segunda edición en el Barcamp 2014, Pontificia Universidad Católica Madre y Maestra (PUCMM), Santiago de los Caballeros, República Dominicana.
Introducción al servidor Tomcat.Resumen de conceptos básicos, instalación y configuración. Se repasan conceptos sobre JSPs, JavaBeans, Servicios web sobre Axis2, JNLP, etc.
Diapositivas Curso Java J2EE, módulo:
MODULO VI: APLICACIONES WEB CON JAKARTA STRUTS
- Introducción y arquitectura
• FrameWork
• Patrón MVC
• Instalación - Primer programa
• Control de flujo
• Diagrama Clases
• Atención de la petición
- Integración con la capa de datos
• Persistencia,
• JDBC
• Patrón DAO
• Hibernate
- Manejo de Formularios
• Form Beans
• Validación en formulario
- Validación de Formularios
• Framework Validator
• Validación JavaScript
- Tratamiento de Excepciones
• Excepciones Globales
- Internacionalización
- Composición de vistas
• Plantillas
• Tiles
- Biblioteca de etiquetas
• HTML
• BEAN
• LOGIC
Teniendo en cuenta la gran masificación de los web services, como así también su utilidad, el objetivo del presente proyecto es elaborar un servicio web, teniendo en cuenta su optimización y comparando diferentes plataformas para poder lograr un servicio que pueda atender la mayor cantidad de solicitudes posibles.
Con motivo de realizar lo mencionado anteriormente se presenta la siguiente idea:
Crear un web services SOAP que permita realizar búsquedas de ip’s y que devuelva la localización del mismo.
El objetivo de esta aplicación es ofrecer la posibilidad de brindar un servicio de buscador eficiente
An evening with ... Ionic Framework Meetup Arkhotech
Ionic es un framework de desarrollo híbrido móvil de amplio uso en la industria. Entre sus principales características se destacan el desempeño, integración con AngularJS, similitud de interfaces finales con las nativas y el soporte a integración de hardware vía Apache Cordova.
En este meetup usamos un proyecto real Ionic creado para uno de nuestros clientes, para analizar todo el proceso de construcción (de más de 3 meses), conociendo las principales características de la implementación y todos las experiencias que enfrentamos en este reto de equipo. Revisaremos todo lo que hicimos: la estructura de equipo, tecnologías, método de trabajo, obstáculos, etc. compartiendo con los asistentes el caso de éxito de una experiencia real.
HPE presenta una competició destinada a estudiants, que busca fomentar habilitats tecnològiques i promoure la innovació en un entorn STEAM (Ciència, Tecnologia, Enginyeria, Arts i Matemàtiques). A través de diverses fases, els equips han de resoldre reptes mensuals basats en àrees com algorísmica, desenvolupament de programari, infraestructures tecnològiques, intel·ligència artificial i altres tecnologies. Els millors equips tenen l'oportunitat de desenvolupar un projecte més gran en una fase presencial final, on han de crear una solució concreta per a un conflicte real relacionat amb la sostenibilitat. Aquesta competició promou la inclusió, la sostenibilitat i l'accessibilitat tecnològica, alineant-se amb els Objectius de Desenvolupament Sostenible de l'ONU.
Más contenido relacionado
Similar a Proyecto Avatar - JavaScript sobre la JVM del servidor
Web framework ligeros y micros en java barcamp 2014Carlos Camacho
Presentación enfocada a mostrar las funcionalidades más importante de los micro framework Spark y Ratpack. Dando una inducción a los conceptos básicos en su utilización del protocolo HTTP y los servicios REST.
Impartida en la segunda edición en el Barcamp 2014, Pontificia Universidad Católica Madre y Maestra (PUCMM), Santiago de los Caballeros, República Dominicana.
Introducción al servidor Tomcat.Resumen de conceptos básicos, instalación y configuración. Se repasan conceptos sobre JSPs, JavaBeans, Servicios web sobre Axis2, JNLP, etc.
Diapositivas Curso Java J2EE, módulo:
MODULO VI: APLICACIONES WEB CON JAKARTA STRUTS
- Introducción y arquitectura
• FrameWork
• Patrón MVC
• Instalación - Primer programa
• Control de flujo
• Diagrama Clases
• Atención de la petición
- Integración con la capa de datos
• Persistencia,
• JDBC
• Patrón DAO
• Hibernate
- Manejo de Formularios
• Form Beans
• Validación en formulario
- Validación de Formularios
• Framework Validator
• Validación JavaScript
- Tratamiento de Excepciones
• Excepciones Globales
- Internacionalización
- Composición de vistas
• Plantillas
• Tiles
- Biblioteca de etiquetas
• HTML
• BEAN
• LOGIC
Teniendo en cuenta la gran masificación de los web services, como así también su utilidad, el objetivo del presente proyecto es elaborar un servicio web, teniendo en cuenta su optimización y comparando diferentes plataformas para poder lograr un servicio que pueda atender la mayor cantidad de solicitudes posibles.
Con motivo de realizar lo mencionado anteriormente se presenta la siguiente idea:
Crear un web services SOAP que permita realizar búsquedas de ip’s y que devuelva la localización del mismo.
El objetivo de esta aplicación es ofrecer la posibilidad de brindar un servicio de buscador eficiente
An evening with ... Ionic Framework Meetup Arkhotech
Ionic es un framework de desarrollo híbrido móvil de amplio uso en la industria. Entre sus principales características se destacan el desempeño, integración con AngularJS, similitud de interfaces finales con las nativas y el soporte a integración de hardware vía Apache Cordova.
En este meetup usamos un proyecto real Ionic creado para uno de nuestros clientes, para analizar todo el proceso de construcción (de más de 3 meses), conociendo las principales características de la implementación y todos las experiencias que enfrentamos en este reto de equipo. Revisaremos todo lo que hicimos: la estructura de equipo, tecnologías, método de trabajo, obstáculos, etc. compartiendo con los asistentes el caso de éxito de una experiencia real.
Similar a Proyecto Avatar - JavaScript sobre la JVM del servidor (20)
HPE presenta una competició destinada a estudiants, que busca fomentar habilitats tecnològiques i promoure la innovació en un entorn STEAM (Ciència, Tecnologia, Enginyeria, Arts i Matemàtiques). A través de diverses fases, els equips han de resoldre reptes mensuals basats en àrees com algorísmica, desenvolupament de programari, infraestructures tecnològiques, intel·ligència artificial i altres tecnologies. Els millors equips tenen l'oportunitat de desenvolupar un projecte més gran en una fase presencial final, on han de crear una solució concreta per a un conflicte real relacionat amb la sostenibilitat. Aquesta competició promou la inclusió, la sostenibilitat i l'accessibilitat tecnològica, alineant-se amb els Objectius de Desenvolupament Sostenible de l'ONU.
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador ValenciaAMADO SALVADOR
Descubre el catálogo general de la gama de productos de refrigeración del fabricante de electrodomésticos Miele, presentado por Amado Salvador distribuidor oficial Miele en Valencia. Como distribuidor oficial de electrodomésticos Miele, Amado Salvador ofrece una amplia selección de refrigeradores, congeladores y soluciones de refrigeración de alta calidad, resistencia y diseño superior de esta marca.
La gama de productos de Miele se caracteriza por su innovación tecnológica y eficiencia energética, garantizando que cada electrodoméstico no solo cumpla con las expectativas, sino que las supere. Los refrigeradores Miele están diseñados para ofrecer un rendimiento óptimo y una conservación perfecta de los alimentos, con características avanzadas como la tecnología de enfriamiento Dynamic Cooling, sistemas de almacenamiento flexible y acabados premium.
En este catálogo, encontrarás detalles sobre los distintos modelos de refrigeradores y congeladores Miele, incluyendo sus especificaciones técnicas, características destacadas y beneficios para el usuario. Amado Salvador, como distribuidor oficial de electrodomésticos Miele, garantiza que todos los productos cumplen con los más altos estándares de calidad y durabilidad.
Explora el catálogo completo y encuentra el refrigerador Miele perfecto para tu hogar con Amado Salvador, el distribuidor oficial de electrodomésticos Miele.
This is a Title Slide with Picture slide ideal for including a picture with a brief title, subtitle and presenter information.
To customize this slide with your own picture:
Right-click the slide area and choose Format Background from the pop-up menu. From the Fill menu, click Picture and texture fill. Under Insert from: click File. Locate your new picture and click Insert.
¿Que qué es el proyecto Avatar?
Antes de contaros ningún detalle quiero que os quedéis con una de estas 2 definiciones para cuando mañana os pregunten que os contaron ayer en UltimateJava sobre eso del Proyecto Avatar podáis contestarles en función de si os lo preguntan subiendo al ascensor o subiendo por las escaleras:
Ascensor: El proyecto Avatar es una nueva manera, muy rápida y sencilla, de crear aplicacoines web ágiles
Escaleras: Un framework para desarrollar vistas y servicois utilizando lenguajes estándar, end to end, aprovechando tecnologías como Node.js y Nashorn (JDK8), de las que a continuación os hablaré, y REST, WebSockets y SSE, de las que os acaba de hablar Joan Carles.
Pero si os preguntan sobre qué es el proyecto Avatar durante el desayuno o el almuerzo, vais a necesitar una definición un poco más larga y, para empezar, comprender unos conceptos básicos con los que algunos de los que estáis aquí es probable que ya estéis familiarizados. Tras 10 minutos ya estaremos listos para hablar de la arquitectura y las características del proyecto Avatar y finalmente, porque una demostración vale más que mil lecciones, veremos un ejemplo práctico.
Empezamos!
Esta es la arquitectura de aplicación web a la que todos los aquí presentes estamos más que acostumbrados.
Tenemos una serie de tecnologías exclusivas del servidor con su correspondiente lenguaje, Java, por si había alguna duda ;), y otras propias del cliente, lo cual siempre ha sido un engorro ya que normalmente se requiere estar especializado en front-end o back-end. No le pidas a un programador de back-end que te haga la web promocional de una película, con más efectos especiales que la película en si, y ni se te ocurra pedirle al gurú de CSS y JavaScript que te cree los servicios que dicha web promocional. ¿No podríamos unir un poco más ambos mundos?
Hablando de gurús del front-end, están ayudando a que las tecnologías de cliente están avanzando a pasos agigantados como se puede ver en la página de Facebook, que responden a la moda de las “Single-page applications”: aplicacoines web donde tanto visualización como “navegación” se controlan totalmente mediante JavaScript, HTML y CSS.
Esto ha aumentado drásticamente la relevancia de los motores de JavaScript. A mayor potencia, mayor fluidez de la página. Entre los motores JavaScript actuales, destaca el Chrome V8, el que utiliza el navegador homónimo.
Tenemos el auge de JavaScript por un lado pero seguimos necesitando otros lenguajes en el otro. ¿Podemos saltar esta brecha, unificando el lenguaje de desarrollo de una aplicación web, desde el front hasta el back-end?
La respuesta es Node.js.
Un ingeniero llamado Ryan Dahl se le ocurrió coger las librerías del Chrome V8 y construir en C++ una capa de servicios JavaScript que nos permite ejecutar código JavaScript fuera de su habitat natural, los navegadores, para ejecutarlo directamente en del lado del servidor.
Node.js se ha hecho muy popular ya que todas las tecnologías de back-end, .Net, Java, PHP… siempre han tenido en común el front-end, el JavaScript, y ahora es este JavaScript quien viene a ponerse entre dichas tecnologías, por lo tanto, la comunidad de desarrolladores es muy numerosa y aportan distintas ideas en función de la plataforma de la que vienen y hoy por hoy ya se han desarrollado más de 75.000 módulos.
El modelo de programación que plantea Node se basa en 2 preceptos:
1.- La concurrencia es complicada y no debería exponer al programador, como ocurre en Java, por ejemplo. Java no obstante tiene numerosas APIs asíncroncas para evitar problemas de concurrencia
2.- Las llamadas a dispositivos bloqueantes es mala, ya que ralentiza el rendimiento final de la aplicación. Programando en Node.js, en lugar de esperar a una petición del cliente y procesarla, registramos nuestro interés por un evento de manera que cuando ocurra dicho evento (una petición HTTP
The Node programming model is very different from the Java EE programming model. Java EE is based on a multi-threaded runtime, where concurrency is often exposed to the developer.
Node, on the other hand, takes the approach that developing multi-threaded applications is hard. There are potentially thousands of concurrent connections and dealing with synchronized blocks of code, deadlocks, race conditions, etc, is hard. In addition, many application platforms block on I/O. Blocking I/O blocks a thread from running, and therefore wastes system resources. By the way, historically this was true even with Java EE, but more recent versions of Java EE have added asynchronous APIs and Non-blocking I/O to address this.
Node takes a very different approach as a web application platform. Node on the Chrome v8 JavaScript engine executes user code in a single thread with a development model that is similar to writing browser apps. In Node’s reactive model, developers register interest with events (callbacks/promises) as the occur in the system. Events are added to the event queue and processed by the event queue. If you have ever written User Interface code (onClick for example), this approach is very similar. The difference is that the event loop can handle many events in parallel because I/O calls to slower resources (network & filesystem for example) are non-blocking, executing in their own threads that do not execute the developer’s code.
What we have here is an example of a simple HTTP server written in JavaScript. Instead of waiting for a request and then processing it, we register a function (in the dark grey box) that is called each time a client makes an HTTP request. Each client request is added to the event queue to be processed.
Nashorn is a new EcmaScript 5.1 compliant JavaScript engine for the JVM. Nashorn ships with JDK 8 and replaces the older Rhino engine. Nashorn utlizes the InvokeDynamic bytecode introduced in JDK 7 for improved performance. Say something here about security.
What really differentiates Rhino from the Chrome v8 engine is the fact that you can seamlessly invoke Java code from within JavaScript code. <CLICK> As you can see from this snippet of code, we can easily create a javafx client-side application by invoking Java APIs from JavaScript. In this case, we create a Button object, assign the button text, and invoke a callback when the button is pushed.
Nashorn is a new EcmaScript 5.1 compliant JavaScript engine for the JVM. Nashorn ships with JDK 8 and replaces the older Rhino engine. Nashorn utlizes the InvokeDynamic bytecode introduced in JDK 7 for improved performance. Say something here about security.
What really differentiates Rhino from the Chrome v8 engine is the fact that you can seamlessly invoke Java code from within JavaScript code. <CLICK> As you can see from this snippet of code, we can easily create a javafx client-side application by invoking Java APIs from JavaScript. In this case, we create a Button object, assign the button text, and invoke a callback when the button is pushed.
Scaling a node application typically requires adding node processes that run the same application. From a Java perspective, we can accomplish this by replicating the application across new threads within the same JVM. Each thread is essentially a new node event loop, maintaining the single-threaded node programming model. In addition, HTTP requests are automatically load balanced across the threads by the Avatar framework. This offers in-process scaling with no management overhead.
Because we have multiple instances of the same application in the same JVM, they may want to share state.
¡¡Hay que tener cuidado al compartir estado a través de objetos Java!!
This is a Announcement slide ideal for including a picture and partner or product logo with a brief title and subtitle or description.
To Replace the Picture on this sample slide (this applies to all slides in this template that contain replaceable pictures)
Select the sample picture and press Delete. Click the icon inside the shape to open the Insert Picture dialog box. Navigate to the location where the picture is stored, select desired picture and click on the Insert button to fit the image proportionally within the shape.
Note: Do not right-click the image to change the picture inside the picture placeholder. This will change the frame size of the picture placeholder. Instead, follow the steps outlined above.
To Replace the LOGO on this sample slide:
Right-click the sample LOGO and choose Change Picture. Navigate to the location where the new logo is stored, select desired logo file and click on the Open button to replace the sample logo.
El primer argumento de registerRestService es la URL del servicio mientras que el segundo es la implementación del mismo