I am working on few time-lapses these days. All shots were taken in Randwick, Sydney.
Tuesday, December 17, 2013
Thursday, October 17, 2013
Saturday, August 10, 2013
Defining Traditional Software Configuration Management (SCM)
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.
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]
Tichy - "Software configuration management (SCM) is the discipline of managing the evolution of large and complex software systems."[2]
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]
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]
A common list of processes that usually are included in the definition of software configuration management:
- Identify configuration items
- Version control of configuration items
- Release management
- Build management
- Controlling/Adapting to changes
- Tracking status
- Auditing
[1] IEEE-Standard-729-1983, Standard Glossary for Software Engineering, ANSI/IEEE.
[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.
[3] Carnegie Mellon Univ. Software Engineering Inst.The Capability Maturity Model: Guidelines for Improving the Software Process, Addison Wesley, 1995.
[4] Philippe Kruchten, The Rational Unified Process: An Introduction, Addison Wesley, 2003.
Monday, July 1, 2013
Understanding the organisation's culture when designing a tool
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.
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.
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.
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.
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.
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.
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.
Monday, November 12, 2012
Dynamic Performance Management in Multi-tenanted Business Process Servers Using Nonlinear Control
This conference paper "Dynamic Performance Management in Multi-tenanted Business Process Servers Using Nonlinear Control" 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 10th International Conference on Service Oriented Computing (ICSOC 2012), pp. 206-221. Authors of this paper are Tharindu Patikirikorala, Indika Kumara, Alan Colman, Jun Han, Liuping Wang, Denis Weerasiri and Waruna Ranasinghe.
Abstract of the paper is
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.
This paper can be accessed from here.
Relavant articles
Abstract of the paper is
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.
This paper can be accessed from here.
Relavant articles
Friday, September 14, 2012
The New Beginning
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.
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 :).
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 :).
So looking forward to pursue the happiness with a new set of challenges :).
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 :).
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 :).
![]() |
Scuba diving at Hikkaduwa |
Wednesday, August 29, 2012
A Scalable Multi-tenant Architecture for Business Process Executions
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 International Journal of Web Services Research (IJWSR), vol. 9(2), pp. 21-41, April-June 2012. Authors of this paper are Milinda Pathirage, Dr. Srinath Perera, Indika Kumara, Denis Weerasiri and Dr. Sanjiva Weerawarana.
Abstract of the paper is
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.
Paper can be accessed from here.
Abstract of the paper is
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.
Paper can be accessed from here.
Subscribe to:
Posts (Atom)