Skip to main content

skip to main content

developerWorks  >  SOA and Web services  >

Web services visionary

Sam Ruby's job is to see into the future of Web services

developerWorks
Document options

Document options requiring JavaScript are not displayed


Rate this page

Help us improve this content


Level: Introductory

Robert McMillan (bob@filbert.net), Freelance Writer

17 Jun 2003

Sam Ruby, a member of the IBM Emerging Technologies Group, has become a key part of several Web services-related open source projects over the last three years, including Tomcat and the IBM SOAP stack. He's still contributing both his code and his insight to the community. He spoke with Bob McMillan on a number of topics, including the appeal of open source, the future of Web services, and the power of Web logs.

Sam Ruby is an addict. A 21-year IBM veteran, he got hooked on open source three years ago, while working on his day job, which, at the time, was integrating PHP with the Java platform. Ruby hadn't really been involved in open source development before, but he jumped right in, working on his Java-PHP integration work and submitting a number of fixes along the way. Before he knew it, the PHP team had given him commit access to its source code tree. He was floored. Soon, his work had him submitting patches to Apache's Tomcat project, and again, Ruby was blown away by his reception. It was easy for him to get access to source code and fixes from fellow developers, and before long he had Tomcat commit access as well. "That's not exactly the type of cooperation you see between competing projects within IBM," he says. "And that quickly became addictive."

Ruby has been a significant contributor to the IBM SOAP stack, and is known for his thoughtful and precise thinking on everything from Web services and open source to blogging. developerWorks contributor Robert McMillan interviewed Sam by telephone recently to ask about his current work in the IBM Emerging Technology Group, and to get his thoughts on Web services.

developerWorks: How did you end up working on Web services?

Sam Ruby: I'd pretty much been a developer my entire career. I write code. I liked writing code. And as I progressed at IBM, what they say as you get promoted is, "You can't write code anymore." Well, I refused to do that. I tried being in an architecture role for a while. These are natural places for you to move up to, but what I've refused to do is move in any direction that got me to move from actually writing code.

After that, I moved into Emerging Technology. The emerging technology at the time was Web services. So I dove into that. I helped contribute significantly to the what was originally the IBM SOAP stack, which got contributed to Apache. IBM's Soap4J became Apache SOAP. It's since been rewritten as Apache Axis. [See Resources for links to this and other projects and topics referenced in this article.]

developerWorks: How did you convince IBM to contribute this code to Apache?

Ruby: This was in the early days of SOAP. We were very much scared that Microsoft would co-opt the standard -- embrace and extend and all the normal things. We'd been burned an awful lot with IBM and Microsoft competitions, with OS/2 and the like. So if we simply said, "OK, there's a standard out there called SOAP -- Microsoft has their implementation; we have our implementation," guess who people are going to test interoperability with? And then they'll say, "Well, if it doesn't work with ours, maybe if we made ours a little more like Microsoft's, that would make life better." That's not the position we wanted to be in.

So what we decided to do was, instead, open source it, and say, "Here is a ubiquitous, in essence de facto reference implementation." It's not anointed as a reference implementation, but it achieves the same purpose. It's our way of increasing the probability that this implementation of a standard is adopted. Our version was absolutely the most compliant with the SOAP specifications at the time, and got a lot of people noticing it.

developerWorks: There are so many emerging Web services standards, and groups that these standards can go through, and then there's this de facto open source way of developing standards. It seems very easy to get confused about what standards are emerging where, and what standards efforts are important to watch. Does this all make sense to you?

Ruby: I think the short answer to that is that I don't think anybody knows which way it's going. What we've got is lots of people with competing interests. No one person knows exactly the right answer for the future. But instead of going like we have done in the past and say, "Let's build this humongous standard like CORBA," and you've got to agree to every single aspect of it in order to have an implementation.... What we're doing collectively -- not something that IBM's doing or Microsoft's doing, but what the whole industry is doing -- is defining this, in steps. And what you get is a bit of confusion. You get a bunch of people with opposing standards -- some of which live, some of which die.

In the process, the industry -- I'm not saying IBM or anyone in specifics -- is trying lots of venues, whether it's W3C or OASIS or just simply publishing a URL out in the Web and not going through any standards body.

