Sun Tech Days Boston

I attended today's Sun Tech Days. Here are my (unbeautified) notes:

Java EE6, the wave of the future
Tom Kincaid, Executive Director Applications
Java EE 6
Rightsizing, ease of development, extensibility
Rightsizing: make it less bloated
Will have profileswell defined subsets of the whole spec. Sun will provide a Web profile. Other ideas include Telecom profile, maybe to be provided by someone else.
@Servlet annotation instead of web.xml file
Packaging: put EJB class directly in war file, not in jar, then ear, then war.
Servlet today: servlet class + web.xml deployment descriptor. Coming:

@Servlet(name=MyServlet, url-pattern=/myApp/*)
Public class MySelvlet { ... }

Support for frameworks like Spring and Struts

Java EE ref impl: Project GlassFish
Open source, enterprise ready, high availability, record setting performance

Status: devd on GlassFish v3 (v2 shipping this month)

GlassFilsh v3 demo
NetBeans has a UML module. (Tools/Update Center)
Demo of server side JRuby in a rhtml file (HTML + JRuby markup) running in GlassFish

Idea for HackDay: play a coding contest

5 minute demos
Java ME
Ajax-y app running on ME. GCF==Generic Connection Framework. GCF connects to a RESTful web service like Yahoo Geocoding or Flickr.
Architecture: RESTful web serviceGCFMobile Ajax Library ApplicationDOMRendering (on mobile device)
SVG effects for pretty animation
Mobile Aerith
IPhone-like UI for Flickr image browsing
Upload image to flickr account

Scripting lang on Java platform for developing Rich Internet Apps
Abstracts Java2D and Swing to make it easy to dev RIAs
Language is declarative
Jake might like JavaFX
Automatic data binding: makes it easy to bind the View to the Model
Deployed through WebStart, or as applet

Project DLite
Something new for Sun Studio (the C, C++, Fortran tools)
Unifies the code analysis toos

NetBeans profiler
Install separately in NetBeans
World record for largest number of people leaking in public place!

Use SunSPOTS to drive a TrackBot (looks like a MindStorms brick)
Small Programmable Object Technology
MIDlet running on the brick
Bricks classname is Spot.
Radiogram: wireless net, multiple SPOTs communicate with each other
$500 developer kit contains 3 SPOTs

Project Wonderland
Virtual reality project: MPK20
Wonderland is the client, Project Darkstar is the server

Java SE 6 top 10 features, Java SE 7 and OpenJDK
Rima Pate Sriganesh
Java 7 FC to be released 2009

1) Scripting support JSR 223

2) Web services
JAXP, including StaX (pull-based XML processing)
JAXB 2.0
@WebService annotation to annotate your POJO
@Resource for dependency injection to obtain WebServiceContext

3) JDBC 3.0
No more class.forName() to load DB driver
First class SQLXML data type from SQL 2003, so dont have to treat XML as text
Java DB (aka Apache Derby) included with JDK

4) More desktop APIs
Specify splash screen image file on command line or in MANIFEST.MFs Splashscreen-image property

5) Monitoring and management

6) Compiler access
Programmatic acces to javac

7) Pluggable annotations
JSP 175, 269

... I lost track, playing with NetBeans and ME ...


9) Security
XML digital signatures (JSR 105)

10) Performance improvements

Java 7 potential changes
-superpackages (another way of scoping classes among packagespackages in a superpackage can share, outside of superpackage cannot. A nice way to define an API façade without having to expose classes from multiple packages to external users)
-lang support for Java properties
-Control abstraction constructs: closers, concise instance creation expressions, first class methods
-Operator overloading
-misc stuff (shorter variable declaration, strings in switch, enum comparisons)
-New bytecode: invokedynamic (JSR 292 support dynamically typed langs on the Java platform)
-Bungling of more dynamic lang engines with the platform (beanshell scripting langage (JSPR 274), JRuby Jython, Beanshell, Groovy, JavaFX)

Next generation grid-enabled SOA
Chapell (Oracle)
New problems: large XML payloads, unexpected usage demands, meeting SLA expectations, tearing down / decoupling silos, sharing info across multiple services
Continuing challenges: predictable scalability, continuous availability, reliable QoS, shared context across load balanced / HA services
The SOA grid: state-aware continuous availability for service e infrastructure, application data, and processing logic. Predictable scalability (scales out linearly, whether 2 or 2000 servers; heterogeneous environment; high end / low cost commodity hardware). Dramatic overall increase in performance and throughput (linearly scalable shared memory and logic. Reduced dependency on disk persistence). Reduced operations cost (reduced deployment complexity. Less flavors o servers to deploy)
Advanced capabilities: collocate service code with grid data (load balance and dispatch requests appropriately). Availability and failover of stateful services. State pass model redefined (BPEL dehydration into the grid). Relocatable BPEL processes
BPEL dehydration: sounds sort of like EJB passivation/activation, but where there are multiple servers behind a load balancer, and each server shares the SOA Grid
Relocatable BPEL processes:
Rules of thum; still need MOM for familiar client API , usage model, ordering, pub/sub. Avoid putting state in Queues where it doesnt belong. Avoid sending stuff when it doesnt really have to travel anywhere. Subscribe to state change via built-in observer
Scaling SOA: With SOA grid: disk bottlenecks virtually eliminated. Memory utilization delegated to storage enabled grid nodes. Only CPU-bound resources need to be load-balanced.
Products: Oracle Coherence, Oracle SOA Suite

Java: a tour of the landscape
James Gossling
Ubiquitous computing
5 billion java enabled devices; 2.1b are phones
6m professional java developers
Javas role: conceptual framework that spans the network. Enables homogeneous view of a heterogeneous reality. End-to-end comprehension. Learn Once, Work Anywhere
Web 2.0: a marketing term
Community & interaction: e.g. Google Maps Salesforce, Basecamp, Flickr Albums
Development model: lightweight programming, SOA/integration, enhanced web UI, web as a platform, concept of trust, user data
Killer app of the Internet is advertising. ... Part of me gets really depressed ...
JVM: the integration hub: development (XML, Java JavaScript, Ruby etc.), the VM, deployment devices
Desktop: driving the user experience: Swing resurgence (HTML backlash; there is more than one platform; advanced user interaction). Ubiquitous modern JVMs (bundled on many systems). WebStart (web-friendly navigation; easy deployment)
JavaFX UI scripting: handheld devices (CLDC, SVG/MSA), home entertainment (TVs, set top boxes, CDC, PBP), JavaFX mobile (CDC, AGUI), Desktop (SE, 2D/3D). JavaFX is close to being a functional language.
Why is Java Media so awful? Patents.
Communal development: dev.java.net openjdk.dev.java.net, openjfx.dev.java.net glassfish.dev.java.net, opensolaris.org, netbeans.org, jcp.org, SourceForge
Components of a JCP standard: Spec (what is it for? What does it do?) compatibility test suite (is my impl complete? Is my impl correct?) reference implementation (can it be built? Sample code for developers)
Calendar is complex because it has to support non-European calendars
Blue Jay and Big Foot: modules/flavors of NetBeans for education environments (good for Jake?)
NetBeans: UML, SOA, debugging with breakpoints on a phone, profiler, thread-aware debugging, UI builder.
NetBeans 6b1 almost available at netbeans.org: Multilanguage support (Ruby, JRuby, Rails, JavaScript, PHP), SOA
Perrone Robitics: helicopter RC->autonomous. Laser rangefinder, GPS, accelerometers. Output: 3d terrain mesh. Fly it over a terrain, and get a 3d model of the area.
Sonia: autonomous underwater vehicle for Navy grand challenge
Java performance: generally beats or equals C/C++, even on extremely numeric apps. Often near Fortran (slower at matrices). GC is faster than malloc/free. Dynamic compilation beats static.
Java really is fully open source. GPL2 with classpath exception; working with GPL3 folks. Clearing IP encumbrances.
Why open source: revenue = volume * (license + support + leverage). Decrease license fees, but increase volume, so revenue goes up.

Hands On Lab: Java ME: Streaming video from server to device
Rima Patel, Doris Chan
The NetBeans Mobility packs Flow Design view rocks!
Excellent introduction to playing video through MMAPI, pulling the video from a SOAP web service.

Hands On Lab: Introduction to JavaFX Script programming
Data binding: view is bound to model. Whenever a variable in the model changes, the bound attribute in the view changes with it.

No comments:


Related Posts with Thumbnails