api centric development in php

47
1 Click to edit Master title style API Centric Web Development Joe Stagner Zend Technologies

Upload: joe-stagner

Post on 09-May-2015

1.834 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: API Centric Development in PHP

1

Click to edit Master title style

API Centric Web Development

Joe Stagner Zend Technologies

Page 2: API Centric Development in PHP

2

Click to edit Master title style

The significant problems of today can not be solved with the kinds of thinking that created those problems in the first place!

Page 3: API Centric Development in PHP

3

Click to edit Master title style

3

Haven't we done this before ?

Procedural Programming

Object Oriented Programming

Modular Programming

Domain Driven Development

Event Driven Development

Test Driven Development

Agile Methodologies

Pair Programming

Component Oriented Development

Why? What? How?

Page 4: API Centric Development in PHP

4

Click to edit Master title style

Page 5: API Centric Development in PHP

5

Click to edit Master title style

Page 6: API Centric Development in PHP

6

Click to edit Master title style

Page 7: API Centric Development in PHP

7

Click to edit Master title style

Page 8: API Centric Development in PHP

8

Click to edit Master title style

Page 9: API Centric Development in PHP

9

Click to edit Master title style

Page 10: API Centric Development in PHP

10

Click to edit Master title styleBam !

Page 11: API Centric Development in PHP

11

Click to edit Master title style

Page 12: API Centric Development in PHP

12

Click to edit Master title style

Page 13: API Centric Development in PHP

13

Click to edit Master title style

6 BILLION

Growth Factor !

Page 14: API Centric Development in PHP

14

Click to edit Master title style

Page 15: API Centric Development in PHP

15

Click to edit Master title style

Page 16: API Centric Development in PHP

16

Click to edit Master title style

Page 17: API Centric Development in PHP

17

Click to edit Master title style

Page 18: API Centric Development in PHP

18

Click to edit Master title styleWorlds Collide

Page 19: API Centric Development in PHP

19

Click to edit Master title style

Page 20: API Centric Development in PHP

20

Click to edit Master title style

20

What is used to build the WWW ?

Page 21: API Centric Development in PHP

21

Click to edit Master title style

21

% of PHP Developers working on Mobile Apps

using the cloud

72%

Base: 3,335 (in 2012) and 4,809 (in 2013) enterprise, SMB and independent developers worldwideSource: Zend Technologies, Zend Developer Pulse Survey 2011 and 2013

68%using APIs

& cloud services 72%

Our World

Page 22: API Centric Development in PHP

23

Click to edit Master title styleOk, but what problems are we trying to solve ?

UI

LogicLogic

I/O

UI

Logic

UI

Logic

UI

Logic

UI

Logic

iPhone / iPad Desktop

Android Browser

I/O

I/O

I/O

Static

Static

Static

Static

Page 23: API Centric Development in PHP

24

Click to edit Master title style! Agile Development

Page 24: API Centric Development in PHP

25

Click to edit Master title style

Page 25: API Centric Development in PHP

26

Click to edit Master title styleThe MODERN Expectation

Page 26: API Centric Development in PHP

27

Click to edit Master title style

Page 27: API Centric Development in PHP

28

Click to edit Master title style

Page 28: API Centric Development in PHP

31

Click to edit Master title styleOk, but what problems are we trying to solve ?

Device Specific UI

Device Specific Logic

Client Layer

Shared UIBusiness Logic

iPhone / iPad DesktopAndroid Browser

Data I/O Static Assets

Device Specific UI

Device Specific Logic

Client Layer

Device Specific UI

Device Specific Logic

Client Layer

Device Specific UI

Device Specific Logic

Client Layer

3rd party Broker Future Use

Page 29: API Centric Development in PHP

32

Click to edit Master title styleThe Internet is like my TV !

Page 30: API Centric Development in PHP

33

Click to edit Master title styleWhat's an API ?

l SOAPl WSDLl WS-*l DOC Literall XML-RCP

l Socketsl TCPl HTTPl Web Sockets

