

Eight Indians made Forbes magazine’s latest list of the top 100 billionaires, and two – energy tycoon Mukesh Ambani and steel mogul Lakshmi Mittal – sit in the top 5. Mr. Ambani is now the fourth richest person in the world, and the richest person in the Asia-Pacific region.
WSO2 WSF/C team is pleased to announce the M1 release of WSO2 WSF Admin for Apache Axis2/C, WSO2 WSF/C and WSO2 WSF/C++.
WSO2 WSF Admin is a runtime management GUI for Apache Axis2/C, WSO2 Web Service Framework for C and WSO2 Web Services Framework for C++ that is powered by the WSO2 Carbon frontend, a Java based web UI. The management console backend is a collection of Axis2/C services and modules that are deployed within the framework itself. The communication between the frontend and backend is based on SOAP and REST.
Key Features
1. Configure Apache Axis2/C, WSO2 WSF/C and WSO2 WSF/C++ through a Web UI.
2. Ability to view service group, service, operation and module meta data.
3. Configure and apply/remove security on a service dynamically.
4. Policy Editor.
5. Monitor service usage statistics.
You can download this release from http://wso2.org/projects/wsf/c
http://wso2.org/projects/wsf/cppWith the availability of WSO2 WSF Admin, now users can manage their C and C++ Web Services Deployed in Axis2/C, WSF/C or WSF/C++ using the GUI interface of Carbon. At present, WSF Admin is at first milestone and supports following set of features.
Service Listing and Module Listing
Security Configuration
Policy Editing
Service Statistics
Following are some of the screen shots of New WSF Admin Console with WSF/C++.
Engage Statistics Module to a service using the admin console and view the service usage statistics.
Configure Security
View and Edit Service Policies
There are lots of other functionality in-addition to the once I have shown above. WSF Admin is a set set of web services and modules implemented using WSO2 Web Services Framework, plus a Customized Carbon Instance. The Admin Console works by using web services interactions to the WSF/C Back End where the C Admin Services deployed. WSF Admin is also a demonstration of not only the interoperability of WSO2 products ( Between java based Carbon Platform and C/C++ based WSF Products ) but also the flexibility of WSO2 Carbon Platform.
WSF Admin milestone 1 release does not have the persistence and hence the configuration changes you make will not be preserved once you shutdown your server. The next release of WSF Admin will be having the persistence capability.
It was the best of times, it was the worst of times, it was the age of wisdom, it was the age of foolishness, it was the epoch of belief, it was the epoch of incredulity, it was the season of Light, it was the season of Darkness, it was the spring of hope, it was the winter of despair, we had everything before us, we had nothing before us, we were all going direct to heaven, we were all going direct the other way - in short, the period was so far like the present period, that some of its noisiest authorities insisted on its being received, for good or for evil, in the superlative degree of comparison only.
To everything there is a season, anda time to every purpose under heaven:A time to be born, anda time to die;a time to plant, anda time to pluck upthat which is planted;A time to kill, anda time to heal;a time to break down, anda time to build up;A time to weep, anda time to laugh;a time to mourn, anda time to dance;A time to cast away stones, anda time to gather stones together;a time to embrace, anda time to refrain from embracing;A time to get, anda time to lose;a time to keep, anda time to cast away;A time to rend, anda time to sow;a time to keep silence, anda time to speak;A time to love, anda time to hate;a time of war; anda time of peace.From The Holy Bible (King James Version)Attributed to King SolomonEcclesiastes 3:1-8






