Sunday, January 29, 2017

Posts in Application Architecture

Post No.1- Design Requirements in Application Architectures

Gartner defines the discipline of application architecture as follows “Application architecture combines a core set of solution architecture design artifacts with architecture and design best practices to effectively guide application construction, deployment, ongoing performance and continued evolution of the application portfolio. A disciplined approach to application architecture enables real business value, enhances the organization's leverage, facilitates user adoption, drives down the total cost of application ownership and minimizes the risk of failure”

This definition means that the application architect’s job is not limited to mapping the business functions to application components but it extends to cover other non-functional requirements such as interoperability, performance, scalability and security.

Interoperability is the ability of an application component to work with other components without special effort. The application architect should design the components in such a way that they can seamlessly communicate, exchange data, and use the information that has been exchanged as needed. The application architect should study and identify the required degree of interoperability and incorporate it in his architecture.

To design an application architecture that has a high performance and scalability, the application architect need to consider the following these design principles: Ensure that services components are defined at the appropriate level of detail to increase your ability to encapsulate change, Put the processing closer to the resources it needs (processes that require heavy data interactions should be kept at the backend), Process independent tasks concurrently, Pool shared resources to improve scalability by sharing a limited number of resources among a much larger number of clients., etc. For more design principles use this link https://msdn.microsoft.com/en-us/library/ff647801.aspx

The application architecture should be carefully reviewed by a security architect to identify and eliminate any security flaws at an early stage. I will be posting a dedicated topic on security architecture on or before March 20th.

These were few of some of the nonfunctional requirements that should be considered in an application architecture, for more in the topic please refer to this Gartner article https://psu.instructure.com/courses/1829637/files/80463989/download?wrap=1

Post No.2- Service Oriented Architecture in a glance

You can’t be talking about application architecture without mentioning Service oriented Architecture (SOA). Nowadays, application architects realize the several benefits of adopting SOA principles in their designs; improved maintainability, lower costs and Increased agility and productivity to name a few.

SOA is a way of architecting the application into the form of services. That is a group of discrete software chunks that have simple, well defined interfaces and are able to interact with each other with loose coupling.  A service can play any of these roles; Service provider and service customer.  The whole concept is supposed to help organizations build services libraries that can in turn speed business results.

Nevertheless, it is not an easy task to adopt SOA in your organization. It requires tremendous commitment and support from the CIO and IT leadership. An application architecture governance organization should be in place. This organization should ensure that SOA culture is well received by application and technology architects. This teams would probably require education and coaching on how to design, develop, reuse and deploy these services. The technical team should be ready to modernize their infrastructure to support the team. All of this is easier said than be implemented and it requires a structured approach.

Gartner recommends that organizations considering SOA to follow this roadmap:
  •        Strategize and Plan: Draft a charter to gain agreement on the vision for the initiative, in alignment with business goals
  •     Develop Governance: Establish an optimal process for making decisions and assigning decision rights
  •     Drive Change Management: Set up a system to communicate and socialize ideas via multiple channels. Get buy-in from stakeholders at all levels
  •     Execute: Optimally operate the initiative in accordance with business goals
  •     Measure and Improve: Measure how the initiative has affected business outcomes



Post No.3- The Application Architect vs. The Solution Architect

This is a short post is an attempt that intends to answer this question: We do not have an EA program in our organization, but we do have a solution architect; can we call him an application architect?

I believe that there is no standard answer to this question, it depends on your organization and back ground. What I can say in general that the solution architect usually interact with subject matter experts to ensure that they have an optimized solution that cater for budget, time and business requirements. The application architect has a different perspective, he is usually a role within an enterprise architecture practices. He is more concerned of how the complete application portfolio is architected to maximize reuse, performance along with other functional non-functional requirements.

The Federation of Enterprise Architecture Professional Organizations (FEAPO) ‘guide in careers in enterprise architecture states that “the Solution Architect tends to focus on a particular, tangible, often tactical, problem. The Solution Architect will often have a single, clear business leader whose metrics are driving the need for change.” The guide also states that the Application architect is a role in the stack of roles that define the enterprise architect; all of which are strategic in nature.

For more information, you may look at:

That’s all about application architecture, see you soon!

                         

Wednesday, January 18, 2017

