Copyright © 2013, Oracle and/or its affiliates. All rights reserved.1
GlassFish BOF
Reza Rahman, GlassFish Evangelist
Anil...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.2
The following is intended to outline our general pro...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.3
Agenda
 Journey since JavaOne 2012
 Road Ahead
 C...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.4
GlassFish Community
 Shipped Java EE 7 RI
 More so...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.5
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.6
Java EE 7
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.7
Java EE Past, Present, & Future
J2EE 1.3
CMP,
Connec...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.8
Java EE 7
Connector
1.6
Connector
1.6
Managed Beans ...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.9
Java API for WebSocket
 Full-duplex, bidirectional ...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.10
Java API for WebSocket
Connection Life Cycle
@Singl...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.11
Java API for WebSocket
WebSocket Communication
...
...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.12
JAX-RS 2
 Client API
 Message filters & entity in...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.13
JAX-RS 2
Client API
// Get instance of Client
Clien...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.14
JMS 2
 API modernization
– Streamlined APIs
– Depe...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.15
JMS 2
Old API
@Resource(lookup = "java:global/jms/d...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.16
JMS 2
Simplified API
@Inject
private JMSContext con...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.17
Batch Applications for the Java Platform
 Standard...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.18
<step id=”sendStatements”>
<chunk reader ref=”accou...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.19
Concurrency Utilities for Java EE
 Provides low-le...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.20
Concurrency Utilities for Java EE
Managed Task Exec...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.21
Many others . . .
• JSON-P: Parsing, writing and qu...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.22
GlassFish 4
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.23
GlassFish 4
 Primary focus on making Java EE 7 usa...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.24
GlassFish 4 and Java EE 7 Concurrency
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.25
GlassFish 4 and JBatch
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.26
GlassFish 4 and JBatch
 list-batch-job-executions
...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.27
Attach/Detach Admin Commands
 Commands can be exec...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.28
More Support for REST/SSE
 A more REST centric app...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.29
ODL vs. ULF
 Default log format changed to align w...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.30
More Logging Commands
 Large set of existing loggi...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.31
Configuration Defaults
 GlassFish 3.1 – configurat...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.32
OSGi Administration
 GlassFish modularity is based...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.33
More Details/Demos
 CON3319: GlassFish 4 Overview:...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.34
GlassFish Server
The Ecosystem
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.35
GlassFish.org – New Look and Feel!
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.36
Project Avatar
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.37
What is Avatar?
 Industry trends
– HTML5 and JavaS...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.38
Project Avatar Architecture 1. Publishing services ...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.39
Avatar DemoAvatar Demo
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.40
Project Avatar
 Participate and provide feedback
–...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.41
Roadmap
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.42
GlassFish Server Roadmap
GlassFish Server 4.0GlassF...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.43
The Future of Java EE
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.44
Summary
 Java EE 7 themes are HTML5, productivity ...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.45
Try it Out!
4.0
http://glassfish.org
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.46
Upcoming SlideShare
Loading in …5
×

GlassFish BOF

13,048 views

Published on

GlassFish BOF slide deck presented at JavaOne 2013.

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
13,048
On SlideShare
0
From Embeds
0
Number of Embeds
7,940
Actions
Shares
0
Downloads
63
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide
  • We are very excited to announce Java Enterprise Edition 7. We&apos;re committed to Java EE, not just by leading Java EE 7, but also in the products that Oracle delivers. This platform is a culmination of work by all of us, Oracle, our Java Partners and of course you, the Java community So without further ado, I’d like to invite Cameron Purdy, VP of Development, to tell us more about the platform. Congratulations Cameron (hand shake)
  • GlassFish BOF

    1. 1. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.1 GlassFish BOF Reza Rahman, GlassFish Evangelist Anil Gaur, VP Software Development
    2. 2. Copyright © 2013, 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. 3. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.3 Agenda  Journey since JavaOne 2012  Road Ahead  Community Feedback  Your agenda…Q&A
    4. 4. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.4 GlassFish Community  Shipped Java EE 7 RI  More social: More Twitter followers  Community contributions – FishCat – Mohammed, Marcus, Adam & many more – Adopt-a-JSR effort with 20+ JUGs – Tic Tac Toe Sample - Johan Since JavaOne 2012…
    5. 5. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.5
    6. 6. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.6 Java EE 7
    7. 7. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.7 Java EE Past, Present, & Future J2EE 1.3 CMP, Connector Architecture J2EE 1.4 Web Services Mgmt, Deploymen t, Async Connector Java EE 5 Ease of Development , EJB 3, JPA, JSF, JAXB, JAX-WS, StAX, SAAJ Java EE 6 Pruning, Extensibility, Ease of Use, CDI, JAX- RS Web Profile Servlet 3, EJB 3.1 Lite Java EE 7 JMS 2, Batch, TX, Concurrency, Interceptor, WebSocket, JSON Web Profile JAX-RS 2 J2EE 1.2 Servlet, JSP, EJB, JMS, RMI
    8. 8. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.8 Java EE 7 Connector 1.6 Connector 1.6 Managed Beans 1.0Managed Beans 1.0 EJB 3.2EJB 3.2 Servlet 3.1Servlet 3.1 Portable Extension s Portable Extension s JSF 2.2JSF 2.2 JAX-RS 2.0 JAX-RS 2.0 JMS 2.0JMS 2.0JPA 2.1JPA 2.1 EL 3.0EL 3.0 JTA 1.2JTA 1.2 JSP 2.2JSP 2.2 Interceptors 1.1Interceptors 1.1 CDI 1.1CDI 1.1 Common Annotations 1.1 Common Annotations 1.1 UpdatedMajor Release New Concurrency Utilities (JSR 236) Concurrency Utilities (JSR 236) Batch Applications (JSR 352) Batch Applications (JSR 352) Java API for JSON (JSR 353) Java API for JSON (JSR 353) Java API for WebSocket (JSR 356) Java API for WebSocket (JSR 356)
    9. 9. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.9 Java API for WebSocket  Full-duplex, bidirectional communication over HTTP – Part of HTML 5  API for WebSocket Client/Server – Declarative, annotation-driven – Programmatic, interface-driven
    10. 10. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.10 Java API for WebSocket Connection Life Cycle @Singleton @ServerEndpoint(”/chat”) public class ChatServer { Set<Session> peers = ... @OnOpen public void onOpen(Session peer) { peers.add(session); } @OnClose public void onClose(Session session) { peers.remove(session); } ...
    11. 11. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.11 Java API for WebSocket WebSocket Communication ... @OnMessage public void message(String message, Session client) throws IOException { for (Session session : peers) { if (!session.equals(client)) { session.getBasicRemote().sendObject(message); } } } }
    12. 12. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.12 JAX-RS 2  Client API  Message filters & entity interceptors  Asynchronous processing – Server and client  Hypermedia Support  Mime type negotiation
    13. 13. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.13 JAX-RS 2 Client API // Get instance of Client Client client = ClientBuilder.newClient(); // Get customer name for the shipped products String name = client.target(“../orders/{orderId}/customer”) .pathParam(”orderId", ”10”) .queryParam(”shipped", ”true”) .request() .get(String.class);
    14. 14. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.14 JMS 2  API modernization – Streamlined APIs – Dependency injection – Runtime exceptions – Builder pattern – Intelligent defaults  Delivery delay, async send, delivery count  MDB alignment  JMS resource definition
    15. 15. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.15 JMS 2 Old API @Resource(lookup = "java:global/jms/demoConnectionFactory") ConnectionFactory connectionFactory; @Resource(lookup = "java:global/jms/demoQueue") Queue demoQueue; public void sendMessage(String payload) { try { Connection connection = connectionFactory.createConnection(); try { Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); MessageProducer messageProducer = session.createProducer(demoQueue); TextMessage textMessage = session.createTextMessage(payload); messageProducer.send(textMessage); } finally { connection.close(); } } catch (JMSException ex) { Logger.getLogger(getClass().getName()).log(Level.SEVERE, null, ex); } } Boilerplate Functional core Checked exceptions
    16. 16. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.16 JMS 2 Simplified API @Inject private JMSContext context; @Resource(mappedName = "jms/inboundQueue") private Queue inboundQueue; public void sendMessage (String payload) { context.createProducer().send(inboundQueue, payload); } Reduced to functional core Higher-level managed, injected API
    17. 17. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.17 Batch Applications for the Java Platform  Standard Java API for batch processing  Lingua franca for well understood batch concepts – Jobs, job specification language (JSL), steps, readers, writers, processors, chunking, flow, parallelization, repositories
    18. 18. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.18 <step id=”sendStatements”> <chunk reader ref=”accountReader” processor ref=”accountProcessor” writer ref=”emailWriter” chunk-size=”10” /> </step> Batch Applications for the Java Platform Step Example ...implements ItemReader { public Object readItem() { // read account using JPA } ...implements ItemProcessor { Public Object processItems(Object account) { // read Account, return Statement } ...implements ItemWriter { public void writeItems(List accounts) { // use JavaMail to send email }
    19. 19. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.19 Concurrency Utilities for Java EE  Provides low-level asynchronous processing capabilities to Java EE application components in a safe, reliable, consistent manner  Mostly extension of Java SE Concurrency Utilities APIs – ManagedExecutorService – ManagedScheduledExecutorService – ManagedThreadFactory
    20. 20. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.20 Concurrency Utilities for Java EE Managed Task Executor public class TestServlet extends HTTPServlet { @Resource(name=“concurrent/MyExecutorService”) ManagedExecutorService executor; Future future = executor.submit(new MyTask()); class MyTask implements Runnable { public void run() { ... // Task logic } } }
    21. 21. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.21 Many others . . . • JSON-P: Parsing, writing and querying JSON • JSF 2.2: @FlowScoped, HTML5 forms, CDI alignment… • Bean Validation 1.1: Method validation, CDI alignment… • Servlet 3.1: Non-blocking IO, Upgrade to WebSocket… • EL 3.0: Lambda expressions, Collection, Operators… • JPA 2.1: Schema generation, stored procedures, converters… • JTA 1.2: @Transactional, @TransactionScoped… • CDI 1.1: Ordering of interceptors, Servlet events, @Vetoed… • EJB 3.2: Optional CMP/BMP…
    22. 22. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.22 GlassFish 4
    23. 23. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.23 GlassFish 4  Primary focus on making Java EE 7 usable by developers  Java EE 7 support in the Admin Console – Java EE Concurrency, JBatch  Background execution of admin commands  More REST/SSE support for administration  Log format changes  Configuration defaults  OSGi administration Feature Summary
    24. 24. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.24 GlassFish 4 and Java EE 7 Concurrency
    25. 25. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.25 GlassFish 4 and JBatch
    26. 26. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.26 GlassFish 4 and JBatch  list-batch-job-executions  list-batch-job-steps  list-batch-jobs
    27. 27. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.27 Attach/Detach Admin Commands  Commands can be executed in the background – Use --detach with any command to send to the background – Use --terse in scripts to receive just job id  Show all running jobs using list-jobs  Bring a job back to the foreground using the attach command  Use the configure-managed-jobs command to further control the lifecycle of jobs
    28. 28. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.28 More Support for REST/SSE  A more REST centric approach with /command/{command_name} – GET for command syntax, POST to execute – JSON for data interchange curl -X POST -H "X-Requested-By: reza" http://localhost:4848/command/uptime  Supports Server Sent Events (SSE) – Try the [start|stop]-cluster command curl -X POST -H "X-Requested-By: reza" -H "Accept: text/event-stream" -d "clusterName=c01" http://localhost:4848/command/stop-cluster
    29. 29. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.29 ODL vs. ULF  Default log format changed to align with Oracle products  Oracle Diagnostics Logging – [yyyy-mm-ddThh:mm:ss.SSS-Z][ProductName-Version][Log Level] [Message ID][LoggerName][Key Value Pairs][[Message]]  Uniform Log Formatter – [#|yyyy-mm-ddThh:mm:ss.SSS-Z|Log Level|ProductName-Version| LoggerName|Key Value Pairs|Message|#] – Well understood from GlassFish 3.1
    30. 30. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.30 More Logging Commands  Large set of existing logging related commands – Define threshold, file rotation, file names, …  New commands – list-loggers helps in understanding logger hierarchy – set-log-file-format to choose ODL, ULF or custom  Still possible to use log viewer in the Admin Console
    31. 31. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.31 Configuration Defaults  GlassFish 3.1 – configuration values must be specified  GlassFish 4 – introduce default values where possible – Convergence to zero initial configuration  get-active-module-config prints effective values  create-module-config forces default values into the configuration – Use as a template for configuration changes – --dryrun just prints what’s being added  delete-module-config removes actual configuration
    32. 32. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.32 OSGi Administration  GlassFish modularity is based on OSGi – Default OSGi subsystem is Apache Felix  Integrated GoGo interface – The osgi command executes one GoGo command – The osgi-shell command opens interactive GoGo console  Optional OSGi admin console – Add on to GlassFish
    33. 33. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.33 More Details/Demos  CON3319: GlassFish 4 Overview: What’s Under the Hood? – Chanda Patel/Martin Mares – Wednesday, September 25, 11:30 AM - 12:30 PM – Parc 55 - Cyril Magnin I
    34. 34. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.34 GlassFish Server The Ecosystem
    35. 35. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.35 GlassFish.org – New Look and Feel!
    36. 36. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.36 Project Avatar
    37. 37. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.37 What is Avatar?  Industry trends – HTML5 and JavaScript is a significant trendsetter in market – HTML5 Connectivity – need a server – Strong interest in server-side JavaScript; horizontally scale – Native Applications gaining ground (but expensive) – Simplified user interface for browser-based applications for mobile, tablets and desktops  Avatar Scope – Java EE features to support HTML5 connectivity  WebSocket, JAX-RS, Server Sent Events – JavaScript services on the server – Enable Thin Server Architecture  Web Application Framework R&D on HTML5/JavaScript
    38. 38. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.38 Project Avatar Architecture 1. Publishing services using 3 programming models: 1. WebSockets 2. RESTful WebServices 3. Server-Sent Events (SSE) 2. Node.js services & programming model hosted on the JVM (avatar.js on Nashorn) 3. Optional server-side template support for HTML5 data binding 4. Optional client library to consume all the above HTML 5 Client HTML 5 Client*.html*.html *.js*.js *.css*.css HTTP (REST) Web Sockets SSE Application Server Java EEJava EE JMSJMS EJBEJB JPAJPA Avatar Server Avatar Server JAXB JSONB JAXB JSONB Data Access Change Notification Databases Node.jarNode.jar NashornNashorn 44 11 33 22 ServletsServlets
    39. 39. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.39 Avatar DemoAvatar Demo
    40. 40. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.40 Project Avatar  Participate and provide feedback – Join avatar.java.net – Download and Review sample applications – Use Project Avatar – Ask questions – What is the direction we should take?  GlassFish Open Source Project  Java EE .next Call to Action
    41. 41. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.41 Roadmap
    42. 42. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.42 GlassFish Server Roadmap GlassFish Server 4.0GlassFish Server 4.0 GlassFish Server 4.1GlassFish Server 4.1 20122012 20132013 20142014 GlassFish Server 3.1.2.2GlassFish Server 3.1.2.2
    43. 43. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.43 The Future of Java EE
    44. 44. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.44 Summary  Java EE 7 themes are HTML5, productivity and enterprise needs  Well received by the community  GlassFish 4 reference implementation and first application server implementing Java EE 7  Oracle continues to invest in Java EE/GlassFish  Get involved in shaping the future!
    45. 45. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.45 Try it Out! 4.0 http://glassfish.org
    46. 46. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.46

    ×