mysql -u root -p
create database regdb;
GRANT ALL ON regdb.* TO regadmin@localhost IDENTIFIED BY "regadmin";
use regdb;
source mysql.sql
<currentDBConfig>mysql-db</currentDBConfig>
<dbConfig name="mysql-db">
<url>jdbc:mysql://localhost:3306/regdb</url>
<userName>regadmin</userName>
<password>regadmin</password>
<driverName>com.mysql.jdbc.Driver</driverName>
<maxActive>80</maxActive>
<maxWait>6000</maxWait>
<minIdle>5</minIdle>
</dbConfig>
<Database>
<URL>jdbc:mysql://localhost:3306/regdb</URL>
<UserName>regadmin</UserName>
<Password>regadmin</Password>
<Dialect>mysql</Dialect>
<Driver>com.mysql.jdbc.Driver</Driver>
</Database>
With the impressive stability of Windows 7 (and also due to the nature of my current work), I decided to get back to Windows (once again!!). The question I had in my mind was mostly the availability compatible windows versions of some tools I used to use in Ubuntu . But after sometime I found alternatives and this blog lists some of the tools I found so far, in case if anyone is interested.
TexMaker (thanks Ajith Ranabahu for introducing me to this) is a great tool which works both on Ubuntu and Windows. Here is the installation guide to get miktex and texmaker in your system.
I don’t think I missed open office when I moved to Windows. Microsoft Office suite is the best set of tools to edit documents. But in case if you want to get the open-office documents converted to word format, either convert them using open-office itself or use google docs. I use google docs extensively, so my document conversion was not that hard.
This is the hardest thing for me in Windows, when I moved. All the commands are changed and didn’t have the powerful set of commands I had in to linux. But GnuWin32 packages is the solution. Install at least the core-utils. Download the package and extract it to a local folder. Then add the bin folder to your PATH variable and you are good to go.
What else? Pidgin.
Use puttygen to convert your key to ppk file. Then use pageant as the key-agent. Instructions are here.
Also if you can get hold of SSH Secure Shell for Workstations, its a nice tool to access and transfer files to remote linux boxes.
Use tortoise svn. May be you might not need this if your IDE itself is supporting svn internally.
Use dia to draw diagrams and GnuPlot for graphs.
I noticed that notepad and wordpad are not simple anymore. I started using notepad++
Google Chrome (browser), VLC (media player), skype (VoIP), 7-zip (zipping), Intellij IDEA or Eclipse (development tools), JDK (java development), Adobe pdf viewer have their windows counterparts available to download.
If I miss anything, please let me know and I’m happy to update this list for everyone’s benefit.

| Player | Runs | Balls | 4s | 6s | SR | Team | Opposition | Ground | Match Date | Scorecard | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SR Tendulkar | 200* | 147 | 25 | 3 | 136.05 | India | v South Africa | Gwalior | 24 Feb 2010 | ODI # 2962 | |
| CK Coventry | 194* | 156 | 16 | 7 | 124.35 | Zimbabwe | v Bangladesh | Bulawayo | 16 Aug 2009 | ODI # 2873 | |
| Saeed Anwar | 194 | 146 | 22 | 5 | 132.87 | Pakistan | v India | Chennai | 21 May 1997 | ODI # 1209 | |
| IVA Richards | 189* | 170 | 21 | 5 | 111.17 | West Indies | v England | Manchester | 31 May 1984 | ODI # 264 | |
| ST Jayasuriya | 189 | 161 | 21 | 4 | 117.39 | Sri Lanka | v India | Sharjah | 29 Oct 2000 | ODI # 1652 | |
| G Kirsten | 188* | 159 | 13 | 4 | 118.23 | South Africa | v U.A.E. | Rawalpindi | 16 Feb 1996 | ODI # 1049 | |
| SR Tendulkar | 186* | 150 | 20 | 3 | 124.00 | India | v New Zealand | Hyderabad (Deccan) | 8 Nov 1999 | ODI # 1523 | |
| MS Dhoni | 183* | 145 | 15 | 10 | 126.20 | India | v Sri Lanka | Jaipur | 31 Oct 2005 | ODI # 2290 | |
| SC Ganguly | 183 | 158 | 17 | 7 | 115.82 | India | v Sri Lanka | Taunton | 26 May 1999 | ODI # 1463 | |
| ML Hayden | 181* | 166 | 11 | 10 | 109.03 | Australia | v New Zealand | Hamilton | 20 Feb 2007 | ODI # 2527 | |
| IVA Richards | 181 | 125 | 16 | 7 | 144.80 | West Indies | v Sri Lanka | Karachi | 13 Oct 1987 | ODI # 45 |

A French judge has issued a national arrest warrant for US cyclist Floyd Landis in connection with a case of data hacking at a doping laboratory. After discovering the hacking, the lab has upgraded security to protect its computer systems from intruders. Read the full story here.
Today we announced our second cloud service: Cloud Identity. See: http://wso2.com/cloud/services/identity and you can use it right now at http://identity.cloud.wso2.com/.
(We have a principle of not announcing vaporware!)
This is basically our WSO2 Identity Server product converted into a multi-tenant identity management system and hosted on Amazon EC2 for scalable and reliable deployment. Basically, within about 5 minutes you can register your domain, add your users and then have your own OpenID, Cardspace, SAML 2.0, WS-Trust STS for authentication and XACML and (very soon) OAuth for authorization. Translated to English, that means you can get a single place to manage your users and give them access to Drupal, Liferay, Google Apps and a whole lot more. We will soon be adding LDAP to this list as well, which means you can even tie Windows, Unix login to it as well as other services like SVN.
Nothing like giving it a try to see how it works!
[UPDATE] Here are some additional references for you to get started with:
Happy identitying!








