Upload
adam-taylor
View
238
Download
0
Tags:
Embed Size (px)
Citation preview
Software Architecture
In Practice
Volodymyr Yelchev, Solution Architect at SoftServe
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
What is Software Architecture?The high-level breakdown of a system into its parts
What is Software Architecture?
The decisions that are hard to change
What is NOT Software Architecture?
Details that do solely with internal implementation - are not architectural
Student1
*
School
Conselor
Teacher
-grade
Class
1
*
1*1
*
Why Architecture is needed?
Finnish houseBudget: $60KTeam: 5 developersTime: 45 daysNo Architects
Why Architecture is needed?
Finnish houseBudget: $60KTeam: 5 developersSchedule: 45 daysNo Architects
Burj KhalifaBudget: $1.5BTeam: 7,500 developersSchedule : 5 yearsArchitecture Team
Why Architecture is needed?
• Complex or non-trivial product• Multiple teams
SA Activity
• Sales and Marketing Support• Technology Consulting• Discovery Projects• Project Bootstrap• Ongoing Architecture Support• New technology investigation• Trainings• Competence Development
Architect Decision Scope
Solutions Architect Scope(Delivery Group)
System Architect Scope(Domain, e.g. Java, .NET, BI)
Application Architect Scope(Project)
Component Scope
Logical Architectural Framework
Reference Architecture
SolutionArchitecture
Patterns
Technology
System Requirements
Business Requirements
derived
use
useuse
use
Abstract
Concrete
Architecture Drivers (example)
Business requirements: ?
System requirements: Hosted Web-based Solution (Private Cloud)
Desktop and Slate devices support (Win, Mac, iPad, Android, WebOS)
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)
Business Constraints: Time To Market (?)
Target Architectural Patterns
SaaS Patterns
Hosting
On-Premise Datacenter
Managed Hosting
Cloud
Application
Scalability
External Load Balancer
Client-Side Load Balancing
Stateless Principle
State Replication
Tenant Partitioning
Performance
Data Caching
Content Caching
Coarse-Grained Interface
Asynchronous Processing
High-AvailabilityRequest Queuing
Concurrency Control
Fault-ToleranceFailover Cluster (Active/Active)
Failover Cluster (Active/Standby)
MonitoringSLA Real-Time Monitoring (Active)
SLA Real-Time Monitoring (Passive)
Data StorageRDBMS
Data Isolation
Separate DB
Shared DB, Separate Schema
Shared DB, Shared Schema
Data Extensibility
Preallocated Fields
Custom Schemas
Name Value Extension Table
XML Columns
Data Security
Trusted Database Connections
Secure Database Tables
Tenant Data Encryption
Tenant Data Filter
Performance and ScalabilityTenant-Based Horizontal Partitioning
Vertical Scale Up
Fault-Tolerance and High-AvailabilityData Replication
NOSQL DB
Multi-Tenancy
Level 1 (Ad-Hoc/Custom)
Level 2 (Configurable)
Level 3 (Configurable, Multi-Tenant-Efficient)
Level 4 (Scalable, Configurable, Multi-Tenant-Efficient)
Reference ArchitectureTraditional Web Client
PC Browser
HTML Rendering
Application Services
Web Frameworks Programmatic Access
Business Logic Workflow (Processes)
REST WebServices
Rule EngineEvent
ProcessingBusiness
Components
Web Application framework
Template engine
BPM Engine
Data Access
O/RM Mem Caching
Collaboration
Search EngineContent
Management
Infrastructure Services
RIA Client
PC Browser
RIA framework
RIA components
RIA utilities
Web Server
Serlvet Container
Application Server
HTTP Server
Messaging
Message Queue ESB
Cross-Cutting
Sec
uri
ty
Iden
tity
and
A
cces
sS
ingl
e S
ign-
On
Distributed Computing
Distributed Computing Framework
Storage
NoSQL DBIn-memory
DBRDBMS
File storage
Op
erat
ion
Man
agem
ent
Bui
ld &
Dep
loy
Mon
itorin
gB
AM
Uti
litie
s
Com
mo
n F
ram
ewor
kIn
teg
ratio
n
Rep
ort
ing
/BI
AdH
oc
Rep
ortin
gR
epor
t Eng
ine
DW
Technology Presets (example)
Open Source MS .NET MS Azure
JSF/ExtJSSpringHibernate/JPAJBoss AS/TomcatJBoss DroolsJBoss BPMOpenJMSMule ESBMySQL/PostgreSQLJasperServer/JaperReports
ASP.NET MVC 3SilverLight/WPFEntity FrameworkWCFMSFWFMS BizTalk/ESBMSMQIISMS SQL ServerSSRSSSIS
Azure PlatformSQL Azure AppFabricAzure StorageService Bus
Ref Architecture + Technology StackTraditional Web Client
PC Browser
HTML Rendering
Application Services
Web Frameworks Programmatic Access
Business Logic Workflow (Processes)
REST WebServices
Rule EngineEvent
ProcessingBusiness
Components
Web Application framework
Template engine
BPM Engine
Data Access
O/RM Mem Caching
Collaboration
Search EngineContent
Management
Infrastructure Services
RIA Client
PC Browser
RIA framework
RIA components
RIA utilities
Web Server
Serlvet Container
Application Server
HTTP Server
Messaging
Message Queue ESB
Cross-Cutting
Sec
uri
ty
Iden
tity
and
A
cces
sS
ingl
e S
ign-
On
Distributed Computing
Distributed Computing Framework
Storage
NoSQL DBIn-memory
DBRDBMS
File storage
Op
erat
ion
Man
agem
ent
Bui
ld &
Dep
loy
Mon
itorin
gB
AM
Uti
litie
s
Com
mo
n F
ram
ewor
kIn
teg
ratio
n
Rep
ort
ing
/BI
AdH
oc
Rep
ortin
gR
epor
t Eng
ine
DW
ExtJS/jQuery
Grails Grails
Grails
GORM
JBoss/GlassFish
MS SQL
Gra
ils
Now Most Difficult Part
Questions
Copyrights
• During this presentation used following sources– Serhiy Haziyev materials – SoftServe AG materials
Contacts
• http://www.facebook.com/yelchev• [email protected]• http://anclevovan.blogspot.com