Google Confidential and Proprietary
Servicios en la nube, evolución de softwareDesafíos de la evolución arquitectónica
Innovar utilizando Prediction API
Google Confidential and Proprietary
Agenda
● Introduction to the ecosystem● Trends● Cloud Services● Mobility Feeling● Opportunities in our ecosystem● Your Future!● Q&A
Google Confidential and Proprietary
DevRel Latam South Region
+Nicolas Bortolotti● Ecosystem ● Focus (+Social)
○ Academia○ Startups○ Software Industry
+DevRelSouthRegionhttp://www.dvlatamsouthregion.com.ar/
Developer Academic MachineStartups Research
Google Confidential and Proprietary
NextLevel
● GDGs○ Academic Developer Technology Groups
■ Class connect■ University Key
● Reality Mode● Innovative Events (Virtual events, virtual practice, more flexible)● +Social
a. Developers Live (Argentina)b. Developers Academyc. Developers University Consortium
Google Confidential and Proprietary
Este es el año...● Las pequeñas y medianas empresas que invirtieron 30% de su presupuesto en tecnologías online
vieron crecer sus ingresos nueve veces más rápido que aquellas compañías que invierten menos del 10%. (McKinsey, SME Chapter, 2012)
● 650.000 PYMES y el 28% de ellas compran o venden por Internet (Estudio anual de Comercio Electrónico en Argentina de Prince&Cooke para CACE - 2012).
● La aparición de empresas de descuentos y clubes de compra favorecen el ingreso de PyMEs al mundo online (Prince&Cooke para CACE - 2012).
● Las PyMEs que brindan mayor ancho de banda a sus empleados crecieron el doble de rápido de aquellas que dieron el peor acceso en los últimos 3 años. (McKinsey, SME Chapter, 2012)
● Las mayores tasas de crecimiento de las PYMEs están relacionadas positivamente con gasto en la Web, generación de ventas online, acceso de banda ancha y acceso móvil de banda ancha (McKinsey, SME Chapter, 2012)
● Google comenzó siendo una pequeña empresa, por eso conocemos muy bien el potencial que tienen las PyMEs y lo mucho que éstas pueden lograr.
● La Web es la plataforma de negocios más poderosa del mundo permitiendo que cualquier PyME se abra a millones de clientes potenciales que, todos los días, a cualquier hora y desde cualquier lugar, realizan búsquedas en Internet acerca de productos y servicios.
● Argentina se encuentra entre los 10 países más emprendedores del mundo: tiene un gran ecosistema emprendedor, 1 de cada 8 argentinos está involucrado en el desarrollo de nuevas empresas.(Global Entrepreneurship)
Google Confidential and Proprietary
A few Key Trends...
● Networks involved in human sensors. (embedded devices)● Derived from census data (embedded devices)● Social feeling.● Social changes with the help of the population. (fraud, harassment,
etc.)● Instant maps, more social, more collaborative.● Contextual mapping.● Timelines variables, social, etc. narrated.● trends ... real-time information ....
Google Confidential and Proprietary
Some challenges ...
Google Confidential and Proprietary
Thinking...
Google Confidential and Proprietary
Startups
Build Measure
Enhance Get out There & Get paid
Google Confidential and Proprietary
Research - University
Research
● Human-Computer Interaction
● Speech● Natural Language
Processing● Computer Vision● Machine Learning● Algorithms● Structured Data
UniversityRelations
● Research Awards● Educational
Materials● Research Tools● Collaboration and
Communication● ...
Google Confidential and Proprietary
Open Source
Projects
Google Confidential and Proprietary
Open source and App Engine
Projects
Slim3
jclouds
gaeproxy
objectify appengine
Google Confidential and Proprietary
Innovation..
“La innovación es ineficiente. Con frecuencia, es indisciplinada, siempre lleva la contraria y es iconoclasta; se realimenta con la confusión y la contradicción. En pocas palabras, ser innovador es todo lo contrario de lo que la mayoría de los padres quieren para sus hijos, los consejeros delegados para sus compañías y los jefes de estado para sus países. Los innovadores son insoportables. Y, sin embargo, sin innovación estamos condenados –por aburrimiento y por monotonía- a la decadencia.”
Nicholas Negroponte. Fundador del MIT Media Lab
Google Confidential and Proprietary
Cloud ServicesSoftware Evolution
Google Confidential and Proprietary
¿Cloud?
PaaS
SaaS
IaaS
Google Confidential and Proprietary
Thinking...
● Cloud computing es una arquitectura o una infraestructura.● Internet y la Web son la “nube”● Todo estará en la cloud.● Toda la informática remota es cloud computing.● Cloud computing es una nueva revolución● Cada suministrador tendrá una “nube” diferente● SaaS es la cloud● Cloud elimina las redes privadas.
"Cloud computing es un modelo que habilita un acceso conveniente, una red bajo demanda a con un pool compartido de recursos informáticos configurables (por ejemplo, redes, servidores, almacenamiento, aplicaciones y servicios) que pueden ser rápidamente aprovisionado y desplegado con un mínimo esfuerzo de gestión o servicio por parte proveedor. El modelo de computación en la nube promueve la disponibilidad."
¿Mitos o Verdades?
Google Confidential and Proprietary
Services
App Identity
Blob store
Cloud Storage
Capabilities
Conversion Channel
Images
Log Services
Memcache
Multitenancy
APP ENGINE
Google Confidential and Proprietary
Languages
JVM Languages● Scala● JRuby● Groovy● Quercus● Rhino● Jython● ...
Google Confidential and Proprietary
App Engine Application Lifecycle
● Build (App Engine SDK and Eclipse plug-in)
● Test (App Engine SDK and Eclipse plug-in)
● Deploy (App Engine SDK and Eclipse plug-in)
● Manage (Admin Console)● Upgrade
Test
Deploy
Manage
Build
Upgrade
Google Confidential and Proprietary
Ensuring Portability
Google Confidential and Proprietary
Java App Engine : SDK
● Local Emulation of the App Engine
● HTTP Server● Servlet and JSP container● Lightweight Datastore● Build tools - ant + JSP
compiler● Deployment Tools
Test
Deploy
Manage
Build
Upgrade
Google Confidential and Proprietary
Eclipse Project
Source Folder
Persistenceconfig file
App Engine SDK
Destination WAR
Google Confidential and Proprietary
Life of a request - Scales dynamically/automatically
User App EngineFrontEnd
App's Runtime
User
User
User
App EngineFrontEnd
App's Runtime
App's Runtime
App's Runtime
App's Runtime
User
Google Confidential and Proprietary
Multiple versions
User App EngineFrontEnd
App's Runtime
Version1.1Version
1.1Version1.1
Version2.1
Google Confidential and Proprietary
Images
● Transforming Images in Java● Available Image Transformations● Image Formats
https://developers.google.com/appengine/docs/java/images/overview
- App Engine provides the ability to manipulate image data using a dedicated Images service.
- The Images service can accept image data directly from the app, or it can use a Blobstore value or a Google Cloud Storage value
import com.google.appengine.api.images.Image;import com.google.appengine.api.images.ImagesService;import com.google.appengine.api.images.ImagesServiceFactory;import com.google.appengine.api.images.Transform;
// ... byte[] oldImageData; // ...
ImagesService imagesService = ImagesServiceFactory.getImagesService();
Image oldImage = ImagesServiceFactory.makeImage(oldImageData); Transform resize = ImagesServiceFactory.makeResize(200, 300);
Image newImage = imagesService.applyTransform(resize, oldImage);
byte[] newImageData = newImage.getImageData();
Google Confidential and Proprietary
Blobstore API
● Using the Blobstore● Uploading a Blob● Serving a Blob
https://developers.google.com/appengine/docs/java/blobstore/overview
- The Blobstore API allows your application to serve data objects, called blobs, that are much larger than the size allowed for objects in the Datastore service
Map<String, BlobKey> blobs = blobstoreService.getUploadedBlobs(req);BlobKey blobKey = blobs.get("myFile");
if (blobKey == null) { res.sendRedirect("/");} else { res.sendRedirect("/serve?blob-key=" + blobKey.getKeyString());}
Google Confidential and Proprietary
Cloud Storage
● Using the Cloud Storage API○ Creating an Object○ Opening and Writing to the
Object○ Finalizing the Object○ Reading the Object
- The Google Cloud Storage API allows your application to store and serve your data as opaque blobs known as "objects". While Cloud Storage offers a RESTful API,
https://developers.google.com/appengine/docs/java/googlestorage/overview
// Get the file serviceFileService fileService = FileServiceFactory.getFileService();
/** * Set up properties of your new object * After finalizing objects, they are accessible * through Cloud Storage with the URL: * http://commondatastorage.googleapis.com/my_bucket/my_object */GSFileOptionsBuilder optionsBuilder = new GSFileOptionsBuilder() .setBucket("my_bucket") .setKey("my_object") .setAcl("public-read");
// Create your objectAppEngineFile writableFile = fileService.createNewGSFile(optionsBuilder.build());
Google Confidential and Proprietary
Mobility Feeling..
Google Confidential and Proprietary
El rápido crecimiento de Android
Android es el sistema operativo con la mayor presencia en el mercado mundial de smartphones.
201025% de los smartphones eran Androids
2011
52,5% de los smartphones son Androids(para comparación, 16,6% son iPhones)
Gartner, 2011
Google Confidential and Proprietary
Números de Android
Crecimiento: 850.000 nuevos Androids por díaMás de 300.000.000 de dispositivos activados globalmente hasta el momento.OBS: Los números consideran solamente los dispositivos oficiales.
825dispositivos
58fabricantes
329operadoras
169paises
Google Confidential and Proprietary
Aplicaciones
Google Play ya ha registrado
11.000.000.000instalaciones de apps globalmente
...1.57 apps/persona
Google Confidential and Proprietary
Android en Argentina
0
400K
800K
2009 2010 2011
26.680
388.980
1.423.800 !
Shipments por año, no acumulados (Canalys, 2011)
Google Confidential and Proprietary
Android en Argentina
Smartphone Shipments - Argentina - 2011 (Canalys, 2011)
Google Confidential and Proprietary
¿Necesitamos más apps?
Hay 500.000+ apps en Google Play(buenas y malas)
Lo más importante no es la cantidad sino que la
calidad de apps.
Google Confidential and Proprietary
Prediction API
Google Confidential and Proprietary
What is Prediction API?
This API allows us to make smarter applications. Prediction API has access to machine learning algorithms proposed by Google to analyze historical data and predict possible future results.
RESTful API Flexible Input Multi-Platform Support
Asynchronous cloud-based training, automatic model
selection and tuning, and the ability to add training data on
the fly.
Numeric or text input that can output hundreds of discrete categories or
continuous values.
Google App Engine, Apps Script (Google Docs), web &
desktop apps, and the command line.
Google Confidential and Proprietary
Prediction API Overview
● Soporta Autenticación (OAuth2.0)● Predictive Model Markup Language. (PMML)● HTTP and HTTPs
Training data Train the model.
Storage. - Google Cloud Storage.
Send queries for the model.
Model Feedback (with more information)
Google Confidential and Proprietary
Opportunities with Prediction API
+ Predictions shopping or wish list. (shops, supermarkets, etc.)+ Analysis of viewing preferences in movies, television, etc..+ Analysis and categorization of sounds.+ Prediction of common routes, cross-traffic analysis, etc..+ Social analysis and the senses ... +1 -1more ... ...
Google Confidential and Proprietary
Demo!
Google Confidential and Proprietary
Recursos
● Guía de desarrollo de Prediction API● Escenarios de Aplicación
LibreriasGalería de ejemplos
Google Confidential and Proprietary
WebGL Skin
http://www.chromeexperiments.com/detail/webgl-skin/
Google Confidential and Proprietary
Google Gravity
http://www.chromeexperiments.com/detail/gravity/
Google Confidential and Proprietary
WebGL Bookcase
http://www.chromeexperiments.com/detail/webgl-bookcase/
Google Confidential and Proprietary
Google APIs and the Future Web..
http://www.sea-seek.com/3d/San_Francisco_Bay
Google Confidential and Proprietary
Questions...
Q&A
Google Confidential and Proprietary
Thank you!Director de Relaciones para Desarrollo de la Región Sur+Nicolas Bortolotti
http://nbortolotti.blogspot.com/