Open Source Web Service Tools?
January 28, 2006 2:38 PM Subscribe
Recommended open-source development tools for web services?
For a software engineering class project, my team is supposed to develop and implement a web service & application as a proof of concept to a fictional customer (the professor, natch). None of us has yet had any real experience with building a web service, only limited exposure to SOAP. The major point of this is to learn the software development process and to learn on our own how to build the technology, just like being out in the Big Bad World.
As to specifics, we're so very early in the project that we don't know most of them. We haven't even figured out what application(s) we'll build. But we need to get the jump on it now.
Anyway, we're supposed to use open-source tools only for development, and I've come for recommendations. Systinet WASP was mentioned, but I can't see it on their download page, and I'm not sure Blizzard is open source. Any favorites? Windows-specific is preferred but not absolutely necessary -- we do have one Linux guru on our team.
For a software engineering class project, my team is supposed to develop and implement a web service & application as a proof of concept to a fictional customer (the professor, natch). None of us has yet had any real experience with building a web service, only limited exposure to SOAP. The major point of this is to learn the software development process and to learn on our own how to build the technology, just like being out in the Big Bad World.
As to specifics, we're so very early in the project that we don't know most of them. We haven't even figured out what application(s) we'll build. But we need to get the jump on it now.
Anyway, we're supposed to use open-source tools only for development, and I've come for recommendations. Systinet WASP was mentioned, but I can't see it on their download page, and I'm not sure Blizzard is open source. Any favorites? Windows-specific is preferred but not absolutely necessary -- we do have one Linux guru on our team.
Is Java open source these days? (I honestly don't know).
You might want to check what your professor means by open source. He could mean "free", "source is available to view", or "source is available to modify and republish". The whole language, or just the SOAP library?
Off the top of my head, Java Python PHP Perl Ruby C++ all have SOAP libraries of varying completeness, quality and open sourceness. Which languages does your team know best?
posted by Leon at 3:59 PM on January 28, 2006
You might want to check what your professor means by open source. He could mean "free", "source is available to view", or "source is available to modify and republish". The whole language, or just the SOAP library?
Off the top of my head, Java Python PHP Perl Ruby C++ all have SOAP libraries of varying completeness, quality and open sourceness. Which languages does your team know best?
posted by Leon at 3:59 PM on January 28, 2006
And Axis2, and the rest of the Apache Web Services project.
posted by cerebus19 at 4:03 PM on January 28, 2006
posted by cerebus19 at 4:03 PM on January 28, 2006
I honestly don't know if Orthogonality is kidding or not. I guess dealing with Tomcat would qualify as a problem in the Big Bad World, but in my somewhat limited experience with it, it's just a world of pain and suffering. You'll end up spending much more time grooming your server than writing code.
You can write webservices in whatever you want, I think, so yeah - like Leon said, sticking with what you know will be fastest. If you want to learn frameworks, there are a million out there. I'm vaguelly familiar with Rails, but not much with others, so I can't really compare them. Working in a framework might be a more authentic experience for you.
posted by heresiarch at 6:20 PM on January 28, 2006
You can write webservices in whatever you want, I think, so yeah - like Leon said, sticking with what you know will be fastest. If you want to learn frameworks, there are a million out there. I'm vaguelly familiar with Rails, but not much with others, so I can't really compare them. Working in a framework might be a more authentic experience for you.
posted by heresiarch at 6:20 PM on January 28, 2006
I would recommend Python as the implementation language. The Python folks have gone out of their way to make their language accessible to newbies. Couple Python with WebPy and lighttpd and you've got yourself a complete Open Source development stack.
With WebPy you can't (easily) use SOAP for your web services. However, you can use REST, which is simpler and more flexible.
If SOAP is a requirement then argue that it not be :) Failing that, use SOAP.py. If you use a modern Linux distribution then all of these tools should be easily installable. You may prefer Apache over lighttpd and that would work fine too. However, Apache can be scary if you don't have someone on your team that has configured it.
If you've been around the block and dynamic languages don't scare you then I'd suggest Ruby on Rails, which is powerful and fun. However, in my experience the online documentation is not as good as Python's. So I would avoid it unless you and your team are the types that can figure stuff out for themselves (or you don't mind buying books).
Since you are in school there is a good chance you've done a lot of work in either C++ or Java. I would recommend staying far away from C++ for this project. I don't have a lot of experience with Java. You can certainly get it to work but you'd probably learn more with Ruby on Rails or Python.
All of the software I mentioned should run on both Windows and Linux.
posted by mto at 8:00 PM on January 28, 2006
With WebPy you can't (easily) use SOAP for your web services. However, you can use REST, which is simpler and more flexible.
If SOAP is a requirement then argue that it not be :) Failing that, use SOAP.py. If you use a modern Linux distribution then all of these tools should be easily installable. You may prefer Apache over lighttpd and that would work fine too. However, Apache can be scary if you don't have someone on your team that has configured it.
If you've been around the block and dynamic languages don't scare you then I'd suggest Ruby on Rails, which is powerful and fun. However, in my experience the online documentation is not as good as Python's. So I would avoid it unless you and your team are the types that can figure stuff out for themselves (or you don't mind buying books).
Since you are in school there is a good chance you've done a lot of work in either C++ or Java. I would recommend staying far away from C++ for this project. I don't have a lot of experience with Java. You can certainly get it to work but you'd probably learn more with Ruby on Rails or Python.
All of the software I mentioned should run on both Windows and Linux.
posted by mto at 8:00 PM on January 28, 2006
Best answer: Unless there's more information from your project that you'd like to share with us and don't want to get specific direction from you professor, Axis running on Tomcat is what you want.
The install page has some good step-by-step instructions. Don't ignore the section called "Things you have to know". You can get by without knowing those things, but you'll only end up frustrated at some point.
After you read that, read the User's Guide. If this looks like it's too much to go through for a SOAP stack (it really isn't though), and you're Perl conversant, try SOAP::Lite which should be included in your recently-released Perl distribution.
posted by clearlynuts at 2:53 AM on January 29, 2006
The install page has some good step-by-step instructions. Don't ignore the section called "Things you have to know". You can get by without knowing those things, but you'll only end up frustrated at some point.
After you read that, read the User's Guide. If this looks like it's too much to go through for a SOAP stack (it really isn't though), and you're Perl conversant, try SOAP::Lite which should be included in your recently-released Perl distribution.
posted by clearlynuts at 2:53 AM on January 29, 2006
Response by poster: You might want to check what your professor means by open source.
Bah, serves me right for being away from here for a couple of days.
I should have clarified: we're not having to code the web service platform itself from the ground up, just the applications. We're allowed to use existing technology for the web service, but that needs to be open source. The language we use to build the applications we're going to run on this I think is entirely up to us. The prof had recommended WASP for the web service, but like I said, we can't seem to find a download link for it.
I'm going to e-mail this link to my teammates so we can discuss options, and I'll let you know what we go with. Meantime, if you've got more suggestions, keep 'em coming!
posted by middleclasstool at 1:55 PM on January 29, 2006
Bah, serves me right for being away from here for a couple of days.
I should have clarified: we're not having to code the web service platform itself from the ground up, just the applications. We're allowed to use existing technology for the web service, but that needs to be open source. The language we use to build the applications we're going to run on this I think is entirely up to us. The prof had recommended WASP for the web service, but like I said, we can't seem to find a download link for it.
I'm going to e-mail this link to my teammates so we can discuss options, and I'll let you know what we go with. Meantime, if you've got more suggestions, keep 'em coming!
posted by middleclasstool at 1:55 PM on January 29, 2006
Response by poster: Axis and Tomcat are the winner. We've just finished the design phase and are getting ready to implement our first prototype.
posted by middleclasstool at 4:40 PM on March 24, 2006
posted by middleclasstool at 4:40 PM on March 24, 2006
This thread is closed to new comments.
posted by orthogonality at 2:42 PM on January 28, 2006