Presentation is loading. Please wait.

Presentation is loading. Please wait.

Designing Scalable Architectures

Similar presentations


Presentation on theme: "Designing Scalable Architectures"— Presentation transcript:

1 Designing Scalable Architectures
Software Stability Models Introduction by: Mohamed E. Fayad, and Huáscar A. Sánchez 11/5/2019 Software Architecture Lecture

2 Software Architecture Lecture
So, What is Scalability? Scalability to indicate the ability of architectures to easily adapt to evolving requirements without unnecessary effort. Scalability can be further divided into two kinds: Vertical and Horizontal scalability. 11/5/2019 Software Architecture Lecture

3 Software Architecture Lecture
Scalability Types Vertical Scalability is concerned with the ability of the architectures to scale Up and Down in order to adapt to evolving requirements. Horizontal Scalability, on the other hand, emphasizes the ability of the architecture to extend their boundaries by establishing connections with other software architectures in an efficient manner. 11/5/2019 Software Architecture Lecture

4 Scalability Types – Vertical
Scaling Up and Down can also be referred to as “Upward and Downward Scalability. Upward scalability is defined as the capacity of handling increasing demands by adding new layers, or functionalities. Downward scalability is defined as the ability of the architecture to adapt itself to a more constrained environment, by disabling certain functionalities. 11/5/2019 Software Architecture Lecture

5 Scalability Types – Horizontal
Horizontal Scalability can be achieved in two directions, which we refer to as: Scaling Out (Extensibility) and Scaling In (Reduction). Extensibility is the capacity of software architectures to glue external architectures (leaves) to their core structure, creating a synergy between these dissimilar architectures. Reduction, on the other hand, is the action of ungluing those “leaves” from a particular architecture without provoking a reciprocal harmful impact on their internal structure. 11/5/2019 Software Architecture Lecture

6 Scalability is a major Concern
In most cases changes that cause software architectures to fail are: (1) Natural Evolution of Architecture Business processes. (2) Modification of underlying requirements to meet evolving needs. When Business experience major increments in services demands, the main concern is their architecture’s ability to scale to accommodate these loads. Therefore: (1) The architecture needs to efficiently scale and adapt to handle system requirements changes. 11/5/2019 Software Architecture Lecture

7 Scalability Solutions Shortage
The problem of developing scalable architectures has been investigated in different contexts in software development. However… Scalability in software architectures are emphasized merely on the achievement of Upward Scalability. They rely on three elements: increasing speed and capacity, improving efficiency, and shifting or reducing the loads. 11/5/2019 Software Architecture Lecture

8 Scalability Solutions Shortage
Based upon these elements, designers/ developers need to pinpoint relevant information, along with the right techniques, to come up with a proper scalable architecture design. Scalability, is therefore, limited to: They are solely oriented to reach one side of Vertical Scalability (Upward). Their validity usually relies on special hardware. 11/5/2019 Software Architecture Lecture

9 Software Architecture Lecture
Lesson Learned? Implementing full scalability is not straightforward in software development, and especially with conventional approaches. 11/5/2019 Software Architecture Lecture

10 Scalability with Traditional Approaches
The Problem 11/5/2019 Software Architecture Lecture

11 Scalability with Conventional Approaches
A Bird’s eye view 11/5/2019 Software Architecture Lecture

12 Scalability with Conventional Approaches
A Bird’s eye view 11/5/2019 Software Architecture Lecture

13 Scalability with Conventional Approaches
Case Study: E-Commerce Application The architecture contains the following objects: Customer, Catalog, Database, ShoppingCart, Product, Order, CreditCard.” 11/5/2019 Software Architecture Lecture

14 Scalability and Conventional Approaches
E-commerce Class Diagram 11/5/2019 Software Architecture Lecture

15 Scalability and Conventional Approaches
Adding Search, CyberCash, Echecks Classes 11/5/2019 Software Architecture Lecture

16 Scalability and Conventional Approaches
Classes affected by Changes Added Affected Affected Affected Added Affected 11/5/2019 Software Architecture Lecture