About the Enterprise Information Technology Stack

Post No. 1- The Technology Stack and future topics

I will continue to share with you my thoughts and learnings on the domain of enterprise architecture. What have been published so far has always discussed enterprise architecture from the viewpoint of the business; which is great, as business the true driver of EA initiatives .In the coming few months my blogs will cover topics in enterprise architecture from view angle of technology leaders.

The Open Group’s Allen Brown once said “The goal of enterprise architecture is boundary-less information flow, where all systems, IT and non IT, interoperate”. Whether you agree or not with how he expressed the goal of EA, the saying puts it simply: EA involves IT and non IT domains and that’s business.

Aside from the business part of EA, which I have covered heavily in my previous posts, there are several layers that collectively describe what we call the Enterprise Information Technology Stack. These layers are:
  • ·      Applications
  • ·       Data or Information
  • ·       Infrastructure
  • ·       And the cross cutting thread: Security

Gartner defines the Enterprise Technology architecture (ETA) viewpoint as “the reusable standards, guidelines, individual parts and configurations that are technology-related”. Across all the stack layers standards and guidelines should be supporting not only interoperability but principles, objectives and requirements set by the business layer of EA.

The terminology stack itself is very technology specific. Often used by and to CIOs and CTOs and technology experts to describe a visual representation of the interaction between layers. The understanding of how the stack is composed in terms of interactions and boundaries allows them to develop capabilities as well as managing change by governing the impact of the new capabilities.

I will continue to share with you my thoughts and learnings on the domain of enterprise architecture. In the coming few months my blogs will cover topics in enterprise architecture from view angle of technology leaders. It is however important to note that my intention won’t be on bringing down topics of mere technical nature. But rather, the guidelines, principles, standards and components that represent the technology related domains, such as applications, data, infrastructure, in the overall enterprise architecture. Security related posts, which is a critical crosscutting thread in EA, will find its way to this blog.

Post No. 2- The application stack or the software services network

As part of my readings this week about technology stack layers, I came across a Forbes tech page article by Larry Hawes, titled “Enterprise software Architecture: a Network of Services, Not a Layered Stack”. It has been the source of this post.

If we would like to focus on the application layer of the enterprise technology stack; how would we like to visualize it: as a stack or as a network of services?
The term application stack gives the indication of hierarchical interaction, where every layer can only interact with the layers above and beneath it. This representation does not go well with the guidelines and principles that are set by any decent EA program that calls for scalability, performance and flexibility.

Software vendors are no longer adopting these traditional stacked architecture. Their architectures can be described as a network of functionalities and services. Multiple services can be combined to form an application for a specific purpose. With this designs application developers can build solutions that allows enterprise to reach and connect with their larger ecosystem, by pulling data from on service node to be used by several internal and external service nodes.

The dynamic nature of this network architecture will be of a profound value to the business. It will allow business to be able to face changes, adopt technology advances and even try and embrace new business models without worrying to limited by the limitations of the traditional hierarchical application architecture.

Post No. 3- Skills required by every stack layer

Someone is ought to carry the architectural work.  But what is this talent that should have a good level of expertise in every layer of the stack, along with in-depth understanding of the business!!!

Fortunately, FEAPO (Federation of Enterprise Architectural Professional Organizations) developed a framework that can be used for identifying competencies and critical skilled required in an EA team.

No surprise, the framework is based on the BAIT+S (Business, application and information, technology and security). Competencies are identified for each of the following roles:
  • ·       Business Architect : to answer why the change is needed
  • ·       Information architect : to answer how information moves
  • ·       Application Services Architect: to answer how systems deliver services
  • ·       Tech Architect : how technology support them all
  • ·       Security Architect : for the management of secure data

An article by Gartner presented two different thoughts: An Enterprise architect as a higher level role and not a maturing role, and that business’s, information, technology and solution architect roles have a specific expertise that is measurable.

To summaries, thanks to FEAPO and Gartner, we do now have guidelines that organizations can adhere to when establishing and progressing an EA career path. Internal staff can be prepared to take such roles, or if organizations wishes, selection criteria can be tailored to hire from outside.


Fellow Penn Staters interested in this post can contact me to give them a copy of a paper which my group have prepared on EA careers as part of a course requirement.