tag:blogger.com,1999:blog-24272355200113157392024-03-13T18:55:47.749+11:00Denis's BlogThings may be useful and interestingAnonymoushttp://www.blogger.com/profile/05849388591764685658noreply@blogger.comBlogger119125tag:blogger.com,1999:blog-2427235520011315739.post-73430485094458266862015-06-26T15:39:00.000+10:002015-06-26T15:39:30.575+10:00Bird-eye view of Sri Lanka<div dir="ltr" style="text-align: left;" trbidi="on">
If you are travelling to Sri Lanka or a nature lover haven't even heard about this beautiful island, these nature documentaries are for you.<br />
<br />
Ocean of Giants<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe width="320" height="266" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/jsk798cpZTw/0.jpg" src="https://www.youtube.com/embed/jsk798cpZTw?feature=player_embedded" frameborder="0" allowfullscreen></iframe></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
Land of Lakes<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe width="320" height="266" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/HVCcN9IHA1U/0.jpg" src="https://www.youtube.com/embed/HVCcN9IHA1U?feature=player_embedded" frameborder="0" allowfullscreen></iframe></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
Forest of Clouds<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe width="320" height="266" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/6rMtTebo9zY/0.jpg" src="https://www.youtube.com/embed/6rMtTebo9zY?feature=player_embedded" frameborder="0" allowfullscreen></iframe></div>
<br /></div>
Anonymoushttp://www.blogger.com/profile/05849388591764685658noreply@blogger.com0tag:blogger.com,1999:blog-2427235520011315739.post-57925570826886796022015-05-28T13:39:00.001+10:002015-05-28T13:54:27.353+10:00Sri Lankan Food Culture and Habits<div dir="ltr" style="text-align: left;" trbidi="on">
"Raata-Raata", A Sri Lankan TV program on food culture and habits in Sri-Lanka. Very interesting. Enjoy!<br />
<a href="https://www.youtube.com/channel/UCSXtdScsbJqtOhmmMwNdU6w/search?query=raata+raata">https://www.youtube.com/channel/UCSXtdScsbJqtOhmmMwNdU6w/search?query=raata+raata</a></div>
Anonymoushttp://www.blogger.com/profile/05849388591764685658noreply@blogger.com0tag:blogger.com,1999:blog-2427235520011315739.post-61435507450400892482015-03-24T00:56:00.000+11:002015-09-29T14:27:59.394+10:00Measuring the Livability<div dir="ltr" style="text-align: left;" trbidi="on">
Every year, I come back to Sri Lanka for 5-6 weeks to meet my family during the new year season. Every time when I am back in Sri Lanka, I think what has been changed compared to the previous year?, which aspects have been improved? and do such improvements affect the livability of Sri Lanka?.<br />
<br />
When it comes to the livability, I am concerned and believe on three things which are absolutely important. They are,<br />
<ul style="text-align: left;">
<li>Do people respect other people?</li>
<li>Do people respect the law of the country?</li>
<li>Do people respect money?</li>
</ul>
But, how do I measure them? I just observe three simple things when I commute via public transportation.<br />
<ul style="text-align: left;">
<li>Do motorist stop when pedestrians wait beside crosswalks?</li>
<li>Do motorist and pedestrians oblige to traffic lights and signs?</li>
<li>Do bus conductors give back the right amount of change back to commuters?</li>
</ul>
If I get “Yes” for at least one question, I would say "Yes, the livability is improving".<br />
<br />
Now some of you might think these observations are minor crimes with little impact. The rationale for choosing these observations was the <a href="https://en.wikipedia.org/wiki/Broken_windows_theory" target="_blank">Broken Window Theory</a>. I am a big believer of it. This theory explains how minimizing minor crimes of a society creates a better atmosphere of order and lawfulness, thereby preventing more serious crimes from happening.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiz0HrrmMd_1wfSjxcxtByTBRkU7o3A_HyZyMk9xvSWbImch5gsSHRuCa8BoGd-XZzLk13lPSmsitiKTo0y7LpQPYOOPcKFZVxi8n0glQhtW4SDdr5qUOBkoSxVLhg8Kyme6gDJw1UJ_lY/s1600/Deadly-crossing-at-Wellawatte.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="172" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiz0HrrmMd_1wfSjxcxtByTBRkU7o3A_HyZyMk9xvSWbImch5gsSHRuCa8BoGd-XZzLk13lPSmsitiKTo0y7LpQPYOOPcKFZVxi8n0glQhtW4SDdr5qUOBkoSxVLhg8Kyme6gDJw1UJ_lY/s1600/Deadly-crossing-at-Wellawatte.jpg" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjL092C4mqg-8-MlcxSUnPbkEblGiYVTqo_HHT-_H0QD_8OhOGJIDUypThyphenhyphenKcdbQKWTaDUjEuhnXnQoSrz3ONJkkRczxp_bV6NTLJRrATd4_Tsjxzowc3niEyvpp1XFAW-9MDpRVdh8038/s1600/Orugodawatte-CL.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="262" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjL092C4mqg-8-MlcxSUnPbkEblGiYVTqo_HHT-_H0QD_8OhOGJIDUypThyphenhyphenKcdbQKWTaDUjEuhnXnQoSrz3ONJkkRczxp_bV6NTLJRrATd4_Tsjxzowc3niEyvpp1XFAW-9MDpRVdh8038/s1600/Orugodawatte-CL.jpg" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0OXJvvW8ykj9OhBowguWZYkKWap_RRTXUfSutn3oXQ5Y6RnboZxM-yTA9h-cVWj5PqQ7JRNhRU_zryhGqOU-WVsC2BilO-eJnNvYWWt1MUImX8T8ldy8ljInd18okdE4qsbbvEPscdHs/s1600/news-pic.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="284" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0OXJvvW8ykj9OhBowguWZYkKWap_RRTXUfSutn3oXQ5Y6RnboZxM-yTA9h-cVWj5PqQ7JRNhRU_zryhGqOU-WVsC2BilO-eJnNvYWWt1MUImX8T8ldy8ljInd18okdE4qsbbvEPscdHs/s1600/news-pic.jpg" width="320" /></a></div>
<br /></div>
Anonymoushttp://www.blogger.com/profile/05849388591764685658noreply@blogger.com0tag:blogger.com,1999:blog-2427235520011315739.post-6111075977256180582014-12-18T23:12:00.002+11:002014-12-18T23:12:35.339+11:00Near Lindt cafe @ Martin Place, Sydney<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: left;">
Flowers and Messages left at the memorial site in Martin place</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCOhi9UtFo6FO4FFZRuMOmtQfUh10gvX-ieO9-jsm410dFbbmCh_i3xPNBxUxf-qzx6f0laJ5M8aFtlGDWTE0DzAj754Qgq1DfoD-zOgIy0Ov-o0I6B9_9AuwFYcIkVSBZdGaljrSb5qU/s1600/IMG_20141218_082350.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCOhi9UtFo6FO4FFZRuMOmtQfUh10gvX-ieO9-jsm410dFbbmCh_i3xPNBxUxf-qzx6f0laJ5M8aFtlGDWTE0DzAj754Qgq1DfoD-zOgIy0Ov-o0I6B9_9AuwFYcIkVSBZdGaljrSb5qU/s1600/IMG_20141218_082350.jpg" height="300" width="400" /></a></div>
<br /></div>
Anonymoushttp://www.blogger.com/profile/05849388591764685658noreply@blogger.com0tag:blogger.com,1999:blog-2427235520011315739.post-32617764749423840902014-11-25T13:50:00.001+11:002015-09-06T19:01:27.663+10:00When flight tickets get cheaper in advance - v2<div dir="ltr" style="text-align: left;" trbidi="on">
In <a href="http://ddweerasiri.blogspot.com.au/2014/04/when-flight-tickets-get-cheaper-in.html" target="_blank">When flight tickets get cheaper in advance - v1</a>, I wrote a Google App Script with Google Spreadsheets to track when flight tickets get cheaper in advance. In that script I weekly tracked the minimum return-ticket price from Sydney to Colombo for a fixed departure date (07th of April 2014). In this post, I improved the script and automatically calculated minimum return-ticket price from Sydney to Colombo daily for last 8 months without restricting to a fixed departure date. These details say, for a given date, ticket prices get minimum in advance of <b>110 days in average</b> (given that you have no preferred departure date).<br />
<a href="https://docs.google.com/spreadsheets/d/14zCyzXVyoj-aFIcizQRnuoY0d4BVp0xE7JPWfU5wnXY/pubhtml?gid=1840584594&single=true" target="_blank">Here you can find the spreadsheet</a> which contains up-to-date data-set and followings are the charts extracted from the data-set.<br />
<iframe frameborder="0" height="371" scrolling="no" seamless="" src="https://docs.google.com/spreadsheets/d/14zCyzXVyoj-aFIcizQRnuoY0d4BVp0xE7JPWfU5wnXY/pubchart?oid=882830697&format=interactive" width="550"></iframe> <iframe frameborder="0" height="371" scrolling="no" seamless="" src="https://docs.google.com/spreadsheets/d/14zCyzXVyoj-aFIcizQRnuoY0d4BVp0xE7JPWfU5wnXY/pubchart?oid=1385944815&format=interactive" width="550"></iframe>
</div>
Anonymoushttp://www.blogger.com/profile/05849388591764685658noreply@blogger.com1tag:blogger.com,1999:blog-2427235520011315739.post-62074656209394849642014-04-01T10:55:00.000+11:002014-11-25T12:24:51.631+11:00When flight tickets get cheaper in advance - v1<div dir="ltr" style="text-align: left;" trbidi="on">
I wrote a small Google App Script with Google Spreadsheets to track when flight tickets get cheaper in advance. I weekly tracked the minimum return-ticket price from Sydney to Colombo for a fixed departure date (07th of April 2014). The answer was, ticket prices get minimum in advance of <b>5 months in average</b>. Due to the disappearance of Malaysian airliner, MH370, I noticed a sudden fall of Malaysian air-line ticket prices after 8th of March 2014. So I added two charts. 1st one doesn't includes deviations related to MH370. 2nd chart includes the relevant deviations.
<br/>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/static/modules/gviz/1.0/chart.js"> {"dataSourceUrl":"//docs.google.com/spreadsheet/tq?key=0Au5PwDXp7hJJdENTNTIwcV9maXQ5SF94Mzdsek5udFE&transpose=0&headers=0&range=A2%3AB35&gid=0&pub=1","options":{"titleTextStyle":{"bold":true,"color":"#000","fontSize":16},"series":{"0":{"errorBars":{"errorType":"none"},"pointSize":2}},"curveType":"function","animation":{"duration":0},"width":550,"lineWidth":2,"hAxis":{"title":"Date (dd/mm/yyyy)","useFormatFromData":true,"slantedTextAngle":30,"slantedText":true,"minValue":null,"viewWindowMode":null,"viewWindow":null,"maxValue":null},"vAxes":[{"title":"Ticket Price (AUD)","useFormatFromData":true,"minValue":null,"viewWindow":{"max":null,"min":null},"maxValue":null},{"useFormatFromData":true,"minValue":null,"viewWindow":{"max":null,"min":null},"maxValue":null}],"title":"Minimum Ticket Prices","booleanRole":"certainty","height":375,"legend":"right","focusTarget":"series","tooltip":{}},"state":{},"view":{},"isDefaultVisualization":true,"chartType":"LineChart","chartName":"Chart 1"} </script>
<br/>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/static/modules/gviz/1.0/chart.js"> {"dataSourceUrl":"//docs.google.com/spreadsheet/tq?key=0Au5PwDXp7hJJdENTNTIwcV9maXQ5SF94Mzdsek5udFE&transpose=0&headers=0&range=A49%3AB84&gid=0&pub=1","options":{"titleTextStyle":{"bold":true,"color":"#000","fontSize":16},"series":{"0":{"color":"#00ff00","pointSize":2,"targetAxisIndex":0}},"curveType":"function","animation":{"duration":500},"width":550,"lineWidth":2,"hAxis":{"title":"Date (dd/mm/yyyy)","useFormatFromData":true,"slantedTextAngle":30,"slantedText":true,"minValue":null,"viewWindowMode":null,"viewWindow":null,"maxValue":null},"vAxes":[{"title":"Ticket Price (AUD)","useFormatFromData":true,"minValue":null,"viewWindow":{"min":null,"max":null},"logScale":false,"maxValue":null},{"useFormatFromData":true,"minValue":null,"viewWindow":{"min":null,"max":null},"logScale":false,"maxValue":null}],"booleanRole":"certainty","title":"Minimum Ticket Prices (with MH370 effect)","height":375,"legend":"right","focusTarget":"series","tooltip":{}},"state":{},"view":{},"isDefaultVisualization":false,"chartType":"LineChart","chartName":"Chart 2"} </script>
</div>Anonymoushttp://www.blogger.com/profile/05849388591764685658noreply@blogger.com1tag:blogger.com,1999:blog-2427235520011315739.post-33054087312870894182014-02-13T14:18:00.000+11:002014-02-13T14:21:09.198+11:00Categorisation of different Process models<div dir="ltr" style="text-align: left;" trbidi="on">
There are various process modelling techniques, explained in research literatures. But here are three of the process models that my research is based upon at the moment.<br />
<ol style="text-align: left;">
<li>Artifact based (or State based) models</li>
<li>Activity based (or Flow based) models</li>
<li>Rule based models</li>
</ol>
<b>Artifact based (or State based) models</b><br />
<div>
Two examples for artifact based modelling techniques are state machines and state charts. This modelling technique, take an artifact (eg.,- a Google Doc, Software Bug or AWS virtual machine) and specify the states of that artifact go through (eg.,- For a Software Bug, it can haves states like "created", "assigned", "resolved" and "tested"). </div>
<div>
Advantages of Artifact based models are declarative and specification oriented language can be used to describe a process. This modelling technique enables the user to describe a high level description of the process rather specifying nitty-gritty details on how the artifact go through. </div>
<div>
<br /></div>
<div style="text-align: left;">
<b>Activity based (or Flow based) models</b></div>
<div style="text-align: left;">
Two examples for activity based modelling techniques are BPMN and BPEL. This model is consisted of a set of activities and the activities are associated with other activities to generate a flow (eg - Bank loan approval process can have a set of activities like "Open up a loan request form based on client request", "get the approval from manager" and "send the response of approval back to the client"). This technique provides a procedural language to specify what the execution runtime of the model should do. So each activity represent some task and tasks are linked together, to represent the execution order among such tasks. </div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<b>Rule based models</b></div>
<div style="text-align: left;">
Two examples for rule based modelling techniques are event-condition-action rules and javascript. This technique models a process via a set of rules (eg.,- For a AWS-EC2 VM, there can be a process with a set of ECA rules like "if VM utilisation > 95%, then increase CPU power of that VM"). Typically activity based models and rule based models can be interchanged. That means, a process escribed in a activity based model also can be described using a rule based model as both techniques provide a procedural language to specify what the execution runtime of the model should do. The main difference between the activity based models and rule based models is, rule based models don't describe links among each rules. But the activity based models explicitly describe the links among each activities. So the execution engine of the rule based model has to infer (or generate) the links between rules before executing the process. One advantage of rule based modelling techniques is that it is easy to model a process. But it has consistency issues as some execution semantics (like execution order or rules) are not explicitly specified.</div>
</div>
Anonymoushttp://www.blogger.com/profile/05849388591764685658noreply@blogger.com0tag:blogger.com,1999:blog-2427235520011315739.post-14614189083517138392014-02-12T08:18:00.001+11:002014-02-12T08:25:25.803+11:00Take your sleep, Seriously!<div dir="ltr" style="text-align: left;" trbidi="on">
I've been using a fitness+sleep tracker for some time. Initially what I had in mind was, I am not having enough exercises. But later on I realized that I was not having enough sleep compared to the right amount of exercises. For various reasons, we have overlooked the importance of sleep which is explained in the following TED talk. Finally, <b>Take your sleep, Seriously!</b>.<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="293" mozallowfullscreen="" scrolling="no" src="http://embed.ted.com/talks/russell_foster_why_do_we_sleep.html" webkitallowfullscreen="" width="520"></iframe>
</div>
Anonymoushttp://www.blogger.com/profile/05849388591764685658noreply@blogger.com1tag:blogger.com,1999:blog-2427235520011315739.post-8995334312126450482014-01-24T17:44:00.000+11:002014-01-24T22:58:40.784+11:00Understanding Docker with an Analogy from Traditional Software Development <div dir="ltr" style="text-align: left;" trbidi="on">
<a href="https://www.docker.io/" target="_blank">Docker</a>, a Linux container that is becoming increasingly popular with developers for deploying apps to a cloud infrastructure. Docker allows application data to sync with the OS running on the cloud infrastructure. That means a developer can work directly from their desktop environment and use Docker to automatically sync updates.<br />
<br />
Suppose a traditional software developer which follows the below steps as the development process.<br />
<ol style="text-align: left;">
<li>Checkout a remote SVN/Git repository to the local file system </li>
<li> Improve the code in the local repository </li>
<li>Test the code in local repository </li>
<li>Push the modifications back to the remote repository, so others can update those modifications </li>
</ol>
Then pushing those modifications to the production deployment is handled by a separate deployment engineering team. As developers only test their modifications in a local environment rather in the production environment, there can be bugs introduced in the production environment. This is mainly due to configuration differences between the local test environment and the production environment. This sort of bugs cause a lot of friction in the deployment process.<br />
<br />
Docker tries to tackle this. Comparing with a source code repository system (SVN/Git) which manages the source code, Docker manage the complete software deployment (i.e. source code, configuration) as a "Container". This ensures every developer test their code in a developer environment exact similar to the production environment.<br />
<br />
When it comes to maintaing the configuration of components with in the Container, it follows a JSON representation as follows.
<br />
<script src="https://gist.github.com/ddweerasiri/8593089.js"></script>
</div>
Anonymoushttp://www.blogger.com/profile/05849388591764685658noreply@blogger.com1tag:blogger.com,1999:blog-2427235520011315739.post-36105542168277353612014-01-22T00:14:00.002+11:002014-01-22T00:34:17.096+11:00WS-BPEL 2.0 Beginner’s Guide<div dir="ltr" style="text-align: left;" trbidi="on">
Professor Matjaz B. Juric and I authored the book, titled "WS-BPEL 2.0 Beginner’s Guide". This book will be available in the near future and you can pre-order via <a href="http://www.packtpub.com/ws-bpel-2-beginners-guide/book" target="_blank">PACKT Publishing site</a>. We started working on this since 2012 and I would like to thank all who are behind the success of this book.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPC2TBOdIclRKOGxIfPHRW36lLjQ0cN7osenBm5SiBurr7lJM9iW45sTjjCh9Ou_WRPVHlTXt-rJeV7PmDHmEKkeUeQgcJ5YgJ8eOuYEF8q5w1fW4XEZc1-68JBVwNK9Rkz-CRFw0V0TY/s1600/8963EN_bpel_book_denis_weerasiri.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPC2TBOdIclRKOGxIfPHRW36lLjQ0cN7osenBm5SiBurr7lJM9iW45sTjjCh9Ou_WRPVHlTXt-rJeV7PmDHmEKkeUeQgcJ5YgJ8eOuYEF8q5w1fW4XEZc1-68JBVwNK9Rkz-CRFw0V0TY/s1600/8963EN_bpel_book_denis_weerasiri.jpg" /></a></div>
<br />
<b>What you will learn from this book</b><br />
<ul style="text-align: left;">
<li> Design and develop WS-BPEL 2.0 executable business processes</li>
<li> Get familiar with BPEL 2.0 activities and the most important usage scenarios</li>
<li> Develop a BPEL process to invoke other services and orchestrate them</li>
<li> Learn how to declare variables and store, assign, copy, and manipulate data within variables</li>
<li> Understand conditions and learn how to use the activities and loops</li>
<li> Invoke external web services using asynchronous communication channels</li>
<li> Recognize fault-handling capabilities to manage faults and to avoid unexpected states</li>
<li> Organize a BPEL process into hierarchical orders using Scopes</li>
<li> Define repetitive tasks in sequential or in parallel using dynamic parallel invocation activities</li>
</ul>
<b><br /></b>
<b>In Detail</b><br />
Business Process Execution Language (BPEL, also known as WS-BPEL) has become the de facto standard for orchestrating services in SOA composite applications. It enables automation of business processes, reduces the gap between business requirements and applications, and allows better alignment between business processes and underlying IT architecture. BPEL is an open specification and one of the most important pieces of SOA. Therefore, learning BPEL is essential for successful adoption of SOA and for the development of composite applications.<br />
<br />
This book provides a fast-paced practical introduction to WS-BPEL, one of the centerpieces of SOA. It covers the most important features of BPEL 2.0 and provides several real-world examples to underline its concepts. In addition to BPEL specifications, the book provides comprehensive coverage of BPEL support in JDeveloper and Oracle SOA Suite.<br />
<br />
This book starts with an introduction to BPEL. It first teaches you how to develop your first BPEL process and understand the basic structure of BPEL processes. It will then move on to explain the core concepts such as invoking services, synchronous and asynchronous processes, partner links, the role of WSDL, variables, flows, and more.<br />
<br />
Moving ahead, this book will make you familiar with concepts such as human tasks, fault handling, transaction management and compensation handling, scopes, events and event handlers, concurrent activities and links.<br />
<br />
The book takes a fast-paced practical approach to WS-BPEL design and development based on practical examples and clear descriptions of the most important usage scenarios. This book is all you need to get up and running with WS-BPEL development.<br />
<br />
<b>Approach</b><br />
A systematic guide for beginners which focuses on getting you up and running with building BPEL processes and learning the BPEL language with clear instructions and examples.<br />
<br />
<b>Who this book is for</b><br />
If you are a software architect, a designer, a software developer, an SOA and BPM architect, a project manager, or a business process analyst who is responsible for the design and development of business processes, composite applications, and BPM/SOA solutions, then this book is for you. You should have a clear grasp of general SOA concepts including business processes and web services, but no prior knowledge of the BPEL language is required.</div>
Anonymoushttp://www.blogger.com/profile/05849388591764685658noreply@blogger.com2tag:blogger.com,1999:blog-2427235520011315739.post-58024987454998173802013-12-17T17:24:00.000+11:002013-12-17T20:00:06.057+11:00Time-lapse photography tryouts <div dir="ltr" style="text-align: left;" trbidi="on">
I am working on few time-lapses these days. All shots were taken in Randwick, Sydney.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" frameborder="0" height="281" src="//www.youtube.com/embed/lJ5hJJvGa1Q?rel=0&vq=hd1080" width="500"></iframe></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" frameborder="0" height="281" src="//www.youtube.com/embed/kO8tsemhD9M?rel=0&vq=hd1080" width="500"></iframe></div>
</div>
Anonymoushttp://www.blogger.com/profile/05849388591764685658noreply@blogger.com0tag:blogger.com,1999:blog-2427235520011315739.post-9157108687564597142013-10-17T22:55:00.000+11:002013-10-17T22:58:02.714+11:00Sun turned red <div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: left;">
Haven't see the sun turned red like this. This was due to multiple bush fires around Sydney and the due to the windy climate, the smoke covered up the whole city for several hours.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSYa8l_iMhQNtIqhjTAm7KfaBBSOiRxcwogDymtp6W9iS_JQFmU1tXafYaXW4ORPfwDu6-2NSp9pABF8ahKLRoPip4fhS6-ZdWtcByV-gXGyanL0yGE3UMOVbHv-g-rhD15L1JpYSRKPU/s1600/20131017_162304+(2).jpg" imageanchor="1"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSYa8l_iMhQNtIqhjTAm7KfaBBSOiRxcwogDymtp6W9iS_JQFmU1tXafYaXW4ORPfwDu6-2NSp9pABF8ahKLRoPip4fhS6-ZdWtcByV-gXGyanL0yGE3UMOVbHv-g-rhD15L1JpYSRKPU/s400/20131017_162304+(2).jpg" width="300" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEO_Fay1TTHSoguGQcIIPCw_x5aUW80OmnND3cIwm0hUllATh77LsXYhGtimEjmvc8d2v5tBNnhekeOV0md0IaAD3xToJ_RNftip5l_ruhGeJtq2WW5KHCE03_8PeLtCywyL1LwILbDr4/s1600/IMG_0437-1.jpg" imageanchor="1"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEO_Fay1TTHSoguGQcIIPCw_x5aUW80OmnND3cIwm0hUllATh77LsXYhGtimEjmvc8d2v5tBNnhekeOV0md0IaAD3xToJ_RNftip5l_ruhGeJtq2WW5KHCE03_8PeLtCywyL1LwILbDr4/s400/IMG_0437-1.jpg" width="300" /></a></div>
</div>
Anonymoushttp://www.blogger.com/profile/05849388591764685658noreply@blogger.com0tag:blogger.com,1999:blog-2427235520011315739.post-79436743110042133842013-08-10T10:51:00.000+10:002013-08-10T11:58:54.858+10:00Defining Traditional Software Configuration Management (SCM)<div dir="ltr" style="text-align: left;" trbidi="on">
Almost all the research on software configuration management has its own definition of the subject. All of those definitions highlights the idea of "dealing with the evolution". That means managing changes to the software during its life cycle. Much older studies on software configuration management processes more focus on controlling or limiting the changes happen to the software. But the studies that take agile process development in to the picture more focus on how to adapt to the changes to the software. Here I have listed out few definitions of traditional software configuration management.<br />
<div>
<br /></div>
<div>
<div>
IEEE - "Configuration Management is the process of identifying and defining the items in the system, controlling the change of these items throughout their lifecycle, recording and reporting the status of items and change requests, and verifying the completeness and correctness of items." [1]</div>
<div>
<br /></div>
<div>
Tichy - "Software configuration management (SCM) is the discipline of managing the evolution of large and complex software systems."[2]</div>
<div>
<br /></div>
<div>
CMM - "Software Configuration Management involves identifying the configuration of the software (i.e., selected software work products and their descriptions) at given points in time, systematically controlling changes to the configuration, and maintaining the integrity and traceability of the configuration throughout the software life cycle. The work products placed under software configuration management include the software products that are delivered to the customer (e.g., the software requirements document and the code) and the items that are identified with or required to create these software products (e.g., the compiler)".[3]</div>
<div>
<br /></div>
<div>
RUP - "The task of defining and maintaining configurations and versions of artefacts. This includes baselining, version control, status control, and storage control of the artefacts." [4]</div>
<div>
<br /></div>
<div>
A common list of processes that usually are included in the definition of software configuration management:</div>
<div>
<ul style="text-align: left;">
<li>Identify configuration items</li>
<li>Version control of configuration items</li>
<li>Release management</li>
<li>Build management</li>
<li>Controlling/Adapting to changes</li>
<li>Tracking status</li>
<li>Auditing</li>
</ul>
</div>
<div>
<br /></div>
<div>
[1] IEEE-Standard-729-1983, Standard Glossary for Software Engineering, ANSI/IEEE.</div>
<div>
[2] Tools for software configuration management. In Proceedings of the International Workshop on Software Version and Configuration Control (Grassau, Germany), J. F. H. Winkler, Ed., Teubner Verlag, 1–20, 1988.</div>
<div>
[3] Carnegie Mellon Univ. Software Engineering Inst.The Capability Maturity Model: Guidelines for Improving the Software Process, Addison Wesley, 1995.</div>
<div>
[4] Philippe Kruchten, The Rational Unified Process: An Introduction, Addison Wesley, 2003.</div>
</div>
<div>
</div>
</div>
Anonymoushttp://www.blogger.com/profile/05849388591764685658noreply@blogger.com2tag:blogger.com,1999:blog-2427235520011315739.post-29383522353155188392013-07-01T11:59:00.000+10:002013-07-01T12:00:25.929+10:00Understanding the organisation's culture when designing a tool<div dir="ltr" style="text-align: left;" trbidi="on">
When we design software for people, one thing we need to realize is the culture of the organisation. Because it exists before the implementation of the tool. Also organisation's culture determines the general mindset of people who are going to use that tool.<br />
For an example, if you are going to design a issue tracker system for a software product, the sales team would expect a different set of user friendly UIs and data to be managed by the tool. If that tool is for developers, then they would expect more flexibility to add new resources to be managed and integration of the tool with other services/APIs like source code repository, email etc.<br />
If we don't get this at design phase, a software development team will develop a tool for a sales team where the tool has clueless features for sales guys.<br />
One other aspect of this concern surfaces out when releasing major modifications to a tool. For an example, FaceBook users criticised a lot about the new timeline feature and GMail's new compose feature also was criticised a lot by the existing users.</div>
Anonymoushttp://www.blogger.com/profile/05849388591764685658noreply@blogger.com0tag:blogger.com,1999:blog-2427235520011315739.post-39819659727242637282012-11-12T14:27:00.002+11:002012-11-12T14:29:04.450+11:00Dynamic Performance Management in Multi-tenanted Business Process Servers Using Nonlinear Control<div dir="ltr" style="text-align: left;" trbidi="on">
This conference paper "<a href="http://link.springer.com/chapter/10.1007%2F978-3-642-34321-6_14?LI=true" rel="nofollow" target="_blank">Dynamic Performance Management in Multi-tenanted Business Process Servers Using Nonlinear Control</a>" is our latest publication which discusses the detail on our work on performance isolation aspect in a multi-tenanted business process execution runtime. It was recently published in <a href="http://www.icsoc.org/" rel="nofollow" target="_blank">10th International Conference on Service Oriented Computing (ICSOC 2012)</a>, pp. 206-221. Authors of this paper are <a href="http://www.informatik.uni-trier.de/~ley/pers/hd/p/Patikirikorala:Tharindu.html" rel="nofollow" target="_blank">Tharindu Patikirikorala</a>, <a href="http://www.informatik.uni-trier.de/~ley/pers/hd/k/Kumara:Indika.html" rel="nofollow" target="_blank">Indika Kumara</a>, <a href="http://www.informatik.uni-trier.de/~ley/pers/hd/c/Colman:Alan_W=.html" rel="nofollow" target="_blank">Alan Colman</a>, <a href="http://www.informatik.uni-trier.de/~ley/pers/hd/h/Han:Jun.html" rel="nofollow" target="_blank">Jun Han</a>, <a href="http://www.informatik.uni-trier.de/~ley/pers/hd/w/Wang:Liuping.html" rel="nofollow" target="_blank">Liuping Wang</a>, <a href="http://www.informatik.uni-trier.de/~ley/pers/hd/w/Weerasiri:Denis.html" rel="nofollow" target="_blank">Denis Weerasiri</a> and <a href="http://www.informatik.uni-trier.de/~ley/pers/hd/r/Ranasinghe:Waruna.html" rel="nofollow" target="_blank">Waruna Ranasinghe</a>.<br />
<br />
Abstract of the paper is<br />
The methodologies to develop multi-tenanted architectures have been investigated in the recent literature due to the popularity of cloud computing. A number of challenges need to be overcome if multi-tenanted architectures are to be effective and efficient. Among the challenges is the management of performance properties while effectively sharing the limited resources between the tenants. This work presents an approach to design such a management system for a multi-tenanted business process server. This approach not only enables performance to be maintained at different levels for different tenants depending on their priorities, but also autonomously detects the overloads of aggressive tenants and dynamically changes the control objectives to safeguard the business operations of other tenants. The novelty of the proposed approach is the use of the nonlinear feedback control. The experiment results indicate that the proposed nonlinear control approach achieves the objectives much better compared to the existing fixed and linear control techniques.<br />
<br />
<a href="http://link.springer.com/chapter/10.1007%2F978-3-642-34321-6_14?LI=true" rel="nofollow" target="_blank">This paper can be accessed from here</a>.
<br />
<br />
Relavant articles<br />
<ul style="text-align: left;">
<li><a href="http://ddweerasiri.blogspot.com.au/2012/08/a-scalable-multi-tenant-architecture.html" target="_blank">A Scalable Multi-tenant Architecture for Business Process Executions</a> </li>
<li><a href="http://ddweerasiri.blogspot.com.au/2012/01/horizontal-format-data-mining-with.html" rel="nofollow" target="_blank">Horizontal Format Data Mining with Extended Bitmaps - Extended version</a> </li>
<li><a href="http://ddweerasiri.blogspot.com.au/2010/12/horizontal-format-data-mining-with_31.html" rel="nofollow" target="_blank">Horizontal Format Data Mining with Extended Bitmaps</a> </li>
<li><a href="http://ddweerasiri.blogspot.com.au/2010/12/mooshabaya-mashup-generator-for-xbaya.html" rel="nofollow" target="_blank">Mooshabaya: Mashup Generator for XBaya</a></li>
</ul>
</div>
Anonymoushttp://www.blogger.com/profile/05849388591764685658noreply@blogger.com2tag:blogger.com,1999:blog-2427235520011315739.post-46474887730085505252012-09-14T18:19:00.001+10:002012-09-14T18:22:44.457+10:00The New Beginning<div dir="ltr" style="text-align: left;" trbidi="on">
Two years back on 13th of September, I joined WSO2 after my undergraduate studies from University of Moratuwa. WSO2 was a wonderful place for me (as a fresh graduate) to start my career. And I have been to several software companies in different parts of the world and I haven’t experience such a friendly culture and a freedom from any other places. <br />
<br />
Yesterday, after exactly two years I officially started my PhD studies at University of New South Wales with an induction for postgraduate researchers. I still feel like I am entering to a pitch black tunnel and I am still not sure when/how I will find the other end of the tunnel :). <br />
<br />
Anyway my life is not all about computer engineering. There are several other stuff on my bucket list like being a photographer, traveler, licensed scuba diver, etc. The following picture of me is a tryout of all above :).<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzb1w6vhYz1X9dhINRjjbSBOSMufLi-HjCFQtxMBgfJNQxpTqimL3cDwQ4WCkkGjjxn8hKaadhD1bxLihMARyatK-_FKpRXjBxsTKIWY-WBBscIG5SIT5o1I3RHfzqBaZd2nbjdT12DFw/s1600/scuba-diving-hikkaduwa.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img alt="Scuba diving at Hikkaduwa" border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzb1w6vhYz1X9dhINRjjbSBOSMufLi-HjCFQtxMBgfJNQxpTqimL3cDwQ4WCkkGjjxn8hKaadhD1bxLihMARyatK-_FKpRXjBxsTKIWY-WBBscIG5SIT5o1I3RHfzqBaZd2nbjdT12DFw/s400/scuba-diving-hikkaduwa.jpg" title="Scuba diving at Hikkaduwa" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Scuba diving at Hikkaduwa</td></tr>
</tbody></table>
<b>So looking forward to pursue the happiness with a new set of challenges :).</b><br />
<br /></div>
Anonymoushttp://www.blogger.com/profile/05849388591764685658noreply@blogger.com1tag:blogger.com,1999:blog-2427235520011315739.post-38077962020394160182012-08-29T16:17:00.003+10:002012-08-29T16:17:40.954+10:00A Scalable Multi-tenant Architecture for Business Process Executions<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: inherit;"><b id="internal-source-marker_0.55358583224006" style="font-weight: normal;"><span style="font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">The journal paper “A Scalable Multi-tenant Architecture for Business Process Executions” is our latest publication which discusses in detail our work on extending scalability and multi-tenancy support to Business Processes. It was recently published in </span><span style="background-color: white; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"><a href="http://www.igi-global.com/journal/international-journal-web-services-research/1079" rel="nofollow" target="_blank">International Journal of Web Services Research (IJWSR)</a>, vol. 9(2), pp. 21-41, April-June 2012. </span><span style="font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">Authors of this paper are <a href="http://academic.research.microsoft.com/Author/52444744/milinda-pathirage" rel="nofollow" target="_blank">Milinda Pathirage</a>, <a href="http://academic.research.microsoft.com/Author/1296677/srinath-perera" rel="nofollow" target="_blank">Dr. Srinath Perera</a>, <a href="http://academic.research.microsoft.com/Author/47366385/indika-kumara" rel="nofollow" target="_blank">Indika Kumara</a>, </span></b><b id="internal-source-marker_0.55358583224006" style="font-weight: normal;"><span style="font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"><a href="http://academic.research.microsoft.com/Author/36495691/denis-weerasiri" target="_blank">Denis Weerasiri</a></span></b><b style="font-weight: normal;"><span style="font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> and </span></b><b style="font-weight: normal;"><span style="font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"><a href="http://academic.research.microsoft.com/Author/2177177/sanjiva-weerawarana" rel="nofollow" target="_blank">Dr. Sanjiva Weerawarana</a></span></b><b style="font-weight: normal;"><span style="font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">.</span></b></span><br />
<b style="font-weight: normal;"><span style="font-family: inherit;"><span style="font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">Abstract of the paper is </span><br /><span style="background-color: white; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">Cloud computing, as a concept, promises cost savings to end-users by letting them outsource their non-critical business functions to a third-party in pay-as-you-go style. However, to enable economic pay-as-you-go services, the end-users need Cloud middleware that maximizes sharing and support near-zero cost for unused applications. Multi-tenancy, which let multiple tenants to share a single application instance securely, is a key enabler for building such a middleware. On the other hand, Business processes capture Business logic of organizations in an abstract and reusable manner, and hence play a key role in most organizations. This paper presents the design and architecture of a scalable Multi-tenant Workflow engine while discussing in detail the potential use cases of such architecture. Primary contributions of this paper are motivating workflow multi-tenancy, and the design and implementation of a scalable multi-tenant workflow engine that enables multiple tenants to run their workflows securely within the same workflow engine instance without modifications to the workflows. Furthermore, the workflow engine supports process sharing and process variability across the tenants and discusses its ramifications.</span><br /><span style="font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"><a href="http://www.igi-global.com/article/scalable-multi-tenant-architecture-business/70388" rel="nofollow" target="_blank">Paper can be accessed from here</a>.</span></span></b></div>
Anonymoushttp://www.blogger.com/profile/05849388591764685658noreply@blogger.com0tag:blogger.com,1999:blog-2427235520011315739.post-77685005288796154042012-08-27T04:43:00.000+10:002012-08-28T00:30:52.684+10:00A journey through the history of computers<div dir="ltr" style="text-align: left;" trbidi="on">
Computer History Museum, a place I like a lot in Mountain view, California. It’s the world’s largest history museum which explores the computing revolution and its impact on our lives. The journey starts from earliest calculating devices like "Abacus" to every landmark in the modern digital era.<br />
<br />
Some of the pictures from the visit.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhehLcyB0hBUonZ5M3pFz6ZJZ_GiS7EdYe4M6i9k8GvvcEvYZMM39XkkYxbS2l8c3HkOYXChL4M79IbPuYKm7x3gly1mPEZwK2RJbtw2gCdcr9X64QxED6U0FgvwXLzqT87J66LpZmU7Lo/s1600/IMG_0502.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhehLcyB0hBUonZ5M3pFz6ZJZ_GiS7EdYe4M6i9k8GvvcEvYZMM39XkkYxbS2l8c3HkOYXChL4M79IbPuYKm7x3gly1mPEZwK2RJbtw2gCdcr9X64QxED6U0FgvwXLzqT87J66LpZmU7Lo/s320/IMG_0502.JPG" width="213" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">At the entrance</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisMVHPVqPIG3cNpKk8vsXX2QXphvd-VyDik81Mi8VlN6lSlkm41ZE6ldYjlnxKTfwPZ14qn5p7bDDJVn_U2Iy3YzF0ImI-IPnbBKtcIcxqJr7gsSgwks2rKArHeKJm2_Dcp3HAn3O2Vrw/s1600/IMG_0537.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisMVHPVqPIG3cNpKk8vsXX2QXphvd-VyDik81Mi8VlN6lSlkm41ZE6ldYjlnxKTfwPZ14qn5p7bDDJVn_U2Iy3YzF0ImI-IPnbBKtcIcxqJr7gsSgwks2rKArHeKJm2_Dcp3HAn3O2Vrw/s320/IMG_0537.JPG" width="213" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">ENIGMA</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiN_mx0Yxltf_e1yCSquJl6qUBDeTOei8PAOkGIVQf5gSM-WXvV77YXmUtRfL5i2npLv8KMaRAbs1gmjGW3YnGHmNhzYIB2f_pOSU2VjqjS9olMZT4ixrlmFCOqnxb1RxmT-R7IuQLoYIY/s1600/IMG_0538.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiN_mx0Yxltf_e1yCSquJl6qUBDeTOei8PAOkGIVQf5gSM-WXvV77YXmUtRfL5i2npLv8KMaRAbs1gmjGW3YnGHmNhzYIB2f_pOSU2VjqjS9olMZT4ixrlmFCOqnxb1RxmT-R7IuQLoYIY/s320/IMG_0538.JPG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Who invented the computer?</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7JeDMHFpd8-NZo1ZIFX_xhg0RHBpQWIi0PsxabbZfmE0-sgc8HxgJoPT-u7e8boDDAVo8gXHFs35xfizXa8U-Rm-6NjuwZQ5q3gWyOyH-OasDRP4soDcNk_Pse3Oud8nyjW7wGI2Xh6U/s1600/IMG_0551.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7JeDMHFpd8-NZo1ZIFX_xhg0RHBpQWIi0PsxabbZfmE0-sgc8HxgJoPT-u7e8boDDAVo8gXHFs35xfizXa8U-Rm-6NjuwZQ5q3gWyOyH-OasDRP4soDcNk_Pse3Oud8nyjW7wGI2Xh6U/s320/IMG_0551.JPG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The evolution of programming languages</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaZVUdKX25jLBmXkNI-d2y_98hkNOzmEPdwO1JSnB_K_A_ZgfVFLqDNs4GP5Q0aEC8RmBxK-N7xX9_qxQlktiPtSwpMH0KmrwxOKzqZR9DzPQhPZO2FXG0mrY6EXHy_nrNghwMsic4wP0/s1600/IMG_0578.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaZVUdKX25jLBmXkNI-d2y_98hkNOzmEPdwO1JSnB_K_A_ZgfVFLqDNs4GP5Q0aEC8RmBxK-N7xX9_qxQlktiPtSwpMH0KmrwxOKzqZR9DzPQhPZO2FXG0mrY6EXHy_nrNghwMsic4wP0/s320/IMG_0578.JPG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">An early IBM server</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiF-hA4M8ZDsEWb2Mld1E01k9bl0YG_BZBWjOaQu0Mi_YTNxfH5KxDAHigEc-vALEJ9nqhOMIv_JZuCoaqkxKeSA1YX0b9mcq-6m6bCHlaJGapHheiIc8ztZ0vQ6MDxAVRvTDZMqA-1cw/s1600/IMG_0585.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiF-hA4M8ZDsEWb2Mld1E01k9bl0YG_BZBWjOaQu0Mi_YTNxfH5KxDAHigEc-vALEJ9nqhOMIv_JZuCoaqkxKeSA1YX0b9mcq-6m6bCHlaJGapHheiIc8ztZ0vQ6MDxAVRvTDZMqA-1cw/s320/IMG_0585.JPG" width="213" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">An early Google server</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQXWTyIQTqdcDicFwq7QjiC3yfdvs4M1cJqmuSs9_BsBxWhea-oasu1bQL19WWM0oYdXxtDRul3DgZVb4WVXbiU7KOMnGylp-pmeMRYq6-wf-RKN5L7OCNp2YQhDODJbYa7UtM6y_4W_U/s1600/IMG_0600.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQXWTyIQTqdcDicFwq7QjiC3yfdvs4M1cJqmuSs9_BsBxWhea-oasu1bQL19WWM0oYdXxtDRul3DgZVb4WVXbiU7KOMnGylp-pmeMRYq6-wf-RKN5L7OCNp2YQhDODJbYa7UtM6y_4W_U/s320/IMG_0600.JPG" width="213" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Some thoughts about .com boom and bust</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjC4wmDjIpch64ud60r8wR9hHZGBqWTgTNr8JvqxnVXo9A2J0YzddVKqDH1reQLsILn0xzO0_Peb7Xb_ZaTNoYwQxqO3aLNeR-IRfPWJQBaIB_n0yuJ7C2pQ16JFqwxZtuG2ZxbGpu3xCc/s1600/IMG_0607.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjC4wmDjIpch64ud60r8wR9hHZGBqWTgTNr8JvqxnVXo9A2J0YzddVKqDH1reQLsILn0xzO0_Peb7Xb_ZaTNoYwQxqO3aLNeR-IRfPWJQBaIB_n0yuJ7C2pQ16JFqwxZtuG2ZxbGpu3xCc/s320/IMG_0607.JPG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">On the way to the museum </td></tr>
</tbody></table>
</div>
Anonymoushttp://www.blogger.com/profile/05849388591764685658noreply@blogger.com0tag:blogger.com,1999:blog-2427235520011315739.post-43533752110048803542012-08-25T02:32:00.003+10:002012-08-25T02:35:29.525+10:00WSO2 BPS v3.0.0 Beta is out<div dir="ltr" style="text-align: left;" trbidi="on">
WSO2 BPS v3.0.0 Beta is out
The release candidate of WSO2 BPS v.3.0.0 was released with lot of long awaited features and with a load of bug fixes.<br />
<br />
Some of the new features in the Beta release are<br />
<ul style="text-align: left;">
<li>WS- Human Task support </li>
<li>WS- BPEL4People support </li>
<li>BPEL Instance Illustrator </li>
<li>BPEL deployment descriptor editor </li>
<li>Improved BPS management console and BPS documentation </li>
</ul>
<br/>
You can download the binary distribution from <a href="http://people.wso2.com/~sanjayav/WSO2BPS-3.0.0-Beta/" target="_blank">here</a>.</div>
Anonymoushttp://www.blogger.com/profile/05849388591764685658noreply@blogger.com1tag:blogger.com,1999:blog-2427235520011315739.post-72339987713782562942012-08-20T02:08:00.000+10:002012-08-20T02:08:00.288+10:001st Google+ Hangout<div dir="ltr" style="text-align: left;" trbidi="on">
This is cool and runs smooth with an average 3G cellular connection.
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9kT5_NioZ_Ib71x0vTOq2q2EN932hfdYdav0q3983n8e731rmlXAyYh5qBmGuimuWFk4nC5KSgLDrKAnkckT6O23eH-TosWQ9OZvLXPl5vjIhU6DYJVmwe5qCcddFmEzSN86840U3qdA/s1600/google-hangout.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="237" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9kT5_NioZ_Ib71x0vTOq2q2EN932hfdYdav0q3983n8e731rmlXAyYh5qBmGuimuWFk4nC5KSgLDrKAnkckT6O23eH-TosWQ9OZvLXPl5vjIhU6DYJVmwe5qCcddFmEzSN86840U3qdA/s400/google-hangout.png" width="400" /></a></div>
<br /></div>
Anonymoushttp://www.blogger.com/profile/05849388591764685658noreply@blogger.com0tag:blogger.com,1999:blog-2427235520011315739.post-89177118760023807432012-08-16T01:27:00.000+10:002012-08-16T15:27:45.283+10:00Configuring a log4j logger to WSO2 ESB main sequenceConfiguring separate loggers to different proxy services is a useful feature in WSO2 ESB.<br />
You can do this by setting a log appender as follows.<br />
<br />
<script src="https://gist.github.com/3360998.js?file=gistfile1.txt"></script>
Here <i>“__SynapseService”</i> is the <i>SERVICE_LOGGER</i> for the main sequence. Similarly you can use the name of your proxy service as the <i>SERVICE_LOGGER</i> to manage logs separately for each of those proxies.<br />
Anonymoushttp://www.blogger.com/profile/05849388591764685658noreply@blogger.com0tag:blogger.com,1999:blog-2427235520011315739.post-11933474074231880332012-04-19T21:30:00.001+10:002012-04-19T21:33:26.655+10:00WS-BPEL 2.0 Extension Activity Development for WSO2 BPS<div dir="ltr" style="text-align: left;" trbidi="on">
There are several ways to extend WSO2 BPS runtime functionalities such as<br />
<ul style="text-align: left;">
<li>BPEL extension activities</li>
<li>Custom XPath extensions</li>
<li>Message Exchange Interceptors etc.</li>
</ul>
<br />
BPEL extension activities enable a pluggable architecture that allows for registering third party functionality to the WS-BPEL 2.0 execution runtime.<br />
There are several BPEL extension activities supported by WSO2 BPS and with the upcoming WSO2 BPS 3.0.0 release, we are going to introduce several new BPEL extension activities such as<br />
<ul style="text-align: left;">
<li>BPEL4People Activity - Enables human interactions based on <a href="http://docs.oasis-open.org/bpel4people/ws-humantask-1.1.html" target="_blank">WS-HumanTask specification</a> via BPEL processes using <a href="http://docs.oasis-open.org/bpel4people/bpel4people-1.1.html" target="_blank">BPEL4People specification</a>.</li>
<li>Business Activity Monitor Activity - Enhances real time KPI(Key Performance Indicators) monitoring via WSO2 BAM</li>
</ul>
<br />
Here I have written a simplest extension activity implementation with a sample BPEL process so, a BPEL developer can re-use and extend it to have their own implementation.<br />
The extension activity implementation can be found from <a href="https://svn.wso2.org/repos/wso2/people/denis/org.wso2.carbon.bpel.extension.activity.sample/" target="_blank">https://svn.wso2.org/repos/wso2/people/denis/org.wso2.carbon.bpel.extension.activity.sample/</a>.<br />
<br />
To come up this implementation, I followed this <a href="http://warunapw.blogspot.com/2009/11/how-to-write-bpel-extension-for-wso2.html" target="_blank">blog-post</a> from Waruna Ranasinghe and it brings you more in-depth knowledge on BPEL extension activity development.</div>Anonymoushttp://www.blogger.com/profile/05849388591764685658noreply@blogger.com7tag:blogger.com,1999:blog-2427235520011315739.post-59017220328744353792012-04-13T23:52:00.000+10:002012-04-14T00:03:28.896+10:00Wishing you a very happy new year 2012!<div dir="ltr" style="text-align: left;" trbidi="on">
Since it is the festive season of Sinhala and Hindu new year for all Sri Lankans, I wish you all a happy and prosperous New Year 2012!. Also my team is celebrating the new year dawn with their loved ones except for few guys at on-site work outside LK.<br />
<br />
With just the beginning of the vacation, we spent few days at Heritence Ahungalle, a beach hotel on the west coast of Sri Lanka. I had a luxury suite thanks to a good old friend from school days :). But we spent most of the time in the swimming pool and the beach due to the hot and humid weather.<br />
Also the hotel is quite renowned for its sustainable building architecture by Geoffrey Bawa.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijaFFj05j1hfN071kZcN6x5JO-feA_KFFFPKC5mMCI-XvriLhQm2TVmbOC9OZfS8fUiMOPNrPenL7cM4-iXaWLwBDacY722AAC4HeT4CR-uYtn8CNV-qhFIWQf9vxILwYHWMsTLQxBv5U/s1600/LoobyPoolView.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijaFFj05j1hfN071kZcN6x5JO-feA_KFFFPKC5mMCI-XvriLhQm2TVmbOC9OZfS8fUiMOPNrPenL7cM4-iXaWLwBDacY722AAC4HeT4CR-uYtn8CNV-qhFIWQf9vxILwYHWMsTLQxBv5U/s400/LoobyPoolView.JPG" width="400" /></a></div>
<br />
Related Posts<br />
<ul style="text-align: left;">
<li><a href="http://ddweerasiri.blogspot.com/2012/01/2012-has-arrived.html">http://ddweerasiri.blogspot.com/2012/01/2012-has-arrived.html</a></li>
<li><a href="http://ddweerasiri.blogspot.com/2011/04/wishing-you-very-happy-new-year.html">http://ddweerasiri.blogspot.com/2011/04/wishing-you-very-happy-new-year.html</a></li>
<li><a href="http://ddweerasiri.blogspot.com/2010/02/happy-new-year-sri-lanka.html">http://ddweerasiri.blogspot.com/2010/02/happy-new-year-sri-lanka.html</a></li>
</ul>
<br /></div>Anonymoushttp://www.blogger.com/profile/05849388591764685658noreply@blogger.com10tag:blogger.com,1999:blog-2427235520011315739.post-43022406037001880672012-04-12T02:27:00.002+10:002012-04-13T23:01:16.943+10:00Development and Deployment Best Practices for WSO2 BPS<div dir="ltr" style="text-align: left;" trbidi="on">
This post contains an updated version of best practices related to developing and deploying business processes on WSO2 BPS (Business Process Server).<br />
<br />
<b>Table of Content</b><br />
<ul style="text-align: left;">
<li>Deployment best practices</li>
<li>Development best practices</li>
</ul>
<b>Deployment best practices</b><br />
Default distribution of WSO2 BPS comes with embedded H2 database as BPEL engine's persistence storage and other settings which are suitable for use in development environment. But when you are going to production with WSO2 BPS, there are several configurations you need to change according to your production requirements. These configurations will change based on how much requests BPS is going to handle per second, your auditing and monitoring requirements, performance requirements and nature of your process. Following are the main things you should do before going production with WSO2 BPS.<br />
<ul style="text-align: left;">
<li>If the deployed BPEL processes has any conflict like<br /> - Same BPEL process is deployed under several different package names<br /> - When a deployed BPEL process has an existing service name<br />Those deployment issues are displayed under the relevant package in "Deployed Packages" page.</li>
</ul>
<div style="text-align: left;">
</div>
<ul style="text-align: left;">
<li>Configure external database server like MySQL as your persistence storage instead of embedded H2 database. You may experience slight performance gain for simple BPEL processes with H2 database, but when it comes to multiple concurrent requests and complex processes H2 can't server your performance needs.</li>
<li>Configure multi-threaded Http connection manager connection pool settings to suits to your BPEL processes. There are two configurations in Http connection manager. One is max total connections and other is max total connection per host. These settings will depend on number of concurrent requests BPS needs to handle and number of external service calls incorporated per process instance.</li>
<li>Configure BPEL process persistence - If you are implementing processes with request-response interaction model use in-memory processes instead of persistence processes. Whether to use in-memory or persisted processes will mainly depends on your business use-case.</li>
<li>Configure even-filtering at process and scope level. So you can save lot of database resources by reducing number of events generated.</li>
<li>Use process-to-process communication, if you are calling one BPEL process from another BPEL process deployed in the same BPS instance, it's better to use process-to-process communication to reduce overhead introduce by additional network calls.</li>
<li>In the default WSO2 BPS distribution, the size of a fault message (which is stored in BPEL DB) is limited to ~4KB.<br /><br />eg - See the following BPEL database SQL script<br /><script src="https://gist.github.com/2360331.js?file=gistfile1.sql">
</script>So if a deployed BPEL process is expected to handle larger size of fault messages, the above database script should be modified and re-built from the source distribution accordingly.</li>
<li>Also make sure to configure process instance cleanup. Large number of process instance data will be accumulated in the BPEL engine persistence storage if you persisted processes, so to reduce performance overhead introduced by database size you should configure instance cleanup.</li>
<li>In addition to above things you should be careful when deploying WSO2 BPS in virtualized environments. We have seen random increase of network latency and random performance degradation when running on VMs.</li>
<li>If the BPEL is going to be deployed as a WS-secured service then, it's recommended to remove all the http endpoints from the process WSDL. Else the WSDL generation for the particular BPEL process will get failed.<br /><br />eg -<br /><script src="https://gist.github.com/2360316.js?file=gistfile1.xml">
</script>SHOULD BE<br /><script src="https://gist.github.com/2360325.js?file=gistfile1.xml">
</script></li>
</ul>
<div>
<i>Note 1</i>: Above mention configuration optimizations are true for Apache ODE also.</div>
<div>
<br /></div>
<div>
<i>Note 2</i>: Above mention best practices are valid for WSO2 BPS 3.0.0-SNAPSHOT and upward. You can do the above optimizations to older versions WSO2 BPS, but configurations and configuration mechanisms will be different. All of the above optimizations are supported by Apache ODE, but configuration is very different from WSO2 BPS.</div>
<div>
<br /></div>
<div>
<div>
<b>Development best practices</b></div>
<div>
When it comes to BPEL development in WSO2 BPS, BPEL developer need to aware some scenarios which could lead to some conflictions. Those are listed as follows.</div>
<div>
<ul style="text-align: left;">
<li>It's not encouraged to refer the same variable as the input(in <receive/>) and output(in <reply/>) of the process. This could lead to problems if the message headers (<Header/> in SOAP <Envelope/>) in output variable are processed at the client-end. One possible use-case is when the process is secured if the input and output variables are same then the headers of the input will be used when the output is sent back to the client. So it could prone to errors if those security headers are not expected at the client end.</li>
</ul>
</div>
</div>
</div>Anonymoushttp://www.blogger.com/profile/05849388591764685658noreply@blogger.com7tag:blogger.com,1999:blog-2427235520011315739.post-39783838965934332622012-03-25T05:27:00.000+11:002012-03-25T06:08:45.920+11:00RESTful API access via Business Processes<div dir="ltr" style="text-align: left;" trbidi="on">
This is something I wrote for fun :). <a href="https://svn.wso2.org/repos/wso2/people/denis/bpel-rest-invocation-sample/stand-alone-bpel-rest-samples/" target="_blank">These samples</a> demonstrate on how to invoke <a href="http://en.wikipedia.org/wiki/Representational_state_transfer" target="_blank">REST</a> API methods like GET and POST from a BPEL process running on <a href="http://wso2.com/products/business-process-server/" target="_blank">WSO2 BPS</a>.<br />
Here I used a RESTful API which is enabled by <a href="http://www.goodreads.com/" target="_blank">GoodReads</a>, a social networking site for book readers.<br />
You need to attain your own API key to access GoodReads REST API. So make sure to read the README.txt which explains on how to get your own API key.<br />
I’m working on BPEL samples which use PUT and DELETE methods and will update the post once they are done.<br />
<br />
Related Posts<br />
<ul style="text-align: left;">
<li><a href="http://ddweerasiri.blogspot.com/2012/03/manipulating-http-headers-via-unified.html" target="_blank">Manipulating HTTP headers via Unified-Endpoints</a></li>
<li><a href="http://ddweerasiri.blogspot.com/2012/03/unified-endpoints-for-bpel-processes.html" target="_blank">Unified endpoints for BPEL Processes</a></li>
</ul>
</div>Anonymoushttp://www.blogger.com/profile/05849388591764685658noreply@blogger.com0