To me, one of the central ideas in programming, and engineering in general, has been how you connect smaller components to build bigger ones. Whether the structures arising from these connections are thought of as layering of components on top of each other (hierarchical/vertical) or are thought of as components living at the same level Continued »
Author Archive
Scalability and robustness
Since a very compelling business reason for using cloud computing is the ability to scale on demand and when needed, using the best practices and guidelines for designing large scale distributed systems is a good starting point. While academia has a preference for distributed transactions, ACID properties, and all kinds of consensus protocols, you are better off with loosely coupled systems where nodes will eventually reach a consistent state (as opposed to waiting for all nodes in a very large system to reach a consistent state before proceeding). Considering the state of existing systems, loosely coupled self healing self regulating systems should be preferred over system with exotic distributed transactional properties and consensus protocols. Continued »
Enterprise Application Integration
You need to consider how your system integrates with other systems in your organization. Clouds are good but one-off systems that use cloud but do not integrate with existing systems will diminish the payoffs of using a cloud.
You need to consider how your system and its data get integrated with existing data. This may need to be done both ways. Without access to existing data or data created and maintained by your cloud based system, you will again limit the potential of your system under design. Continued »
Definitions and architecture
I am not a big fan of using definitions as a starting point. In technology many useful and successful concepts have escaped definition. People still argue about what exactly is an object in an object-oriented system. There is no scarcity of definitions for software architecture. The internet cannot be pinned down to a simple definition. A definition, however, it is still useful in certain contexts. Continued »
I recently took part in a panel discussion on cloud computing and how it relates to software architecture. The event used an online event organizer for signing up and the website wouldn’t let me register for the event. I later found out that I could not sign-up because the event was sold out. This says something about the hype surrounding cloud computing which has become the in-thing to be ’seen with’. The panel discussion was interesting and animated and one takeaway for me was that everybody had their own idea of what cloud computing is and to some it was barely more than a buzzword. Continued »
Computer chip manufacturers cannot keep on increasing the clock speed indefinitely to make their processors faster. They seem to have already reached the limit (on clock speed) and have started putting multiple Continued »
