Showing posts with label raleigh. Show all posts
Showing posts with label raleigh. Show all posts

Monday, January 31, 2011

Open Source is about wearing many hats and building community

During the second half of twenty ten, I had the good fortune to meet and work with several developers and IBM software architects working on various Apache Software projects. One in particular is Apache Geronimo, which is the basis of WebSphere Application Server Community Edition. There has been a lot of effort placed on building the next version of the versatile application server and it's exciting to see how the assembly based platform is evolving with technology like OSGi. Java developers will enjoy reading the following discussion with the IBM open source architect, PMC Chair of Apache Geronimo, Apache Software Foundation member, Software committer on several ASF projects and IBM WebSphere Application Server Community Edition Architect. Indeed, Kevan Miller wears many hats as a devoted open source development community member and IBM technical leader.


Kevan, what is Apache Geronimo in two sentences?
Apache Geronimo is a lightweight, flexible, component-based runtime for developing and hosting of Java EE and OSGi Enterprise applications. There, I did it in one sentence.

Open source software is a key part of the solution here. How did Apache Geronimo start and what are the main goals?

The Geronimo project was started out of the desire for an Apache Licensed Java EE server built with an open, community-based development model. In 2003, the ASF (and the Apache Geronimo project) became the first Open Source Software licensee to the Java EE TCK.

The main goal of the Geronimo project is to create an open source application server from best-of-breed open source components. I think this is an important point -- from the very beginning, Apache Geronimo was designed to incorporate open source components and present them as a unified server runtime.

The notion of profiles in Java EE 6 is basic capabilities that Geronimo has been providing for 5 years. Our custom assembly feature takes this several steps further. First, you can design your own server. You don’t need to limit yourself to the relatively static notion of “profiles”. Second, you can have your applications define your server requirements. We can calculate the transitive dependencies of your applications and have those determine the functionality of your server.

So, a Geronimo server can be a full Java EE server, down to a web container, only, or even a simple JMX-based server. We have users running EJB+JMS servers (no web container), which is a bit counter to most user’s requirements, but illustrates Geronimo’s flexibility.

What’s new for Apache Geronimo?

It’s a busy time for the Geronimo community. We’re currently working on Geronimo 3.0, which will be our first Java EE 6 release. Towards this end, the community is nearing the completion of our next milestone release, 3.0-M2 release. 3.0-M2 will be Java EE 6 Web Profile compliant.

Java EE 6 brings a lot of important new function and developer capabilities. There are a lot of good new features in Java EE 6, including CDI, Bean Validation, and JAX-RS. Plus important updates to existing specs, like Servlet 3.0, EJB 3.1, JSF 2.0, and JPA 2.0.

In addition to Java EE 6, we’ve also added support for an OSGi enterprise programming model. We’ve integrated the Apache Aries project into Geronimo. Aries implements the specifications defined by the OSGi Enterprise Expert Group. Developers can now develop OSGi applications and utilize familiar Java EE technologies such as JPA, JMX, JNDI, and JTA. Using OSGi Blueprint, they’ll have a standards-based Dependency Injection container.

How does Apache Geronimo relate to WAS Community Edition?

WAS Community Edition is an IBM distribution of Apache Geronimo. We take Apache Geronimo, perform additional testing, include an IBM JDK, simple configuration options, and license and support it for IBM customers.

How about migration of applications from WAS Community Edition to WAS?

There is some migration effort required to move EE applications from CE to WAS but we're working to make it simpler and help technology overlap in 3.0. OSGi applications can be run in either environment, so developers have flexibility and options with standard based tooling.

How does Geronimo work together with other open source Java components?

Apache Geronimo is a server assembly that integrates several other open source components, as we've discussed here. Geronimo provides additional features as component plug-ins along with the web container. Here is a diagram of Geronimo with related projects that I presented at Apachecon 2010 this past fall.


Where can we find more information on the web?

See geronimo.apache.org and the WebSphere app server community edition product page.

What do you feel is the most important part of IBM’s contribution to open source?

IBM is now a sponsor of the Apache Software Foundation, which is a big deal. I believe that
open source is about building communities, and the
key contribution is the people we bring to our various projects. In no particular order, here is a sample of those dedicated people. T
hese are just a few and I’m sure I’m leaving off some important people – apologies.
Geronimo - David Jencks, Jarek Gawor
OpenEJB - David Blevins
OpenJPA - Kevin Sutter, Pinaki Poddar
ASF - Sam Ruby, Shane Curcuru
Dojo - Bill Keese, Adam Peller
Aries - Jeremy Hughes, Zoe Slattery, Tim Ward, Joe Bohn

