apache apachecon app apple asf atom atomprotocol atompub blogapps blogging businessblogging conferences family feeds foss general glassfish google humor ibm java javaone links linux mac microsoft movies music netbeans opensocial opensource photos politics rest roller rome rss socialnetworking socialsite socialsoftware sun triangle trianglebloggers vacation webdev webservices wiki


Monday Apr 21, 2008

Latest Links: Roller, REST and more

Monday Feb 18, 2008

Latest Links: JSF vs. REST

I've been very happy with the choice of Struts 2 for Roller, but I still follow JSF because it's the Java standard. A couple of articles by Ryan Lubke about what's coming in JSF 2.0 got me thinking about JSF again.

One of my problems with JSF is REST. REST fans say JSF is inherently RESTless because every JSF request is a POST. JSF advocates say JSF can do GET and bookmarkable URLs if necessary and that's good enough.

Fortunately, the plans for JSF 2.0 indicate that REST improvements are coming:

Unfortunately, it sounds like all they're planning to do is make it easier to create bookmarkable URLs and add some support for the JSF-311 REST API. Why can't the goal be to make JSF applications RESTful by default? Why can't JSF ensure that POST is only used when required by the application (not the framework) and JSF URLs are simple, clean and always bookmarkable.

Monday Jul 02, 2007

Zero

IBM's project Zero has de-cloaked.
Project Zero introduces a simple environment for creating, assembling and executing applications based on popular Web technologies. The Project Zero environment includes a scripting runtime for Groovy and PHP with application programming interfaces optimized for producing REST-style services, integration mash-ups and rich Web interfaces.
Smells a lot like Phobos (see also Phobos Meets Atom, REST), but Phobos is focusing on server-side JavaScript first. Oh, and Phobos is open source. Project Zero is not.
"This community is an experiment in a new way to build commercial software, an approach we are currently calling Community-Driven Commercial Development. Community-Driven means that we want feedback, insight, suggestions, criticism, and dialogue with you, the users of Project Zero. This interaction will yield a better solution that is more targeted at the problems you have and a technology that truly delivers on its objectives. Commercial means that this is not an open source project."
Community-driven? Sounds like the community is a back-seat driver with freedom to complain but no access to the steering wheel, gas pedal or breaks.

Tuesday Jun 05, 2007

Joe's Q&A: Do we need WADL?

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.

Friday May 25, 2007

Friday Atom and REST links

A bunch of Atom and REST related links that I came across while catching up with my blog reading today:

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."

RESTful web services support in Netbeans. Geertjan links to blog entries and a screen-cast that explain Netbeans 6.0 support for RESTful web services, including the early access JSR-311 REST API.

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.

Tuesday May 15, 2007

The Apache Lucene GData server project

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.

Saturday May 12, 2007

RESTful Web Services, by Richardson and Ruby

Book's cover Leonard Richardson and Sam Ruby's new book RESTful Web Services is now available. It was one of the best sellers in the JavaOne bookstore this year, so congrats to Leonard and Sam. It sold out before I was able to get a copy; Rajiv bought the last one in the store.


Monday May 07, 2007

APP and OpenID at JavaOne

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.

Monday Apr 23, 2007

Propono 0.5 released

ROME Propono 0.5 is a minor bug fix release of Propono. You can get the release files and updated Javadocs from the Propono 0.5 release page.

Wednesday Apr 04, 2007

@JavaOne: Beyond Blogging: Feeds in Action

As promised here's some more info on my JavaOne 2007 session. It's based in part on the Beyond Blogging presentation that I presented to a tiny audience at the local Tri-XML conference last year. Tim Bray didn't attend my talk, but he read the slides and called them "the single best introduction and overview I’ve ever seen about feeds and syndication and RSS and Atom and all that stuff." I shouldn't brag. Had he attended the talk he might have had an entirely different opinion, who knows. Anyhow, the presentation has been updated, stream-lined and large portions rewritten to cover ROME and ROME's new Propono sub-project. [Read More]

Wednesday Mar 21, 2007

Latest links: March 21, 2007

Monday Mar 12, 2007

Sun Web Developer Pack R1 with RSS and Atom goodies

The Sun Web Developer Pack (SWDP) finally uncloaked today, so I can talk a little more openly about what I and my Java EE co-workers have been working on. You can get the full scoop at the SWDP site, but basically SWDP is a bundle of technologies to help developers build "Web 2.0" or next-generation web applications on the Java platform. Ajax, scripting languages, REST and of course RSS/Atom are all part of that. The RSS/Atom bits are ROME 0.9 (Beta), Blogapps 2.0 (Early Access) and a ROME-based Atom Server kit based on code from Roller.  There are also example Atom server implementations in the REST API and Phobos components of the pack.

I'm pretty excited that we're putting some resources behind ROME and that both ROME and Blogapps are part of SWDP R1, but I'm even more excited about the next release. In R2 we'll drop the Atom Server Kit and Blogapps BlogClient and we'll replace them with ROME Propono a brand new Atom protocol client and server library that we're getting ready to contribute to the ROME project.

I haven't had a whole lot of time to experiment with the various components in the pack, but I have played with Phobos and I think it's pretty compelling. Phobos is a "lightweight, scripting-friendly, web application environment." It's not just for creating server-side JavaScript applications, but that's the angle the I find interesting. So many developers are creating JavaScript/Ajax applications these days that working in JavaScript on both client and server-sides makes sense -- especially when you can debug into JavaScript code in your IDE as you can with the Netbeans Phobos module. Also note that the jMaki Ajax components work with JSP, PHP and Phobos -- jMaki and Phobos look like a winning combination.

