We always talk here on the blog about Applications of Composition and its challenges. However, the composition may actually happen at different levels. When we think of architecture composition, we can compose the layers of presentation , service interfaces , business rules and even different data sources.
For each level of composition we can apply different architectural patterns, such as Delegation, Aggregation Command Composition Event, Aggregation, IoC – Inverse of Control, Observer pattern, Publish / subscribe, Dependency Injection, Presentation Separated, Separated Interface Adapter, Composite Views, between the principals.
So when you are considering an architectural composition, it is interesting to evaluate these options. Will we make service calls or webparts in the web interface? Will we compose business rules and processes or relational databases in our application? And for enterprise scenarios, will we make different service areas by bus?
More recently, we had a discussion about increasing services in the cloud computing, where a cloud infrastructure can host new services groups, which are components in our architecture.
The next question is: what is the best level of composition? Should I make the presentation interface or service interface? Should I compose services with local services in the cloud? What services should be in the cloud and what should be hosted on local infrastructure? In databases, is it interesting to compose different sources for my application?
Here comes the important role of architect, you should evaluate each case according to the scenario of business involved. In fact, there is no single, correct answer for all scenarios. It’s wrong to say that we need to combine, for example, 50% in local infrastructure and 50% in the cloud services. Everything will depend on the services involved, the type of user, business application, the local infrastructure and the maturity of your company.
And since I mentioned the “maturity”, which are the processes and mechanisms that you apply Information Technology in the operation of your company? Your Information Technology includes monitoring, logging, exception handling, service management, governance, etc. Without Information Technology processes, any direction to a composition architecture may suffer from increased complexity and distribution of components at all levels.
So stay tuned and be sure to talk with your infrastructure team to understand about the capabilities of existing platform in your enterprise. The architect of infrastructure should be the best friend of architect solution!
Maybe in future there is even the same person … or may be not…
- How Cloud Computing Is Changing The Labor Market - March 25, 2015
- Adopting Infrastructure as a Service Can be a Good Deal - March 17, 2015
- Will Virtualize? Take These Six Points Into Consideration - March 12, 2015