Friday, August 29, 2008

Sri Lankan Recipes


I know that most of my colleagues are abroad and might find it difficult to taste a hot spicy Sri Lankan dish. Fortunately I bought a cook book before I depart from Sri Lanka and right now it’s the best gift I’ve given to my wife (yeah… it works). But for those who did not, this is a page you must bookmark. I’m gonna try some of these definitely on my weekends.

Saturday, August 16, 2008

Jogging to finish

Never seen an athlete jogging to the final 20 meters of the fastest event in the Olympic. But the Jamaican Bolt did it... awesome!!!


The facial expressions says it all.
I wonder what he is gonna do in his favorite 200m in coming days.

Wednesday, August 13, 2008

Two months with mixed experiences

It’s about two months now in Melbourne. Had one chance to experience the Australian landscapes. That’s on my way to Melbourne from Sydney, but no more. Need to escape from the busy city for a while. It says it is snowing now in Victorian mountains but still no chance to see them. The enthusiasm of traveling is fading away as I lost my camera in Melbourne. Daily on my way to the university some good potential pics of sceneries, faces, and lifestyles scanning through my mind but unfortunately cannot convert them to digital format. May be I should start painting again. At least it’s cheaper compared to photography, A good camera worth more than my bank account at the moment. But the loads and loads of readings and searching at the beginning of my PhD have swallowed the time for it. Besides, my small apartment would not support that much space.
I hope I can find some free time, as I somewhat succeeded in my hunt for a place to live in Melbourne. Also some money to buy a good camera. Hopefully before the coming summer, when the sun borrows the sky.

Monday, August 11, 2008

Experience the interoperability with Stock Trader 2.0

Without going thru all the hazzle with nitty gritty configurations, now you can experience the power of interoperability with Stock Trader example. WSO2 developer portal aka Oxygen tank has a project page to help you find the examples in many different flavors including PHP, Java, Ruby, Spring, Perl and Python. Try Stock Trader with .Net Stock Trader 2.0
Also better to read this explanation from Jonathan Marsh and Greg Leek.

Tuesday, August 05, 2008

Adaptive software systems and their challenges - Part II

In my previous blog, I categorized what are the challenges faced by different software systems at runtime. This time I’m going to talk about how to face those challenges.

From a reason to a challenge
The uncertainties I talked earlier are common in designing any kind of system. In early days it was considered a failure of a system as a result of such an uncertainty is OK. Many software systems gave above issues as excuses for the failure of software. For example a failure of a proper functioning of a particular networked application, due to limited bandwidth was considered to be normal. And users were too accepted such a failure. And usually seek the help of some expertise. The Geek who’s sitting in the dark room. But as the time passes software architects wanted to find solutions for such issues and minimize failures in fluctuating environments.

From challenge to solutions
On one hand there is a continuous improvement of resources such as more memory, more processing power and more bandwidth. But at the same phase, the software systems too evolved into digesting more resources.
On the other hand software designs too shoved some kind of adaptability. For example a failure in a transaction resulted in rollback of the transaction. Basically the software started to sense the environmental context it is operated in. Thereby adjust its internal properties to suit the context, to support continues availability of the software.
Parallel to these developments, different kind of programming languages too supported such adaptability. The awareness of the platform they are operated in is inbuilt to the language and reflected in the API.
Different tools were also developed to support the adaptability. As an example GPS sensor in mobile devices gives the developers the capability of sensing the geographical location of the device operated in.

Architecture based solutions
The approach taken by the ROAD framework described in details in the thesis, is an architectural approach to adaptive software applications rather than introducing strategies or mechanisms. The thesis introduces three kind of adaptation. (Section 2.1)
1.Evolutionary adaptation : Reproduces instances with variations
2.Ontogenic adaptation : Change the internal structure
3.Environmental manipulation: Change the environment

The approach taken in the ROAD framework is based on the ontogenic adaptation, where the system itself regulates its internal structure based on the fluctuations in the environment. The system changes can be seen in two ways.

1.Indirection of instantiation: Changes to the elements, which the system is built upon. This includes replacements, modifications to the elements.
2.Indirection of association: Changes to the relationships of the elements within the system.

The ROAD framework considers such a system as an organisation, which consists of different roles with different responsibilities. Roles are assigned by role players and changed according to the environment they are operated on. Also new roles can be introduced and old roles can be discarded as well.
In my opinion the approach is a success due to following reasons.

1.Loosely coupled roles and role-players allow more freedom in instantiation, thereby allowing easier adaptation. Different players can be allocated to different to a particular role of the system depending on the environment change.
2.The recursive structure makes the design very simple and thus can be applied in very complex software requirements. In ROAD a system is consist of element which are intern similar systems. Just like in OOP where properties of an object or a class instance can also be another object.
3.A system is self-managed so as its elements are.

Friday, August 01, 2008

Adaptive software systems and their challenges - Part I

There are different challenges posed by different software executing environments. As the technology advances, the computer is no longer something that you see in your office desk. It can be varied from your mobile to a something distributed along the network. Or may a teeny tiny chip, which can be stored anywhere. And software is not something that ready to do your work once you install it using a wizard. The traditional definitions and methodologies are demolishing so as the traditional software designs. Just like the human beings trying to adapt to the changing environments software itself needed to be adapted. The adaptation is a sign of survival. Just like humans trying to survive in different weather conditions, software systems too need to survive in different environments. For example a system installed in your car or the mobile need to sense the changing environment and adjust itself to suite the changes without dieing.
So what are the challenges faced by different categories of systems when it comes to adaptation? What are the challenges in designing such systems? Following is a brief of such challenges categorized in terms of different types of software systems.