Text this: Designing Computational Grids Using Best Practices in Software Architecture