l CORBAl RPCl ORBl COM/DCOM

l BINARYl ASCIIl POXl WS / Etcl JSON

Page 31: API Centric Development in PHP

34

Click to edit Master title styleJust Choose !

HTTP (Sockets, etc.)JSON (POX, SOAP, ASCII) REST (RPC)

Page 32: API Centric Development in PHP

35

Click to edit Master title style

http://someurl/customer/inserthttp://someurl/customer/?action=inserthttp://someurl/customer/insert/?name=acme....

Un REST

Page 33: API Centric Development in PHP

36

Click to edit Master title style

curl --request GET -H "Content-Type: application/json" --data '{"type": "tuple"}' http://someurl/customer

curl --request POST -H "Content-Type: application/json" --upload-file data.json http://someurl/customer

REST ish

Page 34: API Centric Development in PHP

37

Click to edit Master title styleWorking with data

Page 35: API Centric Development in PHP

40

Click to edit Master title style

40

Legacy Migration

UI

Logic

UI

Logic

I/O

Static

UI

Logic

UI

Logic

I/O

Static

App

API Layer

Web Site Desktop App

Page 36: API Centric Development in PHP

41

Click to edit Master title style

41

Legacy Migration

UI

Logic

UI

Logic

I/O

Static

UI

Logic

UI

Logic

I/O

Static

App

API Layer

Web Site Desktop App

Page 37: API Centric Development in PHP

42

Click to edit Master title style

42

Legacy Migration

UI

Logic

UI

Logic

I/OLegacy App

API Layer

Web Site Desktop App

Static

UI

Logic

UI

Logic

I/O

Static

Page 38: API Centric Development in PHP

43

Click to edit Master title style

43

Native AppMobile App(s)Native App(s) Web App(s)

Users Assets Products Transactions

DATA

Ideal Architecture

Page 39: API Centric Development in PHP

44

Click to edit Master title style

44

Benefits – Real Federated Logic

● Finally - Web Client Server

● Separation of Concerns = real agility

● Add features without touching adjacent code

● URL Endpoints are eminently testable

● Ideally suited for Unit Testing and CI

● Stateless endpoints are innately scalable*

● They are also seamlessly evolveable

● HTTP Ubiquity means MAXIMUM code reuse

● And no platform specific dependencies

Page 40: API Centric Development in PHP

45

Click to edit Master title style

45

Benefits – Real Federated Logic

Your TEAMS can federate with your logic.

● Large teams can geo-distribute

● Small teams can more successfully out-source / near source

● Logic need not be shared between teams

● Even continuous delivery can be distributed

Page 41: API Centric Development in PHP

46

Click to edit Master title style

46

Down side ?

● Performance issues ?● Learning curve ?● Legacy Integration ?

Page 42: API Centric Development in PHP

47

Click to edit Master title style

47

Page 43: API Centric Development in PHP

49

API–based Development

Page 44: API Centric Development in PHP

50

Zend Blueprint for Continuous Delivery

• Blueprint now available at : www.zend.com/blueprint

• Zend Server Patterns :

• New Continuous Delivery Assessment

Coming soon: Bamboo, Puppet, Tivoli

Page 45: API Centric Development in PHP

51

New Zend Studio 10.5 Early Access!

• 2x faster PHP code analysis and better responsiveness

• Updated PHP Toolbox: Composer, PHPUnit, PHPDocumentor

• Great for developing ZF2 and end-to-end mobile apps

• New Intelligent library management

Give it a test drive:

www.zend.com/studioEA

Zend Studio 10 is fully integrated with Git, PHPUnit and Zend Framework 2, which gives me one convenient place for my coding practces. When using ZF2, it’s invaluable thanks to its seamless integraton.

Ore Landau, PHP Developer, SangtamTech

Page 46: API Centric Development in PHP

52

Click to edit Master title style

Thank You!

[email protected]@MisfitGeekDevzone.Zend.comMisfitGeek.com

Page 47: API Centric Development in PHP

53

Click to edit Master title style

53