Dalesa is a Peer – to – Peer web caching software that provides a caching proxy for web browsers.
Dalesa is a cooperative web caching software based on peer – to – peer computing. Nodes participating in the network will expose their web caches to the entire system through peer – to – peer web object (document) lookup algorithms. This project focuses on using various group communication technologies such as distributed hash tables and IP multicasting to implement robust document lookup techniques.
The system will provide a proxy interface and an API for browsers and other potential user agents. User agents such as web browsers can embed the peer – to – peer lookup algorithm by using the API. However, when changes to the code of the user agent is not allowed or inconvenient the proxy can be used.
The system also comes equipped with a web interface for administration and visualization of the data and activities of the corresponding peer – to – peer node.
The project was founded by Wathsala Vithanage in January 2009 at Lanka Software Foundation, Sri Lanka. Later Nuwan Gunratna and Nishshanka Sirisena joined the project. Project was funded by Information and Communication Technology Agency of Sri Lanka under eSociety grant for the first year.
The system which was developed in C language appeared as a solution to experiment cooperative web caching through peer – to – peer technologies. At the initial stage, developers focused on developing the simplest possible peer – to – peer document lookup algorithm using IP multicasting. Initially, the system was divided into two components; the HTTP caching module and peer – to – peer discovery module. The HTTP caching module performs HTTP request/response processing, cache store management and cache index management. The document lookup module is used for discovering documents (web objects) scattered throughout the network.
The core of the system such as HTTP request/response processing, Caching, Multicast based discovery protocol was coded by Wathsala, including Win32 port. Nuwan has also contributed to the discovery protocol. The web based UI is developed by Nishshanka from ground up.
During last couple of years there has been some research on peer – to – peer web caching technologies, such as Squirrel based on Pastry DHT. However, as of this writing there is no software that implement those concepts, therefore we believe that peer – to – peer caching should come out of it's research cocoon to the main stream computing as free and open source products.
Apache has the greatest collection of web related software including the Apache web server with a proven community oriented development model called “Apache Way”. Therefore, we believe that Apache is the ideal place for a free and open source peer – to – peer web cache that will make the web faster.
- Developing a Peer - to - Peer web cache that will be equivalent to a centralized web cache in functionality.
- Optimizing the performance, perceived latency of the developed system based on performance measurements.
As of this writing, the project has a functional system based on IP multicasting. The project progressed for about one year at Lanka Software Foundation where three developers continuously contributed to the project. IP multicasting system should be further improved based on performance data collected from the test bed. At the same time other group communication methods such as various DHTs and application level multicasting can be used for building the peer - to - peer overlay that will become an alternative to the current IP multicasting based system.
Meritocracy is a practice we thrive for. At the moment due to small number of developers and the short duration and novelty of the project this principal is not practiced. However, as we open it for a larger community where different individuals could continuously contribute to the project meritocracy becomes the healthiest and the ideal practice. Therefore, we plan to follow the practice of meritocracy as soon as the code is ready for with it's first release candidate.
At the moment the Dalesa community is limited to three individuals as it has just started but we are looking forward to increase this number and grow the community. We believe that Dalesa could easily accomplish this task due to it's novelty and the niche in the market for a peer - to - peer web caching solution. Incubating Dalesa at Apache will also greatly increase it's chances of building a healthy community around it in a shorter time period.
Since Dalesa started at Lanka Software Foundation initial team of core developers are fellows at Lanka Software Foundation. As the initial community grows the team of core developers will be increased based on meritocracy.
Dalesa is a web cache. Web caching is considered as a core component in world wide web infrastructure which Apache web server has become an important part. Therefore, Dalesa aligns with Apache's interest in building the best open source web infrastructure using various Apache projects. At the same time we also believe that Dalesa may benefit from Traffic Server project and Apache Portable Runtime, it's community and experience in building a great peer - to - peer web cache.
There is risk of becoming an orphaned project as Dalesa has only three committers at the moment. But it is still too early to decide as project is barely one year old as of this writing. In the future we are looking forward to get more visibility and thereby eliminate the possibility of becoming orphaned.
Inexperience with Open Source
One out of the three developers has experience with open source project as he was a Google Summer of Code student in 2007. Lanka Software Foundation also has initiated several successful open source project and that experience of the institution has been greatly helpful in driving the project successfully for a one year.
Currently, all three developers are at Lanka Software Foundation and that is a risk, but again it is mostly due to the age and the birth of the project. We hope that once we start interacting with a larger community we will be able to recruit developers with diverse backgrounds.
Reliance on Salaried Developers
At the moment, the project relies on salaried developers, from 31 - January - 2010 there wont be any salaried developer working on this project. However two out of the three developers are committed to work on this project even after 31 - January - 2010.
Relationships with other Apache Products
Currently there is no relationship between any Apache project but our next major version 2.0.0 will be a rewrite using Apache Portable Runtime as it will make the system more portable and HTTP standard compliant. In the future the project may also benefit from the Apache Traffic Server project.
A Excessive Fascination with Apache Brand
Lanka Software Foundation had contributed to the Apache project in the past and had maintained a very healthy relationship with Apache project. Previous projects initiated by Lanka Software Foundation have been mutually beneficial for both parties. As mentioned in the Rationale section, proposed project to incubate at Apache has a great potential of becoming a useful software and we already possess a considerable code base hosted at Sourceforge. At this moment we seek visibility for the project and strong contributors that will build a healthy open source project. Therefore, we honestly believe that Apache will be a great place to achieve these goals. At the same time as we have done earlier, it is ensured that all Apache brand policies will be respected while maintaining a very constructive relationship with the incubator PMC.
More information on Dalesa could be found at http://dalesa.sourceforge.net
Initial source of the proposed project is available at sourceforge.net SVN for the project. It is written in C language from scratch by developers at Lanka Software Foundation while Flash scripts used for the web UI comes from Open Flash Chart project with LGPL license. https://dalesa.svn.sourceforge.net/svnroot/dalesa is the SVN repository hosted at Sourceforge.net.
Everything used in the project comes with Apache compatible license.
libssl is used for generating SHA-2 hashes.
- Wathsala Vithanage ( email@example.com )
- Nuwan Rajitha Gunarathne ( firstname.lastname@example.org )
- Nishshanka Sirisena ( email@example.com )
- Wathsala Vithanage - Lanka Software Foundation (Senior Software Engineer/Project Lead)
- Nuwan Rajitha Gunarathne - Lanka Software Foundation (Senior Software Engineer)
- Nishshanka Sirisena - Lanka Software Foundation (Software Engineer)
Sanjiva Weerawarana - firstname.lastname@example.org
- We are looking for mentors