Anne Thomas has summarized in a webinar the shift from large applications to small focused apps relying on services, while Matias Duarte has spoken in an interview about connecting these apps.
During a webinar entitled Application Architecture for Digital Business, Anne Thomas, VP Distinguished Analyst at Garner, presented the current trends in application architecture noting that the time of large all-in-one applications focused on completeness is passing away, and we are witnessing a shift towards small apps focused on simplicity. The driving force for apps is the desire to provide the best user experience, so each app is created as simple as possible with a specific user in mind, leaving aside anything that is not absolutely necessary. Apps generally rely on highly scalable services to accomplish their tasks.
Thomas also noted that many are turning towards microservices built on SOA principles and Domain-Driven Design patterns:
- Each microservice encapsulates one specific capability
- Each microservice owns its data
- The dependencies on other services are made explicit
- Commands and queries are performed on microservices via Web APIs
- Notifications on changes in one data model are propagated through asynchronous messages
- Systems are using a BASE rather than an ACID transaction model
The following slide (PDF) shows how a client interacts with a microservice and how events are propagated among services:
According to Thomas, the client uses POST, PUT or DELETE to execute commands on a microservice and GET to query it. When a command is executed, an internal event handler updates the data model (not shown here but included in the “Query” component) and also generates an asynchronous event, informing interested microservices on what changed. A publish-subscribe broker intermediates message communication.
This move towards apps has been fueled by mobile which has introduced a major limitation: the screen size. While possible, it is quite unpractical to recreate a standard desktop application with menus and toolbars on a mobile device. A new approach had to taken, as Matias Duarte, VP of Design at Google, remarked during FORM SF 2014: Fireside Chat (24m12s):
One of the biggest benefits of going to mobile was not any of the specific design patterns that came out of it, but simply the constraint that the screen is too small. You cannot put all that stuff on it. You have more variety of more focused tools instead of one large tool that has a lot of complexity, and you only use a small percentage of it, but you are burden by all this complexity, even if you only use a small part of it.
While these simple apps seem to be limited in performing complex tasks, Duarte considers there is potential in connecting such small apps (25m50s):
One of the places that is open frontier is in getting our more simple, more focused, more intuitive tools to work better together, to work in concert and to do things with them together in seamless ways that they couldn’t do just by themselves.
According to Duarte, apps should be aware of each other and of the environment, exchanging information and capabilities in a natural way. He noted that the capabilities of mobile apps are currently pretty much isolated, suggesting that this is an area where a lot could be done and achieved. When asked if Google is currently working on this, he dodged the question saying only the he is “passionate about it.” While we cannot say for sure what Google is doing to connect apps, we know they are pushing mobile deep links which is the first step in this direction.