Tuesday Sep 24, 2013

Session Report: JSR 341: Expression Language 3.0

Ed Burns, Consulting Member of Technical Staff, and Kinman Chung, Principle Member of Technical Staff, both at Oracle, presented a session on Monday in which they described new features in JSR 341, Expression Language (EL) 3.0. They discussed the APIs for the use of EL in standalone environments and EL syntax for new operators, plus lambda expressions, and support for collection objects, all the while offering copious code illustrations.

Burns remarked that he was pleased that Java Champion and JavaOne Rock Star Adam Bien had referred to EL 3.0 as “the hidden gem of Java EE”. “I don’t know how hidden it is,” said Burns, “but I think it’s a gem.”

He discussed the origins of EL, which has a long and active history in the Java platform. EL began in 2004 as part of the Java Standard Tag Library (JSTL 1.0), moved to JSP 2.0 in 2006, and became an independent specification with JSR 341 in 2011. It is used in JSF, CDI, and Avatar. Now, 9 years after its inception, it is an independent specification that is heavily used in JSF.   

Burns observed that the presence of EL is the key differentiator between Java server and non-java server stacks. “Java server-based web frameworks are likely to use EL,” said Burns. “When you show someone who is not familiar with EL how easy it is to move things together from disparate parts of your application, it’s very compelling.”

The most important feature that EL 3 brings is lambda expressions – developers do not have to wait until Java SE 8 is released. It all runs on Java EE 7, which requires Java SE 7 -- which means that it is currently available. Burns gave a brief discussion of lambda expressions, which basically behave like an anonymous function -- lambdas in EL are EL expressions. They offer full access to the EL environment within the body of the EL lambda expression, something not available from Java SE lambdas. “You won’t be able to refer to other EL things from a plain old SE lambda expression,” said Burns.

The goal of EL 3 is to provide greater expressive power for applications and to use it outside of Java EE. Burns and Chung provided an overview of collection operations and explained EL’s support for stand-alone environments. EL 3 is easy to use outside of Java EE and provides standard data structures: ELContext; ELResolvers; and local variable and function repositories.

They explained that it enables direct EL operations and has: EL expression evaluation; Bean definition; and Function definition. They emphasized that other key parts of Java EE can also be used standalone, such as: Bean Validation; Persistence (JPA); and Contexts and Dependency Injection (CDI). They encouraged developers to consider the possibilities for cloud deployment in: Defining functions and variables and defining beans.

They spent the rest of the session illustrating their key points with a healthy dose of code.

Links and Downloads:
* JSR 341: http://www.jcp.org/en/jsr/detail?id=341
    Download spec and API javadocs

* Project home: https://java.net/projects/el-spec/
   Report spec bugs or RFE for el.next

* RI: https://java.net/projects/uel/
   Maven artifacts available from Maven Central
   Download source and report RI bugs

* Integrated in Glassfish 4.0: https://glassfish.java.net/

You can listen to this session in early October on Parleys.com.

The Eleventh Annual Java Community Process Program Awards

by Timothy Beneke and Janice J. Heiss

In a festive room teeming with over 200 people, including many celebrated Java luminaries,
along with excellent food and drink, the 9th annual JCP Program Awards were handed out atop the majestic Hilton Hotel on Monday night. As the JCP states, “The Java Community Process (JCP) program celebrates success. Members of the community nominate worthy participants, Spec Leads, and Java Specification Requests (JSRs) in order to cheer on the hard work and creativity that produces ground-breaking results for the community and industry in the Java Standard Edition (SE), Java Enterprise Edition (EE), or Java Micro Edition (ME) platforms.”

The JCP added a new awards category this year for Adopt-a-JSR program participants, bringing the total to four: JCP Member/Participant of the Year, Outstanding Spec Lead, Most Significant JSR, and Outstanding Adopt-a-JSR Participant.

The room was full of good cheer, playful humor, a music band of Java developers, and enthusiastic appreciation of much that has been accomplished on behalf of Java technology in the previous year.

The nominees and winners in their respective categories were:

JCP Member/Participant of the Year

--Azul Systems, Gil Tene

--London Java Community (LJC), Ben Evans, Martijn Verburg, Richard Warburton, Graham Allan

--Mohamed Taman

The winner was Azul System’s Gil Tene. The JCP said, “Gil has worked diligently to provide clear advice on matters of Software Patents, IP and licensing that seeks to benefit both non-profits/individuals etc as well as organizations with vested commercial interests in Java. It's not easy delving into the depths of the legal aspects and the potential impacts of changes to the JCP, but with help from folks like Gil we're hopeful for a solid and fair outcome.”

Tene characterized his approach to the JCP as follows: “I represent Azul Systems on the JCP EC, but I try to apply an approach of ‘do the right thing first’ in my choices and positions. Coming from a small company that depends on Java and its ecosystem for its livelihood, I see my role as representing the interests of an entire sector of non-big-company commercial folks and of individual and professional developers out there, and providing some offset and balance to the normal mix of such boards.”