There have been a number of noticeable failures. Microsoft originally put out SOAP With Attachments, then later said that was a failure, and then they put out this other thing called DIME, and now they're saying that was a failure, and the best thing to do is go back with SOAP With Attachments when you've got to, but actually put the data in the XML infoset when you can.

So what you're seeing there are people trying this, seeing if it works, seeing if other people rally around it. We don't know yet which of these standards will be used five years from now. However, the basics, like SOAP and WSDL, seem to have gotten a lot of traction and don't seem to be going away.

developerWorks: In the open source world -- as opposed to the world of consortiums -- it seems that the role of standards often takes a backseat to working implementations.

Ruby: I like standards, but I actually personally treat the word standard a little differently. I take the dictionary definition versus the definition you find in various consortiums. If you look at the dictionary definition, it basically says, "Something that everybody agrees upon." When I say a meter, that is a term people agree upon. It's not something I have any say on. It actually is an international standard, which is kind of cool. The fact that we all agree that this is a meter, or this is a yard, or whatever you want to pick: that's a standard. By that definition, PowerPoint is a standard. Not in the same sense that people talk about standards bodies and the like, but, by and large, if you send something, PowerPoint is sort of the way you send it. Is it a standard I like? Not particularly. However, it is something that is known. When I say "PowerPoint," that conjures up an image in your mind that is exactly the image that I'm trying to express.

developerWorks: Just to get back to the evolution of SOAP, has there been anything about that that has surprised you?

Ruby: By and large, SOAP itself hasn't evolved. When I got involved, SOAP 1.1 was just getting proposed. SOAP 1.2 has not actually been proposed yet. It's still going through the efforts and machinations of the standards organizations. In essence, what has evolved is the whole stack associated with SOAP. Originally, I was a skeptic on much of the higher-level stuff. In particular, at first I thought WSDL was overkill.

developerWorks: What changed your mind on that?

Ruby: What I worked on to help make these things a standard, is I actually hosted the first SOAP builders interop meeting, and then went to pretty much all of the meetings since then. At them, we send a message to the other person. Does the other person receive that message, and then, when they send a reply, do we actually understand the reply that came back?

Most of the problems were not what I expected; the problems were in the naming of parameters. It actually is a lot easier for an implementation to take a definition that said, "This is what a correctly formed definition would look like," and then from that definition generate correct code. So it's first-hand observation of the problems that we see if you don't try to be a little more formal in your definitions.

developerWorks: You seem to occupy an interesting position when it comers to REST. When you've talked about it in the past, you've said that you personally advocate additional constraints to Web services. What did you mean by this?

Ruby: I was responding to a specific individual who's been a long-time critic of Web services, who argues strongly that what you need are the constraints that REST provides. His name is Mark Baker. What he advocates strongly is the architectural constraints that you get with HTTP -- in other words, GET and POST and just a minimal number of verbs. And there is some argument there that has some validity to it.

I think they [REST and Web services] actually can play nice together. You can actually say, "I will use REST to describe how objects are accessed," and then use SOAP to talk about how those objects are represented.

One interesting thing is that REST stands for Representational State Transfer, and one thing that REST does not talk at all about is how you actually represent the state, despite the fact that that's the name. Conversely, Simple Object Access Protocol (SOAP) does not talk about any way in which you access objects; it just talks about how you represent state and do transfer.

So, you have two groups of people not talking to one another, but talking past each other. If you actually combine the best ideas of both, you end up with an extensible and modular and loosely coupled system.

developerWorks: You seem to be the person who's right in the middle of this argument. Do you feel that your understanding of all of this is unique?

Ruby: Unfortunately, it's a little more unique than I would like. I wish a lot more people would have that same common understanding. Most people sort of tune off, or immediately jump to one of the two extremes, as it were. They simply stop listening.

developerWorks: Why do you think that is? Is it simpler to put one thing into one paradigm?

Ruby: I'm not sure I should speculate. I think a lot of it is that people don't spend the time and actually look at some of the issues. Everybody's got only a finite amount of time in which they can learn things, and this may not be the area that excites them much. So they look at which way people are going, and simply assume that everybody else is weird. And we all do that to some extent. This happens to be an area that I'm looking at, but I'm sure there are other areas where I don't do proper research.

developerWorks: Do you think that this will change as people start to get more serious about using Web services, and begin to spend the hands-on time with these technologies?

