The Architecture of Open Source Applications