Catalog of Patterns of Enterprise Application Architecture