Software Architecture - Project Hosting

splattersquadSecurity

Nov 16, 2013 (3 years and 4 months ago)

63 views

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

Student
1
*
School
Conselor
Teacher
-
grade
Class
1
*
1
*
1
*
Why Architecture is needed?

Finnish house

Budget: $60K

Team: 5 developers

Time: 45 days

No Architects

Why Architecture is needed?

Finnish house

Budget: $60K

Team: 5 developers

Schedule: 45 days

No Architects

Burj

Khalifa

Budget: $1.5B

Team:
7,500

developers

Schedule : 5 years

Architecture 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

Solution

Architecture

Patterns

Technology

System
Requirements

Business
Requirements

derived

use

use

use

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

Reference Architecture

Traditional Web Client
PC Browser
HTML Rendering
Application Services
Web Frameworks
Programmatic Access
Business Logic
Workflow
(
Processes
)
REST
WebServices
Rule Engine
Event
Processing
Business
Components
Web Application
framework
Template engine
BPM Engine
Data Access
O
/
RM
Mem Caching
Collaboration
Search Engine
Content
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
Security
Identity and
Access
Single Sign
-
On
Distributed Computing
Distributed Computing
Framework
Storage
NoSQL DB
In
-
memory
DB
RDBMS
File
storage
Operation Management
Build
&
Deploy
Monitoring
BAM
Utilities
Common
Framework
Integration
Reporting
/
BI
AdHoc
Reporting
Report Engine
DW
Technology Presets (example)

Open Source

MS .NET

MS Azure

JSF/
ExtJS

Spring

Hibernate/JPA

J
Boss

AS/Tomcat

J
Boss

Drools

J
Boss

BPM

OpenJMS

Mule ESB

MySQL/
PostgreSQL

JasperServer
/
JaperReports

ASP.NET MVC 3

SilverLight
/WPF

Entity Framework

WCF

MSF

WF

MS BizTalk/ESB

MSMQ

IIS

MS SQL Server

SSRS

SSIS

Azure Platform

SQL Azure

AppFabric

Azure Storage

Service Bus

Ref Architecture + Technology Stack

Traditional Web Client
PC Browser
HTML Rendering
Application Services
Web Frameworks
Programmatic Access
Business Logic
Workflow
(
Processes
)
REST
WebServices
Rule Engine
Event
Processing
Business
Components
Web Application
framework
Template engine
BPM Engine
Data Access
O
/
RM
Mem Caching
Collaboration
Search Engine
Content
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
Security
Identity and
Access
Single Sign
-
On
Distributed Computing
Distributed Computing
Framework
Storage
NoSQL DB
In
-
memory
DB
RDBMS
File
storage
Operation Management
Build
&
Deploy
Monitoring
BAM
Utilities
Common
Framework
Integration
Reporting
/
BI
AdHoc
Reporting
Report Engine
DW
E
xtJS
/
jQuery

Grails

Grails

Grails

GORM

JBoss
/
GlassFish

MS
SQL

Grails

Now Most Difficult Part

Questions


Copyrights


During this presentation used following
sources


Serhiy Haziyev materials


SoftServe AG materials

Contacts


http://
www.facebook.com/yelchev


yelchev@gmail.com


http://
anclevovan.blogspot.com