Saturday, January 26, 2008

Will REST Provide a Better Experience?

Service Oriented Architecture (SOA) is an architectural style that promotes loose coupling of business processes through services independent of platform, time and location. When business discussion turns to SOA, web services are often used as the classic example for producing these loosely coupled components. What usually is not discussed are the challenges presented with SOA implementation based on classic web services. Some vendors have created tools to ease implementation, but it is important to understand that with a classic web service there's a lot happening behind the scenes and the programmer should have knowledge of how it works.

Classic web services are built upon the following five standards.
- SOAP (Simple Object Access Protocol)
- XML (Extensible Markup Language)
- HTTP (Hypertext Transport Protocol)
- WSDL (Web Services Description Language)
- UDDI (Universal Discovery Description Integration)
Keep in mind that while there are standards for the languages and protocols, each implementor may go about creating the solution in a different way. This is particularly important when it comes time to maintain your web service. Some solutions do a better job at hiding the complexity than others. Bottom line: There's very little that is simple about the classic web service.

When I approached traditional "web services" in school, I was in a .NET environment. Credit must be given to Microsoft with their implementation. It was so simple. The wizards were intuitive, changes were easy to make and all of the hard stuff was carefully hidden from the user. I should have understood that given the list of standards involved there was a lot of 'black magic' happening.

Having approached traditional web services professionally, it's always been a severe pain point. The java tooling (at least that provided by IBM) attempts to hide the complexity from the user, but it's been my experience that things never work quite as they should. This forces the developer to play with the "black magic" which never provides me with a really good, warm feeling inside.

I've been doing some preliminary reading on REST. This looks good. Really good. I'm up for anything that still provides platform independent exchange of information without the pain of RPC.

Thursday, January 17, 2008

My $.02

I've been following the "Is Java Dying" debate that seems to have been swirling around the web with more fervor in the past several weeks. I tend to agree with the camp that believes that language evolution is inevitable, but this is not damaging to the Java community. There's a LOT of Java code out there. There are still a LOT of people writing new Java code every day. There are some great new languages out there, but I don't yet see a reason to move to a newer language or stack. There's still a lot of promise in the Java world. I'm particularly excited by a couple of projects released under the auspices of the great Google: Guice and GWT. Both of these projects show us that there's new and innovative stuff being done in Java every day.

Wednesday, January 09, 2008

January Yuck

I'm feeling somewhat numb. Again. Not in the physical sense, but certainly in the mental. It's really hard to go back to work after a vacation. I set out to do all sorts of great stuff this week, and it seems that fate would rather have me work on other things. It's frustrating when you can't stick to your own schedule.

I walked through a condo last night that I am very tempted to make an offer on. We'll see where things end up. I need to think about it for a few more days. I would like to get out of this numbness before making any big decisions however.

Perhaps this is what January is all about.

Tuesday, January 01, 2008

One More Lazy Day

blanket


Slept in - When you're used to being up at 5, sleeping in until 9 feels luxurious.
Spent most of the day reading and staying warm.
Made chicken enchiladas for dinner.
The regular program continues tomorrow.