2.2 Cloud SaaS Solution Addressing Business Capabilities of SMEs
2.3 Adopting TOGAF’s ADM Phases for Cloud SaaS Solution
2.3.1 Phases – Preliminary Phase to Phase A–D
2.3.2 Phase E: Opportunities and Solutions
2.4.1 Requirements Collection and Identification of ABBs
Architecting or ‘architecture development’ is still a mixture of art and science. The ‘science’ or to say more precisely the ‘engineering aspect’ is addressed throughout this book in various chapters.
The effort required to develop architecture is large. Various teams will work on different segments of the architecture development project. Yet, a robust method is also essential to coordinate the work among team members and get desired work product, namely, the solution architecture.
Architects need to communicate during the development of architecture as well as post development and throughout the life cycle of realization of the architecture. The communication can be in the form of architectural diagrams or views, but it is very much essential to maintain consistency in communication.
Software architects around the globe have similar needs. The open group fulfilled such needs through a global architecture model The Open Group Architecture Framework (TOGAF) Version 9.1. The architecture development method (ADM) in TOGAF Version 9.1 gives a complete and comprehensive methodology for architecture development. In addition, TOGAF has benchmarked the language, acronyms, vocabulary and taxonomy that are commonly required for architects to exchange and communicate their ideas.
The International Standards Organization (ISO)[6] has idealized views of the architecture that are necessary to communicate the architecture to various stakeholders.
Thus, we have the basic method of developing architecture from world principle body – TOGAF.
This book presents the following practical use of this generic methodology:
Reading and understanding TOGAF and its ADM is advisable for better appreciation of the contents of this chapter; and also the content of this chapter is a pre-requisite for reading Chapters 7 through 9.
Based on experiences in various projects, an overall process that can govern the architecture development project for SMEs is summarized in the following Figure 2.1[19]:
The process has three major stages: (1) before applying TOGAF ADM steps, (2) using TOGAF ADM and develop architecture and (3) post-architecture developments work such as mapping architectural building blocks (ABBs) to solution building blocks (SBBs) etc.
Figure 2.1 TOGAF- and ADM-based process for cloud SaaS architecture development project
The three stages in the above are as illustrated below:
Stage 1
1. Group and structure the required business capabilities
Stage 2
2. Customize TOGAF ADM phase for this specific use:
Stage 3
3. Evolve mapping guidelines for ABB to SBB for cloud-based solutions.
4. Group and order the IT functionalities that are required to realize the business capabilities.
5. Derive ABBs from there.
6. Map ABBs into possible SBBs.
7. List cloud solution criteria.
8. Filter the SBBs after applying above ‘cloud solution criteria’.
9. Build SaaS cloud solution:
This chapter will address the first two phases; Chapter 7 will elaborate with illustration the third phase.
Scope of enterprise: Before any architecture development project, it is better to fix boundary of enterprise architecture (EA) it affects or it is involved. Entire EA need not be available[2, 3] to start with before starting any specific architecture project; and in this case, it is about developing cloud SaaS solution architecture for a special group of enterprises – SMEs.
Some special characteristics of SMEs are as follows:
SMEs do not fall under any of the above two categories. They can be grouped under one vertical segment such as textile industry or automobile spare parts industries or leather manufacturing industry. But within the segment, individual enterprises may not produce or offer similar services. Most often, they provide complimentary services such as one company may produce yarn, another company may dye them or third company may only weave or knit. Thus, all enterprises within the community may collectively have the capability of producing a class of end-products; and in this case, vests or pants or shirts. But in most of the cases, one is not a customer or vendor for another within the same community. Thus, none of them have same business capabilities.
Thus, what is the ‘scope of enterprise’ that will use this cloud SaaS solution? – If it is SMEs, it is not one single enterprise or a sub-part of an enterprise; it is a community of enterprises; but solution should be common to all enterprises in the community.
In addition, these enterprises, being small, they individually would not have EA models developed for themselves.
Size and complexity of each enterprise in the community may affect EA model to be assumed within cloud SaaS solution software.
Most enterprises within the community are smaller and less complex in business operations; but that naturally allows them to adopt common sharable community cloud SaaS capabilities.
For such a situation, it is better to adapt one important recommendation of TOGAF; that is to develop first, a strategic (enterprise) architecture that gives a summary of formal description of the enterprise. Then, identify and recognize particular segments of enterprise to which a business capability is demanded. Cloud SaaS solution will address that capability (e.g. enterprise resource planning (ERP) or human resources management (HRM)).
Enterprise architects could then develop segment architectures (which can define the scope of enterprise for the current architecture project). In each segment, one or more specific business capabilities can be achieved through cloud SaaS solutions. Scope of enterprise will comprise all these segments.
This section gives an example of how to adapt TOGAF ADM when developing cloud SaaS solutions for SMEs. This is not intended as a self-standing description; and should be read in conjunction with activities and other details found in each phase of TOGAF ADM Version 9.1[4]. The adaption discussed here is based on a couple of real-life experience.
The preliminary phase is where architecture capability should be adapted to support cloud computing reference architecture (CCRA) (e.g. draft proposal from IBMTM) and SOA reference architecture. Key outputs of this phase are (architecture, governing or organization) principles, organizational structure, governance and initial content of the architecture repository[4].
Architecture principles will come from two reference architectures mentioned above. A few more will come due nature of ‘enterprise segment’ that the solution aims to address. For example, one architecture principle can be ‘complete shield of information not to be revealed to any other member enterprise within SME community’. This will be segment specific such as textile or retail or leather manufacturing, sometime stipulated by main stakeholders of the community of SMEs.
Business vision is normally obtained in the context in which business is asking to develop cloud SaaS solutions.
For example, when Indian economy was opened to international economy, all Indian enterprises have to compete in global market with internationally repute enterprises whose business capabilities have matured a lot.
Therefore, one of the communities of Indian SMEs enterprises set a business vision to empower these SMEs to have business capabilities to be on par with big enterprises and compete equally with them in the international market place[1].
Some example business capabilities are international-level ERP and management, financial management and transparency, and HRM. Such specific business vision is essential.
A consortium of small or medium banks in Europe set a business vision of keeping their operating cost as low as possible, by commonly sharing all possible computing resources for conducting their ‘new customers account-opening operations’.
Building Business Capabilities for a Group of Enterprises
In tune with the business vision, cloud SaaS solution should aim to build and provide required business capabilities.
This section explains how it is different to build a solution for group of enterprises (SMEs in particular) and the challenges involved in it.
The first challenge is that the cost of solution will restrict from providing ‘all capabilities’ that a large enterprise can afford to. But there is no way to escape from providing ‘all capabilities’. Any given enterprise in a community may need or use only a small subset of entire business capabilities; but the cloud SaaS solution needs to provide all capabilities. This is because sum total of individual company’s requirements will add up to ‘all capabilities’, and sometimes it may even exceed that. Therefore, cloud SaaS solution architects need to plan for providing ‘all capabilities’; but it can plan to implement them in parts as per the demand for each part comes up.
In a way, they need to think like product architects to provide a complete solution that can compete in the market community.
The second challenge emerges from the fact that existing capabilities of each enterprise in this group may vary vastly. Therefore, any assumption on ‘as-is’ capability of any enterprise within the community may be erroneous.
The third challenge was in grouping the demanded capabilities.
A possible solution to this third challenge is explained below:
The given list of requirements has to be analysed in the above three ways before finalizing one model.
At a minimum, the above-mentioned ways of grouping capabilities are essential to identify the correct set of ABBs. The grouping is also to plan to allow customization features of business capabilities.
The above is a simplified application of what is discussed in Chapter 20 of TOGAF ADM Version 9.1[4].
This phase consists of two sub-phases: Development of data architecture and applications architecture[4].
Cloud SaaS solutions need a special attention and development effort for data architecture. This is discussed in Chapters 5 and 9.
Chapters 7 and 8 give prime importance to explain application architecture. The finer details that need to be taken care of in architecting cloud SaaS solutions are discussed in Chapter 9.
The technology architecture defines the software and hardware infrastructure that are needed to support the cloud SaaS solution. This is covered in Chapters 4, 7, 8 and 9.
The starting point is CCRA which is discussed in Chapter 10. Chapter 9 indicates how to make use of the CCRA.
Adopting TOGAF’s ADM Phase E for architecting cloud SaaS solutions for a group of enterprises (SMEs) can be explained in three paragraphs:
The following figure[19] summarizes three important points:
(Existing building blocks and EA may not be available.)
(The steps and procedures mentioned here can also be adopted for re-architecting even (home grown b-spoke or custom) enterprises systems to make them fully cloud compatible SaaS software and host them on IaaS platforms.)
The above figure can give some idea of adopting the ‘approach’; but that is not the end of it. Although the above is an extract from real-life project, individual project teams may need to do a lot of work in this area for their specific projects.
The following table[4] highlights some of the mostly used ‘steps, inputs and outputs’ in cloud SaaS architecting projects.
*At this stage, architect would also need to review of non-functional requirements/parameters to meet the functional specifications. But TOGAF will not give these finer detailed steps.
The following are simple explanations of the above table:
Most of the steps are very much like any other architecture project. However, a few factors already discussed such as the following:
will have some or other impact in these phases; but, they become mostly project specific, if any. Therefore, it is not discussed here.
That brings to an end of our discussion on adapting ADM for architecting cloud SaaS solution.
This additional architecting method[17] summarized here will be of definite relevance and use to the readers.
The project situation: requirement gathering has inherent difficulties in cloud SaaS project
All these will demand a strong team that has deeper knowledge across industry, domain, vertical and a thorough understanding of the domain problem for which solution is sought, to spell out the ‘requirements’ in the final cloud SaaS solution.
In addition, architects should be ready to accommodate changes in functionalities and capabilities post launch of the service based on user feedback.
Such a situation alarms since the architecture needs to be flexible to take those changes.
At the first place, it is better and desirable to come up with a ‘flexible architecture’ – if anything called ‘flexible architecture’ – to accommodate such challenging requirements that may come as a surprise after launch.
In addition to the above situation of ‘where to go for’ functional and non-functional requirements, agile methodology expects the coding to start from day one of the project start. Where is the time for collecting requirements, freezing it and then start architecting and then designing, etc., as in waterfall method of software development life cycle (SDLC)? In the conventional SDLC method, architecting starts after requirements are frozen.
These challenges are more common in cloud SaaS development projects.
Therefore, architecting has to happen in parallel to requirements gathering. May be the architecture will serve as input for even collecting requirements!; this could be a practical approach. This implies that cloud SaaS software architecture should be ready and available even before requirements gathering is initiated.
We will see how to architect under these project situations. Let us review an ADM for this situation.
Reference [17] discusses the same method with an illustration. Chapter 10 makes use of this knowledge and also gives finer details of this method.
Method
There are two starting points for developing architecture under the above-mentioned condition:
There are two main streams of activities that one may follow the other: They are as follows:
Some of the domain knowledge and problem for which the cloud SaaS solution is being applied, will help identify or recognize a bunch of requirements. For example, one can recognize that we need a product catalogue or tax calculating engine if we are attempting e-commerce-related solution.
From the ecosystems in which solution is going to exist, architects can visualize another bunch of requirements; for example, interfacing-module requirements can be identified for information exchange, assuming the solution need to work closely with other enterprise systems.
Identify the common services/components of the intended application software at early stage of cycle, which is less prone to change. However, all common services required to build and provide SaaS will be default from or available in CCRA as Chapter 10 explains.
On elaborating problem statement and also from architects knowledge and experience, architects can visualize a few more ABBs. For example, an ordering system will naturally have customer-specific pricing algorithm. It may even warrant an e-commerce module.
All the above steps may not result in any specific frozen requirements; but it will help in recognizing a need for a module or bunch of requirements that can appear as ABBs.
TOGAF ADM and the body of knowledge centred on TOGAF gives a lot of clues to recognize or identify architectural components; this is very handy to develop architecture in this situation where requirements are not available before architecting.
Reasonably, detail level of architecture can be developed by following steps discussed below:
These steps need to be executed more or less in the same sequence as they appear above. However, these steps can be carried out in parallel to ‘requirements gathering and ABB identification steps’.
(i) Applying principles of enterprise architecture continuum
The enterprise continuum enables organization of reusable architecture artefacts and solution assets
Enterprise continuum can be imagined as a repository of all architectural assets[29, 30]. These include architecture descriptions, models, building blocks, patterns, viewpoints and other artefacts that exist both within the enterprise and in the IT industry at large, which the enterprise would like to have them available for themselves for the development of architectures[30].
The architecture continuum (Figure 2.2) illustrates how architectures are developed and evolved across a continuum ranging from foundation architectures, through common systems architectures, and industry architectures, and to an enterprise’s own organization-specific architectures (In our case, it can mean the cloud SaaS solution architecture).
Figure 2.2 Architecture continuum. Reproduced from Ref. [30] with permission
Enterprise needs and business requirements are addressed in increasing detail from left to right. Architects will typically look to find re-usable architectural elements towards left of the continuum. When elements are not found, requirements for the missing elements are passed to the left of the continuum for incorporation. Those implementing architectures within their own organizations can use the same continuum models specialized for their business.
Notes: That means there may be many re-usable architectural components available in the repository either within or outside enterprises. Identifying them is essential. Marking those that are not existing becomes part of the new requirements. This is also a good way of checking completeness of requirements!
“The TOGAF ADM describes the process of developing an enterprise-specific architecture and an enterprise-specific solution(s) that confirm to that architecture by adopting and adapting (where appropriate) generic architectures and solutions (left to right in the continuum classification). In a similar way, specific architectures and solutions that prove to be credible and effective will be generalized for re-use (right to left in the continuum classification)”.
Clippings from TOGAF on architecture continuum[30] only assures that any solution architecture does not exist in isolation. It is a point in a continuum space of architecture. This only conveys to practising architects that he or she need not (re)invent most of the architectural components that are necessary for a specific project; most of the pieces will be available somewhere there.
In any given architecture development project, only the missing components for which requirements are raised may have to be developed; and other components need to be taken from internal (to enterprise) or external repository of components, and they have to be tweaked, if necessary, and adapted for the specific project.
The first step is identifying the point in space as to where the solution lies. This will naturally follow collecting all reusable existing architectural components relevant to the project on hand.
In addition, during the same time, it is advisable to collect architectural components of adjoining pieces of the solution too. These will let architects know about interface requirements and the required components in the solution architecture.
Architects need to look for these components both from within (SaaS providers as well as customers or the specific industry) enterprise as well from outside enterprise.
It is worth investing time and effort to locate these components from various repositories, and that is one of the ways of bringing best practice and matured and tested components into the solution architecture.
This is the first source of information for an architect to begin developing architecture, even before requirements are ready.
(ii) Trying to utilize domain architectures
Domain architectures are those that may be available outside enterprises. Architectures within enterprises are interpolation to domain architecture as detailed in EA continuum discussed earlier in this section.
There are domain-specific architectures such as NGOSS for telecom. Similar ones are available for retail industry.
These domain architectures are again another quite useful source to pick necessary architectural components for the project. Domain architectures also help in specifying where the specific cloud SaaS architecture that is being developed fits in the continuum.
The solution’s position in domain architecture will give some more top-level descriptions about requirements from domain perspective.
In addition, the domain architecture can explain about possible grades that are available to which this intended specific solution needs to fit in.
Therefore, examining respective domain architectures, where cloud SaaS solution fits in, will help in identifying some more relevant architecture components for the solution.
(iii) Using enterprise architecture
Here, EA can refer to two different repositories:
EA repository of
Providers EA repository may contain many architecture components that can be reused for the specific project: such as architectural principles, reusable components, guidance for architecture practice, etc.
Customers in long tail or SMEs segment may not even have any EA practice or repositories established. Therefore, architects cannot expect any reusable component from them.
Sometimes, big enterprises (consumers) EA repository may have useful reusable components. Unfortunately, it may or may not be available for providers for the purpose of their use.
If any of these architectural components are available in open source or published media, then that can also serve the purpose. Architectures from SaaS consumers will give enough clues, specifications and functional requirements to guide architectural components such as those for interfacing with customer systems.
In addition, it will give a good direction on the usefulness of the solution – the missing piece in the puzzle of enterprises capabilities too. That verifies demand for this service.
(iv) Utilizing CCRA
(v) Deriving architectural components from SOA reference architecture
Chapter 9 discuss this in further detail.
(vi) Adapting multi-tier architecture
Multi-tier architecture or n-tier architecture is a generalization of three-tier architecture.
The multi-tier architecture style guides and provides place holders for identified ABBs on its various tiers. Multi-tier architecture is a fundamental to provide a cloud SaaS solution. Chapter 10 provides tier-wise details relevant to cloud SaaS software architecture.
(vii) Technical environment of solution
Technology choice and platform will also give a lot of necessary ABBs and components for the architecture. For example, if it is decided to support mobile devices apart from desktop clients, there is a need for corresponding module on the Web tier.
(viii) Identify SBBs
Last but one step in architecting is to identify SBBs.
This involves identifying third-party products, plugins and specific engines that are matching and helpful to realize ABBs.
For some of the benchmark components such as BSS or OSS, there may be basic COTS or open sources available in the market.
SBBs corresponding to business functionalities addressed specifically by the solution need to wait until all functional requirements are frozen. In that sense, mapping those ABBs to SBBs need to wait until requirements are almost finalized. Chapter 7 provides special techniques that can be adapted for mapping ABBs to ABB in cloud SaaS solution projects.
Concluding remarks in the method:
The above steps in this particular track give specific architecture and its components.
These steps work like a funnel. It all starts with a very generic and high-level architecture; then, it becomes more specific architecture for a given cloud SaaS solution as the architects take the architecture through these steps from a–h.
ABBs that come out of requirements analysis also get mapped into this skeleton architecture.
Requirements that are being gathered, during and also after development of architecture, will be mapped onto envisaged individual-specific ABBs.
If any existing or identified ABBs cannot accommodate any new incoming requirement, then new ABBs can be created.
The software architecture at this stage can also be used for collecting remaining details of requirements.
Architecture principles, identified other architecture components, envisaged building blocks and recognized ecosystem – all the above will give enough of information for architects to figure out connections required to connect the building blocks and components in the architecture.
Thus, the architecture at this stage will have enough details. The nitty-gritty details of functional requirements will not alter this first good draft Architecture.
This Architecture needs to be reviewed when details of non-functional requirements arrive. Most of the time non-functional requirements are estimates for cloud SaaS solutions based on the experience of the Architects team.
3.138.34.80