Wednesday, June 18, 2008

AMQP support now in Apache Axis2/C

Axis2/C, the world's best implementation of a WS engine in C supports both SOAP and REST style invocations. Axis2/C can be used to implement web services in many other languages as well due to it's inherent portability allowances. Examples found in the WSO2 stack, such as PHP, C++, Ruby and Perl fortify this aspect. An implementation supporting WS on Python is also underway, and will be released soon. Axis2/C can also operate based on a number of transports such as HTTP, TCP, and XMPP. The latter being a part of WSO2 WSF/C which is a glorified implementation of Axis2/C with all of its sub projects.

AMQP, or the Advanced Message Queuing Protocol is a relatively new protocol supporting network communication which was introduced about 2-3 years back. AMQP is an open standard application layer protocol for message oriented middleware. AMQP is intended to bridge the gap between common guaranteed-delivery messaging middleware, which enables complete interoperability at both protocol level and broker services semantics level. AMQP also defines an efficient wire-level format to enable a technology-neutral interoperable standard.

The AMQP transport for Axis2/C which was introduced few days ago addresses a popular demand for making it possible to author web services to use the AMQP protocol, which is a best of both worlds implementation. AMQP + Axis2/C makes it possible to integrate the world of AMQP based communication with WS services based on other standards. The Axis2/C project uses an extension provided by Apache Qpid to implement a transport based on AMQP.

Wednesday, June 11, 2008

WSO2 @ Tech.Ed 2008

Yesterday was a big day for Microsoft, WSO2 and the entire web service middleware provider industry. The true power of advanced web services and the gains in interoperability was presented in front of thousands seated, and perhaps a million or more online viewers taking part at the Microsoft Tech.Ed 2008 for IT Professionals, North America.

Jonathan Marsh, director of Mashup Technologies, WSO2 presented a real time demo on interoperability of WCF, WSO2 WSF/PHP, Axis2 (Java based), integrating several other components such as a WPF frontend and PHP enterprise applications. Jonathan was accompanied by Greg Leek, Director of Connected Systems Division, Microsoft, in the demonstration which was a part of Bob Muglia's keynote speech. The video broadcasted live is available for viewing at, [1].

Dr. Sanjiva Weerawarana, CEO WSO2, adds more spice in this blog post, which identifies interoperability as the heart and soul of a web service middleware framework. And, WSO2 provides perhaps the most comprehensive line of projects that are superior in standard and free to use.

The actual pieces of of the larger application in play are found at WSO2 Oxygen Tank, and the MSDN.

[1] http://tinyurl.com/3vr5rn

Sunday, June 8, 2008

Introducing SCI-Flex...

SCI-Flex is my present top-priority involvement, which is my final year project at the University of Moratuwa. The project is worth 10 credits of my 150 credit requirement for the 4 years of my BSc. in Computer Science and Engineering, making it the largest single contributor to my degree program.

SCI-Flex is a project aimed at the Flexible Integration of Service Oriented Architecture and Complex Event Processing. The topic is relatively new in the world of SOA as well as in the world of CEP systems. And, the achievement is a distributed SOA system utilizing a CEP system in a fully-parallel and concurrent fashion.

I'm a part of a team of three (others are Harsha, and Madhumal) individuals who are taking part in this project which focuses on the development to a real world project, Apache Synapse making it possible for it to fully utilize the power of the popular open source CEP system, Esper.

In addition to the three members in our team, Paul Fremantle, VP of Apache Synapse and CTO of WSO2, will be coordinating the project being our principle mentor. Sanjaya Karunasena, Director of Services at WSO2 is also another mentor of this project.

We have so far been able to create a mediator interface that enables both XML and AXIOM based communication between Synapse and Esper. A project has been setup at Google Code as means of facilitating our effort.

Our aim is to create a empowered and enhanced implementation of Apache Synapse with the necessary improvements and additions to fully incorporate the true power of Esper.

More information of SCI-Flex is found on the SCI-Flex blog.

Saturday, May 31, 2008

UOM does great at GSoC

Google Summer of Code is an annual competition targeting open source software development. The event brings together some talented individuals from all over the world in an attempt to win $ 4500 as a reward for successful participation. Even though participation is rewarding, not all are allowed to take part. You must get selected.

Selection for participation in Google Summer of Code happens internally within various open source software development organizations and selected individuals are announced by Google. This year around 1125 students were offered funding and the University of Moratuwa has become the number one university in terms of participants.

Sri Lanka being a really small country in size, and population has not many individuals involved in software development as a whole. However, it has been discovered that Sri Lanka is the number one per capita contributor to open source as well, meaning that the percentage of developers working on open source development against all software developers is much higher than the rest of the world. And, Google Summer of Code has proved this fact.

Shown below is a pie-chart depicting the top 10 participating universities. More information is found on the Google Open Source Blog.

Sunday, April 13, 2008

REST on Axis2/C

Rest is a well known concept in the world of HTTP. However, it didn't fully make it through to Web Services until very recently. RESTful Web Services became popular with many benefits of REST against SOAP, which would drive SOA towards its ultimate potential.

However, it is a well known fact that REST and SOAP do things differently. Thus, the requirement of new implementations are needed. The WSDL 2.0 HTTP Extensions do provide some convenient implementation of REST for existing SOAP engines, but, RESTful Web Services demands more.

Axis2/C addresses these demands well. Now it has support for HTTP Headers (Standard and Custom), the entire range of valid HTTP Status Codes, and also has the capability to handle several content types, demanded by RESTful implementations.

At present, Axis2/C still lacks the support for much needed x-www-form-urlencoded, which I hope to add in the future. I hope that the experience of Axis2/C REST implementation is as RESTful as one would expect.