An Object-Oriented and Context-Aware Approach for Distributed Mobile Applications