It all sounds Geek to me! [Gautam Arora]

Saturday, April 11, 2009

Community One East 2009 - Diary of a Student attendee

Continuing with my post from last year about C1/J1 2008 at SF, I attended the C1E at NYC (as the timing matched perfectly with my Spring Break)

Community One(C1) is a developer event organized by Sun focussed around its open source products and its user/developer community. This year, C1 is coming to the East(NYC) and West(SF) coast where the first day includes sessions by Sun and Community developers evangelizing the latest in the open product space followed by a second day of paid Sun Training sessions.

Day 1:

General Session: Opening Keynote - Communities and Clouds
The day started with Sun announcing its cloud commuting service - Sun Clouds
  • Infrastructure-as-a-Service (IaaS)
  • Cloud RESTful API
  • Demo with WebDAV showed "Save to Cloud" option in file menu [cool!]
  • Beta accounts coming in a few months
  • Videos

I attended the sessions across multiple tracks and summarize my learnings by clubbing them in the respective tracks.


Track: Server-side platforms

1. OpenSSO: Enterprise Security
  • Identity management product solution (based on the code base of Sun Java System Access Manager)
  • Deployment options: SSO withing enterprise (using SSO Token), Federated SSO (cross domain app integration)
  • Development options: Fedlets (place a JAR on the web app for the Service Provider)
  • Demo
    • Deploy opensso.war and configure on example.com
    • Login (amadmin/amadmin@example.com)
    • Create SAML ID: Provider
    • Create Fedlet for sp.com
    • Deploy Fedlet.war and configure
    • Run Fedlet opensso using HTTP POST
    • SP Fedlet developer can pull out user details from SAML response
  • WS Security: provides WS identity, vs OpenSSL, WS Trust
  • Identity Services
  • Download: www.tinyurl.com/openssonow [with embedded GFv3, Java Web Start]
2. NB 6.7 and GFv3 - The Synergy for Pragmatic Java EE 6
  • 100% demo session
  • Live application development highlighting the ease of Java EE5 and EE6 development using NB6.5 and GFv3
    • Develop CommunityService, a Stateless Session Bean(SSB) with Remote Interface exposed as a Web Service
    • Develop Local TimerService SSB and inject into CommunityService
    • Develop CommunitySession, an Entity class and inject Entity manager into CommunityService
    • Develop Interceptor Logger (POJO) and inject into CommunityService
    • Create JSF and inject CommunityService and CommunitySession into Backing bean
    • Compare to what new in JavaEE6 - SessionBean in WAR, singleton/startup EJB, SSB, Servlet


Track: Web Platforms

1. Developing Web App by using Comet and AJAX
  • Comet(AJAX Push) - long poll(simpler), streaming
  • How? using Java NIO non-blocking sockets
  • Demo: grizzly-comet-jmaki [Grizzly comet + Bayeaux]
  • Demo: Dojo comet (simple data exchange)
  • Demo: Tic-Tac-Toe using Grizzly Comet Framework (complex data exchange e.g games)
  • Atmostphere: POJO framework using IOC for comet, runs on servlet 2.5 container, Grizzlet
  • Servlet 3.0


2. Java SE 6 Update 10 - Simplify Java Technology Deployment
  • This session covered the recent developments in JDK for easier development and deployment
  • Class file sharing
  • JVM update: Permanent space(for sharing of .class files), young generation, old generation
  • Trick OS into thinking files have loaded by touching(creating blank files) them
  • Better GUI for Swing (using Nimbus), Cross platform Look&Feel, Silk
  • Previous plugin arch: applet in browser process space, all applets share same JVM instance and not configured per applet
  • New plugin arch: applet lives outside browser, parameters to applet, object, embed tags (arguments like image, seperate-jvm etc)
  • Applets
    • Draggable (program can detect drag), easier deployment (javascript lib to detect JRE and control launch of applet www.java.com/js/deployJava.js)
    • JRE Kernel - modularized consumer JRE
    • Additional packages - Swing etc.
  • Browser Interaction
    • Java-JS integration
    • Uses Netscape LiveConnect
    • Call JS from Applet (using LiveConnect[JSObject] or DOM API[DomService, DomAction])
    • Call applet from JS and JS can access aplet methods
    • Can load data into applet using JNLP API (and does not require signing)
    • Demo: Applet and HTML form integration
  • Java Web Start
    • uses JNLP
    • JDK6u10 unifies the applet and web start model
    • web start launches applet
    • desktop integration (link, start menu etc.)
    • application partitioning (download app features that user actually uses)
Track: Rich Internet Applications(RIA) and Scripting

1. JavaFX Script Programming Language
  • This session focussed on the programming language and the platform
  • Sun strategy on RIA - not JavaFX but JRE
  • JavaFX programming language was previously called the F3 (Form Follows Function)
  • Declarative, statically-typed language
  • Fx does not support dependency injection though it can be implemented through a java library
  • Stage>Scene>Content>Circle
  • In JFX, there is no implements keyword. You can implement Interface and extend Class using extends
  • def (= static final constant) vs var
  • explicit override
  • function() is also a type
  • only simple arrays
  • insert into, delete from, reverse keywords
  • Binding and Bound functions
  • Trigger
  • CSS can be applied to Node
  • SceneGraph (JFX Engine) - tree based groups
  • DataFormaParser (XML and JSON)
  • Demo: Twitter REST
  • Stage is a top level container
  • Deployment environments: JDKu10, FF3, IE7
  • Commands: javafxc, javafxpackager
  • Profiles - desktop, regular, html, jnlp, web, mobile
  • Fx app as a web app is packaged as an applet
  • Can use jfx from java (using JSR 223)

2. JavaFX Programming Language: Media and Animation
  • The session focussed on the JavaFX APIs for Media and Animation
  • Animation: Transition(canned) vs Keframe-based(uses timeline, flexible but needs coding)
  • Media: delegate media play capabilities to OS, "encode once, play anywhere"
  • Fx rendering engine = SceneGraph
  • Fx uses Java2D (swing components can be wrapped and displayed)
  • currently streaming media is not supported
  • uses JDK6u10 with hardware acceleration
  • in JDK6u10 applets are special instances of the Java Web Start and enable applets to execute native code
  • Deployment JS support: http://dl.javafx.com/dtfx.js
  • Use JFX in Java
  • In JSP, host JFX in applet

General Session: Closing Panel - Enterprises and the Cloud
  • Panel included executives from Salesforce(SaaS), Rackspace, Sun(IaaS) and Google(PaaS) [amazon was invited but turned down the offer]
  • Discussion on industry trends, developer support
  • Everyone agreed to the existence of multiple types of offerings based on developer needs
  • Vendor tie-in heavily discussed
Community Session @ Demo Site
  • JavaFX: very simple animation projects were shown. No handsets yet.
  • Sun Clouds: spoke to them for the need for simple Java server deployment options like Glassfish with MySQL
  • Glassfish Web Space Server: portal server platform. develop and build collaborative work spaces, including portals and social networking sites. Sun's Drupal?

Day 2:
I attended the “Web 2.0: Building Dynamic Web Sites with AJAX and Dojo Toolkit”. It was a great session covering DOM, JavaScript, CSS and Dojo.

Reference links:
Community One East 2009
Schedule

See you at Community One and Java One 2009 at SF!

No comments: