Planet WSO2

July 05, 2008

Sanjiva Weerawarana

Katie Poplin joins WSO2 as Director of Marketing

Its my pleasure to announce that Katie Poplin joined us recently as Director of Marketing. Katie comes to WSO2 most recently from XAware and prior to that she spent nearly four and a half years at JBoss and then RedHat.

Being an early JBoss person she gained a tremendous amount of experience in building a marketing machine that rocketted JBoss to the top. Now she's going to help WSO2 do the same .. and beat JBoss/Redhat, of course ;-).

We've been quietly building an incredible leadership team in WSO2. Combined with our incredible engineering team and of course our superb globally distributed operational model, we're building a company that's here for the long term and can be the winner of the marathon. We're now 75+ strong and growing .. slowly and steadily.

Katie's the key driver of probably the most important component for us at this stage: marketing. Yeah, we've gone for nearly 3 years now with no marketing!

Needless to say we're thrilled to have Katie on board and are looking forward to the exhilarating ride ahead!

by noreply@blogger.com (Sanjiva Weerawarana) at July 05, 2008 12:56 AM

Org chart with Open Office?

Does anyone know of a good way to do an org chart using Open Office? Impress really sucks compared to PowerPoint :(.

by noreply@blogger.com (Sanjiva Weerawarana) at July 05, 2008 12:54 AM

Kaushalye Kapuruge

Security concerns of composite systems

For last couple of days I managed to read a bit about composite systems and how useful the component based Software Engineering when it comes to the industry. The flexibility of coupling and decoupling components in a composite systems and reusability of using one component in a number of such systems makes them very attracted in numerous applications.
But at the same time we have to consider about the security concerns in that approach. These concerns can be divided into two categories.

1.Security concerns of the component
2.Security concerns when the component is inegrated and used

When forming or modifying composite systems by coupling and decoupling different components the integrator has to evaluate how the component is secured itself. In other words how securely the component is being built by the developer.
Also the integrator has to evaluate how the system is secured from the components. A set of secure components doesn’t always guarantee a secure system. The integrator has to determine for what extent the system can trust the component.
This brings us to the topic of Trust Management in component based software engineering.

by noreply@blogger.com (Malinda Kaushalye Kapuruge) at July 05, 2008 12:32 AM

July 04, 2008

Paul Fremantle

Open Registry Repository project

Following on from some previous blog posts such as:
I have set up a new Google Code project:
http://code.google.com/p/open-registry-repository/

This is a formal invitation to anyone who wants to get involved to join in. If you want to join, just send me email to pzfreo AT gmail DOT com, giving me your Google Account email, and I will add you.

by noreply@blogger.com (Paul Fremantle) at July 04, 2008 02:42 PM

Ayanthi Anandagoda

Software Industry Models

Deepal Jayasinghe has written this great post discussing how the open source model is deemed the future of software.

by noreply@blogger.com (Ayanthi Anandagoda) at July 04, 2008 08:53 AM

Deepal Jayasinghe

Why companies are reluctant to use Open source

One thing is obvious that the future of software is nothing but open source. Time has come to the point where ability of competing with open source products is not an easy task anymore (to whom ? ) . Knowing this fact most of the well know companies are either moving to open source , making their source open , contribute to open source projects , or acquire open source companies.

If we look at the todays market it is obvious that the open source has more than enough influence in the industry as well as it has gained the recognizing , there are the people who decide the future of the industry. To get the idea more clear let's have a look at some of the well know open source projects

  • Apache Web server – no doubt which is most famous Web server
  • Apache tomcat – Application server , we all know and we all use
  • Linux and Ubuntu – World famous open source operating systems
  • Eclipse – Widely used Java IDE
  • Open office – We all use open office
  • And many more ....


I know I can name dozens of products , but which is not the idea of this post.

There was a myth saying that “do not use open source , since no support” , do you think this is true anymore ? If so you think so than you are wrong. Now we can find companies doing open source consultants , services and supports , so no need to worry about the support. In addition to that if you look at the mailing list you can see the level of supports you get. For example if you look at the Axis2 and Synapse mailing list you will realize the difference, not only on those two list most of the Apache mailing list are so active and you can get very good support.

In addition to that from one of the mailing list I saw that someone is telling that the level of support he got is much more better than the support he gets from a commercial product. This is just an example for you to understand the trend.

Yes , I agree there is a mindset that some of the people have that the open source products are not good and not in the right quality. They always want to use the products from well known companies. The reason is they only trust the projects from those companies. IMO which is also a myth , the reason I am telling this is , if we look at an open source project which has a very good community. And all most all the time that community is consisting with very well know personality in a particular area. So the out come of that is obvious. Even the quality is good and always projects meets the standards , and might intemperate with other open source projects as well as commercial projects.

When we look at the level of support , quality of the products , number of features , meets of standards , there is no single reason not to use open source. Sometime you can use some of the projects without getting any support. Because you can find very comprehensive documentations about the projects , if you have any problem you can read and understand easily. In addition to that project like Apache Web server , Apache tomcat , Apache Axis2 are matured projects and number of people use the projects is countless.

Nothing to worry , no need to reluctant about open source. Use it , help it , contribute it and benefit from that.

Future is open source !!!!

by noreply@blogger.com (Deepal Jayasinghe) at July 04, 2008 04:35 AM

Samisa Abeysinghe

How to get Axis2/C and Rampart/C to work?

I see several queries where people are trying to get Apache Axis2/C and Apache Rampart/C to work together.

First of all, I do not see why this is so hard.

Second, they can use WSF/C It works out of the box, and saves time in terms of integration. 

by noreply@blogger.com (Sami) at July 04, 2008 03:21 AM

July 03, 2008

Paul Fremantle

Prabath

Demand OpenID...!!!






Demand OpenID support from websites you sign in to every day, using a simple bookmarklet.

More info available here...

by noreply@blogger.com (Prabath) at July 03, 2008 04:03 PM

Keith Chapman

Tough Competition Brings Out The Best

India vs Pakistan is big when it comes to anything. Cricket is no different to that and India vs Pakistan is one of the most hard fought contest you could ever find. India and Pakistan clashed in a crucial Asia Cup 2008 match yesterday. What a clinical chase it was by Pakistan who hunted down the mammoth 308 scored by India. Pakistan was under pressure as they had already lost to Sri Lanka and they needed a victory to keep there hopes alive of getting into the finals. Sri Lanka had already booked their place in the final.

On a placid batsman friendly wicket India posted 308. Chasing down anything over 300 is not easy and to do it under so much pressure takes a lot of courage. Whats more Pakistan were without their regular captain Shoaib Malik and it was Misbah-ul-Haq who had to fill his shoes. Misbah is new to the scene having played just 39 matches and he showed tremendous maturity in yesterday's Match.

What I want to highlight here is that Tough Competition Brings Out The Best. It can bring out the best of a person, company or even a Product. Thats exactly what happened in yesterday's match. Pakistan was under so much pressure and that brought the best out of Misbah-ul-Haq and Younis Khan.

The same can be said about software. Lets take the Enterprise Service Bus (ESB) for example. We did some performance testing on comparing the WSO2 Enterprise Service Bus (ESB) with some other Open Source and proprietary ESBs. If you take a look at Round 1 and Round 2 you would see that the WSO2 Enterprise Service Bus (ESB) was the fastest. Now take a look at the latest (Round 3) results too. The proprietary ESB which was slower in the previous rounds showed better performance. Competition brought the best out of it. I'm pretty sure that this result will encourage our ESB team to perform better next time. Tough competition is always good and it helps us improve our selves.

The same can be said about the WSO2 Registry. This has stiff competition from Mule Galaxy another open source registry. You can see a comparison of the WSO2 Registry and Mule Galaxy here which was done by Deepal.

by Keith Chapman (noreply@blogger.com) at July 03, 2008 03:15 PM

Chintana Wilamuna

Perl embedding woes

While developing server side components that enables providing Web services using Perl bumped into a brick wall. First the requirement is when a client request comes, need to extract the payload and pass it to WSF/C which acts as the underlying Web services engine. So WSF/C knows how ...

July 03, 2008 02:35 PM

Charitha Kankanamge

WSDL2Code UI tool - Easy and efficient code generation utility

If you are an Apache axis2 user, you may already familiar with WSDL2Java code generation tool. WSO2 WSAS is powered by Apache Axis2 and includes a rich set of features to interact with web services. WSDL2Code is a UI based tool integrated with WSO2 WSAS which allows users to generate code from a WSDL hosted in a remote server or a local file system.
Lets see how WSDL2Code tool makes web service developement effort much easier and productive.

Step 1
Download and Install WSO2 WSAS

Step 2
Start wso2wsas. Go to WSAS_HOME/bin and run wso2wsas.bat{sh}

Step 3
Go to http://localhost:9762
Welcome page of the WSAS console will be displayed. Click on WSDL2Code at the left navigation menu. You will be directed to the following screen.



You can see multiple code generation options in the above screen. These code gen options are similar to the command line options available in WSDL2java tool.

Step 4
Lets generate client stub against default version service using the above tool.
Enter 'http://localhost:9762/services/version?wsdl' in the -uri option available on the top of the page.
Select -uw option and click on 'Generate'
It will prompt to save the generated zip file (e.g:- 1.2151049949841125E12.zip). Save it in a directory in your local file system.

Step 5
Unzip the generated file (You will see src folder, build.xml and pom.xml in the extracted directory) and go to the directory where you extracted the zip file.
Assuming your IDE is eclipse, enter the following command to export the generated code in to eclipse and setting up WSAS libraries at once.

mvn eclipse:eclipse


(If you have not installed maven2, download it from here and add maven_home/bin to your PATH)

You will see 'BUILD SUCCESSFUL' message at the end of executing above command.

Step 6
Open eclipse and go to Window-->Preferences-->Java-->Build path-->Classpath variables
Create a new variable, M2_REPO and enter your maven2 repository path as the value. (maven2 repository is located at user home directory. e.g:- C:/Documents and Settings/Charitha/.m2/repository)
(Note that this step has to be done only once. If the M2_REPO variable is already defined, you can ignore this step)

Step 7
In eclipse, select File-->import-->Existing projects into workspace-->next
Browse root directory of the extracted zip file above. Click 'Finish'.
New project will be added to the workspace with an id like N10001-version. You should see that all the necessary WSAS libraries are added to the project.

Now the only remaining step is to write client to invoke version service as follows

public class VersionClient {

public static void main(String[] args)throws Exception {
VersionStub stub = new VersionStub();
System.out.println(stub.getVersion());
}

}

You may realize how WSO2 WSAS reduce the complexity of web service invocation with these kind of tools. Even if you are beginner to the world of SOA, WSO2 WSAS can be considered as the best paltform to get started with minimum effort.

by Charitha (noreply@blogger.com) at July 03, 2008 11:50 AM

Paul Fremantle

Open Source?

I'm very confused. I was listening to Dave Rosenberg on "why Apache License is bad for Open Source business", and I heard Dave say (talking about the add-ons that you get with Mule EE):
"Ours are not proprietary - ours are just not available in the community version. They are Open Source code: When you pay, and everything, or you become a subscriber, or whatever else, we don't actually keep anything closed." [About 6:30 into the podcast]
So the Mule EE extensions are "Open Source"?

Of course I'm not a paying Mule customer, so I don't get the special "paid for" Open Source, so its hard to evaluate. I can't actually find the Mule EE license agreement on the website, but there is an evaluation license agreement that makes interesting reading.

I think we - especially founders of Open Source companies - have a pretty clear idea of what Open Source is. If you don't, then take a read of the definition. A few really minor points spring to mind:
  • The license shall not require a royalty or other fee for such sale. This sentence from the Open Source definition seems to blow the whole "paid for Open Source" concept out of the water.
  • The license must not restrict anyone from making use of the program in a specific field of endeavor. I haven't seen the license that paying customers get, but the evaluation license says: "you shall not ... publicly disseminate performance information or analysis (including, without limitation, benchmarks) from any source relating to the Software. " Seems like a pretty solid field of endevour restriction.
  • The program must include source code, and must allow distribution in source code as well as compiled form. Guess what the evaluation license says: "You shall not... (c) modify, decompile, disassemble or otherwise reverse engineer the Software or attempt to reconstruct or discover any source code". [My bolding] Oh. So its open source, but I'm not allowed to look at the code? That's cool. I like that. I used to do Philosophy... it reminds me of that.
I hope the Mule customers are less confused about how Mule EE is Open Source than I am!

P.S. If anyone has the Mule Master Subscription Agreement, I'd love to see a copy.

by noreply@blogger.com (Paul Fremantle) at July 03, 2008 09:14 AM

Ruwan Linton

Open Source IDE for Apache Synapse

Yesterday one of my friends asked from me about IDE tool for Apache Synapse.

My answer for him was to have a look at WSO2 ESB

Well, from my point of view it is still far away from being a fully fledge IDE for Apache Synapse because it is lacking on debugging capabilities, but it has a considerable amount of integration for Synapse. I must say it fully supports development and most of the management tasks.

I am proud to be a core developer of both Synapse and WSO2 ESB and would like to introduce WSO2 ESB as a tool which is even better than just an IDE to Apache Synapse, it does have some more functionalities and more mediators, for example router mediator. You should download it and use it to see how effective that is.

While all the above is true I must also say that there are no tools for existing IDEs to integrate with to my knowledge. But...... I am in the process of writing a schema for the Synapse Configuration Language which can be used with most of the IDEs for development purposes, but again from the point of debugging we are still lacking.

by Ruwan Linton (noreply@blogger.com) at July 03, 2008 08:59 AM

Ayanthi Anandagoda

An article titled 'Open Source Competition - Mule Galaxy vs WSO2 Registry' by the Axis2 veteran Deepal Jayasinghe was published on Oxygen Tank library today.

by noreply@blogger.com (Ayanthi Anandagoda) at July 03, 2008 07:27 AM

Prabath

Web services security: Encryption with Rampart

This post discusses how to secure your web service with Rampart - through message encryption.

1. Setting up the environment

- Make sure you have installed Java and set your PATH env variable to C:\Program Files\Java\jdk1.5.0_06\bin [i.e : JAVA_HOME\bin]

- Download Axis2 1.4 - unzip and set the AXIS2_HOME env variable

- Download Rampart 1.4

- Copy [RAMPART_HOME]\lib\*.jar files to [AXIS2_HOME]\lib

- Copy [RAMPART_HOME]\modules\*.mar files to [AXIS2_HOME]\repository\modules

- Download Bouncy Castle jar and copy it to [AXIS2_HOME]\lib

- Download Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 5.0 from here and copy the two jar files from the extracted jce directory (local_policy.jar and US_export_policy.jar) to $JAVA_HOME/jre/lib/security.

- Add all the jars inside [AXIS2_HOME]\lib to your CLASSPATH [I have created a batch file for this - so you can skip this step if you want]

2. Create keystores for the service and the client

- Assume you have a folder c:\keystores and two subfolders c:\keystores\service and c:\keystores\client

- For the case of encrption client will use the public of the service and the service will use the public key of the client.

- For the case of decryption client will use it's private key and the service will use it's private key.

- So we need to have two key pairs for both the service and the client.

- Lets first create a key pair for the service and store them in a keystore.

\> cd c:\keystores\service
\> keytool -genkey -alias service -keyalg RSA -keysize 1024 -keypass servicekey -keystore service.jks -storepass servicestorekey

- This will create a keystore "service.jks" inside c:\keystores\service

- Password of the service.jks is "servicestorekey" [-storepass servicestorekey]

- Password of the private key of the service is "servicekey" [-keypass servicekey]

- Now lets create a key pair for the client and store them in a different keystore.

\> cd c:\keystores\client
\> keytool -genkey -alias client -keyalg RSA -keysize 1024 -keypass clientkey -keystore client.jks -storepass clientstorekey

- This will create a keystore "client.jks" inside c:\keystores\client

- Password of the client.jks is "clientstorekey" [-storepass clientstorekey]

- Password of the private key of the client is "clientkey" [-keypass clientkey]

- Now we are done creating two keystores with public/private key pairs for our service and the client

- But.. as I mentioned earlier client needs to know the public key of the service and the service needs to know the public key of the client.

- So we need to export the public key of the service from the service.jks and import it to the client.jks

\> cd c:\keystores\service
\> keytool -alias service -export -keystore service.jks -storepass servicestorekey -file servicepublickey.cer
\> cd c:\keystores\client
\> keytool -import -alias service -file ../service/servicepublickey.cer -keystore client.jks -storepass clientstorekey

- Now we need to export the public key of the client from the client.jks and import it to the service.jks

\> cd c:\keystores\client
\> keytool -alias client -export -keystore client.jks -storepass clientstorekey -file clientpublickey.cer
\> cd c:\keystores\service
\> keytool -import -alias client -file ../client/clientpublickey.cer -keystore service.jks -storepass servicestorekey

- Now we are done and we have two keystores.

1. c:\keystores\client\client.jks
2. c:\keystores\service\service.jks

3. Write and deploy the service

- Download and extract rampart-sample.zip from here.

- Copy c:\keystores\service\service.jks and [rampart-sample]\service\service.properties to [AXIS2_HOME]

- Build the service

[rampart-sample]\> classpath.bat
[rampart-sample]\> cd service
\> javac org/apache/rampart/samples/sample05/*.java
\> jar cvf SimpleService.aar *

- Copy the [rampart-sample]\service\SimpleService.aar to [AXIS2_HOME]\repository\services

- Run Axis2 simple server [[AXIS2_HOME]\bin\axis2server.bat]

- Type http://localhost:8080/axis2/services/ in the browser - you will simple SimpleService being deployed.

Now, lets highlight some of the Rampart related stuff we used while creating the service.

Service should ideally use the public key of the Client to encrypt the messages it sends and use it's own private key to decrypt messages it recieves.

By now we know both these keys are in service.jks keystore and we have copied it to the service classpath - where the service can pick the required keys.

All the configuration properties related to the service.jks are written to the property file [AXIS2_HOME]\service.properties

If you open the file service.properties, you'll see the following two properties there.


org.apache.ws.security.crypto.merlin.keystore.password=servicestorekey
org.apache.ws.security.crypto.merlin.file=service.jks


Here we specify the name of the keystore to use and the password to access the keystore. [this is the password we gave while we were creating the keystore].

Now the question is, how does the service pick this service.properties file.

That - we mention in the services.xml file [[rampart-sample]\service\META-INF\services.xml]


<parameter name="OutflowSecurity">
<action>
<items>Encrypt</items>
<encryptionuser>client</encryptionuser>
<encryptionpropfile>service.properties</encryptionpropfile>
</action>
</parameter>

If you can recall - we use the alias 'client' at the time we import the client public key to the service.jks. So the same name is used here for the encryptionuser.

The above discussion is related to encryption. How come Rampart knows the password of it's private key - to decrypt the receiving messages.


<parameter name="InflowSecurity">
<action>
<items>Encrypt</items>
<passwordCallbackClass>org.apache.rampart.samples.sample05.PWCBHandler</passwordCallbackClass>
<decryptionPropFile>service.properties</decryptionPropFile>
</action>
</parameter>

Here the Rampart uses a callback mechanism to retrieve the password - where the service author needs to implement the password callback class [[[rampart-sample]\service\org\apache\rampart\samples\sample05\PWCBHandler.java].

4. Write and run the client

- Build the Client

[rampart-sample]\> classpath.bat
[rampart-sample]\> cd client
\> javac org/apache/rampart/samples/sample05/*.java
\> java org/apache/rampart/samples/sample05/Client http://localhost:8080/axis2/services/SimpleService.SimpleServiceHttpEndpoint C:\axis2-1.4\repository

- C:\axis2-1.4\repository is for [AXIS2_HOME]\repository

- If everything is fine client should run with no issues.

- Configurations related to Rampart is similar to the way it was discussed previously for the service.

- You'll find client.jks and client.properties at [rampart-sample]\client - which is in the path of execution.

- You'll also find password callback class at the client end at [rampart-sample]\client\org\apache\rampart\samples\sample05\PWCBHandler.java

by noreply@blogger.com (Prabath) at July 03, 2008 06:30 AM

Lahiru Sandakith

UDDI Technical Committees close. Any alternatives ?

Why not.. have a look at WSO2 registry "WSO2 Registry enables you to store, catalog, index and manage your enterprise meta data in a simple, scalable and easy-to-use model. It is designed around community concepts such as tags, comments, ratings, users and roles." Also see the article (Open Source Competition - Mule ...

July 03, 2008 06:25 AM

Afkham Azeez

Deepal Jayasinghe

Seven Reasons to Move to Linux

Linux is a great solution for small business customers because it helps them avoid high licensing costs, viruses, vendor lock-in, hardware upgrades and unstable servers and desktops.

See the full story.

by noreply@blogger.com (Deepal Jayasinghe) at July 03, 2008 05:05 AM

Daniel Brum

ex-JBosser joins the family

Marketing is an interesting profession, and Open Source marketing is even more unique. It's very difficult to find talent that has sound marketing credentials and experience, and the added bonus of having solid Open Source experience as well.

Back when I was @ JBoss, I had the privilege to meet and work with a very talented group of marketers, led by Joe McGonnel. One of those highly talented individual that worked in the team was Katie Poplin who was instrumental in crafting JBoss' Professional Open Source message. Luckily for us @ WSO2, Katie has decided to come work for one of the leading open source SOA vendors.

Katie is a bit of "foodie" and loves cooking up a storm in her home in Atlanta, GA. where she will be based when not catching a flight someplace.

Welcome to the team Katie!

by noreply@blogger.com (Daniel Brum) at July 03, 2008 01:55 AM

Keith Chapman

Using TCP Monitor to Debug Web Service Calls

TCP Monitor is a great tool when it comes to debugging Web Service calls. It acts as a proxy between your client and the actual service, hence it helps you to have a look at the wire message and figure out whats going on. It comes as an IDEA and Eclipse plugin as well.

Here is how you configure the TCP/IP Monitor Plugin in IDEA.

1. Goto File->Settings->Plugins
2. Search for TCP and you will find Axis TCP Monitor Plugin
3. Right click->Download and Install
4. Restart IDEA
5. You will see TCPMON appear on the right panel. You could also access it at Window->Tool Windows->TCPMON
6. Set Listen port # to 8080, Target HostName (The place where the service is at, if its running locally localhost), Target Port # (the port which the service is running on)
7. Click add
8. Configure your client to send the request to the TCP monitor instead of the actual service (for e.g localhost:8080) and the TCP monitor will forward it to the actual service. You will see the message on the TCP monitor.

Here is how you configure the TCP/IP Monitor Plugin in Eclipse.

1. Goto window->show view->other
2. Search for TCP and you will find TCP/IP Monitor
3. Right click->properties
4. click add
5. Set local monitoring port to 8080, host name (The place where the service is at, if its running locally localhost), port (the port which the service is running on)
6. Configure your client to send the request to the TCP monitor instead of the actual service (for e.g localhost:8080) and the TCP monitor will forward it to the actual service. You will see the message on the TCP monitor.

by Keith Chapman (noreply@blogger.com) at July 03, 2008 01:23 AM

July 02, 2008

Krishantha Samaraweera

SOA registry competition

Deepal Jayasinghe has written this blog entry about Open source competition - Mule Galaxy vs WSO2 Registry. He has published an article of comparing Glaxy vs WSO2 Registry. It is worth to read his article before you starting with any open source SOA registry.

by Krishantha (noreply@blogger.com) at July 02, 2008 11:02 PM

Deepal Jayasinghe

Open source competition - Mule Galaxy vs WSO2 Registry

Competition is everywhere , it does not matter whether commercial or open source different people tries to compete with others. Not only in different domains , in same domain as well. If we look at in Apache there are two well know Web services frameworks (Axis2 and CXF) , and there are two Enterprises Services Buses (ESB) (Synapse and ServiceMix) . Those are just simple examples for the competition we have in same domain. As I mentioned in one my previous blog , open source is a social activity. Therefore better the quality of the product , then thats good for the end users. So in my view having competition is very good even among the open source vendors.

WSO2 released its Registry/Repository product in recently , in the mean time Mule source released their Registry/Repository product in few days back. So yesterday I download Mule galaxy and play with and went through its feature page. Then I realized that both the implementation are doing all most the same thing , almost the same manner.

So I started to write a blog yesterday doing a comparison between WSO2 registry and Mule Galaxy , unfortunately it become a too long , so rather than writing everything in my blog I wrote and publish an article. Have a look at the features of the two products and see which one suit for you.

Read more about that .

by noreply@blogger.com (Deepal Jayasinghe) at July 02, 2008 11:36 AM

Web future and Semantic Web

Semantic Web is around in the field for few years and most of the well know universities are doing research on the filed of semantic Web. Among them universities like MIT , UMBC have done very good progress as well. Though it is around for that many years I do not see that much adaption in the industry , one reason could be it is still in the research level.

When I was doing some reading on the semantic web I found a few very useful documents.

  • A presentation by Prof Tim Berners-Lee .
  • The Semantic Web provides a common framework that allows data to be shared and reused across application, enterprise, and community boundaries. You can think of the Semantic Web as an efficient way to represent data on the World Wide Web, or as a database that is globally linked, in a manner understandable by machines, to the content of documents on the Web. Semantic technologies represent meaning using ontologies and provide reasoning through the relationships, rules, logic, and conditions represented in those ontologies. Read more
  • Some serious computer scientists, although cautious about the promise of the Semantic Web, are ultimately optimistic that it will be everything developers are hoping for -- an online source for all of the knowledge humanity has created in science, business and the arts Read more

by noreply@blogger.com (Deepal Jayasinghe) at July 02, 2008 10:00 AM

Kaushalye Kapuruge

Cross roads

For the past two or three years, I've been working on SOA (Services Oriented Architecture) systems. To be more specific web services. In the same time I was lucky enough to study/implement certain web services security specifications, by polishing my knowledge in Computer Security.
As I start my higher studies in Swinburne University of Technology, now I'm expanding my knowledge towards adaptive systems. I'm now hopping along this new axis with the help of Swinburne Research in Melbourne.
I'm still just enjoying the sceneries in this path and occasionally glance through the track I used to travel earlier.
Would I be able to divert the current path and form a new junction with the former?
Or is it too early sketch the map?

by noreply@blogger.com (Malinda Kaushalye Kapuruge) at July 02, 2008 06:03 AM

Krishantha Samaraweera

Using WSO2 Registry as URL-based repository for WSO2 Web Services Application Server (WSAS)

Here I discusses how to configure WSAS to use WSO2 registry as URL repository. Versions above WSAS 2.0 support URL-based repositories. It is simple to configure WSAS to use WSO2 Registry as repository. Let's follow step by step guide given below to do the configuration.

Step 1: Deploy WSAS binary distribution. See WSO2 WSAS Installation Guide for details.

Step 2: Deploy wso2registry.war file in a preferred servelet container it is matter of copying wso2registry.war file into your servelet container. See WSO2 Registry user guide for details. WSO2 Registry 1.1 can be downloaded from here.

Step 3: Go to http://localhost:8080/wso2registry. Note that port should be changed according to yours.

Step 4:
Login to the system using user name “admin” and password “admin.

Step 5:
Then go to add collection and create a collection with the name “wsas-repo” , and select Media Type as “application/vnd.wso2.wsas”. you will notice it creates a collection name "wsas-repo",there will be three sub collection called “services” , “modules” and “conf” inside the wsas-repo.

At the moment please ignore the “conf” directory.

Step 6:
Next you need to upload WSAS administration modules into “wsas-repo”. To do that go to modules collection and upload following modules and module.list file by using “Add resource” option. These modules are shipped with WSAS binary distribution and can be found under the $WSO2WSAS_HOME/repository/module
(in my case /home/krishantha/wsas/wso2wsas-2.2.1/repository/modules on Linux).


Step 7:
Same as the above step, now you need to upload WSAS default services in to “services” collections. To do that, go to “service” collection and upload following service files. These services are shipped with WSAS and can be found under the $WSO2WSAS_HOME/repository/services.

Step 8: Now you need to configure the registry URL repository in WSAS. Locate the server.xml file under the $WSO2WSAS_HOME/conf directory, and locate the following entry in the file.
<RepositoryLocation>${wso2wsas.home}/repository/<RepositoryLocation>
Change the "RepositoryLocation" entry to "http://localhost:8080/wso2registry/resources/wsas-repo".

Step 9:
Restart WSAS server pointing to repository so all the available services under “services” collection will be deployed.

step 10: Check your WSO2 WSAS instance using the URL https://localhost:9443. Login as administrator with user name “admin” and password “admin”

Step 11:
Now navigate though services link in WSAS admin console (Services > echo > Try Web Service) . And try out the echo sample.

FinallyIf you have done the above steps correctly then you will be able to invoke all the WSO2 WSAS default services without any problem.You can find nice tutorial explaining WSAS URL-based repositories from here.

by Krishantha (noreply@blogger.com) at July 02, 2008 06:48 AM

Open Source registry for SOA governance.

WSO2 has announced their latest release of WSO2 Registry 1.1. Comparing to registry 1.0 release, the new release has lots of new features and performance improvements. So it has more enhanced support for SOA governance.

New features:

  • Performance improvements
  • Change from auto-versioning collections to explicit checkpointing
  • Lifecycle/Aspect support
  • Much improved WSDL handling, validation, and WS-I validation
  • Support for transaction handling
  • Generic typed associations
  • API improvements, including streamlined Filter/Handler plugins
WSO2 registry comes with a web based user interface, which is really user friendly and easy to use by technical or non technical people. The UI is based on web 2.0 look and feel. Newly implemented pagination support is cool feature which serve the users more faster. WSO2 ESB and WSO2 Mashup Server have embedded WSO2 Registry, so the registry is already used in production environments.

by Krishantha (noreply@blogger.com) at July 02, 2008 05:32 AM

July 01, 2008

Paul Fremantle

Keith Chapman

Web Services Cannot Get Any Simpler

If someone was to ask "what is the easiest method to write a Web Service?" my definite answer would be the WSO2 Mashup Server. The WSO2 Mashup Server helps you write services (or Mashups which ever you want to call it) using JavaScript with the E4X extension. Will blog more about E4X and its ease of use in the coming days (Stay tuned for that). Writing Services using the Mashup Server can be done in a matter of minutes. Here is the simplest Web Service you could write,

function sayHello() {
return "Hello";
}

Just drop this bit of script as a file into a magic folder (Into your mashups folder found in the scripts directory. Each user is given his own mashups folder depicted by his username) with the .js extension (example hello.js) and your service will get deployed. Lets assume that hello.js was dropped into scripts/keith. This would make the service available at http://localhost:7762/services/keith/hello. Browse to the above location and see what happens. The Mashup Server will show you a tryit page. This is a page thats generated by the Mashup Server on the fly so that you can test your web service out.

You can even access the sayHello service by pointing your browser to http://localhost:7762/services/keith/hello/sayHello. This would invoke the sayHello function in a RESTfull manner.

One can also use the Mashup Server without downloading it. Check out mooshup.com which is a Mashup Server that we've hosted for you. Try creating your own mashups there (You will have to use the UI to create services there cause you do not have direct access to the file system). You can even create a mashup on your local distribution and share it to mooshup. You can have a look at this simple hello service at https://mooshup.com/mashup.jsp?path=/mashups/keith/hello. BTW the Mashup Server is released under the Apache License. So you can download and give it a try your self too. There are no restrictions.

This is the simplest Web Service one could write. The Mashup Server has capabilities to do much more for you. Please refer the Mashup Server project page for more details.

Stay tuned for more tips and tricks about the WSO2 Mashup Server and also Apache Axis2 (The engine behind the Mashup Server)

by Keith Chapman (noreply@blogger.com) at July 01, 2008 10:10 PM

Samisa Abeysinghe

Deepal Jayasinghe

Open source development and IntelliJ IDEA

When I start to learn Java first thing I use was notepad , I wrote the program in the notepad compile and run. Actually that helped a lot to learn most of the code quality there , however one of the issue was I it took more time to do a simple task. The problem become worse when we want to debug something.

After that I started to use Jbuilder when I move to that I realized the power of using an IDE to develop Java applications. It saves most of our time on importing and debugging. While I was using Jbuilder I started to use IntelliJ IDEA (Thank Ajith for pointing to that), then I realized the power of that tool. In my personal view it is the best IDE I have ever used. And I should say I have addicted to IDEA , if it is Java development the only IDE I like is IntelliJ IDEA.

Luckily I am an open source software developer so I can get an IDEA license free , so for me IDE is free. And I should not forget to say thanks to jetbrains for giving us free license.

There are a number of reasons I like IDEA over other IDEs.

  • First thing it saves most of my times , time is very important for me so a minute is also important for me. I do not want to waste my time unnecessary setting up projects and adding libraries. When it comes to IDEA it is great.
  • Debugging – I have never seen an IDE which has that much of support for debugging. Code debugging is very important for me. It has a number of options we can use to debug the code. That helps me in two ways , first it saves my time , second it provide more than what I want to do my job.
  • Support for multiple modules – Since I am working on a projects (Axis2) which has a number of modules so it helps me a lot. (I know some other IDE has this feature)
  • Starting Applications severs and remote debugging– When I develop web applications this feature help me a lot.
  • Code formatting – It format the file according to the type , for example Java files according to the Java template , Xml as XML document
  • Code analyzing – No matter how good we write code , there may be some problems and issues with the code we write. IDEA code analyzer help me to find out the issues with the code we write, cyclic dependencies , code duplicate and etc.

I know there are much more useful features than I have mentioned here , but above are the most frequent features I use in my day to day life.

One last thing to note here is that the idea of this entry is not to market any IDE , but to tell my personal opinion about that.



Few other blogs about their IDEs

by noreply@blogger.com (Deepal Jayasinghe) at July 01, 2008 06:04 AM

Charitha Kankanamge

How to deploy Apache Axis2 on Resin and JBoss application servers

Axis2 can be deployed very easily on most of the application servers. Lets see how we can deploy axis2 on JBoss and Resin application servers.

Deploying Axis2 on Resin application server

1. Download and install Resin from here

2. Download Axi2.war

3. Copy axis2.war to RESIN_HOME/webapps (i.e:- D:\resin-3.1.6\webapps)

4. Start Resin server
Go to RESIN_HOME/lib and enter the following command to start the server
java -jar resin.jar start

5. Open a browser and issue http://localhost:8080/axis2
Axis2 welcome page will be displayed.

6. Verify the status of installation. Click on 'Validate' link. You should see the following 'Axis2 Happiness' page.



Deploying Axis2 on JBoss

1. Download JBoss
(I used JBoss 4.2.2 GA but the same procedure can be applied for any version)

2. Download Axi2.war

3. Copy axis2.war to JBOSS_HOME/server/default/deploy

4. Start JBoss (Just execute JBOSS_HOME/bin/run.bat or run.sh)

5. Jboss will explode and deploy Axis2 when starting the server. Exploded directory can be found at JBOSS_HOME/server/default/tmp/deploy/tmpXXXXaxis2-exp.war (i.e:- D:\jboss-4.2.2.GA\server\default\tmp\deploy\tmp46684axis2-exp.war)

6. Open a browser and access http://localhost:8080/axis2
Axis2 welcome page will be displayed.

6. Check whether the installation is successful. Click on 'Validate' link. You should see the following 'Axis2 Happiness' page.

by Charitha (noreply@blogger.com) at July 01, 2008 01:31 AM

June 30, 2008

Deepal Jayasinghe

Paul Fremantle

Simple scenarios for the ESB

Tomorrow I will be doing a joint webinar with Asankha Perera and Ruwan Linton about the WSO2 ESB. We will be showing how to handle some standard scenarios:
  • Converting between legacy file formats and message-based systems
  • XML transformation and message augmentation
  • The "pushme-pullyou": using polling techniques to link database applications with live systems
The aim of this webinar is to give attendees an insight into how to handle some common scenarios with the ESB and also give a headstart on your own projects.

If you missed the introductory webinar I ran two weeks ago, that is being repeated on Thursday 3rd July. Apologies in advance to US folks heading off on their holidays!

You can sign up to both events here.

by noreply@blogger.com (Paul Fremantle) at June 30, 2008 09:31 AM

Eran Chinthaka

Our boat over-turned ... It was close


This should have been a continuation of my "Place to visit in Seattle" series, but this was much more than that.

Couple of my friends working together in the same block within MSR, decided to go on canoeing in Lake Washington. We hired canoes from UW recreation center. Me and David Koop were on the same canoe. I was bit reluctant to take my camera, but I really wanted to take a panorama shot of 520 bridge, (one of??) the longest floating bridges.

We went towards the bridge and crossed the shipping lines to go underneath the bridge. We had to face waves coming up about 3-4 feets high, but all of us managed to get through. Then we went to Arboretum and had some rest.

Since it seemed much safer, I removed my life jacket also.

Then we head back to UW rental center. Both me and David leaned towards the same side of the boat, at the same time, and that over-turned the boat. I had no option but to jumb in to the deep water, and I thought I had the life jacket, but it was not. Some how I came up and my head then hit against the boat, as David was trying to get the boat to proper side. (I think I went down once again). Some how we figured we can not turn the boat and we swimmed about 10-15 meters, pulling the boat also to the shore. At that point only I took out my camera.

My camera is still not working but we were saved (I think it was too close). I dried it, but some water seemed to be leaked in to the lenses.

These some of the last photos I took from my camera.

Panoramic view of 520 bridge

View of Mt. Rainier from with 520 bridge

View of Mt. Rainier from Lake Washington


Me and David in the unlucky canoe


The canoing gang

by noreply@blogger.com (Eran Chinthaka) at June 30, 2008 06:46 AM

Deepal Jayasinghe

Real open source development

Open source software development can be considered as a social activity , because whoever develop the product give away free, therefore the society is benefited from that. In my opinion the definition of open source software development is a controversial topic , and different people have different definitions for it as well. However I see open source software development as a community driven activity. All the decisions are taken by the community , and all the development also done by the community. A community can be consists of individual, organization or companies , irrespective of who they are when it come to open source there is no hierarchy as such. Everyone in the same level , in one stage everyone become architectures , in one stage everyone become developers , and it some other stage everyone become tech writers and so on.

Now let's look at actors of open source projects , to get the idea clear let me take Apache Axis2 as a sample projects. We can classified actors or contributors into following category.

  • Designers – whoever helped to design the project
  • Developers – People who developed the projects
  • Testers – Users who test the product and give feedback
  • Users – Whoever use the project , product become useless if they can not find users who use the projects
  • Trainers and consultants – People who conduct training on the product , who spread the word about the project and teach others how to use the projects
  • Tech writer – People who writes articles , book , papers and etc.. , telling how to use the projects

Most of the above category are interrelated , and helped to bring the project forward. And all those people are need in order to improve the project as successful project. Sometimes single person belong to one or all of the above category.

Just having the community around and keeping the source open does not mean the project is open source. The community should allow different people to carry out different activities. In other word if some one want to do training on Axis2 then that should be possible irrespective of whether he is a developer or not.

And the community should not be driven by an individual or a single company , it should be a community. It is essential to listen to other people and other companies. That is the key factor behind success of an open source project. Not like a proprietary project , open source project may have opinions from a number of different people , sometime all those are leaders in particular area. So thats help a lot to improve the quality and outcome of the product.

When I consider about the open source license I really like the Apache License because it gives the full freedom to the end user to do whatever he wants with the code. He can get the code modified as they wish and do whatever they want with that, may be release as open source or sell.


by noreply@blogger.com (Deepal Jayasinghe) at June 30, 2008 05:07 AM

Prabath

Ajith Ranabahu

Sri Lankan Conflict makes into American TV Drama!

I'm a fan of crime drama and a show I regularly watch (many thanks to the DVR:)) is Law and Order : Criminal Intent. The episode aired in USA network at 9.00pm today (06/29/2008), named Assassin is centered on an American educated female leader figure who undergoes house arrest in Sri Lanka and then becomes target of an assasin who is after her life! [spoiler warning - the story ends with a twist and the victim becomes the suspect] Here are some of the places where Sri Lanka is mentioned.

1. Det.Logan mentions that 'She's being in house arrest in Sri Lanka ... ' at the crime scene.
2. The captain says 'Sri Lankan hard liners, Tamil tiger terrorists, in short there's a lot of people after her life'
3. The Hudson University president says in his introduction 'A young student from Sri Lanka'

I understand its fiction and all made up. But my concern is that you guys could've done a better job in getting the facts straight. Looks to me this character was made up by mixing features from other female political figures in the Asian region such as Benazir Bhutto who studied in US and wears a dress with a scarf and Aung San Suu Kyi whose being under house arrest for a while and also won the Nobel peace prize. See my reasoning below.

I. The name of the center character is 'Bella Kahn'. That's probably a very alien name for a Sri Lankan.
II. She is educated in US. There are many foreign educated political figures but very few are American educated.
III. There is no record of a female leader figure being on house arrest during the recent past in Sri Lanka AFAIK (Apart from Sirimavo being kept under house arrest in the early 80's). Non of such people were named for the Nobel peace prize (except for Dr.Mohan Munasinghe who is part of IPCC and shared the peace praze with Al Gore.)
IV. The lady wears something that looks like a north Indian/Pakistani dress with a scarf!
V. Her family has a trust fund of millions of dollars which is not normal for even the wealthiest of Sri Lankans.


by noreply@blogger.com (Aj) at June 30, 2008 02:35 AM

Charitha Kankanamge

How to avoid "Unable to generate EPR for transport" error in Axis2

"Unable to generate EPR for transport: http" is a FAQ in Axis2 mailing list. You may have experienced this when invoking a service using generated stubs.

Solution:

It's really simple. When creating the instance of stub, pass the actual service end point (epr) to the constructor as follows.

YourserviceStub stub = new YourserviceStub("http://<IP>:<PORT>/axis2/services/YourService")


Ideally when u generate a stub for a service it will pick up the Endpoint reference from the WSDL. So just instantiating stub with YourserviceStub stub = new YourserviceStub() could send the request to the address defined in the WSDL. In case you get the "Unable to generate EPR for transport: http" error, give a try with the above as well.

by Charitha (noreply@blogger.com) at June 30, 2008 01:16 AM

June 29, 2008

Daniel Brum

Viva España!

It's been 44 years since they won the Euro Cup.



Wish I was in Madrid or Barcelona tonight...

by noreply@blogger.com (Daniel Brum) at June 29, 2008 10:19 PM

Ayanthi Anandagoda

Where did the Computer Go? Computing in the Cloud.

The article is now available on Oxygen Tank here.
Yes, the first 5 words of the title I borrowed from the marketing slogan Apple used to sell its iMac G5. Like how little Evelyn says whenever she does something that she believes I would not approve of, I'd say '..but that's Ok!'

by noreply@blogger.com (Ayanthi Anandagoda) at June 29, 2008 07:58 PM

Samisa Abeysinghe

Bad Smells and Refactoring

Software needs to change. And in the process, the source code tends to drift away form original design. And bad smells would gradually emerge.

Large class is one of the bad smells. And one of the examples that always come to my mind when talking about this bad smell is the MessageContext class. Right now, this class has 4094 lines of code. And there are so many instance variables and so many methods. And because of this, given an instance of this class, it is so hard to understand the state of that instance.

The bad smells tell you that something is going wrong with the source code. And to ensure that the code lives longer, we need to clean up the code to ensure that the bad smells go away. The good news is that, we can always fix the bad smells through refactoring techniques.

Code refactoring is the process of changing a computer program's code to make it amenable to change, improve its readability, or simplify its structure, while preserving its existing functionality. - Wikipedia

There is one key factor to note in the above definition. That is, refactoring is about fixing internal structure while preserves existing functionality. To preserve internal structure, you need to have appropriate tests in place, lots of them, to ensure that the system before and after the refactoring to be identical in terms of functionality.

One of the problems with open source projects is that, more often than not, all developers want to do attractive and sexy tasks. Hence, less appealing tasks such as documentation and testing get pushed to the corners and hardly taken back on to center stage. Hence, refactoring is always tough, because the testing factor is missing or not good enough to guarantee preserving functionality. This thread from Axis2 list provides ample evidence on resistance to change, siting difficulties in guaranteeing if all stuff that used to work, would work after a change as expected. The change proposed in this mail tread is not a refactoring, but the same problems would apply. However, if there were enough tests, such a concern would not arise.

Software needs change. Bad smells will arise. Refactoring can help fix them. Testing must be in place to guarantee functional consistency. Testing should not be an afterthought, it is a pre-requisite.

by noreply@blogger.com (Sami) at June 29, 2008 04:40 PM

June 28, 2008

Ruwan Linton

Context Sensitive Grammar (CSG) in XML

I have started looking at the XML Schema because I wanted to design a Context Sensitive Grammar for Apache Synapse using XML Schema.

It seems an interesting work and I found this a bit old but very helpful article on CSG in XML Schema on w3.org

If you ever need any information with regard to CSG and using XML Schema to achieve context sensitive rules you may refer to this interesting guide;

http://www.w3.org/2000/04/26-csrules.html

The other fact is that you can await for an XSD for Synapse Configuration Language

by Ruwan Linton (noreply@blogger.com) at June 28, 2008 09:48 PM

The fastest open source ESB downloads

Open source ESBs out there, please beware;

If any one ask for the fastest open source Enterprise Service Bus (ESB), I would say it is Apache Synapse / WSO2 ESB because of this study on the ESB performance.

I have noticed an interesting graph on the download stats. On the week after this article you can see an awesome peak and you can observe it below.

WSO2 ESB uses Apache Synapse engine for the mediation and hence all that performance is from Apache Synapse, and it seems developers got this point and they have started evaluating it.

I would like to bring an another point into your attraction, which is about the user list of Synapse and you can see the trend clearly shows the growth of the project.

by Ruwan Linton (noreply@blogger.com) at June 28, 2008 09:29 PM

Keith Chapman

Learn About The Fastest Enterprise Service Bus (ESB) Around

You may have already seen how fast the WSO2 Enterprise service Bus (ESB) is. Want to learn how to use this ultra fast, light-weight and versatile Enterprise Service Bus (ESB) powered by the Apache Synapse ESB?

Well we got an answer for you. Join our free webinar series this July. There will be four webinars in total ranging from an "Introduction to the WSO2 ESB" to more advanced scenarios such as "Using the WSO2 ESB and FIX - supporting Financial messaging".

FIX support is the latest addition to the WSO2 ESB which is available in the recently released 1.7 version. This series of webinars will be presented by Paul Fremantle, CTO at WSO2 together with Asankha Perera ( ESB Architect), Asanka Abeysinghe (Architect) and Ruwan Linton (Senior Software Engineer).

by Keith Chapman (noreply@blogger.com) at June 28, 2008 06:14 PM

University of Moratuwa ranked first at GSoC 2008

Its really encouraging to see how much open source has cought up in Sri Lanka. A lot if the credit in this regard should go to visionaries like Dr. Sanjiva Weerawarana who initiated the Lanka Software Foundation (LSF) and later on went on to founder WSO2.

A living testimony to the development of open source in Sri Lanka is GSoC 2008. Where Sri Lanka was ranked 9th in the list of GSoc Applications and GSoc Accepted Applications. Not surprisingly a staggering number of applications from Sri Lanka came from the University of Moratuwa which is where I was privileged to have had my Higher education at. The University of Moratuwa ranked 1st in both the number of Applicants and number of accepted applications.

by Keith Chapman (noreply@blogger.com) at June 28, 2008 03:02 PM

Paul among the Best


Paul has been listed as one of Infoworld's top 25 CTOs. This is a huge achievement for Paul as well as WSO2 (whom Paul is a co-founder of).

Take a look at what Paul himself has to say about this achievement. I agree with Paul a 100% about what he has to say about the culture at WSO2, "I strongly believe - and long may it continue - that WSO2 doesn't suffer from "Drive By Architecture" syndrome". WSO2 is flat structured, even though there are co-founders, CTOs, Product Managers and so on when it comes to a technical debate each and every member at WSO2 has a role to play. Their thoughts and ideas are taken seriously and is not looked down on.

The team spirit we have at WSO2 is tremendous and it's a pleasure to be a part of WSO2.

by Keith Chapman (noreply@blogger.com) at June 28, 2008 03:01 PM

Enterprise Service Bus (ESB) Performance Revealed

It was recently that WSO2 released the 1.7 version of its Enterprise Service Bus (ESB). This release is based on Apache Synapse 1.2 which in turn is built on Apache Axis2 1.4.

There are many things that come in to play when deciding on which ESB to go with. Some of them are Performance, Licensing, Usability, Stability... etc. WSO2 has always been at the forefront when it comes to benchmarking ESB performance. You can find previous performance comparisons here and here. We've always been open as to how we conduct them and has always tried to get help from the relevant projects on how to configure them best.

Asankha the product manager of the WSO2 Enterprise Service Bus (ESB) recently published performance results based on its 1.7 release. The WSO2 Enterprise Service Bus (ESB) was compared with other leading implementations - both open source and proprietary. This comparison was done against a leading proprietary ESB, the proprietary version of an Open Source ESB, Apache Service Mix 3.2.1 and Mule Community Edition 2.0.1 (Mule CE). We cannot disclose the names of these proprietary ESB's cause they have a clause in there License saying that "Thou shalt not publish any performance results against us".

The results were pretty impressive. The WSO2 ESB outperformed all open source alternatives and it also outperformed the proprietary version of an Open Source ESB. Now what does that mean? The WSO2 ESB is the fastest open source ESB around (And thats with no specific performance tuning, Expect better results in the time to come.). The WSO2 Enterprise Service Bus (ESB) also displayed excellent stability on all scenarios.

Another interesting observation is that 1% of all requests sent to Mule CE 2.0.1 failing. Now who would want to use such a product in a production environment?

by Keith Chapman (noreply@blogger.com) at June 28, 2008 03:01 PM

Training session on Apache Axis2

A couple of weeks ago we were fortunate to attend a training on Axis2 which was conducted by Deepal. There is no better person to teach Axis2 than Deepal himself cause he has been involved with this project since its inception. Deepal is one of the six core Axis2 authors. The others are Srinath, Eran Chinthaka, Ajith, Chathura and Jaliya. There have been many others who've help Axis2 once the project started going, but these were the guys involved in building the core of it. Not to forget Dr. Sanjiva for all the advice and guidance provided.

The guys who knew Axis2 to some extent were able to make to most of this training, as we were able to question certain decisions made at that time.

Its also nice to note that except for Deepal. the rest are already reading for there PhDs. Deepal will be joining that list next month when he will head off for higher studies. Its also a interesting that the core Axis2 team has been associated with WSO2.

Deepal has also published his first book on Axis2 "Quickstart Apache Axis2" which is now available in the stores.

The Axis2 training was a great success so now its time to learn some policy. Again there will be no better person than Sanka himself, the person behind Apache Neethi (The policy engine used for Apache Axis2 as well as CXF). Once next week is done all of WSO2 will be policy experts too.

All of these are a part on continuous improvement to us.

by Keith Chapman (noreply@blogger.com) at June 28, 2008 03:00 PM

Is Mule Really Open Source?

Most Open Source Projects (Not the namesake open source projects) are released under an OSI approved license. The open source definition of OSI states that "Open source doesn't just mean access to the source code. The distribution terms of open-source software must comply with the following criteria:". It goes on to describe 10 items under this. Item #6 states that "The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research."

The Mule Enterprise Edition (Mule EE) violates item #6 which is described above. The License of Mule EE states that you cannot publicly publish performance results against it. Whats more if you go to the mule site you won't find the source code of Mule EE, rather it asks you weather you are "Looking for the open source Mule Community Edition?".

What baffles me is that Dave Rosenberg the CEO Mule states that "The Enterprise version of Mule is open source". Take a look at Dave's comment on Sanjiva's blog. What a joke.

Now Mule CE is an open source ESB. But would anybody care to use it in production? Look what we found out about Mule CE during some performance testing. 1% of all requests sent to Mule CE 2.0.1 fails. Now thats how you sell Mule EE keeping Mule CE Open Source.

by Keith Chapman (noreply@blogger.com) at June 28, 2008 03:00 PM

Increasing memory of JUnit TestCases in Maven2

The WSO2 Mashup Server uses Maven2 as its build system. Since of late we were facing an issue where our integration tests were failing regularly with the exception "Caused by: java.lang.OutOfMemoryError: Java heap space". This is the JIRA that tracked this issue . During the integration test phase we start up an instance of the mashup server and deploy some test scripts. We them bombard the server with around 110 request (within a second or two) hence it ran out of memory before the tests completed.

Increasing memory given to maven using MAVEN_OPTS did not solve the problem. As this setting just increases the memory given to the build process and not the individual test cases. The solution was to use the following configuration in the surefire plugin.


<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<forkMode>pertest</forkMode>
<argLine>-Xms256m -Xmx512m</argLine> <testFailureIgnore>false</testFailureIgnore>
<skip>false</skip>
<includes>
<include>**/*IntegrationTestSuite.java</include>
</includes>
</configuration>
</plugin>


The pom for the integration test can be found here. This fixed the heap space issue and now we have our test cases running on the nightly build. You can see the status of our nightly builds at http://builder.wso2.org/browse/MASHUP-NIGHTLY

by Keith Chapman (noreply@blogger.com) at June 28, 2008 02:59 PM

Samisa Abeysinghe

SOA Governance

What is SOA Governance?

Service-Oriented Architecture (SOA) governance is a concept used for activities related to exercising control over services in an SOA. SOA governance can be seen as a subset of IT governance which itself is a subset of corporate governance. - Wikipedia

And who are the leaders in the game?

IBM, HP and Software AG - Gartner 2007

by noreply@blogger.com (Sami) at June 28, 2008 09:43 AM

Ajith Ranabahu

Mootools is cool and I'm moving to scribfire

After some time I've decided to move to scribefire (an awesome little plugin for firefox) so that I can manage my blogger account and my own websites blog as well. Scribefire integration is amazingly smooth, works super well with both blogger and Drupal.

So here is the note of the day :) mootools, an amzingly well written javascript framework. I've been doing some serious javascript stuff (and I do admit that GWT rocks and YUI! is a cool set of widgets. I've worked with both drilling down to a considerable level. And sorry the stuff I'm working on is a kind of 'hush hush' at the moment ;)) and I'm amazed to see how well structured mootools is. Its definitely something that a serious javascript developer should check out.

This also brings us to the interesting case of framework lock-in. It's not a vendor anymore (since stuff like GWT/YUI/mootools are completely free and comes with no strings attached) but the framework. We've seen this happen with the Java Web application space where frameworks like Struts and JSF(MyFaces) were initially well received but later the interest died down. Why ? Yes struts makes the initial development easy and lets you keep things neatly seperated but you are bound to struts for eternity ! If there is anything that struts cannot do - well , either you can't do it in your webapp or you'll have to find a really ugly hack to work around it, possibly violating most of the best practices established for struts. This becomes a serious issue when your app grows beyond the capabilities of the framework. You've come too long (so that rewriting is not an option) but you cannot go beyond the framework.[Subsitute struts with any other framework of your choice and the story will be the same].

The javascript space is becoming the next framework playground and things are getting muddy already.From the top of my head I can name at least half a dozen (dojo,YUI!,mootools, GWT, script.aculo.us,openrico, sproutcore etc. In fact I see that I did name more than six. I did write them in one go - honest :)). I'm not sure whether we'll come to the same conclusion as the Java Webapp space because Javascript is primarily client side and the limitations imposed by the framework are primarily on the devlopment resources and have small or no consequences with the performance or scalability of a Webapp.

Let us wait and see :)

by noreply@blogger.com (Aj) at June 28, 2008 06:27 AM

June 27, 2008

Afkham Azeez

Engine Oil Bible

I've been using Mobil fully synthetic engine oil for the past 6 months, and had covered a bit over 4000 km since the last oil change. When I went for the routine vehicle checkup at Kleenpark (an autoshop in Sri Lanka), I was informed that I need to change the oil since it's been 6 months since the last change, even though synthetic oils can be used for at least 10,000 km. In Sri Lanka, synthetic oils cost about 3 times the price of mineral oils. So the service advisor asked me to use a mineral oil. I was a bit concerned, but the service advisor assured that there will be no issues in switching to mineral oil. However, I was not completely satisfied with his explanations but decided to try mineral oil.

Since then, I have been having a lots of questions regarding engine oils. There are so many things to consider when selecting an engine oil for your ride such as;

1. Synthetic vs. mineral oils
2. Desired viscosity
3. Oil change intervals - max mileage and/or time between oil changes
4. Engine oil additives - are they good or bad?
5. How to check the oil level & what are the adverse effects of overfilling
6. Can engine oils made for cars be used in bikes (This was a very important point for me since I ride a bike during the week and use the car during weekends, and was thinking about using the leftover oil after filling up the car in my bike ;) )

So, while trying to get answers for the above, I found this great resource, Engine Oil Bible. This is a must-read for any vehicle owner.

by Afkham Azeez (noreply@blogger.com) at June 27, 2008 09:57 PM

Sanjiva Weerawarana

Great intro to OpenID

Oshani Seneviratne, an ex-WSO2 intern, currently a Ph.D. student at MIT working with Tim Berners-Lee, has pointed to Prabath's great intro to OpenID.

Very cool talk indeed; if you want to learn what OpenID is this is a great set of slides to walk through.

by noreply@blogger.com (Sanjiva Weerawarana) at June 27, 2008 07:43 PM

Daniel Brum

iPhone Scam!

Today, Rogers announced it's pricing for the long awaited iPhone release in Canada. Basically, they screw over Canadians.

Two questions:

1- why has it taken us longer then all the other countries which already have an iPhone to get one?
2 - why is Rogers trying to scam the Canadian public?

Make no doubt about it - this is a total Scam. The price plan is ridiculous, and ensures that most everyone will run over the plan limits and be hammered with extra charges. This is totally contrary to any other price plan I have seen anywhere in the world. It's a sick joke. I was going to get an iPhone, but now forget it. I will upgrade my blackberry to the new Bold instead. Cheaper, and actually, nicer looking. Might not be as cool as an iPhone, but ultimately, cost and function matter more then cool.

I would rather support RIM anyhow since they are Canadian ;-)