Outstanding Spec Lead

--Brian Goetz, Oracle

--Jitendra Kotamraju, Oracle

--Anatole Tresch, Credit Suisse

--Chris Vignola, IBM

The winner, Oracle’s Brian Goetz, was recognized, “For tirelessly working away at an incredibly complex JSR - JSR 335, Lambda Expressions for the Java Programming Language. From a community point of view, we've appreciated his willingness to listen and consider ideas from other technologists as well as spending time with groups of developers to understand the impact of Lambdas on Java.”

Goetz offered a statement in response to the award for his leadership in creating Lambda Expressions for the Java Language, which also won for most significant JSR. He said that lambdas, “represent a coordinated co-evolution of the Java SE platform, including the VM, language, and core libraries to provide developers with a powerful upgrade -- quite likely the largest ever -- to the Java SE programming model. We started this JSR in early 2010, but the topic of closures-in-Java had already been in play in the community for many years prior, and, of course, there was a broad diversity of opinions as to what direction, how far, and how fast to evolve the Java programming model. In the end, the most significant dimension of the challenge turned out to be: how do we integrate these new features in the language and libraries without them feeling grafted on after-the-fact. I think developers will find programming with this ‘new and improved Java’ to be a very pleasant experience -- I know I have.”

Most Significant JSR

--JSR 335, Lambda Expressions for the Java Programming Language

--JSR 344, JavaServer Faces (JSF) 2.2

--JSR 352, Batch Applications for the Java Platform

--JSR 354, Money and Currency API

--JSR 355, JCP Executive Committee Merge

The winner, as previously mentioned, was JSR 335, Lambda Expressions for the Java Programming Language, which the JCP praised as follows:

“This brings Java kicking and screaming into the modern programming language age and is seen as a catalyst for the second age of Java. It's underlying discoveries and improvements with regards to Type Inference has also resulted in a stronger JVM for all.”

Spec lead Brian Goetz, in picking up the award, remarked, “This is something we’ve been working on for three-and-a-half-years and it’s nice to be looking at it through the rear-view mirror.”

Outstanding Adopt-a-JSR Participant

--BeJUG, Johan Vos

--CeJUG, Helio Frota, Hildeberto Mendonça

--JUG Chennai, Rajmahendra (Raj) Hegde

--Morocco JUG and EGJUG, Mohamed Taman, Faissal Boutaounte

The winner was Morocco JUG and EGJUG, Mohamed Taman, and Faissal Boutaounte, who were praised, “For adopting JSR 339, JAX-RS 2.0 specification, along with many other JSRs. One JIRA issue filed by Morocco JUG on JSR 339 was classified as a ‘release-stopper’. A quick JIRA search using the ‘adoptajsr’ tag shows that most of the JIRA issues have been created by MoroccoJUG members. Several presentations and source code have been organized by these groups. Mohamed presented sessions about the upcoming technologies to widen the range of users in the future, especially Java EE 7 JSRs and spreading of community progress and contributions that make us encouraged to participate. Mohamed sent a clear message that Africa is here and is full of talented people who are willing to take it to the next level. Mohamed was responsible for translating an Arabic Adopt-s-JSR web page to allow more Arabs to participate.”

Taman said that, “Currently, I hold two positions, one as a Business Solutions Systems Architect and design supervisor and Java Team leader, at a big financial services company in Egypt, which affects all the country by building solutions affecting Egyptians every day, by providing more facilities for businesses and enhancing the economy… I am passionate about Java. I really love it and have fun coding, and love seeing it grow, day by day, as if it were my kid.”

The Annual Java Community Process Program Awards at  JavaOne is an event and party not to be missed!

The Java Community Process

Session Report: Internet of Things with Java

by Timothy Beneke

Jai Suri, Group Product Manager, Java Platform, at Oracle, with Oracle Embedded Java architect, Noel Poore, gave a session that was both practical and visionary, titled “Internet of Things with Java” that provided a glimpse of the challenges and prospects faced by the coming Internet of Things (IoT). Suri was quick to point out that the session was not a showcase of Oracle solutions for IoT; nor would it provide best practices or design patterns for IoT. “It’s too early and we’re not there yet,” said Suri.

He pointed out that the potential range of IoT applications is vast, from home and industrial automation to improved healthcare. His team has been spending a lot of time and effort trying to figure out how Java fits into the IoT space.

The IoT market is relatively new and evolving, and full of proprietary technologies with, as yet, no standardization. The biggest challenge Java faces is creating a horizontal technology stack that addresses a wide range of needs and challenges. IoT, he pointed out is nothing new – machines connecting with other machines go back to the dawn of computing. But recently, new technologies have made it more accessible than ever before. In the US, Comcast offers XFINITY home automation offering remote monitoring, temperature, lighting and small appliance control, real-time alerts when doors or windows are opened, and more. In Europe, Deutsche Telekom offers a similar system.

