The document proposes using feature models and feature-solution graphs to manage trade-offs between architectural tactics. Feature models represent variability in tactics and design alternatives, and feature-solution graphs relate these with forces, prohibits, and suggests relationships. This allows detecting conflicts between alternatives, explaining involved tactics and qualities, and propagating decisions. The approach is illustrated using tactics and alternatives for database-based web applications. Limitations include only detecting constraints-based conflicts and consideration of specific quality attributes.
Using multiple Feature Models to specify configuration options for Electrical...Jaime Chavarriaga
Jaime Chavarriaga, Carlos Rangel, Carlos Noguera, Rubby Casallas, Viviane Jonckers.
Using Multiple Feature Models to specify configuration options for Electrical Transformers: An Experience Report.
SPLC 2015. pp 216-224. 2015
http://doi.acm.org/10.1145/2791060.2791091
Supporting Architectural Variabiality in Software Product LinesJaime Chavarriaga
This document discusses supporting architectural variability in software product lines. It begins with an overview of software product lines and product line architectures. It then discusses implementing variability at the architectural level using tactics and design patterns. Tactics aim to achieve certain quality attributes, and there are theories linking concerns to tactics and designs. Feature models can be used to represent relationships between tactics and design alternatives. Tactics can also be implemented using configuration options like in cloud computing platforms. Relating tactics to configuration options allows automatically deriving architectural designs based on quality attribute requirements.
- The document discusses software product lines as an approach to developing multiple related software products. It compares product lines to alternative approaches like reference architectures and one-size-fits-all.
- Product lines involve explicitly managing variability between products through variation analysis, variation points in the architecture, and a variation guide. This is contrasted with opportunistic reuse without explicit variation management.
- The key steps are to analyze variability in the problem domain, design the architecture around common and variable parts, and develop assets and variants using domain and application engineering. Non-technical challenges around organization must also be addressed.
This document provides an overview of software product lines (SPL). It discusses the challenges of systematic software reuse that SPL aims to address. Key concepts covered include domain engineering to develop core reusable assets, application engineering to derive product variants, and managing variability across the SPL. The document also discusses adoption strategies and how SPL principles can be extended to dynamic domains with runtime product derivation through dynamic SPL approaches.
The document discusses software product lines. A software product line is a set of software systems that share common features to satisfy a market segment or mission. They explore commonality and variability to achieve economy of scope. Key concepts for software product lines include core asset development, production planning, product development, and management practices. Successful software product lines require a pressing business need, domain experience, legacy assets to build upon, architectural excellence, process discipline, management commitment, and viewing the product line as a single entity.
Evolving Industrial Software Architectures into a Software Product Line: A Ca...Heiko Koziolek
This document summarizes a case study of evolving ABB's industrial robotics software into a software product line. ABB's robotics software consists of over 100 applications totaling over 2500 KLOC, with significant functional overlap between applications. The case study involved recovering existing architectures, identifying common functionality, defining reusable components, and designing a new product line architecture with extra-functional properties like performance, reuse, and maintainability. Lessons learned included the importance of surveying existing products, using iterative design techniques, unifying concepts, addressing emotional attachments to legacy software, and gaining commitment to the product line approach from all stakeholders. Further research is needed on tools for managing large application landscapes, reconstructing architectures from code, and mining legacy code
TOGAF Classroom Series - M20 architecture capability frameworkCuneyt Kaya
The document outlines establishing an architecture capability within an enterprise. It recommends applying an Architecture Development Method to architect and govern the implementation of an enterprise architecture capability. It also suggests selecting an Architecture Governance framework to manage architecture at the enterprise level, including establishing an Architecture Organization/Board, compliance processes, contracts, skills frameworks, and maturity models. Finally, it provides an example structure for an Architecture Development Organization with roles like Chief Architect, Enterprise Architects, and Domain Architects.
Using multiple Feature Models to specify configuration options for Electrical...Jaime Chavarriaga
Jaime Chavarriaga, Carlos Rangel, Carlos Noguera, Rubby Casallas, Viviane Jonckers.
Using Multiple Feature Models to specify configuration options for Electrical Transformers: An Experience Report.
SPLC 2015. pp 216-224. 2015
http://doi.acm.org/10.1145/2791060.2791091
Supporting Architectural Variabiality in Software Product LinesJaime Chavarriaga
This document discusses supporting architectural variability in software product lines. It begins with an overview of software product lines and product line architectures. It then discusses implementing variability at the architectural level using tactics and design patterns. Tactics aim to achieve certain quality attributes, and there are theories linking concerns to tactics and designs. Feature models can be used to represent relationships between tactics and design alternatives. Tactics can also be implemented using configuration options like in cloud computing platforms. Relating tactics to configuration options allows automatically deriving architectural designs based on quality attribute requirements.
- The document discusses software product lines as an approach to developing multiple related software products. It compares product lines to alternative approaches like reference architectures and one-size-fits-all.
- Product lines involve explicitly managing variability between products through variation analysis, variation points in the architecture, and a variation guide. This is contrasted with opportunistic reuse without explicit variation management.
- The key steps are to analyze variability in the problem domain, design the architecture around common and variable parts, and develop assets and variants using domain and application engineering. Non-technical challenges around organization must also be addressed.
This document provides an overview of software product lines (SPL). It discusses the challenges of systematic software reuse that SPL aims to address. Key concepts covered include domain engineering to develop core reusable assets, application engineering to derive product variants, and managing variability across the SPL. The document also discusses adoption strategies and how SPL principles can be extended to dynamic domains with runtime product derivation through dynamic SPL approaches.
The document discusses software product lines. A software product line is a set of software systems that share common features to satisfy a market segment or mission. They explore commonality and variability to achieve economy of scope. Key concepts for software product lines include core asset development, production planning, product development, and management practices. Successful software product lines require a pressing business need, domain experience, legacy assets to build upon, architectural excellence, process discipline, management commitment, and viewing the product line as a single entity.
Evolving Industrial Software Architectures into a Software Product Line: A Ca...Heiko Koziolek
This document summarizes a case study of evolving ABB's industrial robotics software into a software product line. ABB's robotics software consists of over 100 applications totaling over 2500 KLOC, with significant functional overlap between applications. The case study involved recovering existing architectures, identifying common functionality, defining reusable components, and designing a new product line architecture with extra-functional properties like performance, reuse, and maintainability. Lessons learned included the importance of surveying existing products, using iterative design techniques, unifying concepts, addressing emotional attachments to legacy software, and gaining commitment to the product line approach from all stakeholders. Further research is needed on tools for managing large application landscapes, reconstructing architectures from code, and mining legacy code
TOGAF Classroom Series - M20 architecture capability frameworkCuneyt Kaya
The document outlines establishing an architecture capability within an enterprise. It recommends applying an Architecture Development Method to architect and govern the implementation of an enterprise architecture capability. It also suggests selecting an Architecture Governance framework to manage architecture at the enterprise level, including establishing an Architecture Organization/Board, compliance processes, contracts, skills frameworks, and maturity models. Finally, it provides an example structure for an Architecture Development Organization with roles like Chief Architect, Enterprise Architects, and Domain Architects.
Using Composite Feature Models to Support Agile Software Product Line Evoluti...Simon Urli
This document discusses using composite feature models to support agile software product line evolution. It proposes separating a software product line into multiple feature models, one for each domain concept, and using a model to define relationships between the concepts and feature models. This approach aims to make the feature models easier to evolve independently while still representing dependencies. Refactoring scripts could then support automated evolution driven by a community in an agile manner. Validation on other use cases and automation of vocabulary alignment are mentioned as future work.
Toby Smith is an experienced technical and business analyst with 19 years of experience in software development within the automotive retail sector. He has worked in both technical and non-technical roles covering all aspects of the software development lifecycle. His experience includes business requirements gathering, systems testing, deployment, and stakeholder engagement. He holds a computer science degree and has extensive experience with technologies such as .NET, SQL Server, JavaScript, and Agile methodologies.
The document discusses modeling and the benefits of modeling complex systems. It notes that modeling helps visualize, specify, guide construction of, and document systems that would otherwise be too vast to comprehend. The importance of modeling increases as systems increase in scale and complexity. Modeling allows for simulating "what if" scenarios to help with early verification and validation. The document discusses how modeling enables the development of things as complex as software systems with millions of lines of code and global deployments.
System Architect, the market leading Enterprise Architecture tool from IBM, now has improved integrations, extra capabilities and a new ArchiMate 2.0 extension, plus much more. Martin Owen from Corso explains.
Strategic Product Development and Cost Estimates for Automotive IndustryVedant Borse
SAP Sapphire 2014
Session: 3803 strategic product development
https://www.asug.com/discussions/servlet/JiveServlet/downloadBody/38836-102-1-55996/3803%20Strategic%20Product%20Development%20and%20Cost%20Estimates%20for%20Futurisitc%20Products.pdf
The document introduces a modular system architecture for distributed enterprise applications. The key elements are modules and a module repository. Modules represent reusable business or technical functions and are versioned. A module manager makes modules available to clients from the repository. The middleware broker is lightweight at 60KB and only handles module access, without any business logic. This allows modules to be technology and platform independent, with client and server sides using the same modules.
Model Drivers: The testing profile and its opportunity 2013-09-01Greg Soulsby
The UML Testing Profile is a language which you can use to describe your testing and conformance design and strategy.
Fast and accurate build of tests: Its structure enables you to auto-generate tests for your business processes and systems. You know your testing and conformance is correct to the design.
Tests guaranteed to match business requirements: If you also have the design of your business domain described you can ensure your tests are in lockstep with your business systems etc. Change one and the change ripples through to the other.
S. Rajasekhar is a mechanical engineer with 5 years of experience in design engineering. He has worked at QuEST Global and Caterpillar Engineering Design Centre India as a design engineer. He has expertise in modeling, detailing, quality control, and manufacturing. Currently deputed at MBRDI in Bangalore, he has been involved in the migration of designs from CATIA V5 to NX for Daimler Truck North America.
Rhapsody and MATLAB/Simulink have several integration points that allow design and simulation of cyber-physical systems. This includes generating Simulink models from Rhapsody, creating S-functions for use in Simulink, and evaluating parametric constraints using MATLAB. Bringing Simulink models into the Rhapsody Design Manager enables traceability and collaboration across the system design lifecycle.
A mathematical approach to sap functional workSom Nandivada
1) The document proposes using the formal specification language Z to specify SAP functional work, with Supply Chain used as a case study. Z is recommended because it bridges natural language requirements and technical solutions using formal logic and math.
2) A Supply Chain Optimization Framework (SCOF) is presented, which is a library of Z schemas that can specify domains within Supply Chain to support SAP application lifecycle management.
3) An example Planning schema is shown, and it is argued that using formal logic and Z schemas to systematically specify problems can lead to better SAP solution options, especially as business landscapes increase in complexity.
The document provides a portfolio review of Mark Stempski's work experience and projects at Microsoft. It includes summaries of his contributions to Analysis Services, SQL Server personas, business intelligence strategic research, and Reporting Services. Recent projects involved tactical usability testing and research to help define new features for SQL Server 2008 R2 and SQL Server 11.
Shigeyuki Kobayashi has over 21 years of experience in software development and 12 years in storage product marketing. He has a proven track record of technical marketing skills like new product launches and customer presentations. His most recent experience includes less than one year working in data center operations transition and ITIL-based operations for a global pharmaceutical company in Japan.
Dmt 5899 workshop - Learn to Collaborate, Trace, Review and Reuse Your Requir...IBM Rational software
The document discusses IBM Rational DOORS Next Generation (DOORS NG), a requirements management application. It provides an overview of good requirements practices, the key capabilities of DOORS NG for managing requirements through the project lifecycle, and how it integrates with other IBM Rational tools. DOORS NG allows users to author, organize, trace, collaborate on, and reuse requirements. It also facilitates requirements management best practices such as traceability, impact analysis, and ensuring requirements are testable.
Automatic measurements of use cases with cosmic thomas fehlmannIWSM Mensura
This document contains information about an Excel-based tool called CosmicCount.xltm that allows automatically counting COSMIC function points of use case diagrams. It describes the tool's features such as automatically detecting actors, business classes, data groups and data movements from use case diagrams drawn or imported into the tool. The document provides examples of how the tool counts function points and how the results are displayed. It also describes various worksheets in the Excel file that define elements like the application boundary, functional user requirements, objects of interest involved in use case diagrams.
This presentation describe the importance of trade-off between software architecture quality attribute (NFR). Explain about Performance, Security, Availability and Scalability in depth and other in briefly.
Presented on tech talk @ DFN Technology.
This document provides an introduction to cloud computing, covering its origins, definitions, models, layers, virtualization, software-defined networking, network functions virtualization, benefits, and challenges. Key topics include the NIST cloud computing definition, SPI service models (infrastructure, platform, software as a service), public/private/hybrid cloud deployment models, and how cloud computing delivers scalable IT resources over the internet on a pay-per-use basis.
PERFORMANCE FACTORS OF CLOUD COMPUTING DATA CENTERS USING [(M/G/1) : (∞/GDM O...ijgca
The ever-increasing status of the cloud computing h
ypothesis and the budding concept of federated clou
d
computing have enthused research efforts towards in
tellectual cloud service selection aimed at develop
ing
techniques for enabling the cloud users to gain max
imum benefit from cloud computing by selecting
services which provide optimal performance at lowes
t possible cost. Cloud computing is a novel paradig
m
for the provision of computing infrastructure, whic
h aims to shift the location of the computing
infrastructure to the network in order to reduce th
e maintenance costs of hardware and software resour
ces.
Cloud computing systems vitally provide access to l
arge pools of resources. Resources provided by clou
d
computing systems hide a great deal of services fro
m the user through virtualization. In this paper, t
he
cloud data center is modelled as
queuing system with a single task arrivals
and a task request buffer of infinite capacity.
Making Things Simpler: How Primitives Help Integrate BPM and Enterprise Archi...Michael zur Muehlen
The document discusses modeling concepts for enterprise architecture, including defining architecture with modeling languages, using models to describe and capture structure and domain content, and organizing models with taxonomies and model data vocabularies. It also addresses ensuring consistent rendering of models from requirements to implementation based on audience and needs.
Cloud computing has become the dominant computing paradigm as businesses and consumers have shifted workloads from personal devices and on-premise servers to third-party cloud services and platforms. This transition has created a large ecosystem of cloud-based business services available in online marketplaces. Many organizations now utilize a hybrid environment combining private and public cloud resources to maximize value across their IT operations.
The document discusses architectures for cloud computing. It begins by defining cloud computing and its key characteristics according to NIST. It then discusses different cloud deployment models and service models. The document uses the example of an e-commerce company called Spring Biking to illustrate how to architect applications for the cloud in a way that addresses challenges like lack of statefulness, failure handling, and elastic scaling. It discusses strategies like implementing BASE architectures using event sourcing and NoSQL databases.
This document discusses cloud computing and provides an overview of key concepts. It begins by looking at new demands for IT infrastructure including capacity, security, availability, and scalability. It then examines challenges of high operating costs and complexity. Benefits of cloud computing are outlined such as flexibility, scalability, and lower costs. Common cloud service models like SaaS, PaaS, and IaaS are defined along with deployment models. Examples of existing cloud systems like Amazon AWS, Google App Engine, and Microsoft Azure are also mentioned.
WSO2 Cloud Platform allows users to purchase computations, storage, and services on demand. It provides infrastructure as a service (IaaS), platform as a service (PaaS), and software as a service (SaaS) models in both public and private cloud deployments. The platform is multi-tenant and auto-scales resources elastically based on load. It aims to simplify deploying and managing applications and services in the cloud with tools for development, identity management, and governance.
Using Composite Feature Models to Support Agile Software Product Line Evoluti...Simon Urli
This document discusses using composite feature models to support agile software product line evolution. It proposes separating a software product line into multiple feature models, one for each domain concept, and using a model to define relationships between the concepts and feature models. This approach aims to make the feature models easier to evolve independently while still representing dependencies. Refactoring scripts could then support automated evolution driven by a community in an agile manner. Validation on other use cases and automation of vocabulary alignment are mentioned as future work.
Toby Smith is an experienced technical and business analyst with 19 years of experience in software development within the automotive retail sector. He has worked in both technical and non-technical roles covering all aspects of the software development lifecycle. His experience includes business requirements gathering, systems testing, deployment, and stakeholder engagement. He holds a computer science degree and has extensive experience with technologies such as .NET, SQL Server, JavaScript, and Agile methodologies.
The document discusses modeling and the benefits of modeling complex systems. It notes that modeling helps visualize, specify, guide construction of, and document systems that would otherwise be too vast to comprehend. The importance of modeling increases as systems increase in scale and complexity. Modeling allows for simulating "what if" scenarios to help with early verification and validation. The document discusses how modeling enables the development of things as complex as software systems with millions of lines of code and global deployments.
System Architect, the market leading Enterprise Architecture tool from IBM, now has improved integrations, extra capabilities and a new ArchiMate 2.0 extension, plus much more. Martin Owen from Corso explains.
Strategic Product Development and Cost Estimates for Automotive IndustryVedant Borse
SAP Sapphire 2014
Session: 3803 strategic product development
https://www.asug.com/discussions/servlet/JiveServlet/downloadBody/38836-102-1-55996/3803%20Strategic%20Product%20Development%20and%20Cost%20Estimates%20for%20Futurisitc%20Products.pdf
The document introduces a modular system architecture for distributed enterprise applications. The key elements are modules and a module repository. Modules represent reusable business or technical functions and are versioned. A module manager makes modules available to clients from the repository. The middleware broker is lightweight at 60KB and only handles module access, without any business logic. This allows modules to be technology and platform independent, with client and server sides using the same modules.
Model Drivers: The testing profile and its opportunity 2013-09-01Greg Soulsby
The UML Testing Profile is a language which you can use to describe your testing and conformance design and strategy.
Fast and accurate build of tests: Its structure enables you to auto-generate tests for your business processes and systems. You know your testing and conformance is correct to the design.
Tests guaranteed to match business requirements: If you also have the design of your business domain described you can ensure your tests are in lockstep with your business systems etc. Change one and the change ripples through to the other.
S. Rajasekhar is a mechanical engineer with 5 years of experience in design engineering. He has worked at QuEST Global and Caterpillar Engineering Design Centre India as a design engineer. He has expertise in modeling, detailing, quality control, and manufacturing. Currently deputed at MBRDI in Bangalore, he has been involved in the migration of designs from CATIA V5 to NX for Daimler Truck North America.
Rhapsody and MATLAB/Simulink have several integration points that allow design and simulation of cyber-physical systems. This includes generating Simulink models from Rhapsody, creating S-functions for use in Simulink, and evaluating parametric constraints using MATLAB. Bringing Simulink models into the Rhapsody Design Manager enables traceability and collaboration across the system design lifecycle.
A mathematical approach to sap functional workSom Nandivada
1) The document proposes using the formal specification language Z to specify SAP functional work, with Supply Chain used as a case study. Z is recommended because it bridges natural language requirements and technical solutions using formal logic and math.
2) A Supply Chain Optimization Framework (SCOF) is presented, which is a library of Z schemas that can specify domains within Supply Chain to support SAP application lifecycle management.
3) An example Planning schema is shown, and it is argued that using formal logic and Z schemas to systematically specify problems can lead to better SAP solution options, especially as business landscapes increase in complexity.
The document provides a portfolio review of Mark Stempski's work experience and projects at Microsoft. It includes summaries of his contributions to Analysis Services, SQL Server personas, business intelligence strategic research, and Reporting Services. Recent projects involved tactical usability testing and research to help define new features for SQL Server 2008 R2 and SQL Server 11.
Shigeyuki Kobayashi has over 21 years of experience in software development and 12 years in storage product marketing. He has a proven track record of technical marketing skills like new product launches and customer presentations. His most recent experience includes less than one year working in data center operations transition and ITIL-based operations for a global pharmaceutical company in Japan.
Dmt 5899 workshop - Learn to Collaborate, Trace, Review and Reuse Your Requir...IBM Rational software
The document discusses IBM Rational DOORS Next Generation (DOORS NG), a requirements management application. It provides an overview of good requirements practices, the key capabilities of DOORS NG for managing requirements through the project lifecycle, and how it integrates with other IBM Rational tools. DOORS NG allows users to author, organize, trace, collaborate on, and reuse requirements. It also facilitates requirements management best practices such as traceability, impact analysis, and ensuring requirements are testable.
Automatic measurements of use cases with cosmic thomas fehlmannIWSM Mensura
This document contains information about an Excel-based tool called CosmicCount.xltm that allows automatically counting COSMIC function points of use case diagrams. It describes the tool's features such as automatically detecting actors, business classes, data groups and data movements from use case diagrams drawn or imported into the tool. The document provides examples of how the tool counts function points and how the results are displayed. It also describes various worksheets in the Excel file that define elements like the application boundary, functional user requirements, objects of interest involved in use case diagrams.
This presentation describe the importance of trade-off between software architecture quality attribute (NFR). Explain about Performance, Security, Availability and Scalability in depth and other in briefly.
Presented on tech talk @ DFN Technology.
This document provides an introduction to cloud computing, covering its origins, definitions, models, layers, virtualization, software-defined networking, network functions virtualization, benefits, and challenges. Key topics include the NIST cloud computing definition, SPI service models (infrastructure, platform, software as a service), public/private/hybrid cloud deployment models, and how cloud computing delivers scalable IT resources over the internet on a pay-per-use basis.
PERFORMANCE FACTORS OF CLOUD COMPUTING DATA CENTERS USING [(M/G/1) : (∞/GDM O...ijgca
The ever-increasing status of the cloud computing h
ypothesis and the budding concept of federated clou
d
computing have enthused research efforts towards in
tellectual cloud service selection aimed at develop
ing
techniques for enabling the cloud users to gain max
imum benefit from cloud computing by selecting
services which provide optimal performance at lowes
t possible cost. Cloud computing is a novel paradig
m
for the provision of computing infrastructure, whic
h aims to shift the location of the computing
infrastructure to the network in order to reduce th
e maintenance costs of hardware and software resour
ces.
Cloud computing systems vitally provide access to l
arge pools of resources. Resources provided by clou
d
computing systems hide a great deal of services fro
m the user through virtualization. In this paper, t
he
cloud data center is modelled as
queuing system with a single task arrivals
and a task request buffer of infinite capacity.
Making Things Simpler: How Primitives Help Integrate BPM and Enterprise Archi...Michael zur Muehlen
The document discusses modeling concepts for enterprise architecture, including defining architecture with modeling languages, using models to describe and capture structure and domain content, and organizing models with taxonomies and model data vocabularies. It also addresses ensuring consistent rendering of models from requirements to implementation based on audience and needs.
Cloud computing has become the dominant computing paradigm as businesses and consumers have shifted workloads from personal devices and on-premise servers to third-party cloud services and platforms. This transition has created a large ecosystem of cloud-based business services available in online marketplaces. Many organizations now utilize a hybrid environment combining private and public cloud resources to maximize value across their IT operations.
The document discusses architectures for cloud computing. It begins by defining cloud computing and its key characteristics according to NIST. It then discusses different cloud deployment models and service models. The document uses the example of an e-commerce company called Spring Biking to illustrate how to architect applications for the cloud in a way that addresses challenges like lack of statefulness, failure handling, and elastic scaling. It discusses strategies like implementing BASE architectures using event sourcing and NoSQL databases.
This document discusses cloud computing and provides an overview of key concepts. It begins by looking at new demands for IT infrastructure including capacity, security, availability, and scalability. It then examines challenges of high operating costs and complexity. Benefits of cloud computing are outlined such as flexibility, scalability, and lower costs. Common cloud service models like SaaS, PaaS, and IaaS are defined along with deployment models. Examples of existing cloud systems like Amazon AWS, Google App Engine, and Microsoft Azure are also mentioned.
WSO2 Cloud Platform allows users to purchase computations, storage, and services on demand. It provides infrastructure as a service (IaaS), platform as a service (PaaS), and software as a service (SaaS) models in both public and private cloud deployments. The platform is multi-tenant and auto-scales resources elastically based on load. It aims to simplify deploying and managing applications and services in the cloud with tools for development, identity management, and governance.
JPJ1410 PACK: Prediction-Based Cloud Bandwidth and Cost Reduction Systemchennaijp
This paper presents PACK, a receiver-based end-to-end traffic redundancy elimination system for cloud computing. PACK aims to reduce bandwidth costs for cloud customers by having the client predict and eliminate redundant data sent by the cloud server. It does this by having the client maintain chunks of previously received data and use these to identify redundant chunks in newly received data, allowing it to send "predictions" to the server about future chunks. This avoids the need for the server to do processing for traffic redundancy elimination.
The document discusses hidden costs associated with cloud computing. It notes that cloud services continue to incur costs until removed, and provides examples of unexpected costs like unused applications, data migration, bandwidth overages, integration with other systems, security issues, and management responsibilities. The document advises planning for these issues, starting with pilot projects, and not assuming the cloud solves all problems.
Managing A Cloud Environment: How To Get Started And Which Way To Go talemadi
This document discusses cloud computing strategies. It begins with introductions to cloud computing concepts and models. It then discusses the goals, advantages, and disadvantages of cloud computing. It provides advice on developing a cloud computing strategy, considering factors like existing infrastructure, applications, services portfolio, and business requirements. It emphasizes aligning a company's IT strategy with its overall business strategy. Finally, it provides tips for an effective cloud computing strategy, such as considering costs, architecture, and governance.
Is your infrastructure holding you back?Gabe Akisanmi
This ebook will help you connect the dots between
today’s biggest business opportunities and the specific
technology required to seize them. You’ll get the facts
you need to identify where current components may
be falling short—and how the right investments in infrastructure
can lead to better business outcomes while
strengthening your role as a strategic consultant within
your organization.
Comparative Analysis of SOA and Cloud Computing Architectures using Fact Base...Abbie Barbir
Basic concepts of Cloud Computing
Cloud Computing Ref Architecture
Basic concepts of ISO SOA (Service Oriented Architecture)
SOA Reference Architecture
Cloud Computing & SOA Analysis
This presentation looks at the practical issues for moving applications to the cloud.
It addresses the need to choose the applications carefully and how to decide which type of cloud platform is suitable for delivering cloud benefits.
Gartner did an Audience survey at the Gartner US data center conference Dec 2013 showing that the No. 1 Issue Slowing Adoption of Public Cloud Computing was Security. Cloud is a place where 82% of organization will store sensitive data in the next 2 years according to a study from Ponemon Institute. The Ponemon Institute concluded that Cloud security is an oxymoron for many companies. Sixty-two percent of respondents do not agree or are unsure that cloud services are thoroughly vetted before deployment. Sixty-nine percent believe there is a failure to be proactive in assessing information that is too sensitive to be stored in the cloud. 46 percent of IT professionals in this study say their organizations have stopped or slowed the adoption of cloud services because of security concerns, indicating there is still work to be done to continue advancing cloud adoption. Cloud Security Alliance (CSA) showed that reported cloud outages due to “Insecure Interfaces & APIs”accounted for 29% of all threats; and “Data Loss & Leakage” accounted for 25% of all threats reported. 25% of reported cloud outages did not reveal the causes of the outages. The aim of this report is to encourage transparency and accountability from cloud service providers. Consumers have no control over security once data is inside the public cloud. Completely reliant on provider for application and storage security. A private cloud gives a single Cloud Consumers organization the exclusive access to and usage of the infrastructure and computational resources. But Consumer has limited capability to manage security within outsourced IaaS private cloud. Depending upon the type of Cloud Deployment Model additional threats vectors (that would have not come into the equation for a non-cloud deployment) could be induced. An example of such a threat vector in a SAAS deployment would be induced by multi-tenancy when the same application run time is being used to service multiple tenants and their segregated data. Cloud computing may present different risks to an organization than traditional IT solutions. Examples from Cloud Security Alliance highlighting concerns that Virtualization is bringing. This is one of the key elements of Infrastructure as a Service (IaaS) cloud offerings and private clouds, and it is increasingly used in portions of the back-end of Platform as a Service (PaaS) and SaaS (Software as a Service) providers as well. Just to mention a few examples: A few exmples of Hypervisor Architecture Concerns include: VM Encryption - Virtual machine images are vulnerable to theft or modification when they are dormant or running. The solution to this problem is to encrypt virtual machine images at all times, but there are performance concerns at this time. For high security or regulated environments, the performance cost is worth it. Encryption must be combined with administrative controls, DLP, and audit trails to prevent a snapshot of a running VM from “escaping into the wild,” which
Using the Amazon cloud requires a lot of moving parts like AMIs, ASGs, and ELBs. See how a small Netflix team developed web-based tools to abstract and clarify these cloudy components for use by hundreds of engineers.
Presented at "Talk Cloudy to Me II" hosted by the Silicon Valley Cloud Computing Group in 2011.
Apple Keynote version with animations is on Google Docs at http://bit.ly/netflixcloudtools
Multi-tenancy refers to the ability to run multiple users of an application on a shared infrastructure. Such an infrastructure makes oblivious the need for having a dedicated infrastructure for each user or user group. This helps in the economies of scale by saving on the per user cost of operations.
Several SaaS based applications like SalesForce.com provide a fine grained multi-tenant model. The common way to implement multi-tenancy is at the data layer, however this introduces a fair set of challenges when one decides to move to the cloud. Most solutions would focus around spreading the users across the cloud, however, what happens when a user is large enough to spread across the cloud? If you have an existing application, it requires a complete rewrite and also forces fairly significant changes to the existing data model. The current set of multi-tenant practices do not address the challenges of dynamic elasticity. The session tries to look at the challenges and possible solutions for the context.
Saa s multitenant database architecturemmubashirkhan
The document discusses cloud computing and service models including SaaS, PaaS, and IaaS. It then describes challenges with multitenant databases and proposes two solutions. The first proposes an efficient shared schema approach with authentication and authorization. The second proposes a non-intrusive database for large-scale SaaS with data isolation, security, and scalability. It compares the solutions and recommends backup strategies, encrypted data storage, and unique ID generation.
This document summarizes Fawaz Paraïso's Ph.D research on multi-cloud Platform as a Service (PaaS). It begins with an introduction to cloud computing models and the challenges of vendor lock-in and outages. It then reviews the state of the art in cloud interoperability and elastic applications. Paraïso's contribution is a generic architecture for a federated multi-cloud PaaS that provides portability, interoperability, and elasticity across heterogeneous cloud environments. The multi-cloud PaaS was evaluated using three software applications with results demonstrating improved elasticity and performance over single cloud platforms. Future work involves further monitoring of application performance and large-scale case studies.
The document discusses using service level agreements (SLAs) as derivatives contracts for data centers and virtual resource markets. It proposes treating SLAs like software that goes through a development lifecycle from initiation to evaluation. Standard models and tools are needed to compose reusable SLA components as the virtual resource market develops.
MS Cloud Day - Cloud Computing – A Crash Course for Architects Spiffy
This document discusses architectural principles for designing cloud applications. It recommends designing applications to be monitored, asynchronous, and stateless. Applications should be designed to scale out horizontally across multiple availability zones. Key principles include designing for failure handling and rollbacks, using mature technologies, and moving non-core functions to the cloud. The document also discusses splitting applications and databases across different axes to improve scalability and fault tolerance.
Are you searching for ways to ensure your design system stays relevant in the ever-changing digital landscape? Join T. Rowe Price's Beacon Engineering Lead as they share their insight on building a design system using a web standards-first approach.
Discover the reasons behind their decision to pivot away from developing for multiple frameworks used at the firm and towards a more streamlined solution.
Learn how utilizing browser standards such as web components, CSS variables, and more have helped increase throughput, consistency, and accessibility.
Don't miss this opportunity to gain valuable insights and strategies for creating a design system that remains adaptable while providing delightful customer and developer experiences.
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
This webinar presented a DevOps platform from Clarive and DBmaestro for continuous delivery of database changes. It discussed challenges with traditional database development and deployment processes. The platform provides coordination, collaboration, integration and automation capabilities to standardize processes across teams and tools. It also offers insights, approvals and release automation to safely deploy database changes.
Presentazione durante il Cloud Community Day del 22 luglio 2013 presso il Politecnico di Milano.
http://www.eurocloud.it/index.php/component/content/article/190-cloud-communities-day
Architecturing the software stack at a small businessYangJerng Hwa
A meditation / review of work in progress.
Context: I think we're at a relatively stable point in development, so I wanted to just summarise where I am, and how I got here, because I think I need to spend the next 2-3 weeks on bookkeeping and hardware repairs instead!
The document discusses the role of an IT architect. It describes what architects do, including defining systems to solve problems, managing non-functional requirements, collaborating on technology selection, and delivering solutions through leadership and mentoring. It also covers some of the tools architects use, such as frameworks, commercial off-the-shelf components, and messaging systems to integrate applications and transform data.
[2015/2016] Introduction to software architectureIvano Malavolta
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
The document summarizes a lecture on enterprise web application architecture and design. It discusses key topics like architectural patterns, object-oriented design principles, UML diagrams, and the .NET framework. Students will work in groups of 3 on a semester-long project to build a web application prototype. They are given examples of possible projects and an overview of the topics that will be covered each lecture day.
This session provides an overview of how organizations can migrate workloads to the AWS cloud at scale. We will go through available migration frameworks and best practices with common use case examples during this session. After migrating the initial workloads, understand how to migrate at scale to the AWS cloud. Hear about real life experiences from the AWS Professional Services team and learn about common use case examples, frameworks, and best practices. Hear about what to avoid when migrating applications at scale to AWS and understand the tools and partner services that can assist you when migrating applications to AWS.
This document discusses applying domain-driven design patterns to serverless architecture. It begins by introducing the speaker and their background. It then provides an overview of serverless architecture and some of its benefits. The document goes on to discuss challenges that can arise with serverless applications as they grow in complexity, and suggests that organizing principles like domain-driven design patterns are needed. It proceeds to cover domain-driven design concepts like bounded contexts, aggregates, repositories, and CQRS, and provides examples of how they could be applied to serverless architecture. It concludes by discussing some interim conclusions, including that serverless is a new paradigm that requires principles to tame complexity, and that domain-driven design offers useful patterns for this purpose.
A presentation on best practices for J2EE scalability from requirements gathering through to implementation, including design and architecture along the way.
Service Lifecycle Management with Fuse Service WorksKenneth Peeples
This document provides an introduction and overview of the design time governance capabilities of Fuse Service Works (FSW). It describes how FSW uses Apache Camel, JBoss Switchyard, JBoss Overlord S-RAMP, and service lifecycle management to provide capabilities like policy management, quality management, lifecycle management, and business transaction monitoring. It also provides examples of using FSW for scenarios like building composite services, determining the impact of API changes, and managing the project lifecycle.
The document provides an overview of software analysis and design. It defines the key purposes of analysis and design as transforming requirements into a system design and evolving an architecture. It explains the difference between analysis, which focuses on understanding problems, and design, which focuses on solutions. The document also introduces common analysis and design concepts like the four views of architecture, use cases, packages, layers, and patterns.
This document discusses business logic layers and object-oriented design patterns. It begins by explaining what a business logic layer is and provides examples of services, entities, and rules/calculations. It then covers different patterns for structuring business logic, including procedure pattern, table module pattern, and object-based patterns like active record and domain model. Key differences between the patterns are explained. The remainder of the document dives deeper into object-oriented design patterns, categorizing them as creational, structural, and behavioral patterns. Examples are provided for factory, singleton, decorator, proxy, adapter, facade, strategy, and chain of responsibility patterns. Polymorphism and its importance to design patterns is also discussed.
The development of modern IDEs is still a challenging and time-consuming task, which requires implementing the support for language-specific features such as syntax highlighting or validation. When the IDE targets a graphical language, its development becomes even more complex due to the rendering and manipulation of the graphical notation symbols.
To simplify the development of IDEs, the Language Server Protocol (LSP) proposes a decoupled approach based on language-agnostic clients and language-specific servers.
LSP clients communicate changes to LSP servers, which validate and store language instances. However, LSP only addresses textual languages (i.e., character as atomic unit) and neglects the support for graphical ones (i.e., nodes/edges as atomic units). In this paper, we introduce a novel LSP infrastructure to simplify the development of new graphical modeling tools, in which Web technologies may be used for editor front-ends while leveraging existing modeling frameworks to build language servers. More concretely, in this work, we present the architecture of our LSP infrastructure, based on LSP4J, to build EMF-based graphical language servers.
Shaping serverless architecture with domain driven design patternsShimon Tolts
This document discusses using Domain-Driven Design (DDD) patterns to structure serverless applications. It introduces DDD concepts like bounded contexts, aggregates, repositories, and CQRS. Bounded contexts separate domains into cohesive models that are loosely coupled. Aggregates define transactional boundaries and ensure data integrity. Repositories provide storage and retrieval of aggregates. CQRS separates commands and queries using different data models. Applying these DDD patterns can help organize serverless applications as they grow in complexity.
Shaping serverless architecture with domain driven design patternsAsher Sterkin
This document discusses using Domain-Driven Design (DDD) patterns to structure serverless applications. It introduces DDD concepts like bounded contexts, aggregates, repositories, and CQRS. Bounded contexts separate domains into cohesive models that are loosely coupled. Aggregates define transactional boundaries and ensure data integrity. Repositories provide storage and retrieval of aggregates. CQRS separates commands and queries using different data models. Applying these DDD patterns can help organize serverless applications as they grow in complexity.
Similar to Managing Trade-offs among Architectural Tactics using Feature models and Feature Solution Graphs (20)
Consistent toolbox talks are critical for maintaining workplace safety, as they provide regular opportunities to address specific hazards and reinforce safe practices.
These brief, focused sessions ensure that safety is a continual conversation rather than a one-time event, which helps keep safety protocols fresh in employees' minds. Studies have shown that shorter, more frequent training sessions are more effective for retention and behavior change compared to longer, infrequent sessions.
Engaging workers regularly, toolbox talks promote a culture of safety, empower employees to voice concerns, and ultimately reduce the likelihood of accidents and injuries on site.
The traditional method of conducting safety talks with paper documents and lengthy meetings is not only time-consuming but also less effective. Manual tracking of attendance and compliance is prone to errors and inconsistencies, leading to gaps in safety communication and potential non-compliance with OSHA regulations. Switching to a digital solution like Safelyio offers significant advantages.
Safelyio automates the delivery and documentation of safety talks, ensuring consistency and accessibility. The microlearning approach breaks down complex safety protocols into manageable, bite-sized pieces, making it easier for employees to absorb and retain information.
This method minimizes disruptions to work schedules, eliminates the hassle of paperwork, and ensures that all safety communications are tracked and recorded accurately. Ultimately, using a digital platform like Safelyio enhances engagement, compliance, and overall safety performance on site. https://safelyio.com/
Odoo releases a new update every year. The latest version, Odoo 17, came out in October 2023. It brought many improvements to the user interface and user experience, along with new features in modules like accounting, marketing, manufacturing, websites, and more.
The Odoo 17 update has been a hot topic among startups, mid-sized businesses, large enterprises, and Odoo developers aiming to grow their businesses. Since it is now already the first quarter of 2024, you must have a clear idea of what Odoo 17 entails and what it can offer your business if you are still not aware of it.
This blog covers the features and functionalities. Explore the entire blog and get in touch with expert Odoo ERP consultants to leverage Odoo 17 and its features for your business too.
An Overview of Odoo ERP
Odoo ERP was first released as OpenERP software in February 2005. It is a suite of business applications used for ERP, CRM, eCommerce, websites, and project management. Ten years ago, the Odoo Enterprise edition was launched to help fund the Odoo Community version.
When you compare Odoo Community and Enterprise, the Enterprise edition offers exclusive features like mobile app access, Odoo Studio customisation, Odoo hosting, and unlimited functional support.
Today, Odoo is a well-known name used by companies of all sizes across various industries, including manufacturing, retail, accounting, marketing, healthcare, IT consulting, and R&D.
The latest version, Odoo 17, has been available since October 2023. Key highlights of this update include:
Enhanced user experience with improvements to the command bar, faster backend page loading, and multiple dashboard views.
Instant report generation, credit limit alerts for sales and invoices, separate OCR settings for invoice creation, and an auto-complete feature for forms in the accounting module.
Improved image handling and global attribute changes for mailing lists in email marketing.
A default auto-signature option and a refuse-to-sign option in HR modules.
Options to divide and merge manufacturing orders, track the status of manufacturing orders, and more in the MRP module.
Dark mode in Odoo 17.
Now that the Odoo 17 announcement is official, let’s look at what’s new in Odoo 17!
What is Odoo ERP 17?
Odoo 17 is the latest version of one of the world’s leading open-source enterprise ERPs. This version has come up with significant improvements explained here in this blog. Also, this new version aims to introduce features that enhance time-saving, efficiency, and productivity for users across various organisations.
Odoo 17, released at the Odoo Experience 2023, brought notable improvements to the user interface and added new functionalities with enhancements in performance, accessibility, data analysis, and management, further expanding its reach in the market.
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdfBaha Majid
IBM watsonx Code Assistant for Z, our latest Generative AI-assisted mainframe application modernization solution. Mainframe (IBM Z) application modernization is a topic that every mainframe client is addressing to various degrees today, driven largely from digital transformation. With generative AI comes the opportunity to reimagine the mainframe application modernization experience. Infusing generative AI will enable speed and trust, help de-risk, and lower total costs associated with heavy-lifting application modernization initiatives. This document provides an overview of the IBM watsonx Code Assistant for Z which uses the power of generative AI to make it easier for developers to selectively modernize COBOL business services while maintaining mainframe qualities of service.
E-commerce Development Services- Hornet DynamicsHornet Dynamics
For any business hoping to succeed in the digital age, having a strong online presence is crucial. We offer Ecommerce Development Services that are customized according to your business requirements and client preferences, enabling you to create a dynamic, safe, and user-friendly online store.
WWDC 2024 Keynote Review: For CocoaCoders AustinPatrick Weigel
Overview of WWDC 2024 Keynote Address.
Covers: Apple Intelligence, iOS18, macOS Sequoia, iPadOS, watchOS, visionOS, and Apple TV+.
Understandable dialogue on Apple TV+
On-device app controlling AI.
Access to ChatGPT with a guest appearance by Chief Data Thief Sam Altman!
App Locking! iPhone Mirroring! And a Calculator!!
Mobile App Development Company In Noida | Drona InfotechDrona Infotech
Drona Infotech is a premier mobile app development company in Noida, providing cutting-edge solutions for businesses.
Visit Us For : https://www.dronainfotech.com/mobile-application-development/
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...kalichargn70th171
In today's fiercely competitive mobile app market, the role of the QA team is pivotal for continuous improvement and sustained success. Effective testing strategies are essential to navigate the challenges confidently and precisely. Ensuring the perfection of mobile apps before they reach end-users requires thoughtful decisions in the testing plan.
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesQuickdice ERP
Explore the seamless transition to e-invoicing with this comprehensive guide tailored for Saudi Arabian businesses. Navigate the process effortlessly with step-by-step instructions designed to streamline implementation and enhance efficiency.
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...kalichargn70th171
In today's business landscape, digital integration is ubiquitous, demanding swift innovation as a necessity rather than a luxury. In a fiercely competitive market with heightened customer expectations, the timely launch of flawless digital products is crucial for both acquisition and retention—any delay risks ceding market share to competitors.
Unveiling the Advantages of Agile Software Development.pdfbrainerhub1
Learn about Agile Software Development's advantages. Simplify your workflow to spur quicker innovation. Jump right in! We have also discussed the advantages.
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfVALiNTRY360
Salesforce Healthcare CRM, implemented by VALiNTRY360, revolutionizes patient management by enhancing patient engagement, streamlining administrative processes, and improving care coordination. Its advanced analytics, robust security, and seamless integration with telehealth services ensure that healthcare providers can deliver personalized, efficient, and secure patient care. By automating routine tasks and providing actionable insights, Salesforce Healthcare CRM enables healthcare providers to focus on delivering high-quality care, leading to better patient outcomes and higher satisfaction. VALiNTRY360's expertise ensures a tailored solution that meets the unique needs of any healthcare practice, from small clinics to large hospital systems.
For more info visit us https://valintry360.com/solutions/health-life-sciences
Measures in SQL (SIGMOD 2024, Santiago, Chile)Julian Hyde
SQL has attained widespread adoption, but Business Intelligence tools still use their own higher level languages based upon a multidimensional paradigm. Composable calculations are what is missing from SQL, and we propose a new kind of column, called a measure, that attaches a calculation to a table. Like regular tables, tables with measures are composable and closed when used in queries.
SQL-with-measures has the power, conciseness and reusability of multidimensional languages but retains SQL semantics. Measure invocations can be expanded in place to simple, clear SQL.
To define the evaluation semantics for measures, we introduce context-sensitive expressions (a way to evaluate multidimensional expressions that is consistent with existing SQL semantics), a concept called evaluation context, and several operations for setting and modifying the evaluation context.
A talk at SIGMOD, June 9–15, 2024, Santiago, Chile
Authors: Julian Hyde (Google) and John Fremlin (Google)
https://doi.org/10.1145/3626246.3653374
How Can Hiring A Mobile App Development Company Help Your Business Grow?ToXSL Technologies
ToXSL Technologies is an award-winning Mobile App Development Company in Dubai that helps businesses reshape their digital possibilities with custom app services. As a top app development company in Dubai, we offer highly engaging iOS & Android app solutions. https://rb.gy/necdnt
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISTier1 app
Are you ready to unlock the secrets hidden within Java thread dumps? Join us for a hands-on session where we'll delve into effective troubleshooting patterns to swiftly identify the root causes of production problems. Discover the right tools, techniques, and best practices while exploring *real-world case studies of major outages* in Fortune 500 enterprises. Engage in interactive lab exercises where you'll have the opportunity to troubleshoot thread dumps and uncover performance issues firsthand. Join us and become a master of Java thread dump analysis!
4. Architectural Tactics
there are tactics for each quality attribute
Bass et al.
Software Architecture in Practice
Addison-Wesley
2014
5. Architectural Tactics
there are designs to implement these tactics
Kim et al.
Quality-driven architecture
development using architectural
tactics
JSS, 82 (2009)., 1121-1231
13. Trade-off Management
Software architects must deal with trade-offs
⓪ Decide about tactics and design alternatives
❶ Detect conflicts among design alternatives
❷ Determine which tactics and qualities are involved
❸ Decide how to solve the conflict
13
15. Our Proposal
❶ Feature models to represent variability in:
• Architectural Tactics related to QAs,
• Platform design alternatives / configuration options
❷ Feature Solution Graphs to represent:
• Relationships between these feature models
❸ Automated tasks to help architect’s work
21. FM for Architectural Tactics
Tactics
Performance Availability
Active
Redundancy
Transactions
Reduce
Overhead
Copies of
Data
Copies of
Computation
Introduce
Concurrency
22. FM for Architectural Alternatives
Architectural Alternatives
Deployment View
Web Tier Additional
Tier
Cache
Service
Layer
Business
Logic Layer
LockingResult
Cache
Optimistic Pessimistic
Logic View
Session
Server
Single Node Multi Node
Sticky Load
Balancer
Normal Load
Balancer
requires
29. Example relationships
29
Architectural Tactic Design Alternatives
Maintain copies of data Suggests result cache
Forces entity cache
Maintain copies of
computation
Forces multi-node web tier
Introduce concurrency Forces optimistic locking
Reduce overhead Prohibits pessimistic locking
Suggests sticky-session load balancer
Active redundancy Forces normal load balancer
Transactions Prohibits optimistic locking
Prohibits session server
30. Example FS-Graphs
Architectural Alternatives
Deployment View
Web Tier Additional
Tier
Cache
Service
Layer
Business
Logic Layer
LockingResult
Cache
Optimistic Pessimistic
Logic View
Session
Server
Single Node Multi Node
Sticky Load
Balancer
Normal Load
Balancer
requires
Tactics
Performance
Availability
Active
Redundancy
Transactions
Reduce
Overhead
Copies of
Data
Copies of
Computation
Introduce
Concurrency
suggests
suggests
31. Example FS-Graphs
Architectural Alternatives
Deployment View
Web Tier Additional
Tier
Cache
Service
Layer
Business
Logic Layer
LockingResult
Cache
Optimistic Pessimistic
Logic View
Session
Server
Single Node Multi Node
Sticky Load
Balancer
Normal Load
Balancer
requires
Tactics
Performance
Availability
Active
Redundancy
Transactions
Reduce
Overhead
Copies of
Data
Copies of
Computation
Introduce
Concurrency
forces
32. Example FS-Graphs
Architectural Alternatives
Deployment View
Web Tier Additional
Tier
Cache
Service
Layer
Business
Logic Layer
LockingResult
Cache
Optimistic Pessimistic
Logic View
Session
Server
Single Node Multi Node
Sticky Load
Balancer
Normal Load
Balancer
requires
Tactics
Performance
Availability
Active
Redundancy
Transactions
Reduce
Overhead
Copies of
Data
Copies of
Computation
Introduce
Concurrency
prohibits
33. Example FS-Graphs
Architectural Alternatives
Deployment View
Web Tier Additional
Tier
Cache
Service
Layer
Business
Logic Layer
LockingResult
Cache
Optimistic Pessimistic
Logic View
Session
Server
Single Node Multi Node
Sticky Load
Balancer
Normal Load
Balancer
requires
Tactics
Performance
Availability
Active
Redundancy
Transactions
Reduce
Overhead
Copies of
Data
Copies of
Computation
Introduce
Concurrency
35. Trade-off Management
Software architects must deal with trade-offs
⓪ Decide about tactics and design alternatives
❶ Detect conflicts among design alternatives
❷ Determine which tactics and qualities are involved
❸ Decide how to solve the conflict
36. Propagate Decisions
⓪ Decide about tactics and design alternatives
Architectural Alternatives
Deployment View
Web Tier Additional
Tier
Cache
Service
Layer
Business
Logic Layer
LockingResult
Cache
Optimistic Pessimistic
Logic View
Session
Server
Single Node Multi Node
Sticky Load
Balancer
Normal Load
Balancer
requires
Tactics
Performance
Availability
Active
Redundancy
Transactions
Reduce
Overhead
Copies of
Data
Copies of
Computation
Introduce
Concurrency
37. Propagate Decisions
⓪ Decide about tactics and design alternatives
Architectural Alternatives
Deployment View
Web Tier Additional
Tier
Cache
Service
Layer
Business
Logic Layer
LockingResult
Cache
Optimistic Pessimistic
Logic View
Session
Server
Single Node Multi Node
Sticky Load
Balancer
Normal Load
Balancer
requires
Tactics
Performance
Availability
Active
Redundancy
Transactions
Reduce
Overhead
Copies of
Data
Copies of
Computation
Introduce
Concurrency
38. Propagate Decisions
⓪ Decide about tactics and design alternatives
Architectural Alternatives
Deployment View
Web Tier Additional
Tier
Cache
Service
Layer
Business
Logic Layer
LockingResult
Cache
Optimistic Pessimistic
Logic View
Session
Server
Single Node Multi Node
Sticky Load
Balancer
Normal Load
Balancer
requires
Tactics
Performance
Availability
Active
Redundancy
Transactions
Reduce
Overhead
Copies of
Data
Copies of
Computation
Introduce
Concurrency
39. Propagate Decisions
⓪ Decide about tactics and design alternatives
Architectural Alternatives
Deployment View
Web Tier Additional
Tier
Cache
Service
Layer
Business
Logic Layer
LockingResult
Cache
Optimistic Pessimistic
Logic View
Session
Server
Single Node Multi Node
Sticky Load
Balancer
Normal Load
Balancer
requires
Tactics
Performance
Availability
Active
Redundancy
Transactions
Reduce
Overhead
Copies of
Data
Copies of
Computation
Introduce
Concurrency
40. Propagate Decisions
⓪ Decide about tactics and design alternatives
– Feature-Architecture Relationships [Janota:]
– Multi-view Feature Models [Hubaux:2010]
– Constraint propagation on Configuration Links [Rein-Jury:2013]
– Decision propagation on FS-Graphs [Chavarriaga:2014]
42. Detect Conflicts
❶ Detect conflicts among design alternatives
Architectural Alternatives
Deployment View
Web Tier Additional
Tier
Cache
Service
Layer
Business
Logic Layer
LockingResult
Cache
Optimistic Pessimistic
Logic View
Session
Server
Single Node Multi Node
Sticky Load
Balancer
Normal Load
Balancer
requires
Tactics
Performance
Availability
Active
Redundancy
Transactions
Reduce
Overhead
Copies of
Data
Copies of
Computation
Introduce
Concurrency
43. Detect Conflicts
❶ Detect conflicts among design alternatives
Architectural Alternatives
Deployment View
Web Tier Additional
Tier
Cache
Service
Layer
Business
Logic Layer
LockingResult
Cache
Optimistic Pessimistic
Logic View
Session
Server
Single Node Multi Node
Sticky Load
Balancer
Normal Load
Balancer
requires
Tactics
Performance
Availability
Active
Redundancy
Transactions
Reduce
Overhead
Copies of
Data
Copies of
Computation
Introduce
Concurrency
44. Detect Conflicts
❶ Detect conflicts among design alternatives
forces
prohibits
suggests
forces
prohibits
suggests
𝑓𝑠𝑔′ 𝐴𝑅2𝐷𝐸 = 𝒂𝒑𝒑𝒍𝒚𝑭𝑺𝑮 ( 𝑐 𝐴𝑅, 𝑓𝑠𝑔 𝐴𝑅2𝐷𝐸 )
𝑓𝑚 𝐷𝐸 ∈ 𝑓𝑠𝑔′
𝐴𝑅2𝐷𝐸
, There is a conflict if 𝑓 𝑚 𝐷𝐸 = ∅
i.e, if 𝒔𝒑𝒆𝒄𝒊𝒂𝒍𝒊𝒛𝒆𝑭𝑺𝑮 𝐶𝐴𝑅 , 𝑓𝑠𝑔 𝐴𝑅2𝐷𝐸 ) = ∅
45. Explain Conflicts
❷ Determine which tactics and qualities are involved
forces
prohibits
suggests
forces
prohibits
suggests
If there is a conflict caused by 𝐶𝐴𝑅
𝐶′ 𝐴𝑅 ⊂ 𝐶𝐴𝑅 is an explanation if
𝒔𝒑𝒆𝒄𝒊𝒂𝒍𝒊𝒛𝒆𝑭𝑺𝑮 𝐶𝐴𝑅 − 𝐶′ 𝐴𝑅, 𝑓𝑠𝑔 𝐴𝑅2𝐷𝐸 ) ≠ ∅
46. Explain Conflicts
❷ Determine which tactics and qualities are involved
– Hitting Set Directed Acyclic Graph [Reiter:1987]
– Diagnosis Theory [Reiter:1987]
– QuickXplain [Junker:2004]
– FastDiag [Felferning:2012]
– Propagating Decisions [Chavarriaga:2014]
57. Conclusions
• We have presented our approach
– To model architectural tactics and their implementation
– To detect trade-off points
– To explain trade-off solutions
• We have illustrated our approach using architectural
tactics and design alternatives for database-based
web applications.
58. Conclusions
• Limitations:
– Our approach only detects conflicts caused by constraints
defined in the models.
• Conflicts not related with constraints in the model cannot be detected
– Only considers quality attributes that can be realized using
architectural tactics
• It does not consider attributes such as development and deployment
costs.
• Current/Future work:
– Support for configuration processes with multiple vires and
multiple stakeholders.
– Specially those where stakeholders decide at the same time.
Estoy realizando mi investigación doctoral en el contexto de la administración de variabilidad, en particular en el uso de múltiples modelos de features para modelar productos complejos y guíar procesos colaborativos de configuración.
Hoy voy a presentar nuestras ideas sobre como aplicar múltiples modelos de features y feature-solution graphs para gestionar trade-offs entre tácticas de arquitectura de software.
El manejo de los trade-off es una tarea común en arquitectura de software, y aquí estamos presentando una propuesta para ayudar el trabajo de los arquitectos
En la presentación, primero voy a explicar un poco las tácticas de arquitectura y la ocurrencia de los trade-offs, luego presentaré nuestra propuesta y algunas experiencias sobre su aplicación.
En un producto de software, la arquitectura se define para atender los requerimientos en términos de funcionalidades y de atributos de calidad.
Por ejemplo, en un producto determinado, el producto puede tener requerimientos en torno a atributos de calidad como rendimiento, disponibilidad, seguridad o escalabilidad.
En propuestas como el Attribute Driven Design del Software Engineering Institute, los arquitectos toman los requerimientos de atributos de calidad y un conjunto de tácticas de arquitectura para definir la arquitectura del producto.
Las tácticas de arquitectura son descripciones de diseños que permiten lograr un atributo de calidad.
Por ejemplo, si el arquitecto debe cumplir con requerimientos en torno al rendimiento de la aplicación, puede usar diseños que planteen copias de computación, copias de datos o que reduzcan el overhead o la latencia de los procesos.
Estas tácticas de arquitectura le premiten al arquitecto seleccionar que patrones de diseño incluir en la solución.
Por ejemplo, si yo deseo mantener copias de computación puede usar un patrón con delegados de servicio que repartan tareas entre varios hilos o en un pool de objetos.
Kim – other authors
Quality-driven architecture development using architectural tactics
Igualmente, para el caso de aplicaciones empresariales, estas tácticas también pueden ser implementadas usando patrones o esquemas de despliegue.
Por ejemplo, si deseo lograr un mayor rendimiento aplicando la táctica de múltiples copias de computación, puedo usar diferentes opciones de despliegue.
However, sometimes missed in the literature, there are other forms to implement architectural tactics.
In Enterprise Platforms and Cloud Computing, some tactics can be implemented using deployment options.
In these environments, applications run in application servers and middleware with multiple alternatives for configuration.
Por ejemplo, con el fin de mantener copias de computación, el arquitecto de software puede optar por servidores de aplicaciones con un balanceo de carga o servidores de aplicaciones en cluster
(Options to deploy in cloud computing)
For instance, a Java application may be deployed in a Cloud platform such as Jelastic using multiple options.
An application can be installed using a single tomcat application server, multiple application servers using an sticky session load balancer or an application server cluster with a non-sticky session load balancer
Cada una de las tácticas se enfoca en un único atributo de calidad.
Una situación de trade-off, de negociación, se da cuando se intentan lograr varios atributos de calidad al tiempo. Puede ocurrir que una decisión que ayude a lograr un atributo de calidad vaya en contra del logro de otro atributo de calidad.
Si se tienen dos tácticas o dos patrones de diseño en conflicto. Es necesario que el arquitecto detecte el conflicto y seleccione una de las dos tácticas o patrones. Debe revisar cuál atributo de calidad es más importante o cuál táctica y patrón es más conveniente, seleccionar uno y desechar el otro.
Por ejemplo, consideremos un caso en donde se desea lograr al tiempo rendimiento y disponibilidad
Es posible que un arquitecto opte, para el rendimiento, por mantener copias de computación usando un balanceador de carga en TCP/IP, que es muy rápido.
Por otro lado, el mismo arquitecto, intentando lograr disponibilidad, puede optar por utilizar redundancia activa usando servidores en clusters.
Es posible que un arquitecto opte, para el rendimiento, por mantener copias de computación usando un balanceador de carga en TCP/IP, que es muy rápido.
Por otro lado, el mismo arquitecto, intentando lograr disponibilidad, puede optar por utilizar redundancia activa usando servidores en clusters.
Es posible que un arquitecto opte, para el rendimiento, por mantener copias de computación usando un balanceador de carga en TCP/IP, que es muy rápido.
Por otro lado, el mismo arquitecto, intentando lograr disponibilidad, puede optar por utilizar redundancia activa usando servidores en clusters.
Cada una de las tácticas se enfoca en un único atributo de calidad.
Una situación de trade-off, de negociación, se da cuando se intentan lograr varios atributos de calidad al tiempo. Puede ocurrir que una decisión que ayude a lograr un atributo de calidad vaya en contra del logro de otro atributo de calidad.
Si se tienen dos tácticas o dos patrones de diseño en conflicto. Es necesario que el arquitecto detecte el conflicto y seleccione una de las dos tácticas o patrones. Debe revisar cuál atributo de calidad es más importante o cuál táctica y patrón es más conveniente, seleccionar uno y desechar el otro.
Feature Models have been used to represent variability in a domain. For instance, to represent which options or configuration elements can be included in an application.
Our approach is based on feature models to represent alternatives about the architectural tactics that can be used to achieve a Quality Attribute and the Diverse options to configure Jelastic.
We are proposing the use of Feature-Solution graphs to relate the architectural tactics to the jelastic configuration options. We use these graphs to represent how an architectural tactic can be implemented using that configuration options.
Cada una de las tácticas se enfoca en un único atributo de calidad.
Una situación de trade-off, de negociación, se da cuando se intentan lograr varios atributos de calidad al tiempo. Puede ocurrir que una decisión que ayude a lograr un atributo de calidad vaya en contra del logro de otro atributo de calidad.
Si se tienen dos tácticas o dos patrones de diseño en conflicto. Es necesario que el arquitecto detecte el conflicto y seleccione una de las dos tácticas o patrones. Debe revisar cuál atributo de calidad es más importante o cuál táctica y patrón es más conveniente, seleccionar uno y desechar el otro.
Extractos
-números, con tamaño
Numero de opciones
Note they are features…
Cada una de las tácticas se enfoca en un único atributo de calidad.
Una situación de trade-off, de negociación, se da cuando se intentan lograr varios atributos de calidad al tiempo. Puede ocurrir que una decisión que ayude a lograr un atributo de calidad vaya en contra del logro de otro atributo de calidad.
Si se tienen dos tácticas o dos patrones de diseño en conflicto. Es necesario que el arquitecto detecte el conflicto y seleccione una de las dos tácticas o patrones. Debe revisar cuál atributo de calidad es más importante o cuál táctica y patrón es más conveniente, seleccionar uno y desechar el otro.
Cada una de las tácticas se enfoca en un único atributo de calidad.
Una situación de trade-off, de negociación, se da cuando se intentan lograr varios atributos de calidad al tiempo. Puede ocurrir que una decisión que ayude a lograr un atributo de calidad vaya en contra del logro de otro atributo de calidad.
Si se tienen dos tácticas o dos patrones de diseño en conflicto. Es necesario que el arquitecto detecte el conflicto y seleccione una de las dos tácticas o patrones. Debe revisar cuál atributo de calidad es más importante o cuál táctica y patrón es más conveniente, seleccionar uno y desechar el otro.
Cada una de las tácticas se enfoca en un único atributo de calidad.
Una situación de trade-off, de negociación, se da cuando se intentan lograr varios atributos de calidad al tiempo. Puede ocurrir que una decisión que ayude a lograr un atributo de calidad vaya en contra del logro de otro atributo de calidad.
Si se tienen dos tácticas o dos patrones de diseño en conflicto. Es necesario que el arquitecto detecte el conflicto y seleccione una de las dos tácticas o patrones. Debe revisar cuál atributo de calidad es más importante o cuál táctica y patrón es más conveniente, seleccionar uno y desechar el otro.
Extractos
-números, con tamaño
Extractos
-números, con tamaño
Numero de opciones
Note they are features…
From 2,147,483,647 combinations of tactics
only 210,862,079 results in valid configurations in Jelastic.
Usamos técnicas que estamos desarrollando en nuestor proyecto doctoral
Future work:
Recommenders for cloud configuration in Jelastic and other platforms
- Tool support for FS-Graphs