Tell me more about the open source activities you are involved with?

In the WebSphere development organization, we work with a number of different open source foundations, including the Eclipse and Dojo Foundations. The majority of our work is in the Apache Software Foundation, where we're contributing to the following projects:
  • Apache Http Server
  • Apache Geronimo
  • Apache OpenJPA
  • Apache Aries
  • Apache Tuscany
  • Apache OpenEJB
  • Apache Axis
  • Apache Wink
  • Apache OpenWebBeans
  • Apache Bean Validation
  • and others...

Where can people meet you (and team) at upcoming events?

The best place to look for us is on the Geronimo mailing lists (dev@geronimo.apache.org and user@geronimo.apache.org). We can also be found on IRC -- irc://irc.freenode.net/geronimo. See the Geronimo community page. For conferences, you’ll frequently find one or more of us at ApacheCon and the major Open Source and Java conferences. IBM Impact is coming up in April and we've proposed sessions covering OSGi and 3.0 features.

What are the current hot topics in the Java development space?

Well there are the recent Java/OpenJDK developments, of course. IBM and Oracle teaming up on OpenJDK is fundamentally positive news for the Java community. On the other hand, the Field-Of-Use licensing restrictions being maintained by Oracle on the Java TCK for open source developers is really unfortunate from an open source perspective.

What is your favorite development language and why?

Well, that’s easy -- Java. I’ve been developing almost exclusively in Java since the mid-90’s. I still sometimes forget what it was like back in the old days -- having to perform your own memory management, etc. Very glad to have said goodbye to C/C++/Objective-C days. On the other end of the spectrum, my second choice just might be Motorola 6502 assembler. In College I was doing some research into real-time speech compression/decompression -- fun times... That said, there’s some interesting work going on in JavaScript frameworks, Scala, Clojure, etc. IMO, no game-changers like Java. Not yet, anyway.

And for a quick diversion - would you please tell us about your favorite hobby, tech related or not?

I’m a retired soccer player, but still follow US college and pro leagues. Nowadays, I’m into Trail Running. I’m currently gearing up for a 20 mile trail race in February.

I share my sincere thanks to Kevan for sharing his time to discuss open source software and Java development. You can meet Kevan and myself at the IBM Impact conference in April 2011. We'll share more information here on the blog about sessions, labs, unconference topics and technical panels at IBM Impact in the coming weeks. We also want to discuss these topics on LinkedIn.

Until Next Time,
Ryan Boyles

About
Kevan Miller is an open source architect in IBM's WebSphere Application Server development team. He is also the architect for IBM's WAS Community Edition product, a member of the Apache Software Foundation, PMC Chair of the Apache Geronimo project, and a committer and PMC member of a variety of Apache projects (e.g. OpenEJB, OpenWebBeans, Incubator, etc). After 15 years at IBM's TJ Watson Research Center, Kevan starting working on open source software in IBM's Software Group. At the same time, he relocated to Chapel Hill, NC where he now lives with his wife, two daughters, flat coated retriever, cat, and hedgehog. You can follow Kevan on twitter at @kevanmiller.

Originally posted on the IBM Impact event blog for "App Infrastructure Tuesday"

Wednesday, October 27, 2010

The Barcamp RDU experience


Lin Sun, Ted Kirby, Joe Bohn at Barcamp RDU 2010. This photo is licensed under CC by Ryan Boyles.

I and a handful of colleagues participated in Barcamp RDU in Raleigh last weekend. The developer unconference was held at the RedHat HQ on North Carolina State University's centennial campus. Barcamp RDU is in it's fifth year at RedHat and it is always a packed day with a capacity crowd of hundreds of passionate developers and techies. I thought it would be a great opportunity for some of our local IBM developers who work on open source to speak about their work. The other tangible benefit is connecting with other developers and discussing their work and perspectives on new technology and software trends.

The afternoon schedule grid at Barcamp RDU 2010. This photo is licensed under CC by Ryan Boyles.

