First trip in the year
Well I m really bad in going trips, and finally managed to go one and it was really a great one too.
The trip was to visit the waterfall ‘Hath-Maale Alle’ (means for 7-steps waterfall) near Deniyaya (A suburb in southern province of Sri Lanka).
I took some photos from my phone-camara. Although they were not in the best of quality, it is enough to give some idea how wonderful it was. I uploaded some of them in flickr (Just click here to see my photos). And this is my first uploading to the flickr too.
WSO2 WSF/Ruby Stepping towards 1.0
Yesterday We were doing an RC on WSO2 WSF/Ruby. It will enable growing ruby and rails developers to feel the taste of WS-* stack without having any trouble.
WSF/Ruby is based on the WSO2 WSF/C which itself based on set of apache web service projects like Axis2/C, Rampart/C, Sandesha/C, Savan/C. So the WSF/Ruby will be great platform to experience the power of these project.
Consuming a web services with WSF/Ruby is really simple. It need very few line of code to do a simple web service,
require "wsf" req_payload_string = "<greet> Hello </greet>"
client = WSO2::WSF::WSClient.new({"to" => "http://greeting_host/myservice"})
res_message = client.request(req_payload_string)
p res_message.payload_to_s << "\n"
The service provider code would be simple as this, You may put this on some function in the controller class inside Rails. (Yea I mean Ruby on Rails)
def greet(message) if message.payload_to_s == "Hello"
"<greetResponse>Welcome!</greetResponse>"
else
"<greetResponse>Still Welcome!</greetResponse>"
end
end
service = WSService.new({"operations" => {"greet" => "greet"}}) #the greet service operation to greet function map
res = service.reply(request, response)
render :text => res
Ok, That may seems ordinary. How about improving the service by authenticating the user with username tokens,Consumers may give their identity by adding some options at the constructor of WSO2::WSF::WSClient,
policy_content = {"use_username_token" => true}
policy = WSPolicy.new({"security" => policy_content})
security_options = {"user" => "dimuthu",
"password" => "not my real one",
"password_type" => "Digest"}
security_token = WSSecurityToken.new(security_options)
options = {"to" => "http://greeting_host/myservice",
"policy" => policy,
"security_token" => security_token}
client = WSClient.new(options)
And the service provider will also change their code just to authenticate the user,
def passwordCallBack(username) # hopefully you will be taking the password out from database
if(username == "dimuthu")
return "not my real one"
else
return "I m a guest"
end
end
policy_content = {"use_username_token" => true}
policy = WSO2::WSF::WSPolicy.new({"security" => policy_content})
sec_token = WSO2::WSF::WSSecurityToken.new({"password_callback" => "passwordCallBack",
"password_type" => "Digest"})
wss = WSO2::WSF::WSService.new({"operations" => operations,
"policy" => policy,
"securityToken" => sec_token})
Similarly not only the username token, but also complete specifications of WS-Security, WS-Addressing, WS-Policy and WS-Reliable messaging can be used from a simple script with WSF/Ruby. This API is proven to be simple and popular with its predecessor WSO2 WSF/PHP. Hope we can do the same in Ruby as well.:)
adb with base64Binary and xmime.xsd – little howto (Sending binary with Axis2/WSDL2C)
This is to put a pointer to a mail in axis2/c user list appeared few months ago, It is a little how to on using Axis2 WSDL2C to generate code to send binaries. Please check the following link to find the howto. http://markmail.org/message/sdkccr3ixve3psyv (It will be on a zip file)
There Mark Nüßler is sharing his experience of sending binaries with Axis2/C specially from WSDL2C generated code.
Hope he will excuse me for mentioning it here.:)
Ubuntu
I installed Ubuntu 7.10, Gutsy Gibbon. It helped me to install drivers for my wireless and vga cards even from proprietary vendors without any trouble. And it s getting really great day by day. It has made a situation where any window user can come to Linux without much problem.
No wonder why Ubuntu is so much popular, http://www.google.com/trends?q=ubuntu%2C+red+hat%2C+fedora%2C+suse%2C+debian
Axis2/C codegen helper tools
In a case somebody feel not well to work with the WSDL2C tool, I have written some scripts to help generating demos, writing tests and building code. From that I think the demo generation script should be really useful. It s a ruby script and you can download it from here. (http://people.apache.org/~dimuthu/leisure_time.html, check the script under 23th October 2007)
What you should do is generate the code using WSDL2C tool (It can be either stub or skel), and run the script within the generated files. If it is stub, then there will be a demo.c file, which is a complete demonstration of writing all the operation using ADB objects. And if it the skel, then the demo filename will be axis2_skel_myservice2.c (axis2_skel_myservice.c is the original generated file). That has implemented some fake logic to show how each operation can be built using ADB.
I hope this will be useful to people who are searching for WSDL2C tags.:)
Checklist for Formatting Hard disk
Today the whole day I prepared to format the hard disk. Since I have access to internet I don’t need to think twice before doing this kind of things anymore. But there are few things I should not miss.
- Commit the changes done to all the svns
- Backup my_works directory
- Backup .gaim, .m2 and .mozilla-thunderbird directories and .vimrc
- Export the browser bookmark and backup somewhere
- Backup the tests folder, this is where I write simple tests for any problem, More than half of the work per day is done inside here.
- Delete films, fun directories.
Well it will automatically get deleted. - Backup documents that I downloaded from the web, when I didnt have regular access to internet, Better take them safe somewhere.
- Backup www directory. This time I already mis-deleted it.
- What else?
I think that’s it. Most important thing is to backup whatever the work I done, they can never be recovered otherwise. Hope I have done everything ok.!
-
Recent
- Changing My Blog to dimuthu.org
- Good Bye WordPress!!
- Moving Back To PHP
- New Year Gift for Ruby Developers, The Brand New Web service Dev Kit
- Last JIRA for the Year 2007
- First trip in the year
- WSO2 WSF/Ruby Stepping towards 1.0
- adb with base64Binary and xmime.xsd – little howto (Sending binary with Axis2/WSDL2C)
- Ubuntu
- Axis2/C codegen helper tools
- Checklist for Formatting Hard disk
- living in Wireless
-
Links
-
Archives
- July 2008 (1)
- January 2008 (3)
- December 2007 (7)
- November 2007 (4)
- October 2007 (1)
-
Categories
-
RSS
Entries RSS
Comments RSS