Wednesday Feb 14, 2007

javax.ws.rest

That's big news. A standard Java API is coming for building REST based web services. If you're an expert in REST, you can participate in it's development by signing up for the expert group. Apache, BEA, Google and Jerome Louvel (the RESTlet guy) are on-board. Here's the intro from the JSR:

JSR 311: Java (TM) API for RESTful Web Services: This API will enable developers to rapidly build Web applications in Java that are characteristic of the best designed parts of the Web. This JSR will develop an API for providing REST(Representational State Transfer - See reference to Roy Fielding's dissertation in section 3.1) support in the Java Platform. Lightweight, RESTful approaches are emerging as a popular alternative to SOAP-based technologies for deployment of services on the internet. Currently, building RESTful Web services using the Java Platform is significantly more complex than building SOAP-based services and requires using low-level APIs like Servlets or the dynamic JAX-WS APIs. Correct implementation requires a high level of HTTP knowledge on the developer's part.

This JSR will aim to provide a high level easy-to use API for developers to write RESTful web services independent of the underlying technology and will allow these services to run on top of the Java EE or the Java SE platforms. The expert group will investigate whether a subset of the API can be made used with Java ME. The goal of this JSR is to provide an easy to use, declarative style of programming using annotations for developers to write REST ful Web Services and also enable low level access in cases where needed by the application.

RESTful Web Services is a relatively new area in the industry and there are still a lot of unknowns in this space. For example, a key aspect of RESTful Web Services is for the service to be stateless. However, this often requires the developer to produce boiler-plate state restoration code that could be avoided with state-aware API help. We expect the expert group to be an active and engaged group of people participating to prioritize and help drive issues to achieve the end goal of a developer friendly API.

Here are a couple more links about the new JSR:

  • Elliote Rusty Harold is not exactly positive, saying "this is like asking Karl Rove and Dick Cheney to write the Democratic Party platform" but concludes with a call for participation: "are there any JSR members here who might join the working group and bring some sanity and actual REST experience to the development of the eventual specification?"
  • Jerome Louvel explains the idea of REST annotations and explains that implementations will be possible with JAX-WS, Servlet API or Restlet API.
  • Dan Diephouse says "This is excellent news - I’m glad to see people are thinking more seriously about RESTful services on Java" and "Expert group members may be interested in checking out the previous work I’ve done on Java REST annotations"
  • Brian McAllister: says the JSR sounds like another case where "reasonably good developers trying to design software for presumed-incompetent developers which will in fact be used unhappily by basically competent developers."
  • Mark Hadley addresses some of the concerns raised above and provides an interesting code example showing the REST annotations in action.
  • Pete Lacey: "Initial thoughts: 1) Cool! 2) The servlet API is not ideal, this is needed. 3) I hope they don’t screw it up (see JAX-WS)."
  • Steve Loughran: "I don't have the faintest clue what a REST API should look like, except that it must not look like JAX-RPC/JAX-WS"
  • InfoQ thread: summary of news and three comments as of Thursday
  • Paul Sandoz: "I have been wanting to work on such an API and implementation for about 5 years! [...] Now the Web zeitgeist is back and so are we :-)"

Wednesday Dec 27, 2006

New Atom protocol spec draft and Queen City planets

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.

Tuesday Nov 07, 2006

New book on REST Web Services

To design a website you need to know about HTTP, XHTML, and URIs.

To design a web application you need to know about HTTP, XHTML, and URIs.

To design a web service you need to know about XML, SOAP, WSDL, UDDI, WS-Policy, WS-Security, WS-Eventing, WS-Reliability, WS-Coordination, WS-Transaction, WS-Notification, WS-BaseNotification, WS-Topics, WS-Transfer...

What happened there?
Leonard Richardson and Sam Ruby are writing a book on REST Web Services and they're going to develop it in the open on their blogs. If you care about web services of any kind, you're going to want to follow along.

Friday Apr 28, 2006

Atom protocol and WADL


Via The Aquarium I see that Mark Hadley's work on Web Application Description Language (WADL) is now a Sun Technical Report. WADL provides a way to describe a REST based web application or service so that tools can discover services, generate proxies, etc. As I understand it, WADL is to REST as WSDL is to SOAP.

There's also something new since the last time I looked at WADL. Mark has added a section on the Atom protocol and examples that show how to use a WADL file to replace an Atom introspection document. Looks like good stuff to me. If you need an introspection doc for your REST based web service, why not use WADL?

Via Google, I found that there's also a WADL presentation on-line.

Friday May 06, 2005

Destructive GET

Beware the Google Web Accelerator. It will wreak havoc on the web applications that you use (Roller included). Problem is, in most webapps HTTP GET changes things (even though it shouldn't). Read all about it on O'Reilly Radar. I don't understand this. Google employs a hell of a lot of very smart people. How did they let this one slip by?

Update: I just reviewed the Roller UI and found that, at least for deletes, we do the right thing. The pattern we follow is to use a delete link (which causes a GET), but that sends you to an "Are You Sure" page which uses a POST to do the actual delete -- so Roller is probably safe from the Google Web Accelerator.

This work is licensed under a Creative Commons License.
Copyright 2002-2007, David M Johnson (dave.johnson at rollerweblogger.org)

This is a personal weblog, I do not speak for my employer.