Friday, May 30, 2008

QuickStart Axis2 – My first book on Axis2 is now released !!!

This is to inform with great joy that I was able to complete my book on Apache Axis2. The book is now published and available on most of the online book stores . It took more than 18 months to complete the book. I tried my best to cover most of the commonly used features as well as basis of Axis2 . I believe that will help to overc ome and clarify most of the unknown areas of Axis2 as well as to improve your knowledge on Axis2 . I have added a number of code samples to make the reader's job easier , I hope that will help you to understand the content very easy manner.

In this very happy moment I should not forgot to mention some of the key forces behind Apache Axis2 project as well as my book . First Dr. Sanjiva who helped me a lot and provides necessary guidelines to be active in Apache Axis

2 as well as , giving me a chance to work at WSO2 . Next Hemapani (Srinath) who is one of my very good friend as well as who motivated me, to move into open source field . And all of the members Axis2 team including Dims , Paul , Glen , Chinthka , Ajith , Jaliya , Chathura and rest of the team , without their major contribution we can not make Axis2 a successful project. In addition to Axis2 team Suran , Charitha and Devaka for their major contribution on reviewing the chapters and improving them , finally I would like to thank Packt publishers for giving me this wonderful opportunity to write a book with them.

You can find more information about the book from here.

Wednesday, May 28, 2008

Eclipse WSDL and WSI validator -outside eclipse

I think it is perfect to say that eclipse WSDL and WSI validator is a very cool tool as well as very useful too. However the problem is it does not work out side the eclipse , I followed all the steps mentioned in the wiki , but that did not work for me. Then what I did was download the source code and modified that by myself. Which was very hard because while doing that I updated the wsdl4j version as well , as I can see there are using very old version of wsdl4j , somehow I updated that to the latest version. The most hard part was to find the schema that the tool uses. Finally I managed to get all of them and able to validate a given WSDL for WSDL validation as well as WS-I validation.

Friday, May 23, 2008

WSO2 Web Services Framework for PHP 1.3.0 Released

WSO2 Web Services Framework for PHP (WSO2 WSF/PHP), is an open source,
enterprise grade, PHP extension for providing and consuming Web Services
in PHP. WSO2 WSF/PHP is a complete solution for building and deploying
Web services and is the only PHP extension with the widest range of
WS-* specification implementations.

It's Key features include, secure services and clients with WS-Security
support, binary attachments with MTOM, automatic WSDL generation (code
first model), WSDL mode for both services and clients (contract first
model) and interoperability with .NET and J2EE.

You can download the release from:

Project home page:

Key Features

1. Client API to consume Web services
* WSMessage class to handle message level options
* WSClient class with both one way and two way service invocation
* Option of using functions in place of object oriented API with

2. Service API to provide Web services
* WSMessage class to handle message level options
* WSService class with support for both one way and two way
* Option of using functions in place of object oriented API with

3. Attachments with MTOM
* Binary optimized
* Non-optimized (Base64 binary)

4. WS-Addressing
* Version 1.0
* Submission

5. WS-Security
* UsernameToken and Timestamp
* Encryption
* Signing
* WS-SecurityPolicy based configuration

6. WS-Reliable Messaging
* Single channel two way reliable messaging

7. WSDL Generation for Server Side
* WSDL generation based on annotations and function signatures,
and serving on ?wsdl or ?wsdl2 requests

8. WSDL mode support for both client and server side
* Write services and client based on a given WSDL
* WS-Addressing and WS-SecurityPolicy is supported in WSDL mode

9. REST Support
* Expose a single service script both as SOAP and REST service

10. Provide easy to use classes for common services
* Consume some well known services such as Yahoo search and Flickr
and Amazon services using predefined classes

11. wsdl2php.php script. This script can generate PHP classes for
services and clients for a given WSDL to be used with WSDL Mode .

Major Changes Since Last Release
1. Schema constructs support improvements for WSDL mode including
SimpleType restricitons, ComplexType restrictions/extensions and
2. WSDL Import support.
3. Support for WSDLs with multiple bindings, API is provided to pick
the preferred bindings.
4. wsdl2php code generation improvements to support the improvements
done in WSDL mode.
5. HTTP Basic Authentication Support added.
6. SOAP Messages with Attachments support (SWA) added.
7. Custom Security token support added.

Reporting Problems
Issues can be reported using the public JIRA available at:

Thursday, May 15, 2008

What is a SOA Registry ?

SOA and Web services are becoming the most popular key words in nowadays software industry. As a results of that there are so many other technologies and components build around SOA. Among them ESB and Registry can be considered as top of the list. Different people have different definitions for them and there are a number of different implementations out there as well. It is a very hard questions to answer whether the ESB is more important or the Registry when it comes to SOA.

When we considering about SOA registry , which is of course not a new concepts. UDDI is one of the good example for a traditional way of dealing with SOA registry. I can not tell the exact reason but UDDI does not become that popular , that is why people try to find new alternatives for UDDI (based on SOAP , REST etc.. ). So if someone going to implement a new SOA registry then I think he has to address following items,

  • Service publishing

    • The implementations should be provide a way to publish services as well as service related metadata such as WSDL , XML Schema and etc..

  • Service discovery

    • The implementations should provide a way to discover the service. Say for a example I need to find GPS service , then from the registry I should be able to find out one or more end point addresses for that service. And invoke the service.

  • Federation

    • Different implementations should be able to communicate with each other and share , validate data and so on. This is also a key feature in SOA governors.

