Beating the lumps in the mashup…then taking a deep breath.
I’m running out of funny titles for mashup server articles. For the next article I’ll need to get some help from a six-pack of a decent ale (perhaps some Speckled Hen – yum!). My friends at WSO2 have released the 1.0Beta of their Mashup server. I’m giving this a whirl and will be posting my feedback here and in their forums. There’s a ton of new cool stuff, plus changes to what was there from the 0.2 version. I admit I got a bit derailed by my Drupal fascination and my quest to build a Republic Commando theme I could be reasonably happy with. NOw I’m back on track with this mashup stuff.
The new mashup server comes with two different installers…a “super smooth” one for Win32 and one requiring a little more expertise. There are installers for other OS as well. I used the first one for Win32, but if I did it again would use the second because I’m a control freak – the super easy one installs services and monitors –> stuff that I don’t really want/need. On the good side all the problems I noted in version 0.2 are gone: everything installed fine.
The tool is dramatically improved. There is now a much more fully featured administration console and a folder hierarchy of services that can be owned by groups or individuals. There are a broader number of tasks for roles and stuff like that too. There also convenience features such as recent activity lists, new service lists, and special services for checking on updates for the server.
The layout of information on each service is different too, and although the slick AJAX interface seems to be gone, I think the new version is more functional and intuitive in a “Craig’s List” kind of way. There are still a number of nice uses of AJAX that allow users to vote on services, re-arrange blocks on the admin pages, see progress on the “try the service” functions, so that’s pretty nice.
The list of API exposures is maintained and really nice WSDL 1.0 and 2.0 documentation for each service is presented. This is a great feature (it was also in the earlier release).
The process of creating new services in 1.0b is pretty much unchanged. You can use the administration interface to create a skeleton, copy an existing service, or write one from scratch. Using one of these options (check out the docs in your distribution or on the WSO2 website) and dropping the code in your user folder will deploy the service instantly to the mashup server. Performance is great on my Lenovo T60p laptop.
If you looked at my first article on WSO2-MASHUP, my hack to start the server in a DOS box so that you can see output “live” still works. I repeated that because to me, when doing development, this is really the best way to run a product like this.
Before starting development you should create a new user account (for me its “beren” of course), login with this account and now your services will get created under this account’s credentials and “sandbox”. Then what I did was copy over everything from the “samples” directory so that I would have plenty of stuff to mess around with. I also grabbed all my “junk” from my 0.2 server and installed that. Amazingly, I think everything works!
I’m using the Aptana product for my development, but one of my colleagues is using straight Eclipse with WSO2 RCP plugin (included in their web service application server) for development. In either case you need to refer to the API docs and the samples for how to yank data from other sources and combine them. Its pretty easy, but you need to definitely learn the basics for how the server side components work. Its very helpful to make sure you have an idea of something to build. WSO2’s documentation is good, but is not yet up to date for 1.0b. WSo2’s samples are also good and really work (unlike many OSS and commercial products).
I have a few outstanding questions:
- Can the admin account see all the services? How?
- How can I promote services from a user to the system level?
- How can I track usage?
- Is there a way to understand “service load? Is one service hogging the server?
- Is there any security to restrict access to certain services. For example you might want to restrict access to the admin account’s services.
I’ll probably grow this list and hopefully submit some of them to the jira for the project.
I’m really impressed with this open-source group. There is some real quality work going on here. If you are into this kind of thing (web services, data integration, semantic web, etc.) you should get your hands into their projects. We’re starting to explore a few of their other solutions like the Web Service Application Server and their ESB. I’m also intrigued by the concept of extending Drupal’s Feed Aggregator or combining it with the Web Service Framework for PHP from these guys. Now that sounds really interesting. If you could use the WSO2-MASHUP to create aggregate feeds that you then serve up and over to Drupal where collaboration, authoring, and communication are going on…that sounds quite interesting.