Client: “[Indian outsourcer] says he can do this site for $200. Why should I go with you?”
Me: “Has he done any work for you in the past?”
Client: Yeah! He did [Other Site] for me.
[I load the other site]
Me: “The entire site’s done in Flash.”
Client: “Huh?”
Me: “It’s a site for iPhone users.”
Client: “I know. Cool, huh?”
Me: “It’s a site for iPhone users… none of whom can see it…”
Client: “Huh?”
Me: “The iPhone doesn’t support Flash.”
Client: “Well it looks fine on my PC!”
Me: “Do you have an iPhone?”
Client: “No.”
Me: “…”
Client: “Tell you what, I’m just gonna go with [Indian outsourcer]. He seems like he knows what he’s doing and I’m not sure you do.”
Me: “Have fun.”


Tomorrow's products and services have to be designed not just for mere consumption, but "designed for meaning": they must yield lasting, shared, meaningful economic gains — or else. Or else we continue our voyage into a no-future future. That's the big picture that tomorrow's radical innovators must redraw. I think Google Buzz is actually really, really cool — it's just not yet a meaningful service. It lives in the shadow of yesterday's big picture, instead of redrawing it. Redrawing the big picture of prosperity, by going from Great to Good: that's today's fundamental challenge.
An ESB can be deployed as a front end for various services with a very high load passing through it. The traffic passing through it may be of different priorities and can have different load charasterisitcs. Also in some situations load of different types of messages can vary dramatically over time.
The goal is to serve high priority traffic when there are resources available in the system. The serving of different priority messages should be independent as much as possible. For example an ESB can be bombarded with very high volume of low priority traffic. Even in this case ESB should obey its contract to serve high priority traffic.
Usually a person deploying an ESB expects a certain guarantee of message deliverance from the ESB. ESB should be able to honor that.
Here is a possible scenario with a high volume of traffic.
Lets assume ESB is configured to serve two types of messages with different priorities. Message type m1 has the priority p1 and message type m2 has priority p2. p1 is about ten times the priority of p2. In a very high volume traffic scenario the services can afford to loose some amount of m2 messages. But it cannot afford to loose any of m1 messages.
In normal operation mode, volume of m2 is about twice as m1. But in some situations m1 can be higher and m2 can be low.
The expectation is to serve the m1 traffic no matter what the volume of m2 traffic is.
The problem is very interesting. I'll explain how we have solved this problem with next major release of WSO2 ESB (3.0) in the next post.









RPCServiceClient dynamicClient = new RPCServiceClient(null, new URL("http://localhost:9763/services/HelloService?wsdl"),
new QName("http://www.wso2.org/types", "HelloService"), "HelloServiceHttpSoap12Endpoint");
dynamicClient.engageModule("rampart");
Now we should update the client side policy with the rampart-config programatically.
RampartConfig rc = new RampartConfig();
rc.setUserCertAlias("wso2carbon");
rc.setEncryptionUser("wso2carbon");
rc.setPwCbClass(SecureClient.class.getName());
CryptoConfig sigCryptoConfig = new CryptoConfig();
sigCryptoConfig.setProvider("org.apache.ws.security.components.crypto.Merlin");
Properties prop1 = new Properties();
prop1.put("org.apache.ws.security.crypto.merlin.keystore.type", "JKS");
prop1.put("org.apache.ws.security.crypto.merlin.file", "/home/charitha/products/wsas/wso2wsas-3.1.3/resources/security/wso2carbon.jks");
prop1.put("org.apache.ws.security.crypto.merlin.keystore.password", "wso2carbon");
sigCryptoConfig.setProp(prop1);
CryptoConfig encrCryptoConfig = new CryptoConfig();
encrCryptoConfig.setProvider("org.apache.ws.security.components.crypto.Merlin");
Properties prop2 = new Properties();
prop2.put("org.apache.ws.security.crypto.merlin.keystore.type", "JKS");
prop2.put("org.apache.ws.security.crypto.merlin.file", "/home/charitha/products/wsas/wso2wsas-3.1.3/resources/security/wso2carbon.jks");
prop2.put("org.apache.ws.security.crypto.merlin.keystore.password", "wso2carbon");
encrCryptoConfig.setProp(prop2);
rc.setSigCryptoConfig(sigCryptoConfig);
rc.setEncrCryptoConfig(encrCryptoConfig);
Now, we can invoke the service using dynamicClient by passing the parameters as an object array and return types as an class array.
Map endPoints = dynamicClient.getAxisService().getEndpoints();
AxisBinding axisBinding = ((AxisEndpoint) endPoints.values().iterator().next()).getBinding();
Policy policy = axisBinding.getEffectivePolicy();
policy.addAssertion(rc);
axisBinding.applyPolicy(policy);
Object[] returnArray = dynamicClient.invokeBlocking(new QName("http://www.wso2.org/types", "greet"),
new Object[]{"hello"}, new Class[]{String.class});
System.out.println(returnArray[0]);
public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
WSPasswordCallback pwcb = (WSPasswordCallback) callbacks[0];
String id = pwcb.getIdentifer();
if ("wso2carbon".equals(id)) {
pwcb.setPassword("wso2carbon");
}