17 The Solution to Scalability: SSM
Software Stability Model (SSM) as a mean for Developing Scalable software architectures. Software architectures that are flexible enough to scale the scope of their elements, methods, etc. when handling evolving requirements. It provides the means for gluing together two or more heterogeneous architectures to perform one or more common tasks (Horizontal Scalability), or adding new functionality to the architecture’s structure to address more users needs (Vertical Scalability). 11/5/2019 Software Architecture Lecture

18 Software Architecture Lecture
SSM Result Software architectures capable of evolving through time without the concern of a potential collapse. These evolving architectures are referred to as Scalable architectures. Scalable architectures are well-designed architectures, which structures remain constant, and are able to evolve proportionally with the introduction of new requirements. 11/5/2019 Software Architecture Lecture

19 Software Architecture Lecture
SSM Benefits SSM will enhance the scalability of the architecture by identifying the changeable components in the system and organize them in such a way that their future changes do not require major changes in the other parts of the architecture. 11/5/2019 Software Architecture Lecture

20 Software Architecture Lecture
SSM Foundation Software stability Models classify the developed system architecture into three layers: EBTs, BOs, and IOs. EBTs are conceptual classes, which structure remain internally and externally stable. BOs are classes that are internally stable but externally adaptable. IOs are context specific classes, which structure is very volatile (internally and externally unstable). 11/5/2019 Software Architecture Lecture

21 Software Architecture Lecture
SSM Foundation The synergy between EBTs and BOs form the basis for Scalable Architecture. IOs are attached to the scalable architecture by means of certain extension points of the BOs, referred to as “Hooks.” 11/5/2019 Software Architecture Lecture

22 Software Architecture Lecture
SSM Foundation These extension points can be added to or removed from a BO according to the problem needs and requirements. BOs serve as the linking points for architectures to establish a connection with external architectures (Horizontal Scalability). 11/5/2019 Software Architecture Lecture

23 SSM Concept Visualization
Properties granted to Software Architecture: Stability Scalability Adaptability Customizability Traceability Separation of Concerns and more…… 11/5/2019 Software Architecture Lecture

24 Software Architecture Lecture
Scalability with SSM Case study: E-commerce Application Identification Process: First, we need to identify the purpose, and goals of this system (EBTs). Then, we identify the core abstractions of the system’ processes (BOs). Finally, we need to identify the physical entities of our model (IOs). 11/5/2019 Software Architecture Lecture

25 Software Architecture Lecture
Scalability with SSM E-commerce Application: Stable Model EBTs BOs IOs 11/5/2019 Software Architecture Lecture

26 Software Architecture Lecture
Scalability with SSM Any single representation of EBTs along with their associated BOs and IOs, represent an independent functionality of the group of functionalities in the entire system’s architecture. Each functionality, by its definition, is self-controlled. Nevertheless, it collaborates with other functionalities in order to accomplish one or more tasks in the architecture. 11/5/2019 Software Architecture Lecture

27 Software Architecture Lecture
Scalability with SSM Independent Functionality example EBTs BOs IOs EBTs BOs IOs 11/5/2019 Software Architecture Lecture

28 Vertical and Horizontal Scalability
Adding Customer Service, Content Management, Bidding Capacity EBTs BOs IOs Extensibility Upward 11/5/2019 Software Architecture Lecture

29 Vertical and Horizontal Scalability
Disabling Order Handling, and Content Management Application EBTs BOs IOs Downward <EBT> OrderHandling Reduction X <IO> ContentManagement X 11/5/2019 Software Architecture Lecture

30 Software Architecture Lecture
Conclusion We have shown, through a simple case study, that developing architectures using the traditional approach does not allow the desired scalability to accommodate future requirements. On the other hand, software stability approach partitions the entire functionality into several independent layers, and hence, we are able to incorporate scalability feature into the architectures. Consequently, architectures can scale up or down, and scale out or in to accommodate evolving requirements, without the danger of being collapsed. Such flexibility will improve the quality of the developed architectures while concurrently diminishing the cost and condensing the time of the development process. 11/5/2019 Software Architecture Lecture


Download ppt "Designing Scalable Architectures"

Similar presentations


Ads by Google