El documento presenta información sobre servicios en la nube, evolución de software y desafíos de la arquitectura evolutiva. También introduce la API de Prediction de Google y oportunidades para innovar utilizándola, como predicciones de compras, análisis de preferencias y categorización de sonidos. Finalmente, incluye una demostración de ejemplos de uso de la API.
Aproveche las ventajas de la colaboración entre GeneXus y Cloud Shared Office...
Servicios en la nube, desafíos de la evolución arquitectónica
1. Servicios en la nube,
evolución de software
Desafíos de la evolución
arquitectónica
Innovar utilizando Prediction API
Google Confidential and Proprietary
2. Agenda
● Introduction to the ecosystem
● Trends
● Cloud Services
● Mobility Feeling
● Opportunities in our ecosystem
● Your Future!
● Q&A
Google Confidential and Proprietary
3. DevRel Latam South Region
+Nicolas Bortolotti
● Ecosystem
● Focus (+Social)
○ Academia
○ Startups
○ Software Industry
+DevRelSouthRegion
http://www.dvlatamsouthregion.com.ar/
Research Startups Developer Academic Machine
Google Confidential and Proprietary
4. 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 Academy
c. Developers University Consortium
Google Confidential and Proprietary
5. 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
6. 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
8. Thinking...
Google Confidential and Proprietary
9. Startups
Build Measure
Get out There &
Enhance
Get paid
Google Confidential and Proprietary
10. Research - University
● Human-Computer ● Research Awards
Interaction ● Educational
● Speech Materials
● Natural Language ● Research Tools
Processing ● Collaboration and
● Computer Vision Communication
● Machine Learning ● ...
● Algorithms
● Structured Data
University
Research
Relations
Google Confidential and Proprietary
11. Open Source
Projects
Google Confidential and Proprietary
12. Open source and App Engine
gaeproxy
Slim3
jclouds objectify
appengine
Projects
Google Confidential and Proprietary
13. 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
15. ¿Cloud?
SaaS
PaaS
IaaS
Google Confidential and Proprietary
16. Thinking...
"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."
● 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.
¿Mitos o
● Cloud computing es una nueva revolución Verdades?
● Cada suministrador tendrá una “nube” diferente
● SaaS es la cloud
● Cloud elimina las redes privadas.
Google Confidential and Proprietary
17. Services
Images
Blob
store Capabilities
App
Identity Mail
Multitenancy
APP
Cloud ENGINE
Memcache
Storage
Log
Conversio
n Channel Services
Google Confidential and Proprietary
18. Languages
JVM Languages
● Scala
● JRuby
● Groovy
● Quercus
● Rhino
● Jython
● ...
Google Confidential and Proprietary
19. App Engine Application Lifecycle
Test
● Build (App Engine SDK and
Eclipse plug-in)
● Test (App Engine SDK and
Eclipse plug-in)
Build Deploy ● Deploy (App Engine SDK and
Eclipse plug-in)
● Manage (Admin Console)
● Upgrade
Upgrade Manage
Google Confidential and Proprietary
21. Java App Engine : SDK Test
Build Deploy
Upgrade Manage
● Local Emulation of the App
Engine
● HTTP Server
● Servlet and JSP container
● Lightweight Datastore
● Build tools - ant + JSP
compiler
● Deployment Tools
Google Confidential and Proprietary
22. Eclipse Project
Source Folder
Persistence
config file
App Engine SDK
Destination WAR
Google Confidential and Proprietary
23. Life of a request - Scales dynamically/automatically
App Engine App's
User
FrontEnd Runtime
App's
User
Runtime
App's
User
App Engine App's Runtime
User
FrontEnd Runtime
App's
User
Runtime
Google Confidential and Proprietary
24. Multiple versions
Version
Version
1.1
Version
1.1
1.1
App Engine App's
User
FrontEnd Runtime
Version
2.1
Google Confidential and Proprietary
25. Images
- 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;
● Transforming Images in Java // ...
● Available Image Transformations byte[] oldImageData; // ...
● Image Formats
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();
https://developers.google.com/appengine/docs/java/images/overview
Google Confidential and Proprietary
26. Blobstore API
- 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
● Using the Blobstore Map<String, BlobKey> blobs = blobstoreService.
getUploadedBlobs(req);
● Uploading a Blob BlobKey blobKey = blobs.get("myFile");
● Serving a Blob if (blobKey == null) {
res.sendRedirect("/");
} else {
res.sendRedirect("/serve?blob-key=" + blobKey.
getKeyString());
}
https://developers.google.com/appengine/docs/java/blobstore/overview
Google Confidential and Proprietary
27. Cloud Storage
- 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,
// Get the file service
FileService fileService = FileServiceFactory.getFileService();
/**
* Set up properties of your new object
* After finalizing objects, they are accessible
● Using the Cloud Storage API * through Cloud Storage with the URL:
○ Creating an Object * http://commondatastorage.googleapis.
com/my_bucket/my_object
○ Opening and Writing to the */
Object GSFileOptionsBuilder optionsBuilder = new
GSFileOptionsBuilder()
○ Finalizing the Object .setBucket("my_bucket")
○ Reading the Object .setKey("my_object")
.setAcl("public-read");
// Create your object
AppEngineFile writableFile = fileService.createNewGSFile
(optionsBuilder.build());
https://developers.google.com/appengine/docs/java/googlestorage/overview
Google Confidential and Proprietary
29. El rápido crecimiento de Android
Android es el sistema operativo con la mayor
presencia en el mercado mundial de smartphones.
2010
25% 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
30. Números de Android
825 58
dispositivos fabricantes
329 169
operadoras paises
Crecimiento: 850.000 nuevos Androids por día
Más de 300.000.000 de dispositivos activados
globalmente hasta el momento.
OBS: Los números consideran solamente los dispositivos oficiales.
Google Confidential and Proprietary
31. Aplicaciones
Google Play ya ha registrado
11.000.000.000
instalaciones de apps globalmente
...1.57 apps/persona
Google Confidential and Proprietary
32. 1.423.800 !
Android en Argentina
800K
388.980
400K
26.680
0
2009 2010 2011
Shipments por año, no acumulados (Canalys, 2011)
Google Confidential and Proprietary
33. Android en Argentina
Smartphone Shipments - Argentina - 2011 (Canalys, 2011)
Google Confidential and Proprietary
34. ¿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
36. 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 Numeric or text input that
can output hundreds of Google App Engine, Apps
training, automatic model
discrete categories or Script (Google Docs), web &
selection and tuning, and the
continuous values. desktop apps, and the
ability to add training data on
command line.
the fly.
Google Confidential and Proprietary
37. Prediction API Overview
Storage. -
Google Cloud Send queries for
Training data Storage. Train the model. the model.
Model
Feedback
(with more
information)
● Soporta Autenticación (OAuth2.0)
● Predictive Model Markup Language. (PMML)
● HTTP and HTTPs
Google Confidential and Proprietary
38. 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 -1
more ... ...
Google Confidential and Proprietary
44. Google APIs and the Future Web..
http://www.sea-seek.com/3d/San_Francisco_Bay
Google Confidential and Proprietary
45. Questions...
Q&A
Google Confidential and Proprietary
46. Thank you!
Director de Relaciones para Desarrollo de la Región
Sur
+Nicolas Bortolotti
http://nbortolotti.blogspot.com/
Google Confidential and Proprietary