In recent past, the web or mobile application architecture has been dramatically changed due to the advancement of technologies. The various advancements due to the easy availability of large scale computational potential like Software as a Service (SAAS), Platform as a Service (PAAS) and Infrastructure as a Service (IAAS). Making use of these computational potentials the industry is delivering complex, real time, distributed, scalable applications to address the real world problems faced billions of people across the world.
What’s wrong with the traditional application architecture?
Trust me, the traditional application architecture which we are using day to day in application development has nothing wrong with it. Only if the concerned product or application targets the set of users with frozen volume to some extent. Is this the case for all the applications / Products which are being consumed by us like Facebook, Whatsapp or even Dubsmash? I don’t think so.
Let’s discuss few statistics about Facebook (The Social Network). Facebook is being used by 1.44 billion active users across the world, Size of user data that Facebook stores is above 300 petabytes. The network traffic, web server hits and storage of Facebook increases directly proportional to the volume of users, which is not only in the case of Facebook, This happens with most of the successful products like Facebook, Whatsapp, coursera and dubsmash etc.
Choosing right technology at the right time
The exponential storage and processing issue can be addressed by building Scalable Distributed application in which the hardware, processing and storage capacity of the application can be increased easily at any point of time. Along with few guidelines like separation of application tiers, implementing Horizontal / Vertical Scaling and Horizontal / Vertical Partitioning across the application to be followed while architecturing an application.
The technology era we are working with has tons of cool hidden stuffs that we should have tried before architecturing our application or product. As mentioned earlier, the enormous computational potential can be accessible using our laptop or even tablets with the help of Infrastructure as a Service (IAAS). Apart from this, cutting edge Big Data concepts like Map Reducing, NoSql database and other Integration Platforms, Machine Learning Platforms can be easily accessed using Platform as a Service (PAAS) and Software as a Service (SAAS).
Making use of right concept with the right technology is completely an architect’s choice before developing an application which is for long run.
Will Scalable Homogeneous architecture address the world?
Definitely not. We have just worried about the scalable architecture of a homogeneous, device specific applications, we are yet to be much concerned about the heterogeneous, device independent applications.
The heterogeneous systems may work with highly decoupled distributed architecture would involve various patterns and practices to be concerned in each and every layer before proceeding into integrating distributed systems. For an example – Enterprise Service Bus – a software architectural model can be used for designing and implementing communication between mutually interacting software applications in a SOA. The software application mentioned above can run on any one of the devices like desktop computer, tablet, mobile, apple watch or even google glass. With the arrival of Internet of Things (IoT), In future, the devices may get more distributed. Such that a software application in a SOA may be consumed by variety of devices. Hence the application should be architectured in such a way to address Scalable heterogeneous device independent applications.