Architectural Models In Distributed Systems