BACKGROUND IMAGE: iSTOCK/GETTY IMAGES
Service-oriented architecture is a well-known force in enterprise application development, and SOA is driving such new software architecture trends as mobile applications, big data analytics and the use of cloud computing resources. At EclipseCon 2013 in Boston, application architects were reminded of the power that loosely coupled services have to increase apps' flexibility and stave off their obsolescence.
"Architecture becomes obsolete," said Jeffrey Hammond, Forrester's principal application development and deployment analyst, during his keynote address. "It happens in warfare and it happens in application architecture." He likened monolithic on-premises architecture to the sturdy giant castles of medieval Europe. Castles were impervious to the swords and arrows of their day, but then new technology produced powerful cannonballs that could knock down great chunks of the rigid castle walls.
Hammond implied that many enterprise architects have found themselves working in a castle of servers. According to him, it's time for enterprise application development to dig down into the earthen-walled forts of elastic cloud computing resources. Maybe his metaphor sort of ran out of steam, but his point is that today's enterprise architecture is growing obsolete, and new software architecture trends will shape the way we achieve today's development goals.
Model-view-controller development patterns worked well, and in some cases are still going strong, Hammond said, but newer systems such as pipe-and-filter systems and broker architectures are beginning to win out. They win because they can better meet the major challenges of the day. According to Hammond, those challenges include:
- The need for agility,
- The need for rapid feedback and being able to act on that feedback,
- The need for a desirable user experience, and
- The need for an evolving infrastructure that will support future enterprise application development efforts.
Hammond sees a trend toward software architects pursuing these goals by experimenting with smaller projects that might or might not show results. The cost of starting up a software architecture improvement project has gone down significantly, and that means large application development organizations can afford to start more projects on a shorter budget. Ideally, each project is a discrete experiment that's examining a testable hypothesis. If at least one of the projects is successful, it can pay for the effort wasted on projects that show no success. Even the projects that have to be shut down will teach the organization something, if the company is prepared to learn from its mistakes.
These experiments are also getting a bit more complex, Hammond said. "Organizations are getting into multivariate testing and examining the interactions of complex traffic routes," he said. He added that enterprise architects have risen from being technical artists to being engineers, and now successful architects are expanding from engineering methods to the scientific method.
To some extent, all these experiments are proving that the service-oriented hypothesis was true. Organizations increasingly rely on reusable services for continuous deployment. Modular design and loosely coupled services are delivering on the promise of SOA. Organizations are starting to get to the promised land of organic releases that happen as soon as a feature is completed.
Hammond says successful organizations are hardening their services in highly modular components, releasing viable feature releases early and independently -- in contrast to grouping them together in major releases -- and testing applications in production with a new generation of testing tools and techniques to ensure that features don't just run in the lab, they run right in the real world.
He made particular note of organizations that are now building business analytics and the components to gather user feedback directly into their applications, as opposed to tacking data analytics onto existing applications. This gives developers the chance to gather data on their development experiments via direct feedback throughout the application lifecycle. The challenge is not only to engage users but also to tweak enterprise applications to better suit their needs.
Forrester has outlined a maturity model for continuous delivery in enterprise development teams. Hammond presented this maturity model and explained that organizations don't need to be at the top of the maturity model for every aspect of their development process. He sees engagement as the most important focus of application development right now. "If an organization can ramp up their rate of service delivery while maintaining high quality," he said, "they can probably get by comfortably with only a moderate level of maturity in their systems of record."
Let us know what you think about the current trends in software architecture and follow us on Twitter @SearchSOA.