architecture in practice
DESCRIPTION
Architecture in practice. -SweNug 2011-02-23-. - [email protected] -. Centiro, IASA & me. Architectural context. Who am I?. Jonas Toftefors. Centiro Solutions. Certified Trainer IFC. Consultant @ Biner. CITA-P. Architect. Consultant @ Ikaros. Zachman Framework. - PowerPoint PPT PresentationTRANSCRIPT
Architecture in practice-SweNug 2011-02-23-
© Powered by Centiro
ARCHITECTURAL CONTEXTCentiro, IASA & me
© Powered by Centiro
Who am I?Jonas Toftefors
Centiro Solutions
Consultant @ Biner
Consultant @ Ikaros
CIO Intellecta
DocuSys
Certified Trainer IFC
CITA-P
Zachman Framework
2xSundblad
Göteborgs Universitet
Architect
© Powered by Centiro
Centiroo Centiro is a considerate and focused company that offers
scalable and reliable solutions for Transport Management and Supply/Demand Chain process management on a global market
o Clients, installations and users in 7000+ locations in 45 countries
o AAA Dun & Bradstreet since 2000
o Superföretag and DI Gasell 2008/2009/2010
o A Great Place To Work – Swedens 2:nd best workplace 2010
Depart(port)
Arrive
(port)Supplier Customs Warehous
eDirect delivery
Merge-in-transit
Sourcing
Returns
Statistics & Reporting
Carrier Complian
ceEnd-to-End
Order Visibility
Pro-active alerts
Notifications
Self BillingInvoice &
Cost Control - Rating
Carrier & Supplier
Performance
System Integratio
n
SupplierIntegration
© Powered by Centiro
Carrier compliance
Global breadth, knowledge & experienceCommercial networks Own fleet/Hired capacity
High Tech Low TechMid Tech
150 + carriers
© Powered by Centiro
Customer references
Vertical breadth knowledge & cross-pollination
Automotive, engineering
& constructionHigh tech
& electronicsRetail & B2C
Healthcare
Food & beverage
Transportation & logistics
Logistics
250 + customers
© Powered by Centiro
IASA• IASA is an international and
independent organization for IT architects
• Founded 2002 with 6.000 professionell members in US and Europe
• IASA works with certfications, education, networking and documentation to support and define the IT architect profession
© Powered by Centiro
IASA Sweden• Chapters in Göteborg & Stockholm• Organises ITARC in Stockholm
together with Dataföreningen Komptens
• Defines architect roles• Teaches Foundation and certifies IFC
and CITA-P
© Powered by Centiro
WHAT IS IT ARCHITECTURE?
Introduction
© Powered by Centiro
What is Architecture?
Source: Wikipedia
© Powered by Centiro
What is IT architecture?
© Powered by Centiro
What’s IT architecture?One instance per environment
CPort WS CPort DB
CPort SL
Log DBLog WS
Global DB
Global SLShell SL
One or more instances per environment
Planning DB
Planning SL
One or more instances per environment
Shipping DB
Shipping SL
One or more instances per environment
Shipping DB
Shipping SL
One or more instances per environment
Shipping DB
Shipping SL
State cache/DB
State WS
© Powered by Centiro
What’s IT architecture?”Application” – accepting BASE approach for the whole
Strategic Information Area = Deployable Unit
EventProcessor
EventListener
EventProducer
Finance [ACID & basically Synchronous]
EventProcessor
EventListener
EventProducer
Event Management [ACID]
EventProcessor
EventListener
EventProducer
Shipping [ACID & basically Synchronous]
EventProcessor
EventListener
EventProducer
Logi
cal E
SB (W
CF/M
SMQ)
Q1
Qn
© Powered by Centiro
What’s IT architecture?
© Powered by Centiro
What’s IT architecture?All of these and more?
© Powered by Centiro
What is IT architecture?None of these are architecture, they are models that describes reality and/or the thought solution from different aspects
© Powered by Centiro
What is IT architecture?IT architecture is the process, considerations and decisions made when deciding what models to create and the actual creation of these
?!
© Powered by Centiro
What’s IT architecture?
IASA definition:
The art or science of designing and delivering
valuable technology strategies
© Powered by Centiro
This is an IT architect!
Developer lead with business
competence
Business person with technical competence
Network and system specialist
that has business sense and strong
infrastructure competence
IT person who bridges the gap
between business & technology
Technology Strategist
for the business
© Powered by Centiro
SKILLSET OF AN ARCHITECT
© Powered by Centiro
”Obvious” skills
Application Developmen
t
Architecture Description Security
General Design skills
Requirements ModelingDesign
Methodologies and Processes
Software Architecture
Patterns
Technologies, Platforms & Frameworks
Performance
© Powered by Centiro
Not quite so obvious skills
ComplianceBusiness Valuation
GovernancePresentation Skills
Leadership and Management
Packaging, Delivery, Post Deployment
Datacenter Design
© Powered by Centiro
Foundation Pillars
Quality Attributes
Design
Business Technology Strategy
IT Environment
Human Dynamics
Software architectu
re
Infra-structure architectu
re
© Powered by Centiro
Design
Design Methodologies and Processes
Decomposition and Reuse
Design Patterns and Styles
Traceability Throughout the
Lifecycle Whole Systems
Design
Requirementmodelling
© Powered by Centiro
IT Environ-ment
Technical Project Management Capabilities
Governance
Application Development
Testing Methods, Tools, and Techniques
Platforms and Frameworks
Change Management
© Powered by Centiro
Focus: IT Environment
© Powered by Centiro
Business Technolo
gy Strategy
Industry Analysis Business Valuation
Strategy Development
Requirements Discovery and
Constraints Analysis
Compliance
Business Fundamentals
© Powered by Centiro
Focus: Complience
© Powered by Centiro
Quality attribut
es
Performance Monitoring and Management
Usability
Packaging, Delivery, Post Deployment
Balance & Optimize
Security
© Powered by Centiro
Focus: AvailabilityHow much downtime may you have per year when offering 99.99% uptime?
© Powered by Centiro
Focus: Availability
© Powered by Centiro
Focus PerformanceScenario:• Creation takes 0,05 sec• Creating label takes 1 sec• Pricing takes 0,5 sec• Choice of transport takes 0,2 sec
What if 50.000 calls a day?What if 20.000 are trigged 16:00-17:30?
© Powered by Centiro
Human Dynami
cs
Managing the Culture Peer Interaction
Customer Relations
Collaboration and Negotiation
Presentation & Writing
Leadership and Management
© Powered by Centiro
Focus: LeadershipHow often is an architect manager for all Participants?
Developers
SCRUM Master Project
manager
DBAOperation
sNetwork
© Powered by Centiro
DIFFERENT WORLDS?Architecure and agile development
© Powered by Centiro
Capabilities for a complete initiative
Project management
Tooling
Programming techniques
Debugging
Source code management
Configuration management
Documentation
Programming skills
Education / trainingBusiness processesIntegration
considerations
Libraries
Spoken Languages
Etc, etc
Managing the culturePeer
interactionCustomer relations
Collaboration & Negotiation
Presentation & writing
Leadership & Management
Business fundamentals
Compliance
Performance
Usability
Security
Package & Deploy
Balancing attributes
Monitoring & management
Governance
Change management
Platform & Frameworks
Testing methods & techniques
Industry analysis
Valuation
Strategy developmentRequirement
discovery
Design methodologies
Design patterns and
styles
Traceability
Whole system design
Decompistion & Reuse
Requirement modeling
Technical PM
Application development
© Powered by Centiro
Angry Birds
Project management
Tooling
Programming techniques
Debugging
Source code management
Configuration management
Documentation
Programming skills
Education / trainingBusiness processesIntegration
considerations
Libraries
Spoken Languages
Etc, etc
Managing the culturePeer
interactionCustomer relations
Collaboration & Negotiation
Presentation & writing
Leadership & Management
Business fundamentals
Compliance
Performance
Usability
Security
Package & Deploy
Balancing attributes
Monitoring & management
Governance
Change management
Platform & Frameworks
Testing methods & techniques
Industry analysis
Valuation
Strategy developmentRequirement
discovery
Design methodologies
Design patterns and
styles
Traceability
Whole system design
Decompistion & Reuse
Requirement modeling
Technical PM
Application development
© Powered by Centiro
ECM for internal usage
Project management
Tooling
Programming techniques
Debugging
Source code management
Configuration management
Documentation
Programming skills
Education / trainingBusiness processesIntegration
considerations
Libraries
Spoken Languages
Etc, etc
Managing the culturePeer
interactionCustomer relations
Collaboration & Negotiation
Presentation & writing
Leadership & Management
Business fundamentals
Compliance
Performance
Usability
Security
Package & Deploy
Balancing attributes
Monitoring & management
Governance
Change management
Platform & Frameworks
Testing methods & techniques
Industry analysis
Valuation
Strategy developmentRequirement
discovery
Design methodologies
Design patterns and
styles
Traceability
Whole system design
Decompistion & Reuse
Requirement modeling
Technical PM
Application development
© Powered by Centiro
Different people have different capabilities
Project management
Tooling
Programming techniques
Debugging
Source code management
Configuration management
Documentation
Programming skills
Education / trainingBusiness processesIntegration
considerations
Libraries
Spoken Languages
Etc, etc
Managing the culturePeer
interactionCustomer relations
Collaboration & Negotiation
Presentation & writing
Leadership & Management
Business fundamentals
Compliance
Performance
Usability
Security
Package & Deploy
Balancing attributes
Monitoring & management
Governance
Change management
Platform & Frameworks
Testing methods & techniques
Industry analysis
Valuation
Strategy developmentRequirement
discovery
Design methodologies
Design patterns and
styles
Traceability
Whole system design
Decompistion & Reuse
Requirement modeling
Technical PM
Application development
Example 1: Peter
© Powered by Centiro
Different people have different capabilities
Project management
Tooling
Programming techniques
Debugging
Source code management
Configuration management
Documentation
Programming skills
Education / trainingBusiness processesIntegration
considerations
Libraries
Spoken Languages
Etc, etc
Managing the culturePeer
interactionCustomer relations
Collaboration & Negotiation
Presentation & writing
Leadership & Management
Business fundamentals
Compliance
Performance
Usability
Security
Package & Deploy
Balancing attributes
Monitoring & management
Governance
Change management
Platform & Frameworks
Testing methods & techniques
Industry analysis
Valuation
Strategy developmentRequirement
discovery
Design methodologies
Design patterns and
styles
Traceability
Whole system design
Decompistion & Reuse
Requirement modeling
Technical PM
Application development
Example 2: Anna
© Powered by Centiro
REAL WORLD EXAMPLEArchitecture in practice
© Powered by Centiro
Capability map
Centiro capabilities overview
1. Platform and services development
1.1 Platform governance
1.3 Services development
2. Demand generation
2.1 Marketing, evangelism, PR
2.2 Direct sales
2.3 Partner relationships
5. External collaboration
3. Demand fulfilment 4. Planning and management4.1 Strategy development
4.2 Operational management
4.3 Financial management4.4 Human resource
3.1 Fulfilment
3.3 R & D3.2 Support services
3.4 Application Management
5.1 Strategic collaboration 5.2 Operational collaboration
1.2 Platform development
3.5 Project Management
© Powered by Centiro
Team ecosystem vs. Customer
Innovation team
[R-D-F]
Innovate and manufacture
[R-D-F]
Build and deploy[D-A-F]
Build and deploy[D-A-F]
Customer Build and
deploy[D-A-F]
Customer Build and
deploy[D-A-F]
Delivery & Rollout[(A)-F]
Delivery & Rollout
[Partner]
Test managemen
t
TacticalManagement
Application ManagementArchitecture
Team
Helpdesk
Marketing and sales
Customer
Lifecycle perspective
ProductManagementDocumentati
on
ManagementFinance
HR
© Powered by Centiro
ARCHITECTURAL DESCRIPTION
Tools of the Architect
© Powered by Centiro
IEEE 1471 – AD
© Powered by Centiro
What is Viewpoint
© Powered by Centiro
Framework
Stakeholder Views
Areas of Interests Missio
n Process Infor-mation
Inter-action
Quality Security
Infra-structure
Business
Conceptual
Logical
Physical
© Powered by Centiro
Environment
Quality by itself
Goals
Processes Information
System
© Powered by Centiro
Tooling• Identify organizational weekneses• Make easy templates
© Powered by Centiro
COLLECTION POINTSReal world example
© Powered by Centiro
Customer demands• Get a collection point from postal
code• Set attributes on a collection point• Get all postal codes that a collection
point serves• Support multiple service providers
© Powered by Centiro
Example – Customer demand
© Powered by Centiro
Standard functionality demands
• Handle changes • Geo-tagging• Multiple addressess• Versioning• Blacklisting – for different customers• Use ranges (Canada has 800000 postal codes)• Support differnt kinds (standard, Lantbrevbärare, box-
address)• Prioritization if multiple collection points• Administration - common for collection points –
exceptions by customer• Prestanda - < 0,2 sec for WS-search
© Powered by Centiro
Example – Standard functionality
© Powered by Centiro
Standard functionality demands
• Handle changes • Geo-tagging• Multiple addressess• Versioning• Blacklisting• Use ranges (Canada has 800000 postal codes)• Support differnt kinds (standard, Lantbrevbärare, box-
address)• Prioritization if multiple collection points• Administration - common for collection points –
exceptions by customer• Prestanda - < 0,2 sec for WS-search
© Powered by Centiro
Example – scoped down implementation
© Powered by Centiro
CENTIRO NEOReal world example
© Powered by Centiro
Basic Information Area build up
Shipping
Planning
Finance
New area
CPort
ESB
Global
Information areas are independent of each others and should have no deployment or compile time dependencies
Information between areas should be communicated via ESB
Global should be master data information area but in other aspects as any other information area
CPort has special services for authentication, in other aspects as any information area
© Powered by Centiro
Silverlight user interface
Shipping
Planning
Finance
CPort
Global
The Silverlight user interface is based on a shell that in itself contains no information storage.
The only purpose of the shell is to provide an infrastructure for displaying screens from all information areas and to provide basic functionality as authentication, menus etc.
The shell only knows of CPort. CPort provides links to all other information areas that are allowed for current user. CPort also provides menu and client permissions.
All information areas that uses the shell as UI must know the Shell.
Shell
At startup, Shell enforces user to login to CPort in order to get menu structure and links to information areas that user has access to
© Powered by Centiro
Server side of Information Area
DB
Domain modelStorage
SL App
WCF app
XXX app
Foun-datio
n
Above are the main building blocks on server side in Neo. Each of the components will be described on the following pages• Foundation is Centiro Common Code and not specific for Neo• Applications are set up based on what they serve. No
implementation in apps, the domain model implements all functionality
• Domain model contains entities and services and mapping to storage.
Hosted in IIS,Win Service orApp fabric
Hosted in SQL Server 2008 orOracle
© Powered by Centiro
Silverlight client for Information Area
Above are the main building blocks on Silverlight Client side in Neo. Each of the components will be described on the following pages• Foundation is Centiro Silverlight Common Code and not specific
for Neo• Shell is the framework for displaying screens
DB
Domain modelStorage
SL App
WCF app
XXX appFoun
-datio
n
Foun-datio
nService proxy
View Model
Model
View
Shell Hosted at client in web browser
© Powered by Centiro
Thanx!E-Mail
TwitterLinkedIn
IASACentiro
[email protected] Tofteforshttp://se.linkedin.com/in/jonastoftefors
www.iasa.se www.centiro.se