I’ve already installed Erlang using yum in Fedora 10. I wanted to install Erlsom and it’s available through CEAN. Steps for installing CEAN is explained nicely in the FAQ. Content of my VERSION file,
CEAN Erlang/OTP R12B erts-5.6.5 linux-x86 devel
You can find the version of Erlang installed with yum info erlang. erts version can be found by ls /usr/lib/erlang | grep erts.
After this when I tried to do any operation I received the following error,
** exception error: undefined function ibrowse:start/0
in function cean:geturl/3
in call from cean:packages_from_html/1
Fixing this was simple. CEAN needs the ibrowse package which doesn’t get installed when you install it via yum. I was a bit confused at first because the site said,
If you already have an existing Erlang installation and want to use CEAN on it, you just need to download the CEAN library and extract the archive into your erlang lib directory.
Solution was to download the entire R12B archive from the site and to copy the ibrowse library to /usr/lib/erlang/lib.
Then you can install Erlsom by,
1> cean:install(erlsom).
Update: As it turns out this version of Erlsom getting installed via CEAN is an old one. You need to go to the SF project page and get the latest version and install it.
SOA Governance by Todd Biske is surprisingly an easy read that explain what is governance and what does it mean in an SOA setting. It begins with a comprehensive introduction to governance and the three main important aspects, people, policies and processes. Then, he explains how to introduce SOA into existing project governance efforts. After describing the core concepts, Todd goes on to explain how most enterprises fall into the trap of creating a bunch of services and calling it SOA. How to approach the problem with defined goals when trying to adopt a service oriented architecture is clearly explained. I found it quite natural and easy to follow they style of the information presented where Todd tries to create a discussion among people in a virtual corporation. I think this makes it easy to relate the problems of a similar, real organization.
The chapter describing the role of governance during the analysis phase of a project was an eye opener for me because I had this wrong impression that SOA governance applied only to the components that is used in a service oriented architecture. This, as I later found out, called run time governance where you monitor the services to ensure they consistently deliver according to the governing policies and metric collection process for each and every service. In the chapter that’s dedicated to run time governance, Todd describe how to define provider/consumer baselines and how to manage them.
After guiding the reader through all the aspects of SOA governance, what should be done and how you should go about doing those, Todd paints a picture of what does it look like when you have implemented all these steps successfully. Then he explains how one can implement SOA governance in his/her organization along with some common challenges that one might face.
I thoroughly enjoyed reading this wonderfully well written book about SOA governance. You can read a sample chapter about service versioning here.
Recently I built WSO2 Carbon. Here’s how I did it with some help from the carbon mailing list
Do stick to the same build order. I did this on an Ubuntu machine. If you happen to see maven complaining about running out of memory just do,
$ export MAVEN_OPTS="-Xmx1024m -XX:MaxPermSize=128m"
First step, build Axis2 1.4.1 from the custom branch
$ svn co http://svn.wso2.org/repos/wso2/branches/axis2/v1.4.1 axis2-1.4.1-branch
Next find the revision of the branch,
$ cd axis2-1.4.1-branch $ svn info Path: . URL: http://svn.wso2.org/repos/wso2/branches/axis2/v1.4.1 Repository Root: http://svn.wso2.org/repos/wso2 Repository UUID: a5903396-d722-0410-b921-86c7d4935375 Revision: 32422 Node Kind: directory Schedule: normal Last Changed Author: amila Last Changed Rev: 30518 Last Changed Date: 2009-02-06 10:39:03 +0530 (Fri, 06 Feb 2009)
Revision 30518 have an inconsistency in modules/addressing/pom.xml where the addressing artefact ID is wrong. You have to get this patch and apply it. Download, save it somewhere and do the following to apply the patch.
$ cd modules/addressing $ patch -p0 < /home/chintana/addressing-pom.patch $ cd ../..
Now you’re at the Axis2 root level. Before building at the root level you have to build two plugins,
$ cd modules/tool/axis2-mar-maven-plugin $ mvn clean install $ cd ../axis2-aar-maven-plugin/ $ mvn clean install $ cd ../../..
Back at the root level, now you can build the project,
$ mvn clean install -Dmaven.test.skip=true
Next step is to build Rampart from the custom branch,
$ svn co http://svn.wso2.org/repos/wso2/branches/rampart/1.4.wso2 rampart-custom $ cd rampart-custom $ mvn clean install -Dmaven.test.skip=true
Build Sandesha from the custom branch,
$ svn co http://svn.wso2.org/repos/wso2/branches/sandesha2/1.4.wso2 sandesha-custom $ cd sandesha-custom $ mvn clean install -Dmaven.test.skip=true
Next up is Savan, again from a custom branch,
$ svn co https://svn.wso2.org/repos/wso2/branches/savan/1.0wso2v1 savan-custom $ cd savan-custom $ mvn clean install -Dmaven.test.skip=true
Now all the prerequisites are complete for the Carbon platform. Let’s go ahead and build Carbon. It has 3 parts. carbon-orbit, carbon and carbon-components (for carbon I had to change the addressing.version property in root level pom.xml to 1.4.1),
$ svn co http://svn.wso2.org/repos/wso2/trunk/carbon-orbit $ cd carbon-orbit $ mvn clean install -Dmaven.test.skip=true $ cd .. $ svn co http://svn.wso2.org/repos/wso2/trunk/carbon $ cd carbon $ mvn clean install -Dmaven.test.skip=true $ cd .. $ svn co http://svn.wso2.org/repos/wso2/trunk/carbon-components $ mvn clean install -Dmaven.test.skip=true
All righty! After this you can go ahead and build other products which are designed on top of Carbon such as WSO2 WSAS, WSO2 ESB etc…