View stunning SlideShares in full-screen with the new iOS app!Introducing SlideShare for AndroidExplore all your favorite topics in the SlideShare appGet the SlideShare app to Save for Later — even offline
View stunning SlideShares in full-screen with the new Android app!View stunning SlideShares in full-screen with the new iOS app!
CSF Service Syndication Web Technology Pioneer Web Service Interface on top of telecommunication equipment A Path towards pervasive computing: A network approach Web Services and Pervasive Systems Device Broker (Device as a service) User as a service Consumer Services: Connected address book…
Client Mashups It is all about mashups (combining web based API to create a new web app running in the desktop laptop) We know we don't have a corner on creativity. There are creative people all around the world, hundreds of millions of them, and they are going to think of things to do with our basic platform that we didn't think of. So the mashup stuff is a wonderful way of allowing people to find new ways of applying the basic infrastructures we're propagating.” Vint Cerf life2life Secondlife+Amazon E-Commerce WeatherBug WeatherBug+VirtualEarth Zillow Realestateinfo+VirtualEarth
Well defined “contracts” app engine core services 3 rd party services Internal Service 1 Internal Service 2 Internal Service 3 Internal Service 4 Internal Service 5 Internal Service 6 Normalized Infrastructure … . α Lab Product Dedicated app (on PC or Mobile) Client Platform Back End Client core applications Chrome like* “ Going public” Scale and Data 3 rd party applications/widgets … . Infrastructure/platform … . … . Data (Unstructured, FS, Structure (Simple, Full)) Data Distribution Processing (Server Roles, Allocation) Queuing Local Hosted Cloud Identity Management Profile Management Transaction Management High Performance Queue Data Feed Data Storage Data Analytics Mobile Platform PC Platform App 1 App 2 … . feed Seamless Interoperability is key: Identity Management Profile (service, user…) Clear boundaries: service platform computing resource The service development team must be the deployment team
“ Build for Failure” – think someone yanking a VPC without warning – while you are working on it. When you start it back up again – it should continue working without a hitch, no loss of customer data. DON’T STORE ANY STATE ON THE LOCAL MACHINE!
“ Build for Infinite Scale” – there will always be multiple instances of your code running on many machines. Always assume this!
“ Build for Latency” – network is slow, services are slow. Build your components not to be tied to state (I.E. Don’t hold state in memory or local disk – unless you can recover it after a failure) whilst you are waiting and also use APM down to the last IO port (in most of our cases a call into the network).
“ Build for Brewer Conjecture” – you can have at most 2 of Consistency, Availability & Tolerant Network Partitions. Cloud services don’t demonstrate eventual consistency. Deal with it in code.
“ Build for the Cloud” – when you use cloud services – there are no guarantees. You are not guaranteed that you will get all the data, you are not guaranteed that you will get them in order, you are not guaranteed anything! Now build your app to work with this.
“ Build with clean Interfaces” – don’t build with RPC Hangover. Build clean hierarchical REST interfaces using the resource model.
“ Build Probabilistically” - do we absolutely need to be a 100% accurate? Really? Are you sure? Positive? Use Bloom filters and caches where possible.
“ Build to manage” – Apply the FCAPS model to your services, other services/platfrom will need it
“ Build to Cache” – think HTTP caching and multiple layers of it. All GET operations must be cacheable.
“ Build to be Idempotent” – same operation twice should not put your system in an inconsistent state.
“ Build for geo” – build your component knowing that you could have multiple geographical partitions of data that you might have to use sitting in different parts of the world
“ Build for Data” – make sure that what you writes generate monetizable data
Consumes Generates Improves Many services One data set The more in context the more efficient and the more value 3 rd party Data Set Value Based Model Linking data sets together will be the new interop for cloud service operators Service User Data The ARPU Race ARPU Service Value Time Service 1 Service 2 Service 3 BI Based Revenue Models (eg Advertisement) Data Set Mindmap