Architectural Support for Context-Aware Mobile Learning Applications