Dave Johnson on open web technologies, social software and Java
The next releases that I'd like to announce are the Blogapps 2.1 Examples and the Blogapps 2.1 Server.
If you'd like to learn more about the Blogapps examples and server then read The Blogapps Project article at Java.net. Here's a quick summary:
The Blogapps project hosts a collection of useful RSS and Atom utilities and examples from RSS and Atom In Action by Dave Johnson. They're designed to be useful even if you haven't read the book and they're available under the Apache License 2.0 so you can use the code in your applications and you can modify and redistribute them as you wish.
What's changed since 2.0? The examples have been updated to include the latest version of ROME Propono, which means that most of them now support the final Atom protcol spec. The server has been updated to include Roller 4.0 RC5, which also includes Atom protocol support and JSPWiki 2.4. And of course, various bugs have been fixed. Here are the release files, installation instructions and release notes.
This blog entry was posted via Atom protocol and the MatisseBlogger blog-client, which you can see in the screen-shot below (which was also posted via Atom.
What's next? Not sure at this point, but I will do another Blogapps release once ROME 1.0 is released.
There's some very cool Atom news from Tim Bray this week. First, there's mod_atom, a plugin for the Apache HTTPD web server that provides a stripped down Atom server (written in C) that stores Atom entries as files. So now any HTTPD server can serve as a simple Atom store.
Second, Tim mentioned that he's updated his Atom Protocol Exerciser (Ape) to support the new Atom protocol namespace and to add a couple of new tests. That's perfect timing for me because I'm starting to work on Roller's APP implementation and some other APP based things.
I need my own local copy of the Ape, so I decided to download the code an get it up and running. To make things easy, I decided to do this work on my Ubuntu system because it's already setup with gcc, cvs, Apache HTTPD and Ruby. For my future reference and to help other Atom fans to get started, here are my notes from my Ape setup experience.[Read More]
Joe turns a #redmonk IRC chat-room discussion into an insightful Steven O'Grady style Q&A on REST, WADL, interfaces and APP. For the record, I still think WADL is going to be useful to many, but I think APP is going to be a whole lot more useful and it doesn't need or use WADL.
Update: Pat Meuller has more on the WADL question. Apparently, there were some interesting hallway discussions about about out at IBM RTP. I just caught the tail-end of that on IRC.
Atom and LDAP sitting in a tree. Trey Drake has released his OpenDS based Atom store as an open source project on Java.net at http://atom.dev.java.net. It's a directory server distributed as a Java web application that supports both Atom Publishing Protocol (APP) and Lightweight Directory Access Protocol (LDAP).
Signing, encrypting and decrypting Atom. On IBM developerWorks, Nicolas Chase explains how "digital signatures and encryption can easily mesh with Atom data using the Apache Abdera API."
Google GData: A Uniform Web API for All Google Services. Dare Obasanjo praises Google for creating a single uniform and RESTful web services API for eight of its key services, the APP based GData API. He writes "not only is it now possible to create a single library that knows how to talk to all of Google's existing and future Web
services since they all use GData. It is also a lot easier to provide 'tooling' for these services than it would be for Yahoo's family of Web
services given that they use a simple and uniform interface."
Generate code from your WADL REST API. Eduardo at The Aquarium links to Thomas Steiner who is making progress on a WADL editor and a generator, bringing WSDL-like code generation to RESTful web services.
German Viscuso: Generally spoken GData provides a general interface to make information available even beyond a browser context by providing a single API that could be used to query, update, and index structured data anywhere on the web. Could GData become a simple and open replacement for all the proprietary communications protocols currently in use by database vendors?Interesting thoughts. I've heard about the Atom Publishing Protocol (APP) based Lucene Web Services API, but I hadn't heard about the Apache Lucene GData server project. Atom protocol is moving fast, especially considering the fact that it's not finished.
Trey Drake: How do you demo a directory server? Build cool apps around it. To that end, we've built an Atom/APP server, a lightweight OpenID server, a blogging and "twitter" like app - all powered by OpenDS. Drop by our booth (Glassfish alley at CommunityONE and .org section of the pavilion during JavaONE). Ludo and I will introduce OpenDS and show off the demos in two talks; today at CommunityONE at 5PM and Wednesday at 1:30 in the CommunityCorner.
Very cool. I'm not going to be the only one talking about Atom protocol at JavaOne. I'll have to stop by the CommunityCorner, that sounds too good to miss.
Following up on the APP interop event last week, here are the ROME Propono APP client issues we found:
And here are the Roller APP server issues:
I plan on fixing the Roller issues for this summer's Roller 4.0 release. I won't have time to fix the Propono issues for the upcoming Propono 0.5 release (due this week), so they'll be in 0.6 sometime after JavaOne.
The Atom Publishing Protocol interop event is over and now I'm catching up on blogs and email in my hotel room in Mountain View, CA. In the end, I was able to run ROME Propono successfully against Blogger/GData, AOL Journals and Wordpress. I also found a dozen small problems in Propono and in the Roller APP server.
For more information on the event, check O'Reilly's Keith Fahlgren's summary of the event titled Atom Publishing Protocol a Success. Keith mentions that "big industry players like AOL, Google, IBM, Microsoft, Oracle, and Sun are working on APP clients and servers and sent people to the interop event with interesting code" and I agree that's definitely a good sign for the protocol.
I thought it was particularly interesting that database vendors IBM and Oracle showed up with DB2 and Oracle-backed Atom stores. If Google's half-dozen or so Atom protocol based services aren't enough make you stand up and take notice, surely that should get your attention.
Day one of the Atom Publishing Protocol (APP) interop event was a success, at least from my point-of-view. I was able to test the Propono client against Blogger.com/GData, AOL Journals and an implementation from Oracle. I found and fixed problems in Roller's APP implementation. Plus, it was great to meet all of the good folks implementing Atom and to get a close look at the Google campus. I'm getting ready to drive back to Google now so... gotta go.
Check out Tim Bray's blog for some photos of the event.
I'm happy to announce the first release of the ROME subproject Propono. Propono is a ROME-based Java class library that supports publishing protocols, specifically the Atom Publishing Protocol and the legacy MetaWeblog API. Propono includes an Atom client library, an Atom server framework and a Blog client that supports both Atom protocol and the MetaWeblog API.
Here's the project page
Here's the Propono 0.4 release page:
And here's a link to the API docs, which include details, diagrams and code examples:
I'll be testing Propono this week and next (at the Google-hosted APP interop meeting) so now is a great time to provide feedback and bug reports. I plan on releasing Propono 0.5 in the *very* near future.
I've heard the argument before that the REST approach to web services doesn't give you reliable messaging and that's the reason you need to stick with WS-*. Today Bill de hÃra disputes that notion with an interesting and somewhat provocative post that mentions a couple of specs for messaging via HTTP (HTTPLR and BTF) and argues that Atom protocol can serve as the basis for web-scale reliable messaging.
Bill de hÃra: There are a number of reasons to choose Atom Protocol as the substrate for web-scale reliable messaging. First, a ton of software will be written to target APP in the next few years, and there is plenty of scope for extending the protocol; this suggests openly available and flexible software stacks. Second, since all document collections in Atom Protocol are served as Atom Feeds, it has inherent support for systems management and end to end reconciliation. Third, Atom entries have identity and are natural envelopes, unlike SOAP, where identity and true enveloping requires further specification (essentially raw Atom presents a better basis for interoperation than raw SOAP). Fourth, Atom Protocol can support binary content transmission not just XML, and thus can transmit arbitrary payloads. Finally, because Atom Protocol respects media types and deployed HTTP infrastructure, independent proxy inspection and security check-pointing can be installed cleanly, also eliminating the need to rewrite 2 stack layers and buy XML appliances to support and secure SOAP backed web services. It seems to be a question of when, rather than if, this will get built out.
I would have blogged about this earlier today, but Bill's blog looked foobar and I didn't realize that today is CSS Naked Day. My blog doesn't look half bad naked.
Joe Gregorio announces a new Atom Publishing Protocol Spec (draft #12) and he says it might end up being the final. I guess it's time for a new Blogapps release with APP draft #12 and ROME 0.9 support.
Plus, Joe has put together a set of new planet sites for towns in the Charlotte, NC area; all based on feeds from Google Base, Google Blogs, Google News, Craigs List, Flickr and the Weather Service. The sites look useful, but the ads combined with the minimalist design make them look a little spammy on first glance. Perhaps a short "about this site" paragraph is in order.