In health care, remote patient monitoring is an area of rapid growth. IoT is making a difference in industrial automation and business optimization and efficiency. Other segments of IoT growth include building management, energy, consumer, retail, IT and networks. Research groups are predicting a market of somewhere around $350 Billion by 2017, some of which will be committed to technology.

According to Suri, various factors are driving the growth in IoT. First, connected devices are growing rapidly, with shipments expected to range from $50B to $200B by 2020. Moore’s law is allowing devices to become smarter and, as a result, connectivity is cheaper. Extra bandwidth is available to be redeployed for data traffic and channels are being created that allow companies to move data more cheaply.

IoT traffic data is being stored in databases to be analyzed, so data is growing rapidly. Business opportunities are increasing as the number of devices connected to the cloud allowing for the tracking of shipments, cars and other things grows.

Why is this different from a simple client and server? First the number of web, desktop and mobile applications talking to a server is rapidly increasing. Devices may be on batteries, Wifi, Bluetooth or a long range network – the complexity is huge. And most of these devices do not have a human operating them.

IoT lacks any standard protocol for communication among devices. Protocols depend upon the industry. In home automation, Bluetooth is common along with short range radio networks. Ultimately it is about how users get and receive data from devices. Suri pointed out that most developers give little thought to security. When he joined Oracle he received a badge that allows him to access and send protected data; the badge provides his identity, which governs access. But how do we put an identity on a temperature sensor connected to our home gateway? Or on data about our medical condition?

Some companies are building data centers that allow companies to connect their enterprise applications to a data center so they won’t have to worry about scaling. But is this the right approach when a company has invested millions of dollars in enterprise infrastructure? Why leverage what you already have?

Suri summarized the critical issues:
--Communication across multiple-protocol networks
--End-to-end security
--Software provisioning & lifecycle management across diverse devices
--Data acquisition from thousands of diverse devices
--Managing large volumes of fast data in a scalable architecture
--Leveraging existing enterprise architectures for evolving IoT needs

With most IoT solutions currently being written from scratch, the need for a horizontal platform seems obvious.

How Java Fits In
Noel Poore then showed how Java is the best fit for IoT, emphasizing that his focus was on the IoT with Java and not the Java Internet of Things. In a situation so fragmented with different device drivers, chip sets, operating systems and so on, the availability of a platform that allows developers to move code around with little worry about which device is running it is ideal.

Managing 50 billion devices sensibly and scalably constitutes a huge challenge. Poore presented a conceptual architecture with the pieces that need to be in place for a horizontal IoT platform to work. This would enable developers to build solutions based on platform rather than rebuilding the solution every time a different IoT problem must be solved. The conceptual architecture begins with wireless and wired sensors feeding into an initial gateway which feeds into a core network; in addition smart sensors may bypass the initial gateway and go directly to the network. The network feeds into an IoT communication gateway, which in turn feeds access management, IoT management and data routing and analysis. The first of these two feed into identity access and management, while data routing and analysis is sent to enterprise business and business intelligence to attempt to gain value from the data.

Suri closed by summarizing the take-home points of the session:

* IoT technologies are a “Wild West” full of proprietary implementations and a highly fragmented vendor ecosystem.
* Java enables an open and standards-based secure IoT platform that seamlessly integrates devices with enterprise applications.
* But significant innovations are needed across the platform and the ecosystem products to make this vision a reality.
* The good news is that Java is ahead of the curve, and very well positioned to become the de facto platform for IoT applications.

Look for podcasts of JavaOne sessions at Parleys.com starting in early October.

Java Magazine: Cloudy, with Increasing Innnovation

The IT forecast is cloudy. The current issue of Java Magazine looks at what the cloud means for Java developers the best ways to seize the opportunities presented by public and private clouds. plus community events and, of course, the Duke's Choice Award winners.

Seize the Cloud
Develop, deploy, and manage your applications in the cloud with Java EE and Oracle Java Cloud Service. 

Hands on with Oracle Java Cloud Service
Get an introduction to Oracle’s platform-as-a-service Java offering and find out what to look for in a cloud service vendor. 

Java 8: Lambdas
Get ready for Java SE 8 with part 2 in our series on getting to know lambda expressions.

JCP Executive Series: Gemalto M2M 
We talk with Thomas Lampart and Florian Denzin about M2M, Java, and the JCP. 

2013 Duke's Choice Award Winners 
From the serious to the whimsical, the 2013 Duke's Choice Award winners include Java projects in medicine, technology, transportation, aeronautics, education, and entertainment. 

Java Magazine is a FREE, bi-monthly, online publication. It includes technical articles on the Java language and platform; Java innovations and innovators; JUG and JCP news; Java events; links to online Java communities; and videos and multimedia demos. Subscriptions are free, registration required.

Do you have feedback about Java Magazine? Send a tweet to @oraclejavamag.

About

Insider News from the Java Team at Oracle!

duke
javeone logo
Links


Search

Archives
« September 2013 »
SunMonTueWedThuFriSat
1
2
4
7
8
9
14
15
16
18
20
21
27
28
29
     
       
Today