These days our folks at WSO2 are working hard for the next major release of Carbon, which is Carbon 3.0.0. It will be released end of March with lot of new features to enrich our SOA middleware platform. During last few days, I was working on this new concept of separating Registry to suite our platform story.
All our Carbon based products internally uses WSO2 Registry as a repository to persist data. For example, in WSAS all data about services, modules etc are stored in the Registry to make sure the same state is maintained even after restarting the server. And also, user is provided with a Registry browser and allowed to store whatever data he needs. This is model used in all our previous releases of Carbon.
In the upcoming 3.0.0 release, this Registry is separated out into three parts to perfectly suite our platform story.
By default, all these 3 registries reside in the same physical registry instance. Local data repository is always an embedded registry instance. User is allowed to configure Config and Governance registry locations through the registry.xml file. In other words, those can be pointed to remote registry instances.
This feature is already completed in Carbon 3.0.0 and will be coming out in March. This will be a great advantage for the users who are developing complete SOA solutions.

Shahani (my wife) is blogging! She has started with a great piece on what’s going on in Sri Lanka.
Does your organization have support for SOA Governance? Governance has become one of the major issues for companies, enterprises and organizations moving to SOA. Why? Newton's Third Law states that for every action there is an equal and opposite reaction.
The move to SOA has been an effort to de-centralize IT and allow departments more independence and freedom. However, there needs to be control as well as freedom - Governance provides this without removing the benefits of the empowered approach.
Of course, adding Governance to your SOA may seem like a daunting task: the analyst reports, complex and expensive products, together with concerns over vendor lock-in can all make this seem like too much to take on for many businesses. What is the solution? Governance "in the cloud". With WSO2's Cloud-based Governance approach, your company can have its own Governance Registry hosted securely as part of WSO2's cloud services. With all the features of WSO2's Governance Registry but with zero setup cost you can start managing your SOA instantly.
To find out more about WSO2's Cloud Governance approach join Paul Fremantle, CTO of WSO2, in the upcoming Webinar: "SOA Governance in the Cloud".
public class SignIn extends SeleneseTestCase {
public void setUp() throws Exception {
setUp("https://localhost:9443/carbon/", "*chrome");
}
public void testSignInValdation() throws Exception {
BufferedReader in = null;
InputStreamReader inputStream = null;
inputStream = new InputStreamReader(new FileInputStream("C:" + File.separator + "signin.txt"));
in = new BufferedReader(inputStream);
String line = null;
while ((line = in.readLine()) != null) {
System.out.println("password: " + line);
selenium.open("/carbon/admin/login.jsp");
selenium.waitForPageToLoad("30000");
selenium.type("txtUserName", "yumani");
selenium.type("txtPassword", line);
selenium.click("//input[@value='Sign-in']");
selenium.waitForPageToLoad("30000");
}
}
}

The February 8th issue of the Newsweek (International) magazine has an absolutely great article titled “End of the Rogue”. The article is about how the concept of a “rogue state” (apparently created the cold war days) is no longer valid and how the US needs to get past it.
Not surprisingly many comments on the online edition don’t agree that the US approach needs to change. Living in Sri Lanka, however, and having observed the wrath of the US (and UK and EU) for the way the anti-LTTE war was conducted and ended, I can see what must be going on in “rogue” countries!
The most interesting quote I found in the article is this:
We don’t have the right to think other people should think like us.
If we all could live by that the entire world would be a better place!

