An Approach for Modeling and Formalizing SOA Design Patterns