Ruby: I think, independent of the core battles that we're seeing, people are getting a greater appreciation of XML as a way of representing data to send back and forth. XML has been a buzzword and technology that people have been using for many, many years -- even longer than Web services. That is the first rung, as it were.

developerWorks: What do you think is most important for Web services to evolve? Are there specific standards that are needed?

Ruby: Well, there's no question that standards have outpaced implementations. There are too many standards out there. There will still be more standards created. But I don't think the answer is more standards.

In terms of tooling, more tooling that can handle XML easier and better is where I think more work needs to be done: tools that make XML intuitive and obvious, perhaps to the point where it is transparent.

developerWorks: You said that more standards are not what is required. Do you think that the proliferation of standards may be confusing people about where to go?

Ruby: The proliferation of standards may be a bit confusing. What we're finding, though, is that many of the higher-level standards are aiming at smaller markets, where there does need to be an agreement, and it needs to be a public agreement, but it isn't something that will be universally adopted. We're hoping SOAP will be universally adopted, and as you move up the stack from UDDI and BPEL, the business process stuff, you'll find there are specific niches where this makes a lot of sense, and in those niches, that's exactly the right answer. And there may be places where people say, "I don't need that." And that's OK too.

developerWorks: I wanted to ask you, what software are you working on right now?

Ruby: I'm not doing as much Web services right now. Mostly what I'm playing with is my Web log. I'm playing with it and trying to figure out how to do additional things. About a month or two ago, I rewrote the whole thing into Python.

developerWorks: What applications of Web logs have caught your attention?

Ruby: Web logs are extremely intriguing to me. When I said that I found open source addictive, I was talking about the collaboration that I found, the fact that I could post a question and there would be answers within minutes, and that was without me having a prior contractual relationship with somebody. It was just that somebody was interested in the same thing I was, and we were just trying to help out each other.

I'm finding the same addictive nature in Web logs. I just simply post something out there and say, "This caught my interest," and somebody else says, "Well, that caught my interest too," and they either comment on my Web log, or they comment on their Web log. And people follow the links.

In open source, much of the collaboration is structured around a very tangible thing: a piece of code. This is not as structured. I've thought about it a lot, and I've not yet figured out what the magic is that makes it all work. In theory, what you do in Web logs, you could do in a newsgroups.

developerWorks: But in Web logs, the topic is connected to you, rather than something else.

Ruby: But on Web logs, I don't have to worry about scope. It's just something that caught my interest. One of the essays that's on the left-hand side of my Web log is called "Manufacturing Serendipity." It talks about that phenomenon. For example, one time I happened to be in Boston, and I noticed it was snowing outside. It was late in the year, so I commented on that, and it was read by Miguel de Icaza, who at the time I knew of, but not terribly well. Based on this, he e-mailed me while I was in a meeting and said, "Oh, you're in Boston. Perhaps we could have dinner."

These types of fortuitous things that have happened have just exploded for me since I created the Web log. You know a lot more about me before you even called me because you were able to read a number of things on the Web log. Right now this is an interview, but this interview is made easier because of that extra thing I've done with my Web log. I'm not sure what the tangible benefits are, but I have to believe that there are ways we could integrate this into things like business processes or things that have real value to customers.

I mean, faxes changed the way businesses operate. Telephones changed the way businesses operate. I've seen in the last few years that instant messages have changed the way people operate. If you look in meetings, people get together face to face in meetings. While they're in the meeting, they may be instant messaging people outside the meeting; they may be instant messaging each other. So what you'll find is there's one guy talking, and other people may not want to interrupt him, or they'll have something that the thing that they're hearing has triggered and they actually do need to take care of.

developerWorks: So what applications do you see for IBM's products?

Ruby: At the group I'm in within Emerging Technology, our job is to figure out the answer to the question you're asking, and the only honest answer I can give you is: I don't know yet. I do believe that a number of IBM products will need to change. I do believe that there may be new products that come out based on this.



Resources



About the author

Robert McMillan is a freelance writer based in San Francisco. He has contributed to Wired News, New Scientist, Linux Magazine, and Network World, and was the founding editor-in-chief of LinuxWorld.com. Contact Robert at bob@filbert.net.




Rate this page


Please take a moment to complete this form to help us better serve you.



 


 


Not
useful
Extremely
useful
 


Share this....

digg Digg this story del.icio.us del.icio.us Slashdot Slashdot it!



Back to top