Building a Books-as-a-Service Platform: Challenges and Opportunities. BiB 2013
-
date post
22-Oct-2014 -
Category
Data & Analytics
-
view
226 -
download
0
description
Transcript of Building a Books-as-a-Service Platform: Challenges and Opportunities. BiB 2013
BUILDING A BOOKS-AS-A-SERVICE PLATFORM
(IN A QUITE PRAGMATIC AND UNEXPECTED WAY FOR US)Justo Hidalgo
@justohidalgo
A "platform" is a system that can be programmed and therefore customized by outside developers and in that way, adapted to countless needs and niches that the platform's original developers could not have possibly contemplated, much less had time to accommodate.
Marc Andreessen
@justohidalgo
APPLICATIONSAPPLICATIONS APPLICATIONSAPPLICATIONS APPLICATIONSAPPLICATIONS
PLATFORMPLATFORM PLATFORMPLATFORM PLATFORMPLATFORM
INFRASTRUCTUREINFRASTRUCTURE INFRASTRUCTUREINFRASTRUCTURE INFRASTRUCTUREINFRASTRUCTURE
IaaS PaaS SaaS
IaaS: Information as a ServicePaaS: Platform as a ServiceSaaS: Software as a Service Service-managed
Developer-managed
Source: https://www.engineyard.com
APPLICATIONSAPPLICATIONS
PLATFORMPLATFORM
INFRASTRUCTUREINFRASTRUCTURE
@justohidalgo
@justohidalgo
Content
TechnologyReading experience
Marketing
Customer access
Branding
@justohidalgo
CLUB FREEMIUM
MOBILE CARRIERS 24SYMBOLS.COM
PAY PER BOOK TO PUBLISHERS PAY PER PAGE TO PUBLISHERS
YOUR LIBRARY HERE
YOUR LIBRARY HERE
YOUR LIBRARY HERE
@justohidalgo
API
API
Multichannel viewMultichannel view
Analy
tics
&
Analy
tics
&
Report
ing
Report
ing
BillingBilling
Subscription Subscription ModelsModels
Content Content Streaming & DRMStreaming & DRM
User User AuthorizationAuthorization
Search & Search & RecommendatiRecommendati
onon
DiscoveryDiscovery
Collaboration Collaboration & Sharing& Sharing
Content and Metadata ManagementContent and Metadata Management
Sandbox
Sandbox
Cloud ReaderCloud Reader
l10n & i18nl10n & i18n
Cloud Instance ManagementCloud Instance Management
Marketing & User Marketing & User EngagementEngagement
User, Edition and Behavioural Data
RESTfu
l/H
TTP/jSO
NR
ESTfu
l/H
TTP/jSO
NHTML5/iOS/AndroidHTML5/iOS/Android
Hadoop/D
ruid
/...
Hadoop/D
ruid
/...
Carriers/Carriers/SaaSy/SaaSy/PaypalPaypal
Freemium/Freemium/Premium/Premium/
BookClub /LibrariesBookClub /Libraries
Content Content Streaming & DRMStreaming & DRM
User User AuthorizationAuthorization
ColbensonColbenson
DiscoveryDiscovery
FB/Twitter/FB/Twitter/G+/PinterestG+/Pinterest
ONIX/Dilve/...ONIX/Dilve/...
Sandbox
Sandbox
Cloud ReaderCloud Reader
l10n & i18nl10n & i18n
GigasGigas
Mailchimp/ZenDesk/...Mailchimp/ZenDesk/...
User, Edition and Behavioural Data
Platform Levels• Level 1: “Access API”
• Platform provided in the form of a web services API
• Level 2: “Plug-in API”
• New functions can be injected, “plugged in” to the core system and its user interface
• Level 3: “Runtime environment”
• Apps run inside the platform itself
@justohidalgo
•The lingua franca for clouds
•Using canonical URLs at different levels
•Stateless calls -> quite efficient and performant
•Ruby has some useful gems for this
•Compatible with OAuth, OAuth2
•Using it already
Resources and
Operations
• Users
• Public information (public comments, highlights, etc.)
• Public bookshelves
• Public books read
• (async) User status change
• Readings
• Book stats (page views, regions, time, ...)
• Content mining functions
• n-grams
• concept extraction
@justohidalgo
Resources and
Operations• Editions
• (Async) Edition updates
• Favorites
• Readings (avg % read, #users per page, ...)
• Bookshelves it belongs to
• Categories it belongs to
• Highlights, public comments, bookmarks
• Content (where determined by geographical/legal constraints)
• Search
• Related books (by content, by user, by bookshelf, by reference, ...)
@justohidalgo
Resources and Operations • Bookshelves
• Per service/user
• List of/Most shared editions
• List of/Most shared publishers, authors, etc.
• List of/Most commented editions, ...
• Recommendations
• (Async) Bookshelf updates
• ...
Resources and Operations • l10n
• Set/get l18n content for service
• Billing
• Per publisher
• Per author
• Per service (carrier-region)
• Per business model
Examples• For service #1 (e.g. 24symbols.com), find the average percentage read by user 2456
of book 3156. Output in jSON
• GET api.24symbols.com/json/service/1/user/2456/edition/3156/pctg_read
• For service #2 (e.g. country X with carrier Y), find the number of users per page of book 3156. Output in jSON
• GET api.24symbols.com/json/service/2/edition/3156/users_per_page
• For service #3, find the number of users of page 4 in book 3156. Output in jSON
• GET api.24symbols.com/json/service/3/edition/3156/page/4/users_per_page
• Find books most read among all services. Output in jSON
• GET api.24symbols.com/json/books_most_read
• Obtain billing info for publisher X on service 4 from April to June 2013
• GET api.24symbols.com/json/service/4/publisher/X/daterange/2013/04_2013/06/get_billing_info
@justohidalgo
Challenges
•Technical
•Reporting/billing
•Legal/rights
•Business
•Competition
Next steps
• First launches in 3-4 countries before EOY
• Partnership with Master’s Degree in Big Data and PaaS/IaaS
• Prototypes and research projects with anonymized data from 24symbols
• Decision
Conclusions
•We’re building the basis of a potential BaaS Platform
•Regardless of whether we actually build it or not
•Does it make sense to do it?
@justohidalgo
Justo Hidalgo: Co-founder, Chief Product Officer
www.24symbols.com
@justohidalgo
THANK YOU