Digital Edition

SYS-CON.TV
Importance of Application Architecture
Importance of Application Architecture

This is the first in a series of articles from the Office of the CTO at BEA Systems. As my main area of expertise and interest is application architecture, my role within the CTO's office allows me to explore how BEA's customers and products interact around applications - architecture, development, and integration..

Over 10 years ago I was "promoted" to the title of application architect and the word "architect" got me thinking. What does an application architect do? Remember, the title wasn't as in vogue as it currently is. I came up with the following definitions - they made sense at the time and still seem to today.

This article is a general introduction and not a master class. I'm going to focus on when application architecture is useful and what it gives us. The specifics of "how to" and "goodness" will be very interesting, too, but we'll have to cover that at another time.

OK, What Is It and Why Do I Need It?
Simply put, architecture is big picture design. The architect's job is to do abstract structural design for a specific purpose. The goal is to ensure that the form and function of a particular structure is appropriate today and remains so throughout its expected lifetime.

In our applications world, an architect needs to create levels of design that span multiple business problems and continue to deliver appropriate behaviors as technology and business requirements evolve. The result is a framework that will enable the business applications to be reformed over time. The value of architecture is not some magic formula, but to provide a structure to support change.

Architecture can be applied in various "levels" and at various times. What follows is the basic route to success but, as with many things, your mileage may vary. What I hope you come away with is what we should be thinking about and why.

Enterprise Architecture - To Infinity and Beyond
The goal of successful enterprise architecture is to explore the entire business and define an application and infrastructure framework that has the potential of delivering workable solutions for the foreseeable future.

Is that all? Oh yes! It's also good to remember that many systems developed in the '80s are still in our active inventory. So balance is required - not too shortsighted but not too much detail.

The key is to identify the business aspects that are core and the others that might change significantly. This will allow us to frame the risk when looking at the specific areas to support. With a solid business perspective, current technologies and future science can be assessed. Although new technologies might stimulate new business, technologies are the tools, not the goal - business is the key.

The results should support business growth or shrinkage, and replacement of application and technology components over time. Change is a constant - the architecture's aim is not just to withstand it but also to enable it. The exact structure is not important but the focus must be correct and the framework must be appropriately flexible to evolve. The enterprise architecture will also provide the framing and guidance for the next levels of architecture and design.

Technical Architecture: Infrastructure By Any Other Name Might Be Plumbing
Those aspects of technology that cross business solutions, and can be framed separately, are what I think of as technical or infrastructure architecture. This area of "architecture" benefits most from the enterprise work above. The high-level framing provides a focus that is hard to synthesize out of a collection of projects. Without it there is a risk of "infrastructure for infrastructure's sake." Infrastructure tends to be the domain of the engineers and should not be focused on "the" right answer. The requirements of a good technical architecture, the diversity of applications to be supported, are such that a single right answer is unrealistic.

A better goal is a set of solutions that support varying degrees of "perfection" at well-understood cost and risks. The engineering "focus" can be a powerful tool in defining the solution sets but it must be tempered with the architect's broader perspective. Success is not about technology but about supporting secure and robust business applications at the appropriate cost and time.

Domain Architecture: The Few vs The Many
Domain architecture focuses on one area of the business and, because of its focus, results in a more specific design. Think of it as building a bank within a skyscraper. The original building architect had to allow for floors to support the weight of a vault and a large open area for the business floor. The bank architect could then work within those constraints and focus on the business needs of the branch: automated tellers, security cameras, and so on.

The goal is still to create a long-lived framework; the specifics of the contemporary solution can be resolved by further design. Analysis of the business needs driving the architecture must include interaction with other business entities, today and in the future. The product of poor domain architecture is "silos," the focus of many a project for the last few years.

The real challenge is to support the business domain to the maximum while remaining a good enterprise citizen. Pragmatically, this is the majority of architecture so it is essential that it be done as architecture and not as a project design - the right level of detail and vision.

Project Architecture: Are You Sure We Have Time For That?
Actually, that's a good question. By the time we get to individual projects, the development of a forward-looking framework seems a little like overkill. We need good design and hopefully that is done within the scope of an existing architectural framework. So we should really discuss the role of an architect at the project level.

Projects are concrete, they have rigid requirements, and they require compromise. It is the role of an architect to bring the broader perspective, architecture, to the construction process. If no architecture exists, then it becomes essential for the architect to provide as much vision and breadth to the design as the timelines will allow. The role of an architect on a project is key if the resulting deployed application is to be both robust and well - behaved. While architecture is about the bigger picture, architects should be ready to get engaged on the details.

So What Next?
Hopefully this has given you a useful and pragmatic perspective on the value of architecture. You probably noticed that J2EE or Web services didn't come up. We architect applications for business needs and technology's role is a supporting one. We should consider them in our process as they might open up new business requirements. It would have been appropriate to talk about them as examples of prefabricated infrastructure, but in my experience it's not a smart idea to base architecture on contemporary technologies.
To be continued?

About Gordon Simpson
Gordon Simpson is senior director of technology in the Office of the CTO for BEA Systems, Inc. Gordon plays a key role in directing BEA's enterprise application platform strategy. He has been involved in all aspects of enterprise applications development since the mid-70s.

In order to post a comment you need to be registered and logged in.

Register | Sign-in

Reader Feedback: Page 1 of 1



ADS BY GOOGLE
Subscribe to the World's Most Powerful Newsletters

ADS BY GOOGLE

The question before companies today is not whether to become intelligent, it’s a question of how and...
While some developers care passionately about how data centers and clouds are architected, for most,...
ChatOps is an emerging topic that has led to the wide availability of integrations between group cha...
As DevOps methodologies expand their reach across the enterprise, organizations face the daunting ch...
As Marc Andreessen says software is eating the world. Everything is rapidly moving toward being soft...
You know you need the cloud, but you’re hesitant to simply dump everything at Amazon since you know ...
Is advanced scheduling in Kubernetes achievable?Yes, however, how do you properly accommodate every ...
The cloud era has reached the stage where it is no longer a question of whether a company should mig...
The need for greater agility and scalability necessitated the digital transformation in the form of ...
In his keynote at 18th Cloud Expo, Andrew Keys, Co-Founder of ConsenSys Enterprise, provided an over...
Coca-Cola’s Google powered digital signage system lays the groundwork for a more valuable connection...
In his session at 21st Cloud Expo, Raju Shreewastava, founder of Big Data Trunk, provided a fun and ...
"Since we launched LinuxONE we learned a lot from our customers. More than anything what they respon...
DevOps is under attack because developers don’t want to mess with infrastructure. They will happily ...
"As we've gone out into the public cloud we've seen that over time we may have lost a few things - w...
In his session at 21st Cloud Expo, Michael Burley, a Senior Business Development Executive in IT Ser...
Sanjeev Sharma Joins June 5-7, 2018 @DevOpsSummit at @Cloud Expo New York Faculty. Sanjeev Sharma is...
We are given a desktop platform with Java 8 or Java 9 installed and seek to find a way to deploy hig...
"I focus on what we are calling CAST Highlight, which is our SaaS application portfolio analysis too...
"Cloud4U builds software services that help people build DevOps platforms for cloud-based software a...