Updates:
- Check this site our to voice your opinion on this directly to Rogers
- cost comparison of Rogers iPhone vs. USA/UK

by noreply@blogger.com (Daniel Brum) at June 27, 2008 06:18 PM

Twitter - can you please fix this?

If you use Twitter, you've seen this a lot lately:



The dreaded "To many sessions" error - synonymous with this very useful service! Kind of like Windows and the Blue Screen of Death. I love twitter, I use it to follow friends, analysts, and local Toronto based twitters for random stuff.

So, it's great news that Twitter has landed some new financing, which should be put towards stabilizing the platform ASAP! The bad rep. twitter is getting is silly - they could and should avoid this easily with some good, scalable architecture decisions. If they don't fix this soon, there are alternatives out there and twitter will end up a footnote on Wikipedia.

This may be Twitter's last chance to get this right...the tech. crowd is not known for hanging around with flailing technology, no matter how cool it is.

fyi - I am using Twhirl for the desktop, really nice tool so far.

by noreply@blogger.com (Daniel Brum) at June 27, 2008 04:44 PM

Deepal Jayasinghe

Moving Apache ODE into maven

These days I am using Apache ODE (open source BPEL implementation) heavily to provide the ability to deploy BPEL services in Axis2. As I mentioned previously in my blog I got what I want working fine. However having that is not enough I need to write a build system for the component I wrote. When doing so one of the major challenge I faced was getting maven2 working with Apache ODE. I agree they have all the artifacts in the maven repo , but adding other dependencies is a challenge.


One of the issue behind this is ODE does not uses build system like maven, so the projects depends on Apache ODE have to a high amount of work to get the work done. Not only that since ODE is not having build system they can not give us the nightly builds too , so we can not add the project dependencies to ODE snapshots.

Considering all those I think , it would be good Apache ODE can move into maven2. If they want I can definitely