This document provides an overview of software architecture. It defines software architecture as the high-level breakdown of a system into parts and the important decisions that are hard to change. The presentation discusses why architecture is needed for complex products or projects involving multiple teams. It outlines typical activities of a solutions architect and different levels of architectural scope. Drivers of architecture like requirements and constraints are presented. Common reference architectures and technology stacks are shown as examples.
2. Bio
• 16 years in Software Development
• 6 years experience in Real Time systems
development
• 10 Years of experience in Business Application
development for Enterprise
• Certified Scrum Master
• More than 2 years of Architecture experience
• US Healthcare domain expert (EHR, EMR, PM)
• SaaS architect at SoftServe
3. What is Software Architecture?
The high-level breakdown of a system into its parts
4. What is Software Architecture?
The decisions that are hard to change
5. What is NOT Software Architecture?
Details that do solely with internal implementation -
are not architectural
Teacher
1
Conselor
*
Class
-grade
*
School
1 * 1
1 Student
*
6. Why Architecture is needed?
Finnish house
Budget: $60K
Team: 5 developers
Time: 45 days
No Architects
7. Why Architecture is needed?
Burj Khalifa
Budget: $1.5B
Team: 7,500 developers
Schedule : 5 years
Architecture Team
Finnish house
Budget: $60K
Team: 5 developers
Schedule: 45 days
No Architects
8. Why Architecture is needed?
• Complex or non-trivial product
• Multiple teams
9. SA Activity
• Sales and Marketing Support
• Technology Consulting
• Discovery Projects
• Project Bootstrap
• Ongoing Architecture Support
• New technology investigation
• Trainings
• Competence Development
11. Logical Architectural Framework
Abstract
System use Reference use
Patterns
Requirements Architecture
derived
Business use Solution use
Technology
Requirements Architecture
Concrete
12. Architecture Drivers (example)
Business Constraints: System requirements:
Hosted Web-based Solution (Private Cloud)
Time To Market (?)
Desktop and Slate devices support (Win, Mac,
iPad, Android, WebOS)
Business requirements:
Multitenancy (SaaS Level 4)
? Data Model Extensibility (Dynamic forms)
UI Customization (forms layouts, themes, logo…)
Multi-language support (run-time switch)
Integration with external systems
Provisioning (Automated)
Security (Role based, HIPAA, SSL 2048)
Availability (24x7, 99.9%)
Maint. Window (6h), Disaster Recovery (48h)
Fault-Tolerance
Scalability (~8000 offices)
14. Reference Architecture
Traditional Web Client RIA Client Cross-Cutting
PC Browser PC Browser
RIA RIA
HTML Rendering RIA utilities
framework components
Single Sign-On
Integration
Application Services
Security
Utilities
Web Frameworks Programmatic Access
Web Application
Template engine REST WebServices
Framework
framework
Common
Identity and
Access
Business Logic Workflow (Processes)
Business Event
Rule Engine BPM Engine
Components Processing
Data Access Collaboration
Content
BAM
O/RM Mem Caching Search Engine
DW
Management
Operation Management
Reporting/BI
Report Engine
Infrastructure Services
Monitoring
Web Server Messaging
Serlvet Application
HTTP Server Message Queue ESB
Container Server
Build & Deploy
Reporting
AdHoc
Storage Distributed Computing
In-memory File Distributed Computing
RDBMS NoSQL DB Framework
DB storage
15. Technology Presets (example)
Open Source MS .NET MS Azure
JSF/ExtJS ASP.NET MVC 3 Azure Platform
Spring SilverLight/WPF SQL Azure
Hibernate/JPA Entity Framework AppFabric
JBoss AS/Tomcat WCF Azure Storage
JBoss Drools MSF Service Bus
JBoss BPM WF
OpenJMS MS BizTalk/ESB
Mule ESB MSMQ
MySQL/PostgreSQL IIS
JasperServer/JaperReports MS SQL Server
SSRS
SSIS
16. Ref Architecture + Technology Stack
Traditional Web Client RIA Client Cross-Cutting
PC Browser PC Browser
HTML Rendering
RIA ExtJS/jQuery
framework
RIA
components
RIA utilities
Single Sign-On
Integration
Application Services
Grails
Security
Utilities
Web Frameworks Programmatic Access
Grails
Web Application
Template engine Grails
REST WebServices
Framework
framework
Common
Identity and
Access
Business Logic Workflow (Processes)
Grails
Business
Components
Rule Engine
Event
Processing BPM Engine
Data Access Collaboration
GORM Content
BAM
O/RM Mem Caching Search Engine
DW
Management
Operation Management
Reporting/BI
Report Engine
Infrastructure Services
Monitoring
Web Server Messaging
JBoss/GlassFish
HTTP Server
Serlvet
Container
Application
Server
Message Queue ESB
Build & Deploy
Reporting
AdHoc
Storage Distributed Computing
MS
RDBMS NoSQL DB
In-memory File Distributed Computing
DB storage Framework
SQL
Align on key concept“The fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution”. (IEEE 1471)
Architecture is theory of search… through large combinatorial spaces
BurjKhalifaArchitect: Adrian SmithWhen Architect is required:Complex Project – many decisions and trade-offs neededMultiple Teams – synchronization between teams, arbiter
BurjKhalifaArchitect: Adrian SmithWhen Architect is required:Complex Project – many decisions and trade-offs neededMultiple Teams – synchronization between teams, arbiter
Ramp up Team Work with TLsSuper star issues mitigation Work with Product ownersAlign technical road map with Project goals