going mobile at a glance - do you need to build from scratch?

55
MOBILE ARCHITECTURE Michael Seghers

Upload: cronos-mobile

Post on 25-May-2015

74 views

Category:

Technology


0 download

DESCRIPTION

So you're oing mobile, what about the backend ?

TRANSCRIPT

Page 1: Going Mobile at a Glance - Do you need to build from scratch?

MOBILE ARCHITECTUREMichael Seghers

Page 2: Going Mobile at a Glance - Do you need to build from scratch?

How to build rock solid apps?

How to reduce risk & increase probability of success?

How to make something not a PITA to maintain...

Page 3: Going Mobile at a Glance - Do you need to build from scratch?
Page 4: Going Mobile at a Glance - Do you need to build from scratch?

The plan!

Page 5: Going Mobile at a Glance - Do you need to build from scratch?
Page 6: Going Mobile at a Glance - Do you need to build from scratch?

Interface Internals

Page 7: Going Mobile at a Glance - Do you need to build from scratch?

Calling web services

Data validation

Storage, Caching, Syncing,

Data

Interface Internals

Page 8: Going Mobile at a Glance - Do you need to build from scratch?

Fast, Efficient, Smooth…

Calling web services

Data validation

Storage, Caching, Syncing,

Data

Interface Internals

UX

Page 9: Going Mobile at a Glance - Do you need to build from scratch?

Fast, Efficient, Smooth…

UXCalling web services

Data validation

Storage, Caching, Syncing,

Data

Interface Internals

Page 10: Going Mobile at a Glance - Do you need to build from scratch?

How to handle data and maintain good

performance whilst keeping the UI

working smooth as butter?

Page 11: Going Mobile at a Glance - Do you need to build from scratch?

The Backend

Page 12: Going Mobile at a Glance - Do you need to build from scratch?

Architecture!

Page 13: Going Mobile at a Glance - Do you need to build from scratch?

A good foundation gives confidence –

it is going to be great success!

Page 14: Going Mobile at a Glance - Do you need to build from scratch?

The Backend

Page 15: Going Mobile at a Glance - Do you need to build from scratch?

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.

Page 16: Going Mobile at a Glance - Do you need to build from scratch?

Old-style Applications

User Interface

Business Logic

Database

Single monolithic block

Page 17: Going Mobile at a Glance - Do you need to build from scratch?

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

Page 18: Going Mobile at a Glance - Do you need to build from scratch?

Web Applications

User Interface

Business Logic

Database

Thin client: web browser

Page 19: Going Mobile at a Glance - Do you need to build from scratch?

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

Page 20: Going Mobile at a Glance - Do you need to build from scratch?

Web Services

Interface

Service Logic

Interface

Rich client in web browser

Database

User Interface

Business Layer

Data Layer

Page 21: Going Mobile at a Glance - Do you need to build from scratch?

Web Services

Interface

Service Logic

Interface

Database

User Interface Client Application

Interface

Service Logic

Interface

Database

Service Orientation

Interface

Service Logic

Page 22: Going Mobile at a Glance - Do you need to build from scratch?

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

Page 23: Going Mobile at a Glance - Do you need to build from scratch?

Mobilize Legacy Applications

User Interface

Business Logic

Database

Interface

Mobile App

Service Logic

Service Enablement

Page 24: Going Mobile at a Glance - Do you need to build from scratch?

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

Page 25: Going Mobile at a Glance - Do you need to build from scratch?

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

Page 26: Going Mobile at a Glance - Do you need to build from scratch?

The Mobile App (The Front-end)

Page 27: Going Mobile at a Glance - Do you need to build from scratch?
Page 28: Going Mobile at a Glance - Do you need to build from scratch?
Page 29: Going Mobile at a Glance - Do you need to build from scratch?

Software Factory

Page 30: Going Mobile at a Glance - Do you need to build from scratch?

QA!

Page 31: Going Mobile at a Glance - Do you need to build from scratch?
Page 32: Going Mobile at a Glance - Do you need to build from scratch?

Another cunning plan!

Page 33: Going Mobile at a Glance - Do you need to build from scratch?

Verification & Validation

Page 34: Going Mobile at a Glance - Do you need to build from scratch?
Page 35: Going Mobile at a Glance - Do you need to build from scratch?

Validation

Are we building the right product?Barry W. Boehm

Page 36: Going Mobile at a Glance - Do you need to build from scratch?

Verification

Are we building the product right?Barry W. Boehm

Page 37: Going Mobile at a Glance - Do you need to build from scratch?

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!

Page 38: Going Mobile at a Glance - Do you need to build from scratch?

A few examples… not all necessarily necessary… euhm…

They are tools – depends on the project if you need them!

Page 39: Going Mobile at a Glance - Do you need to build from scratch?

Quality Metrics

Source Code AnalysisHow much code is there and does it follow the rules?

Page 40: Going Mobile at a Glance - Do you need to build from scratch?
Page 41: Going Mobile at a Glance - Do you need to build from scratch?
Page 42: Going Mobile at a Glance - Do you need to build from scratch?

Test Driven Development

Unit TestingDoes a piece of code work correctly?

Page 43: Going Mobile at a Glance - Do you need to build from scratch?
Page 44: Going Mobile at a Glance - Do you need to build from scratch?

Test Driven Development

Code CoverageHow many pieces of code did we test?

Page 45: Going Mobile at a Glance - Do you need to build from scratch?

Behavior Driven Development

Acceptance TestingDoes the app behave correctly?

Page 46: Going Mobile at a Glance - Do you need to build from scratch?

Repeatedly executing tests scenarios manually in several environments

under different conditions demands monkeys perseverance...

Page 47: Going Mobile at a Glance - Do you need to build from scratch?

Savior!

AutomationRecording and/or Simulating User Interface actions.

Page 48: Going Mobile at a Glance - Do you need to build from scratch?
Page 49: Going Mobile at a Glance - Do you need to build from scratch?

Debugging requires Tracking

It didn’t work... what happened?

Page 50: Going Mobile at a Glance - Do you need to build from scratch?

Software Quality

Profiling & Performance MonitoringIt works but... how good?

GOOD = FAST but also... EFFICIENT

Page 51: Going Mobile at a Glance - Do you need to build from scratch?

Wrapping it up…

Page 52: Going Mobile at a Glance - Do you need to build from scratch?

PlanU got to have 1.

Page 53: Going Mobile at a Glance - Do you need to build from scratch?

How to write & structure the code…

ArchitectureHaving a “blueprint” plan how to build mobile apps.

Page 54: Going Mobile at a Glance - Do you need to build from scratch?

How to assure quality…

VerificationHaving a plan for testing mobile apps.

Page 55: Going Mobile at a Glance - Do you need to build from scratch?

www.cronos.be