Upload
cronos-mobile
View
74
Download
0
Tags:
Embed Size (px)
DESCRIPTION
So you're oing mobile, what about the backend ?
Citation preview
MOBILE ARCHITECTUREMichael Seghers
How to build rock solid apps?
How to reduce risk & increase probability of success?
How to make something not a PITA to maintain...
The plan!
Interface Internals
Calling web services
Data validation
Storage, Caching, Syncing,
…
Data
Interface Internals
Fast, Efficient, Smooth…
Calling web services
Data validation
Storage, Caching, Syncing,
…
Data
Interface Internals
UX
Fast, Efficient, Smooth…
UXCalling web services
Data validation
Storage, Caching, Syncing,
…
Data
Interface Internals
How to handle data and maintain good
performance whilst keeping the UI
working smooth as butter?
The Backend
Architecture!
A good foundation gives confidence –
it is going to be great success!
The Backend
ENTERPRISE ARCHITECTURE FOR MOBILE APPLICATIONS
The mobile app is the visual gateway to the server software. To enable mobile apps for the enterprise, the server-side must be carefully architected and designed, with some new IT challenges.
Old-style Applications
User Interface
Business Logic
Database
Single monolithic block
Old-style Applications
Integration through database
Application 1 Application 2 Application 3
User Interface
Business Logic
Database
User Interface
Business Logic
Database
User Interface
Business Logic
Database
Web Applications
User Interface
Business Logic
Database
Thin client: web browser
Web Applications
Reuse business logic
Application 1 Application 2 Application 3
User Interface
Business Logic
Database
User Interface
Business Logic
Database
User Interface
Business Logic
Database
Web Services
Interface
Service Logic
Interface
Rich client in web browser
Database
User Interface
Business Layer
Data Layer
Web Services
Interface
Service Logic
Interface
Database
User Interface Client Application
Interface
Service Logic
Interface
Database
Service Orientation
Interface
Service Logic
Service Orientation Benefits
Business alignment
Reuse of business logic
Flexibility
Agility
Cloud-ready!
Mobile-ready!
Mobile App
Interface
Service Logic
Interface
Service Logic
Interface
Database
Mobilize Legacy Applications
User Interface
Business Logic
Database
Interface
Mobile App
Service Logic
Service Enablement
Architectural Considerations
Interface
Mobile App
Service Logic
API
Data exchange
•
SOAP web service• XML, attachments
• RESTful service• JSON, XML, binaries
• Protocol: HTTP, FTP, Proprietary• Message Exchange Pattern: Synchronous, Asynchronous• Security: Transport-Layer, Message-Layer, Authentication, Authorization• Reliability: QoS(HTTP) = “at least once” idempotency required• Disconnection Policy: off-line work, Data Integrity
Architecture summary
• Enabling the enterprise for mobile apps requires careful design of the server software
• Ideally use a service-oriented approach
• Distributed services require governance
• New opportunities emerge with cloud and Big Data services
• The world is your customer
The Mobile App (The Front-end)
Software Factory
QA!
Another cunning plan!
Verification & Validation
Validation
Are we building the right product?Barry W. Boehm
Verification
Are we building the product right?Barry W. Boehm
This is why architecture is also so important... structuring the app in such a way that it is layered
and that there is a clear separation of concerns - this makes the parts easier to test!
A few examples… not all necessarily necessary… euhm…
They are tools – depends on the project if you need them!
Quality Metrics
Source Code AnalysisHow much code is there and does it follow the rules?
Test Driven Development
Unit TestingDoes a piece of code work correctly?
Test Driven Development
Code CoverageHow many pieces of code did we test?
Behavior Driven Development
Acceptance TestingDoes the app behave correctly?
Repeatedly executing tests scenarios manually in several environments
under different conditions demands monkeys perseverance...
Savior!
AutomationRecording and/or Simulating User Interface actions.
Debugging requires Tracking
It didn’t work... what happened?
Software Quality
Profiling & Performance MonitoringIt works but... how good?
GOOD = FAST but also... EFFICIENT
Wrapping it up…
PlanU got to have 1.
How to write & structure the code…
ArchitectureHaving a “blueprint” plan how to build mobile apps.
How to assure quality…
VerificationHaving a plan for testing mobile apps.
www.cronos.be