Enviar pesquisa
Carregar
Server Side JavaScript on the JVM - Project Avatar - QCon London March 2014
âą
6 gostaram
âą
5,897 visualizaçÔes
David Delabassee
Seguir
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 42
Baixar agora
Baixar para ler offline
Recomendados
Server Side JavaScript on the Java Platform - David Delabassee
Server Side JavaScript on the Java Platform - David Delabassee
JAXLondon2014
Â
Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur!
Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur!
David Delabassee
Â
Avatar 2.0
Avatar 2.0
David Delabassee
Â
Nashorn: JavaScript Running on Java VM (English)
Nashorn: JavaScript Running on Java VM (English)
Logico
Â
Getting Started with Rails on GlassFish (Hands-on Lab) - Spark IT 2010
Getting Started with Rails on GlassFish (Hands-on Lab) - Spark IT 2010
Arun Gupta
Â
Java EE 7 (Lyon JUG & Alpes JUG - March 2014)
Java EE 7 (Lyon JUG & Alpes JUG - March 2014)
David Delabassee
Â
What's next for Java API for WebSocket (JSR 356)
What's next for Java API for WebSocket (JSR 356)
Pavel Bucek
Â
Node.js, toy or power tool?
Node.js, toy or power tool?
Ovidiu Dimulescu
Â
Recomendados
Server Side JavaScript on the Java Platform - David Delabassee
Server Side JavaScript on the Java Platform - David Delabassee
JAXLondon2014
Â
Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur!
Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur!
David Delabassee
Â
Avatar 2.0
Avatar 2.0
David Delabassee
Â
Nashorn: JavaScript Running on Java VM (English)
Nashorn: JavaScript Running on Java VM (English)
Logico
Â
Getting Started with Rails on GlassFish (Hands-on Lab) - Spark IT 2010
Getting Started with Rails on GlassFish (Hands-on Lab) - Spark IT 2010
Arun Gupta
Â
Java EE 7 (Lyon JUG & Alpes JUG - March 2014)
Java EE 7 (Lyon JUG & Alpes JUG - March 2014)
David Delabassee
Â
What's next for Java API for WebSocket (JSR 356)
What's next for Java API for WebSocket (JSR 356)
Pavel Bucek
Â
Node.js, toy or power tool?
Node.js, toy or power tool?
Ovidiu Dimulescu
Â
Building HTML5 WebSocket Apps in Java at JavaOne Latin America 2012
Building HTML5 WebSocket Apps in Java at JavaOne Latin America 2012
Arun Gupta
Â
Java EE 8: On the Horizon
Java EE 8: On the Horizon
Josh Juneau
Â
Powering the Next Generation Services with Java Platform - Spark IT 2010
Powering the Next Generation Services with Java Platform - Spark IT 2010
Arun Gupta
Â
Java Web Application Security - Utah JUG 2011
Java Web Application Security - Utah JUG 2011
Matt Raible
Â
Threads Needles Stacks Heaps - Java edition
Threads Needles Stacks Heaps - Java edition
Ovidiu Dimulescu
Â
JavaScript Interview Questions and Answers | Full Stack Web Development Train...
JavaScript Interview Questions and Answers | Full Stack Web Development Train...
Edureka!
Â
JavaScript-Core
JavaScript-Core
tutorialsruby
Â
éèŠ Ruby on Rails
éèŠ Ruby on Rails
Wen-Tien Chang
Â
XML and Web Services with Groovy
XML and Web Services with Groovy
Paul King
Â
01 java intro
01 java intro
Deepal Shah
Â
Java EE Revisits GoF Design Patterns
Java EE Revisits GoF Design Patterns
Murat Yener
Â
Reactive Java EE - Let Me Count the Ways!
Reactive Java EE - Let Me Count the Ways!
Reza Rahman
Â
Oracle Keynote from JMagghreb 2014
Oracle Keynote from JMagghreb 2014
Simon Ritter
Â
Modularization With Project Jigsaw in JDK 9
Modularization With Project Jigsaw in JDK 9
Simon Ritter
Â
What's this jQuery? Where it came from, and how it will drive innovation
What's this jQuery? Where it came from, and how it will drive innovation
Marakana Inc.
Â
JavaOne 2011: Migrating Spring Applications to Java EE 6
JavaOne 2011: Migrating Spring Applications to Java EE 6
Bert Ertman
Â
Java: Create The Future Keynote
Java: Create The Future Keynote
Simon Ritter
Â
The Hacker's Guide To Session Hijacking
The Hacker's Guide To Session Hijacking
Patrycja Wegrzynowicz
Â
HTML5 and the dawn of rich mobile web applications pt 1
HTML5 and the dawn of rich mobile web applications pt 1
James Pearce
Â
Java API for WebSocket 1.0: Java EE 7 and GlassFish
Java API for WebSocket 1.0: Java EE 7 and GlassFish
Arun Gupta
Â
Project Avatar (Lyon JUG & Alpes JUG - March 2014)
Project Avatar (Lyon JUG & Alpes JUG - March 2014)
David Delabassee
Â
Imworld.ro
Imworld.ro
Geertjan Wielenga
Â
Mais conteĂșdo relacionado
Mais procurados
Building HTML5 WebSocket Apps in Java at JavaOne Latin America 2012
Building HTML5 WebSocket Apps in Java at JavaOne Latin America 2012
Arun Gupta
Â
Java EE 8: On the Horizon
Java EE 8: On the Horizon
Josh Juneau
Â
Powering the Next Generation Services with Java Platform - Spark IT 2010
Powering the Next Generation Services with Java Platform - Spark IT 2010
Arun Gupta
Â
Java Web Application Security - Utah JUG 2011
Java Web Application Security - Utah JUG 2011
Matt Raible
Â
Threads Needles Stacks Heaps - Java edition
Threads Needles Stacks Heaps - Java edition
Ovidiu Dimulescu
Â
JavaScript Interview Questions and Answers | Full Stack Web Development Train...
JavaScript Interview Questions and Answers | Full Stack Web Development Train...
Edureka!
Â
JavaScript-Core
JavaScript-Core
tutorialsruby
Â
éèŠ Ruby on Rails
éèŠ Ruby on Rails
Wen-Tien Chang
Â
XML and Web Services with Groovy
XML and Web Services with Groovy
Paul King
Â
01 java intro
01 java intro
Deepal Shah
Â
Java EE Revisits GoF Design Patterns
Java EE Revisits GoF Design Patterns
Murat Yener
Â
Reactive Java EE - Let Me Count the Ways!
Reactive Java EE - Let Me Count the Ways!
Reza Rahman
Â
Oracle Keynote from JMagghreb 2014
Oracle Keynote from JMagghreb 2014
Simon Ritter
Â
Modularization With Project Jigsaw in JDK 9
Modularization With Project Jigsaw in JDK 9
Simon Ritter
Â
What's this jQuery? Where it came from, and how it will drive innovation
What's this jQuery? Where it came from, and how it will drive innovation
Marakana Inc.
Â
JavaOne 2011: Migrating Spring Applications to Java EE 6
JavaOne 2011: Migrating Spring Applications to Java EE 6
Bert Ertman
Â
Java: Create The Future Keynote
Java: Create The Future Keynote
Simon Ritter
Â
The Hacker's Guide To Session Hijacking
The Hacker's Guide To Session Hijacking
Patrycja Wegrzynowicz
Â
HTML5 and the dawn of rich mobile web applications pt 1
HTML5 and the dawn of rich mobile web applications pt 1
James Pearce
Â
Java API for WebSocket 1.0: Java EE 7 and GlassFish
Java API for WebSocket 1.0: Java EE 7 and GlassFish
Arun Gupta
Â
Mais procurados
(20)
Building HTML5 WebSocket Apps in Java at JavaOne Latin America 2012
Building HTML5 WebSocket Apps in Java at JavaOne Latin America 2012
Â
Java EE 8: On the Horizon
Java EE 8: On the Horizon
Â
Powering the Next Generation Services with Java Platform - Spark IT 2010
Powering the Next Generation Services with Java Platform - Spark IT 2010
Â
Java Web Application Security - Utah JUG 2011
Java Web Application Security - Utah JUG 2011
Â
Threads Needles Stacks Heaps - Java edition
Threads Needles Stacks Heaps - Java edition
Â
JavaScript Interview Questions and Answers | Full Stack Web Development Train...
JavaScript Interview Questions and Answers | Full Stack Web Development Train...
Â
JavaScript-Core
JavaScript-Core
Â
éèŠ Ruby on Rails
éèŠ Ruby on Rails
Â
XML and Web Services with Groovy
XML and Web Services with Groovy
Â
01 java intro
01 java intro
Â
Java EE Revisits GoF Design Patterns
Java EE Revisits GoF Design Patterns
Â
Reactive Java EE - Let Me Count the Ways!
Reactive Java EE - Let Me Count the Ways!
Â
Oracle Keynote from JMagghreb 2014
Oracle Keynote from JMagghreb 2014
Â
Modularization With Project Jigsaw in JDK 9
Modularization With Project Jigsaw in JDK 9
Â
What's this jQuery? Where it came from, and how it will drive innovation
What's this jQuery? Where it came from, and how it will drive innovation
Â
JavaOne 2011: Migrating Spring Applications to Java EE 6
JavaOne 2011: Migrating Spring Applications to Java EE 6
Â
Java: Create The Future Keynote
Java: Create The Future Keynote
Â
The Hacker's Guide To Session Hijacking
The Hacker's Guide To Session Hijacking
Â
HTML5 and the dawn of rich mobile web applications pt 1
HTML5 and the dawn of rich mobile web applications pt 1
Â
Java API for WebSocket 1.0: Java EE 7 and GlassFish
Java API for WebSocket 1.0: Java EE 7 and GlassFish
Â
Semelhante a Server Side JavaScript on the JVM - Project Avatar - QCon London March 2014
Project Avatar (Lyon JUG & Alpes JUG - March 2014)
Project Avatar (Lyon JUG & Alpes JUG - March 2014)
David Delabassee
Â
Imworld.ro
Imworld.ro
Geertjan Wielenga
Â
10 Building Blocks for Enterprise JavaScript
10 Building Blocks for Enterprise JavaScript
Geertjan Wielenga
Â
Slovenian Oracle User Group
Slovenian Oracle User Group
Geertjan Wielenga
Â
WebSockets in Enterprise Applications
WebSockets in Enterprise Applications
Pavel Bucek
Â
JavaCro'15 - Everything a Java EE Developer needs to know about the JavaScrip...
JavaCro'15 - Everything a Java EE Developer needs to know about the JavaScrip...
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
Â
ïżŒTweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ...
ïżŒTweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ...
Marco Antonio Maciel
Â
Session at Oredev 2016.
Session at Oredev 2016.
Geertjan Wielenga
Â
Construindo aplicaçÔes com HTML5, WebSockets, e Java EE 7
Construindo aplicaçÔes com HTML5, WebSockets, e Java EE 7
Bruno Borges
Â
Java 8
Java 8
jclingan
Â
What's new in Java 8
What's new in Java 8
jclingan
Â
Play Framework: Intro & High-Level Overview
Play Framework: Intro & High-Level Overview
Josh Padnick
Â
HTTP/2 Comes to Java - What Servlet 4.0 Means to You
HTTP/2 Comes to Java - What Servlet 4.0 Means to You
David Delabassee
Â
Oracle JET: Enterprise-Ready JavaScript Toolkit
Oracle JET: Enterprise-Ready JavaScript Toolkit
Geertjan Wielenga
Â
Laravel 4 presentation
Laravel 4 presentation
Abu Saleh Muhammad Shaon
Â
Servidores de Aplicação: por que ainda precisamos deles?
Servidores de Aplicação: por que ainda precisamos deles?
Bruno Borges
Â
Jsp Comparison
Jsp Comparison
Venky Sadasivam
Â
01 overview-and-setup
01 overview-and-setup
snopteck
Â
Java Cloud and Container Ready
Java Cloud and Container Ready
CodeOps Technologies LLP
Â
Getting Started with WebSocket and Server-Sent Events using Java by Arun Gupta
Getting Started with WebSocket and Server-Sent Events using Java by Arun Gupta
Codemotion
Â
Semelhante a Server Side JavaScript on the JVM - Project Avatar - QCon London March 2014
(20)
Project Avatar (Lyon JUG & Alpes JUG - March 2014)
Project Avatar (Lyon JUG & Alpes JUG - March 2014)
Â
Imworld.ro
Imworld.ro
Â
10 Building Blocks for Enterprise JavaScript
10 Building Blocks for Enterprise JavaScript
Â
Slovenian Oracle User Group
Slovenian Oracle User Group
Â
WebSockets in Enterprise Applications
WebSockets in Enterprise Applications
Â
JavaCro'15 - Everything a Java EE Developer needs to know about the JavaScrip...
JavaCro'15 - Everything a Java EE Developer needs to know about the JavaScrip...
Â
ïżŒTweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ...
ïżŒTweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ...
Â
Session at Oredev 2016.
Session at Oredev 2016.
Â
Construindo aplicaçÔes com HTML5, WebSockets, e Java EE 7
Construindo aplicaçÔes com HTML5, WebSockets, e Java EE 7
Â
Java 8
Java 8
Â
What's new in Java 8
What's new in Java 8
Â
Play Framework: Intro & High-Level Overview
Play Framework: Intro & High-Level Overview
Â
HTTP/2 Comes to Java - What Servlet 4.0 Means to You
HTTP/2 Comes to Java - What Servlet 4.0 Means to You
Â
Oracle JET: Enterprise-Ready JavaScript Toolkit
Oracle JET: Enterprise-Ready JavaScript Toolkit
Â
Laravel 4 presentation
Laravel 4 presentation
Â
Servidores de Aplicação: por que ainda precisamos deles?
Servidores de Aplicação: por que ainda precisamos deles?
Â
Jsp Comparison
Jsp Comparison
Â
01 overview-and-setup
01 overview-and-setup
Â
Java Cloud and Container Ready
Java Cloud and Container Ready
Â
Getting Started with WebSocket and Server-Sent Events using Java by Arun Gupta
Getting Started with WebSocket and Server-Sent Events using Java by Arun Gupta
Â
Mais de David Delabassee
JVMs in Containers - Best Practices
JVMs in Containers - Best Practices
David Delabassee
Â
JVMs in Containers
JVMs in Containers
David Delabassee
Â
Serverless Java Challenges & Triumphs
Serverless Java Challenges & Triumphs
David Delabassee
Â
Serverless Java - Challenges and Triumphs
Serverless Java - Challenges and Triumphs
David Delabassee
Â
Randstad Docker meetup - Serverless
Randstad Docker meetup - Serverless
David Delabassee
Â
Java Serverless in Action - Voxxed Banff
Java Serverless in Action - Voxxed Banff
David Delabassee
Â
Serverless Kotlin
Serverless Kotlin
David Delabassee
Â
REST in an Async World
REST in an Async World
David Delabassee
Â
JAX-RS 2.1 Reloaded
JAX-RS 2.1 Reloaded
David Delabassee
Â
Java EE 8 - February 2017 update
Java EE 8 - February 2017 update
David Delabassee
Â
Java EE Next
Java EE Next
David Delabassee
Â
Java EE Next - BeJUG JavaOne Afterglow 2016
Java EE Next - BeJUG JavaOne Afterglow 2016
David Delabassee
Â
HTTP/2 comes to Java
HTTP/2 comes to Java
David Delabassee
Â
Java EE 8 - Work in progress
Java EE 8 - Work in progress
David Delabassee
Â
HTTP/2 comes to Java (Dec. 2015 version)
HTTP/2 comes to Java (Dec. 2015 version)
David Delabassee
Â
ïżŒEJB and CDI - Alignment and Strategy
ïżŒEJB and CDI - Alignment and Strategy
David Delabassee
Â
HTTP/2 Comes to Java
HTTP/2 Comes to Java
David Delabassee
Â
Java EE 8 - Whatâs new on the Web front
Java EE 8 - Whatâs new on the Web front
David Delabassee
Â
HTTP/2 Comes to Java
HTTP/2 Comes to Java
David Delabassee
Â
What's coming in Java EE 8
What's coming in Java EE 8
David Delabassee
Â
Mais de David Delabassee
(20)
JVMs in Containers - Best Practices
JVMs in Containers - Best Practices
Â
JVMs in Containers
JVMs in Containers
Â
Serverless Java Challenges & Triumphs
Serverless Java Challenges & Triumphs
Â
Serverless Java - Challenges and Triumphs
Serverless Java - Challenges and Triumphs
Â
Randstad Docker meetup - Serverless
Randstad Docker meetup - Serverless
Â
Java Serverless in Action - Voxxed Banff
Java Serverless in Action - Voxxed Banff
Â
Serverless Kotlin
Serverless Kotlin
Â
REST in an Async World
REST in an Async World
Â
JAX-RS 2.1 Reloaded
JAX-RS 2.1 Reloaded
Â
Java EE 8 - February 2017 update
Java EE 8 - February 2017 update
Â
Java EE Next
Java EE Next
Â
Java EE Next - BeJUG JavaOne Afterglow 2016
Java EE Next - BeJUG JavaOne Afterglow 2016
Â
HTTP/2 comes to Java
HTTP/2 comes to Java
Â
Java EE 8 - Work in progress
Java EE 8 - Work in progress
Â
HTTP/2 comes to Java (Dec. 2015 version)
HTTP/2 comes to Java (Dec. 2015 version)
Â
ïżŒEJB and CDI - Alignment and Strategy
ïżŒEJB and CDI - Alignment and Strategy
Â
HTTP/2 Comes to Java
HTTP/2 Comes to Java
Â
Java EE 8 - Whatâs new on the Web front
Java EE 8 - Whatâs new on the Web front
Â
HTTP/2 Comes to Java
HTTP/2 Comes to Java
Â
What's coming in Java EE 8
What's coming in Java EE 8
Â
Ăltimo
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
apidays
Â
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
Dropbox
Â
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
apidays
Â
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
DianaGray10
Â
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
danishmna97
Â
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
sudhanshuwaghmare1
Â
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
Remote DBA Services
Â
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(âïž+971_581248768%)**%*]'#abortion pills for sale in dubai@
Â
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
Sandro Moreira
Â
presentation ICT roal in 21st century education
presentation ICT roal in 21st century education
jfdjdjcjdnsjd
Â
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
Zilliz
Â
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Angeliki Cooney
Â
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Orbitshub
Â
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
Andrey Devyatkin
Â
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
apidays
Â
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
Zilliz
Â
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
Â
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
sammart93
Â
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Zilliz
Â
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
Nanddeep Nachan
Â
Ăltimo
(20)
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Â
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
Â
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
Â
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Â
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
Â
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
Â
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
Â
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
Â
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
Â
presentation ICT roal in 21st century education
presentation ICT roal in 21st century education
Â
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
Â
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Â
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Â
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
Â
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Â
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
Â
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Â
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Â
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Â
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
Â
Server Side JavaScript on the JVM - Project Avatar - QCon London March 2014
1.
Project Avatar:âš Server Side
JavaScript on the JVM QCon London 2014 ! David Delabassee @delabasseeâš Software Evangelist - Oracle
2.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved.!2 The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracleâs products remains at the sole discretion of Oracle.
3.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved.!3 "The French and the British are such good enemies that they can't resist being friends." (Peter Ustinov)
4.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved.!4
5.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved.!5 Agenda âȘ Web Application Architecture Evolution âȘ JavaScript and Node on the JVM âȘ Project Avatar â Advanced JavaScript Services âȘ Avatar Client Framework âȘ Summary
6.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved.!6 Evolution of Web Application Architecture A Java EE Perspective ClientServer Presentation ! (Servlet/JSP) EnterpriseConnectivityâš andBusinessLogic Http âȘ Request / Response âȘ Multi-Page Application Browser Java EE / JVM
7.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved.!7 Evolution of Web Application Architecture A Java EE Perspective Presentation ! (Servlet/JSP,âš JSF) Connectivity âš (RESTâš SSE) EnterpriseConnectivityâš andBusinessLogic Http REST Java EE / JVM âȘ Multi-Page Application âȘ In-page updates (AJAX) JavaScript Browser ClientServer
8.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved.!8 Modern Web Application Architecture A Java EE Perspective Http, REST REST, SSE, WebSockets Presentation ! (Servlet/JSP,âš JSF) Connectivity âš (WebSocket,âš REST,SSE) EnterpriseConnectivityâš andBusinessLogic Java EE / JVM âȘ Single-page applications âȘ View/Controller in browser âȘ Model on server View Controller JavaScript Browser ClientServer
9.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved.!9 Java EE â The Latest in Enterprise Java ENTERPRISE EDITIONDEVELOPER PRODUCTIVITY MEETING âš ENTERPRISE DEMANDS Java EE 7 âȘ Batch âȘ Concurrency âȘ Simplified JMS âȘ More annotated POJOs âȘ Less boilerplate code âȘ Cohesive integrated âš platform âȘ WebSockets âȘ JSON âȘ Servlet 3.1 NIO âȘ REST
10.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved.!10 Node.js âȘ Server-side JavaScript based on Chrome v8 engine âȘ Created by Ryan Dahl (2009), Open Source âȘ Designed for fast, scalable network applications âȘ Event-driven, non-blocking I/O model âȘ âMelting pot communityâ â JavaScript, Java, .NET, PHP, ⊠â Very active, with 60,000+ modules Server Side JavaScript
11.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved.!11 Node.js Programming Model âȘ Single threaded âȘ Event-loop â Callback model â Non-blocking I/O calls âȘ Heavily parallelized â User code: sequential âȘ Multi-threading is hard â Thousands of concurrent connections â Deal with deadlocks and race conditions âȘ Blocking I/O is bad HTTP Callback Example:
12.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved.!12 Node.js Event Loop Single-Threadedâš Event Loop Resource- Intensive Operations Network File System Network Compute Register Callback CompleteOperation Client Requests (Http) Response
13.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved.!13 Evolution of Web Application Architecture Mobile-enabling existing services REST/SSE/WebSockets JavaScript âȘ Project-based end-to-end JavaScript âȘ Rapid prototyping & API layer âȘ Leverage backend resources âȘ Aggregate & transform content âȘ Return JSON to browser View Controller JavaScript Browser ClientServer Node
14.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved.!14 ClientServer Evolution of Web Application Architecture Mobile-enabling existing services EnterpriseConnectivityâš andBusinessLogic Java EE / JVM JavaScript What if we could run Nodeâš alongside Java EE inâš the same JVM? View Controller JavaScript Browser REST / SSE/ WebSockets Node
15.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved.!15 JavaScript and Nodeâš on the JVM
16.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved.!16 Project Nashorn âȘ ECMAScript 5.1 compliant âȘ Bundled with JDK 8 â Replaces Rhino â Faster (2x â 10x) â More secure âȘ Seamless Java ĂïĂ ï JavaScript interoperability JavaScript on the JVM http://download.java.net/jdk8/docs/technotes/guides/scripting/nashorn/index.html
17.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved.!17 Avatar.js âȘ Platform for server side JavaScript applications âȘ Requires Nashorn (JDK 8) âȘ 95% Node compatibility â Use popular packages (Express, async, commander, etc) â Uses same portability libraries as Node.js â Limitation: No Chrome v8 native APIs âȘ Avatar.js Advantages â Leverage Java frameworks, libraries and tools â Security manager Node on the JVM
18.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved.!18 Avatar.js = Node + Java âȘ Node Programming Model â Code in JavaScript â Single event loop / thread â Require (import) Node modules âȘ Invoke Java code â Java types and libraries â new java.lang.Thread();! â new com.myorg.MyObj(); Leverage Java, including Threads Java JavaScript java.lang.Thread java.util.SortedSet java.math.BigInteger Node App JVM Process com.myorg.MyObj require (âasyncâ) postEvent()
19.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved.!19 Project Avatar:âš Advanced JavaScript Servicesâš âš Leveraging Java EE
20.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved.!20 Project Avatar âȘ Similar in spirit to Servlets, but focused on REST, WebSocket, Server Sent Event (SSE) endpoints âȘ Use familiar Node.js event-driven programming model and modules âȘ Layers on Avatar.js Node-compatible runtime âȘ Adds integrated enterprise features A Server Side JavaScript Services Framework
21.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved.!21 Project Avatar âȘ Multi-threading, lightweight message passing, no mutable shared state âȘ Model Store â Object Relational Mapping âȘ HTTP listener / load-balancer managed by framework âȘ Messaging â JMS on Java EE container Leveraging the JVM and Java EE
22.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved.!22 Avatar Architecture - Server Server Database Data Notification JDK 8 / Nashorn Avatar Runtime Node Modules Avatar Modules Server Runtime (Java EE) Application Services = Java framework = JavaScript framework = Application code Avatar.js
23.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved.!23 Avatar Services Multi-core, state sharing, data storage Java JVM Process JavaScript Services Services ServicesServices Database Data Notification shared state JSON JSON JSON JSON HTTP Load Balancer
24.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved.!24 Shared State âȘ Two Models â MessageBus âȘ Publish/subscribe message passing â Shared State âȘ Simple map API âȘ Application-scoped instance âȘ Session-scoped instance â Named â Leased, with configurable timeout âȘ Provide required serialization, concurrency, and caching Lightweight inter-thread communication
25.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved.!25 State Sharing Example var avatar = require(âorg/glassfish/avatarâ);! var threads = require(âorg/glassfish/avatar/threadsâ);! var app = avatar.application;! var name = app.name;! var bus = app.bus;! ! // Listen for messages on the âhelloâ topic! bus.on(âhelloâ, function(msg) {! print(name + â got â + msg); ! });! ! // Start a background thread which publishes to the âhelloâ topic! // Background threads do not participate in request processing! threads.newBackgroundThread(âbackgroundâ, âhello.jsâ).start();!
26.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved.!26 Push Service Example var avatar = require(âorg/glassfish/avatarâ);! var threads = require('org/glassfish/avatar/threads');! var bus = avatar.application.bus;! ! // Register a push service that forwards background messages! avatar.registerPushService({url: 'push/message'}, function () { ! this.onOpen = function (context) {! bus.on(âbackground', function(msg) {! context.sendMessage({body: msg});! });! };! });! ! // Create and start a background thread that publishes messages! threads.newBackgroundThread(âbackgroundâ, âbackground.jsâ).start();!
27.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved.!27 WebSocket Service Example // Load avatar module! var avatar = require(âorg/glassfish/avatarâ); !! // Register service instance! avatar.registerSocketService({url: âwebsocket/chatâ}, ! ! ! function() { this.data= {transcript:ââ};!âš this.onMessage = function (peer, message) {âš this.data.transcript += message;âš this.data.transcript += ânâ;âš peer.getContext().sendAll(this.data);! };! });!
28.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved.!28 Model-Store Framework âȘ JavaScript ORM library âȘ Pure JavaScript API that â Supports relational and non-relational databases â Integration with other Avatar services âȘ Similar to pure Node.js libraries â Sequelize, JugglingDB, db
29.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved.!29 Model-Store API Model and Database setup var Product = avatar.newModel({! "name": {! type: "string",! primary: true! },! "price": "number",! "quantity": "integer"! });! var store = avatar.newStore(âmysqlâ, {! host: âlocalhostâ,! port: 3306,! database: âtestâ,! username: ârootâ,! createDb: true,! dropTables: true! });!
30.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved.!30 Model-Store Example Creating and Storing an Object // Binds Product model with store! Product.bind(store); ! // Insert a new product into the db! store.connect(function() { Product.create({ name: 'Widget',! price: 1.00, quantity: 2 }, function(err, w1) { console.log(JSON.stringify(w1)); store.disconnect(function() { // Done! }); }); }); âȘ Bind Model to Storeâš âȘ Connect to Store â Creates Product table if required â Callback adds product to table
31.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved.!31 Model-Store API âȘ Models can have relationships with other models â 1:1, 1:n, M,N âȘ Data Stores â Relational âȘ Testing: Oracle DB, MySQL, Derby (Embedded, Network) âȘ Non-tested: Any other JDBC driver â Non-relational âȘ Oracle NoSQL, MongoDB (in progress)
32.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved.!32 Model-Store API âȘ Lots of possibilities â Configure JPA provider using properties â Generate JavaScript model from database schema â User transactions â 2nd level JPA cache, TopLink Grid â Oracle RAC Support â More ⊠âȘ Maintain pure JavaScript API âȘ Weâre looking for YOUR feedback! Opportunities to leverage JPA features
33.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved.!33 Avatar Client Framework
34.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved.!34 Avatar Client Model âȘ View â Extensible component views â Pre-defined Widget Sets: jQuery UI (default), jQuery Mobile, Dijit â Declarative UI components âȘ Model â Models (WS, SSE, REST, local) in JavaScript â Easily connects to Java and JavaScript services â Model library usable as standalone JavaScript file âȘ Other Highlights â Familiar syntax in HTML with âdata-â tags â Bidirectional Data binding using EL (Expression Language) â CSS support â AMD modules for code partitioning
35.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved.!35 Avatar Architecture â Server and Client Server Client REST/WebSocket/SSE *.html *.css *.js HTP Database Data Notification JDK 8 / Nashorn Avatar Compiler Avatar Runtime Node Modules Avatar Modules Server Runtime (Java EE) Application Services Application Views = Java framework = JavaScript framework = Application code Avatar.js
36.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved.!36 Hello World Example <script data-model=âlocalâ data-instance="name">! Â Â Â Â var NameModel = function() {! Â Â Â Â Â Â Â this.first = "John";! Â Â Â Â Â Â Â this.last = "Doe";! Â Â Â Â Â Â Â this.clear = function() { this.first = this.last = "â; }; ! };! </script>! View <form>! <label for="first">First Name</label>! <input id="first" type="textâ data-value="#{name.first}"/>! <label for=âlast">Last Name</label>! <input id=âlast" type="textâ data-value="#{name.last}"/>! Hello #{name.first} #{name.last}! <button onclick="#{name.clear()}â>Clear</button>! </form>! Model
37.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved.!37 Chat Example: WebSockets <script data-model="socket">! var ChatModel = function() {! âŠ! this.sendMsg = function() {! this.send(this.user + ":" + this.message);! this.message = "";! };! };! </script>! ! <script data-type="ChatModel" data-instance="chatâ! data-url=âwebsocket/chatâ>! </script>!
38.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved.!38 Summary âȘ Invoke Java code âȘ Multi-threading optimizations â Share state across threads, JVMs â Built-in load balancing across threads âȘ Leverage Java EE services âȘ Deploy on existing Java EE infrastructure â Leverage AppServer features (clustering, lifecycle management) Server Side JavaScript on the JVM
39.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved.!39 Avatar Roadmap WebLogic Runtime 2014 20152013 Project Avatar Launch (JavaOne, 2013 !GlassFish 4 Runtime WebLogic 12.1.4 ! Avatar Commercial Support
40.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved.!40 Next Steps 1) Download https://avatar.java.net/ 2) Try it out ! 3) Give us feedback https://avatar.java.net/mailing.html
41.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved.!41 Thanks! Project Avatar https://avatar.java.net/ ! Java EE 8 Survey http://glassfish.org/survey
42.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved.!42
Baixar agora