• Software system architecture is collection of viewpoints. The types of viewpoints depends on the type of systems. Software system architecture for a typical web application contains information and functional views primarily focuses on the structural (or static) representation of the system and the deployment, concurrency and operational views are the behavioral (or run-time/dynamic) representation of the system and the development view is guidelines. Views are instance of viewpoints. Viewpoint is a set of standards, guidelines, templates, patterns for constructing a view.

    Functional viewpoint:
    The functional viewpoint represents the business processes and function elements of the system. It is mandatory for all web development projects since all web projects are executed to meet a set of functional requirement.
    Information viewpoint:
    It represents the data and flow of the data within the system. The data or information is integral of the web system.
    Deployment viewpoint:
    The typical web environment contains minimum a web server with internal disk, domain name server, web browser, inter network or intra network. The environment could be complex for a transaction application. It contains quite few infrastructure components like web server, router, switches, firewall, application server, domain name server, intrusion detection devices, messaging services, storage management systems, load balancer, ssl accelerator, external cache devices etc. It is essential to understand the deployment view of the system upfront during the architecture definition phase of the software development life cycle.
    Development viewpoint
    In an enterprise environment, there are set of standards, policies, patterns, anti-patterns, reference models, lessons learned, domain knowledge, reference architecture and etc. The development team is expected to reuse the existing references. These artifacts are provided to the application developed team by the centralized architecture team. With recent success of the outsourcing development model, the development viewpoint is required to be part of the architecture.
    Concurrency viewpoint:
    The functional elements of the system are to be served simultaneously for concurrent users in the web environment. It is required to study the behavior of the concurrency structure of functional elements. It enables to create the necessary environment setup like thread configuration for the operational viewpoint.
    Operation viewpoint
    The gap between the application development process and the infrastructure management process is quite significant in the industry in spite of the well known IT infrastructure management frameworks like ITIL being in place and adapted widely. The longevity, sustainability, maintainability of the system are determined how the operation views are analyzed and designed during the architecture phase of the project. It may be optional if the web application is developed for a limited time.

  • Architect defines the architecture. Broadly the architects are divided into the technical and business architects. The business architect are focused on the economical change of the market and devise  a set of  business process  for enterprise or systems adaption and to attain enterprise or system’s mission and vision.  The technical architects are  focused on implementation of the business architecture defined to meet enterprise’s or system’s mission and vision.

    The technical architects are broadly divided into

      System/Product architect
      Domain Architect
      Solution Architect
      Applied Architect
      Enterprise architect

    Based on the architect characteristics, the types of technical architects shall be divided into the generalist and specialist. The specialist focus on one specific area and the knowledge acquired and possessed by the architect is deep. Where as the generalist, knowledge acquired and possessed in a set of areas is broad.
    System/product Architect

    System/Product architect are the generalist, responsible for the cohesive architecture solution of the system or product. They have equal strength in the both technical and business area. Plays a vital role to bring all the stake holders together and ensure all the stake holders concern’s are captured methodologically, formally documented and validated. Assist the project manager to make the management decision and makes key technical decision for the project/system/product. Brings all the technical architects, development teams, system analyst, and support teams together to ensure the cohesive architecture is defined to meet the stake holders concern and ensures the defined architecture is implemented. The system architecture validation is done by using the user case scenarios. +1 view of the architecture. The architecture verification is done through reviews.

    Domain Architect

    Domain architects are the specialist, responsible for the architecture solution for that domain. The domain architect is an abstract definition and there are various domain architects. The domain architects specific to the web development projects are

    • Application architect
    • Data architect
    • Information architect
    • Integration architect
    • Security architect
    • IT Process architect
    • Infrastructure architect
      • Network architect
      • Server architect
      • Web run time architect

    Solution Architect

    Solution architecture team is the set of specialist working together to research and seek solutions for a specific problem.

    Applied Architect

    Applied architects are match makers. The applied architects have the known set of problems, solution and context. The architectural patterns are applied to the system or product. The architectural patterns includes to the process solution or methodology for the implementation and its style.

    Enterprise Architect

    Enterprise architect are responsible for defining the holistic architecture solution for the entire enterprise.

  • For past few years, quite a few employees, contractors, consultants, right sourcing consultants in the organization asked me this question, what they should do to work for me? In other words, how they could become an enterprise architect. Generally, when someone has this question in the organization, I asked them to schedule a mentoring meeting and try to understand what they want to do and how their aspiration and ambition fits into an enterprise architect’s requirement and coach them accordingly. When this questions became a frequently asked question to me, I decided to document the state transition diagram for an enterprise architect and started providing it to whom ever wants to become an enterprise architect.

    I believe this has a value to anyone who wants to become an enterprise architect. This state transition is an ideal road map to become an enterprise architect. When I attended a Gartner conference recently, I informally bounced this idea with fellow enterprise architecture managers, chief architects, chief strategist and most of them agreed that this is the ideal road map for developing enterprise architect talent in an organization.