Lin Sun and Joe Bohn pitched topics on OSGi and Apache Aries to discuss the Blueprint container and dependency injection in Java EE development. Their two talks got combined into one during voting and scheduling process. This is how Barcamps work, the audience is the organizer. The talks also shift around the time slots and can end up positioned against other interesting topics. The crowd then gets to decide which sessions to attend. Most sessions end up with the most ardent supporters or curious developers and great discussions are the result. Lin and Joe ended up in the afternoon schedule at 2:30. Lin gave a intro to OSGi and Joe gave a brief intro to Apache Aries. Joe showed some overview slides from IBM architect Ian Robinson presented at OSCON and OSGi DevCon this year, but canned presentations are not the sole focus of Barcamps. In the unconference style, there should be no observers, the audience is a participant, so the focus shifts from the project bits to real problems and solutions. They dubbed it "Standardized Spring" for a solid discussion with a handful of people, including a techie from the Global Technology group of Deutsche Bank, who was another sponsor of the event. There were questions, like "how do you expose a service? how do you inject dependencies?" aimed at gaining insight into benefits of the dynamic capabilities of OSGi. One developer was using Spring; DM 2.0 is the reference implementation for the Blueprint specification, but he was not familiar with that spec. Many people are not familiar with just how involved IBMers are involved with Apache open source projects and we aim to change that. The buzz is found in discovering common ground and new ways of approaching different projects.

Ted, Joe and Lin then attended the Web Frameworks feedback session led by Lincoln Baxter from JBoss. He asked the dozen participants to weigh in on "What are people using to build web applications? What is important to you, and how do you do testing?" These sort of basic discussions help developers connect to learn from current development practices. The answers vary a great deal! Lincoln then showed a demo of the Seam framework for 10-15 minutes.

I attended a talk on developing RESTful web services led by a developer from local firm rPath. This session ended up being a very lively talk about how to build services with REST in your existing application infrastructure, a look at different libraries for handling unstructured data with JSON, XML or Atom, and the pros and cons of developing for and handling service changes for AJAXy or Flex clients. The speaker had a strong preference to use just XML as opposed to Atom. This talk was well attended with about 35 developers. In IBM, we have been active with implementing with REST, and within application infrastructure with WebSphere sMash. The main take away is there is a lack of standards used today in REST dev and there is not strong uptake for JAX-RS as yet.

I pitched a session on mobile technology use of 2D square barcodes called QR Codes. This was geeky talk about barcode usage with smart phones I've been exploring in several projects recently, like this one for IBM at the JAX London conference. I combined my talk with another developer experimenting with QR codes and we had a fantastic session driven almost completely by an audience of 40 curious geeks. I documented the whole set of topics and examples on my personal blog. It's interesting to see how technology like this is popping up and now surging in use within the U.S. - a study suggests there is a 700% increase in barcode scanning with smart phones since 2009. I've seen these square barcodes at events, in magazine ads, on store shelves, on business cards and badges, and scanner tech integrated into numerous iPhone and Android applications.

Other cool talks included things like Using Dropbox for source code control, Linked Data and RDF (Semantic Web is the future!), No SQL, How to rock your User Group (like TriPUG), and addressing usability, accessibility and SEO at the same time. IBM DeveloperWorks was a gold sponsor and provided breakfast bagels and coffee for the whole day. Ian Shields and Bran Ganesan held a session to explain how to get paid for unleashing your brilliance by authoring technical articles for DeveloperWorks. I'd suggest you follow @developerWorks on twitter to see examples of articles as they are published or explore the social network for geeks in the community groups. You're bound to find topics of interest and people to connect with on Cloud, web development, open source, you name it.

The sponsors poster of Barcamp RDU 2010. This photo is licensed under CC by Ryan Boyles.


All in all, the Barcamp was a great success. Joe made the observation that iPhone app dev is still hot in general, and Git is pervasive. Ted said the most fun he had was learning about QR Codes and Location based applications. The funny thing is, he learned all of this from just socializing between sessions, he didn't attend my talk on QR Codes or the other on Location. He was able to attend other talks that overlapped. As I've said before, the problem with Barcamps isn't lack of interesting developer topics, it is the challenge of deciding which talks you have to attend and which you will miss. Regardless the open environment offers a great way to connect to local people behind some really cool projects and technology. The main aim of the intro level discussions are to spark thoughts about innovation in the participants. I explored this more by posting several videos from Barcamp RDU on youtube and documenting the day with photos on Flickr. There was a lively back channel on Twitter with the hashtag #barcamprdu (see the archive).

See you next time,
Ryan Boyles