"The reason people are giving so much money to Haiti is simple: They are hearing about it. They are seeing and reading about the catastrophe over and over again on the front page, in prime time, and in viral web appeals 24 hours a day, seven days a week. This is not a singular occurrence: Every so often, for brief moments, disasters trigger the deluge of media for humanity as is enjoyed every day by the likes of Budweiser, BMW, and the iPod. If it had to be paid for, the media that is currently publicizing Haiti would cost many tens, if not hundreds, of millions of dollars. But alas, we would never let humanitarian organizations spend that kind of money on advertising, despite the fact that it might bring in many times more dollars than it costs."


function brakeColumns(query) {
var columnList = new Array();
var patten1 = /^[\w\$][\w]*/i;
var patten2 = /^[\w\$][\w]*\.[\w\$][\w]*$/i;
var numEnd = query.search(/\sfrom\s/i);
var elems = (query.substring(6, numEnd)).split(",");
for (var i = 0; i < elems.length; i++) {
var elem = elems[i].toString();
elem = trim(elem);
var stPoint = "";
var wanted = "";
if (elem.search(/\sas\s/i) != -1) {
stPoint = elem.search(/\sas\s/i);
wanted = elem.substring(stPoint + 4);
wanted = trim(wanted);
if (patten1.test(wanted)) {
columnList.push(wanted);
}
} else if (patten2.test(elem)) { //check for tablename.column name pattern
stPoint = elem.search(/\./);
wanted = elem.substring(stPoint + 1);
wanted = trim(wanted);
if (patten1.test(wanted)) {
columnList.push(wanted);
}
} else { //check for straight column name like username,passsword etc
if (patten1.test(elem)) {
columnList.push(elem);
}
}
}
return(columnList);
}
function trim(stringToTrim) {
return stringToTrim.replace(/^\s+|\s+$/g, "");
}

alert(/^[a-zA-Z\$_][a-zA-Z0-9]*/.test("testVar"));
Samisa Abeysinghe, the directory of engineering at WSO2 will present a webinar on Building an Agile Enterprise With Business Activity Monitoring today (3rd February 2010).
There he will provide an overview of WSO2 Business Activity Monitor (WSO2 BAM), the latest product from the WSO2 Carbon platform, including its built-in dashboard to view analytics , reports of past and present activities of the enterprise SOA infrastructure and how these information can be used in tactical and strategic decision making.
function putInsidePre(txt,toPre){
var preText = document.createTextNode(txt);
document.getElementById(toPre).appendChild(preText);
}.codeStyle {
background-color:#EAEFF1;
border:1px solid #88BFCE;
color:#325669;
display:block;
font-size:11px;
height:200px;
line-height:1.5em;
overflow:auto;
}tag and give it a id and call "putInsidePre" method to populate it.
Here is a full working example.
<html>
<head>
<style>
.codeStyle {
background-color:#EAEFF1;
border:1px solid #88BFCE;
color:#325669;
display:block;
font-size:11px;
height:200px;
line-height:1.5em;
overflow:auto;
}
</style>
<script>
function putInsidePre(txt,toPre){
var preText = document.createTextNode(txt);
document.getElementById(toPre).appendChild(preText);
}
</script>
</head>
<body>
<pre class="codeStyle" id="codeBlock"></pre>
<script>
putInsidePre('<html><head></head><body>Content</body></html>',"codeBlock");
</script>
</body>
</html>
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
keyPairGenerator.initialize(1024);
KeyPair KPair = keyPairGenerator.generateKeyPair();
X509V3CertificateGenerator v3CertGen = new X509V3CertificateGenerator();
v3CertGen.setSerialNumber(BigInteger.valueOf(new SecureRandom().nextInt()));
v3CertGen.setIssuerDN(new X509Principal("CN=" + domainName + ", OU=None, O=None L=None, C=None"));
v3CertGen.setNotBefore(new Date(System.currentTimeMillis() - 1000L * 60 * 60 * 24 * 30));
v3CertGen.setNotAfter(new Date(System.currentTimeMillis() + (1000L * 60 * 60 * 24 * 365*10)));
v3CertGen.setSubjectDN(new X509Principal("CN=" + domainName + ", OU=None, O=None L=None, C=None"));
v3CertGen.setPublicKey(KPair.getPublic());
v3CertGen.setSignatureAlgorithm("MD5WithRSAEncryption");
X509Certificate PKCertificate = v3CertGen.generateX509Certificate(KPair.getPrivate());
FileOutputStream fos = new FileOutputStream("/path/to/testCert.cert");
fos.write(PKCertificate.getEncoded());
fos.close();
keytool -printcert -file /path/to/cert
KeyStore privateKS = KeyStore.getInstance("JKS");
FileInputStream fis = new FileInputStream("/path/to/sample-key-store.jks");
privateKS.load(fis, "keyStorePass".toCharArray());
privateKS.setKeyEntry("sample.alias", KPair.getPrivate(),
new char[]{'e', 'n', 't', 'r', 'y', 'p', 'a', 's', 's'},
new java.security.cert.Certificate[]{PKCertificate});
privateKS.store( new FileOutputStream(keystoreFile), "keyStorePass".toCharArray());