So no matter how and who is going to implement a SOA registry , they need to address above. IMO without having support for at least first two items of above we can not claim what we have is a SOA Registry.

In addition to those SOA governors is also key factor we need to consider when we implement SOA registry. Governors is more about management side of the services. Service lifecycle , different kind of policy , ensuring various standard like WS-I , and then validating artifact like WSDL , Schema and Policy is also part of SOA governors.

In any given registry we can find two stages deployment time as well as runtime. At the deployment we will be using the registry to store various artifacts , however at the run time we will use the registry to authenticate , authorize , ensuring policy etc...

Tuesday, May 13, 2008

WSO Registry and SOA

In the upcoming release of WSO2 registry we are going to have a number of SOA related features. I spent considerable amount of time and get the eclipse WSDL validator working out the eclipse as well. So we are going to have that in the next registry version. Among the some of the SOA features.

- WSDL validation
- Schema validation
- WSDL import (when there are imports , registry automatically import them into the registry and add as resources)
- Schema imports (same as WSDL imports)
-Extracting WSDL mata-data (such as targetnamespace , documentation and etc)

Monday, May 12, 2008

Top 10's: Universities for Google Summer of Code 2008

WOW it is nice to see that the university which I graduated (University of Moratuwa) is in the top of the list as well as the university I am planing to go for grad school (Georgia Tech) in the sixth place.

See more details Link

Sunday, May 11, 2008

In the Shadow of the Moon

While I was traveling to the USA , I got a chance to watch a very interesting documentary program. I would say that is the best documentary program I have ever watched. Which is none other than documentary on historical moon visits. If you get a chance try to watch the "In the Shadow of the Moon"

Useful links.

Wednesday, May 07, 2008

Apache Axis2/C 1.4.0 Released

Apache Axis2/C Team is pleased to announce the release of Apache Axis2/C version 1.4.0

You can download this release from

Key Features

1. Support for one-way messaging (In-Only) and request response messaging (In-Out)

2. Client APIs: Easy to use service client API and more advanced operation client API

3. Transports supported: HTTP
* Inbuilt HTTP server called simple axis server
* Apache2 httpd module called mod_axis2 for server side
* IIS module for server side
* Client transport with ability to enable SSL support
* Basic HTTP Authentication
* Digest HTTP Authentication
* libcurl based client transport

4. Transports supported: HTTPS
* HTTPS Transport implementation using OpenSSL

5. Transports supported: TCP
* for both client and server side

6. Transport proxy support (HTTP)
* Proxy Authentication (Basic/Digest)

7. Module architecture, mechanism to extend the SOAP processing model.

8. WS-Addressing support, both the submission (2004/08) and final (2005/08) versions,
implemented as a module.

9. MTOM/XOP support.

10. AXIOM, an XML object model optimized for SOAP 1.1/1.2 messages;
This has complete XML infoset support.

11. XML parser abstraction
* Libxml2 wrapper
* Guththila pull parser support

12. Both directory based and archive based deployment models for deploying
services and modules

13. Description hierarchy providing access to static data of
Axis2/C runtime (configuration, service groups, services, operations and messages)

14. Context hierarchy providing access to dynamic
Axis2/C runtime information (corresponding contexts to map to each level of
description hierarchy)

15. Message receiver abstraction
* Inbuilt raw XML message receiver

16. Code generation tool for stub and skeleton generation for a given
WSDL (based on Java tool)
* Axis Data Binding (ADB) support

17. REST support (more POX like) using HTTP POST, GET, HEAD, PUT and DELETE
* Support for RESTful Services

18. Comprehensive documentation
* Axis2/C Manual

19. WS-Policy implementation called Neethi/C, with WS-SecurityPolicy extension

Major Changes Since Last Release.

1. Fixed library version numbering
2. Made Guththila as default XML parser
3. Many bug fixes.
4. Memory leak fixes

We welcome your early feedback on this implementation.

Thanks for your interest in Axis2/C

-- Apache Axis2/C Team --

Friday, May 02, 2008

Apache Axis2 1.4 Released


Just over 8 months since the 1.3 release, we are very proud to announce the release of Apache Axis2 version 1.4.

Downloads are available at:

The Maven2 main repository has the latest jars as well.

Apache Axis2 is a complete re-design and re-write of the widely used Apache Axis engine and is a more efficient, more
scalable, more modular and more XML-oriented Web services framework. It is carefully designed to support the easy
addition of plug-in "modules" that extend its functionality for features such as security and reliability.

Modules supporting WS-Security/Secure-Conversation (Apache Rampart), WS-Trust (Apache Rahas), WS-Reliable Messaging
(Apache Sandesha) and WS-Eventing (Apache Savan) will be available soon after the Apache Axis2 1.4 release. Please see
these projects' own sites for further information.

Major Changes Since 1.3:
- Support for JAXWS and JSR 181 Annotations (See 7 samples in the binary distribution)
- Experimental CORBA Support
- Fixed tons of small and not-so-small bugs (See list in release-notes.html in the binary distribution)

Known Issues and Limitations in 1.4 Release:
- Need to use wsimport/wsgen tools in JDK1.6 for JAXWS code generation.
- Please see JIRA for the current status of bugs

We welcome any and all feedback at:
~ (please include "[axis2]" in the subject, please subscribe first)
~ (please include "[axis2]" in the subject, please subscribe first)

Thank you for your interest in Apache Axis2!