This is a very interesting marketing strategy. A guy walks into an into an interview and highlights his negatives.
As I look over my copy of Thompson's application, I mentally reduce his chances from minuscule to nonexistent. I glance at my watch. I've got an early flight. I wonder how long it will take my compatriots to blow poor Thompson off.
"So why should we hire you, Mr. Thompson?" the area manager asks, starting with the question she usually finishes with.
Thompson smiles.
"I'm 53 years old," he says without hesitation. "I'm not pretty. I've been unemployed for almost five months—ever since my last company went belly-up. I've got no experience in your industry. If you take a look at my application you'll see that there's a checkmark next to the yes on that question about whether or not I've ever been convicted of a felony. I've applied for any number of other jobs and no one else will hire me." He looks at us each in turn while he's slowly ticking off these points on his fingers, as confidently as if he were explaining his Harvard MBA, his Olympic gold medals and his seven years as CEO of General Motors. "So let me tell you why I'm the best possible candidate you're ever going to find for this position."
And that's exactly what he proceeds to do—demonstrating the poise and assurance and experience he'd gained in those 53 years.
"If you hire me, I can't afford not to succeed!" he tells us with passion and conviction. "I don't have the option of being able to move on to greener pastures—or even brown pastures—when the job gets too grueling. I'm 100 percent committed. As locked into this position as I was locked into that jail cell 35 years ago. And if you'll notice that's where I earned the most of the credits for my college degree. I never wanted a Master's, so I've made sure I've never had to go back. But what I learned in that place—the formal and the informal training—has a lot to do with why I've been so successful at every job I've had since then."
Read the full article here.
http://www.evancarmichael.com/Sales/372/Making-the-Skeleton-Dance-Bragging-about-the-Negatives.html
U.S. troops pulled a man alive from the rubble of a collapsed building in Haiti's destroyed capital on Tuesday, two weeks after a massive earthquake rattled the country.
The 35-year-old man, covered in dust and dressed only in underpants, was carried out from the ruins of a building in downtown Port-au-Prince and was driven off for medical treatment. He did not appear to have any serious injuries.
The rescue, exactly 14 days after the magnitude-7.0 earthquake killed as many as 200,000 people, came as the U.S.-led relief effort was focused on getting help to hundreds of thousands of survivors left homeless, hungry and injured.
“Agility” is more than just a buzz word. The ability to be agile ensures enterprises to gain a competitive advantage. The right decisions made at the right time by the right people is the key to success. And both IT as well as business domain experts understand the need to respond to the latest trends in a proactive manner.
WSO2's new Business Activity Monitor - WSO2 BAM, is the ideal tool that is not only useful for business users but also IT personal to monitor key performance indicators that govern the success of their enterprise. The built in dashboards and reports along with analytical capabilities of historical data, empower users to make the right tactical and strategic decisions.
This webinar, will enlighten you on how to exercise business activity monitoring with your SOA deployments to implement a complete feedback life-cycle in your SOA.
I’ve started a series of articles on JAX-WS development with WSAS. The first one here, talks about the basics and fundamentals of JAX-WS development. I’ve written some areas of this topic in my previous posts in this blog. But this article brings all together and provides a very easy to follow approach to develop JAX-WS services with WSAS. There will be few more articles coming out on JAX-WS client side development, MTOM support, WS-Security etc. So stay tuned. I’ll post everything on this blog once those articles will be published.

“Code First or Contract First?”. This has been a hot topic in the Web services world for many years among the Web service developers. In one of my latest articles on WSO2 Oxygen Tank, I’ve discussed this topic in the context of WSO2 WSAS. In this article, you’ll find out how to select the most appropreate approach to be followed when developing your Web Service with WSAS.
