Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Cliente

No description
by

Juan De La Cierva

on 8 February 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Cliente

My
SQL,

PHP

y otras

historias

Planteamiento
Un cliente desea consultar sus cuentas del banco.
Pero no tiene cerca una sucursal bancaria.
Decide usar su dispositivo móvil para hacer la consulta.
Voy a usar este dispositivo móvil
para consultar los numericos de mis
cuentas
Madre mía
to lo que he hecho y
no me he enterao de na...

Me voy a comprar un router que
estoy podridico de
pasta
Efectivamente Enjuto ha consultado con su banco
varios datos sobre él y sus cuentas pero realmente
no sabe lo que hay detrás de ese simple gesto.
Ahora viene la explicación técnica...
Cliente
Para la consulta anterior necesitamos
· Un cliente
· Una red de conexión
· Un servidor
* Una base de datos (MySQL)
* Un servidor web (Apache)
* Scripts de acceso a datos (PHP)
* APP Android en Java
Realiza una petición GET/POST
Cliente
Red
Transmite la información al cliente
Recibe la información, en formato JSON
Interpreta el JSON
Lo presenta en la forma adecuada
o realiza operaciones con él
Diferencias entre GET y POST
El concepto
GET
es
obtener información
del servidor. Traer datos que están en el servidor, ya sea en un archivo o base de datos, al cliente. Independientemente de que para eso tengamos que enviar (request) algún dato que será procesado para luego devolver la respuesta (response) que esperamos, como por ejemplo un identificador para obtener una noticia de la base de datos.
POST
sin embargo es
enviar

información
desde el cliente para que sea procesada y actualice o agregue información en el servidor, como sería la carga o actualización en sí de una noticia. Cuando enviamos (request) datos a través de un formulario, estos son procesados y luego a través de una redirección, por ejemplo, devolvemos (response) alguna página con información.
La ubicación de los scripts
phps/
¿ Cómo hacerlo desde Android ?
Creo un ArrayList de tipo Nombre-Valor
Añado las parejas de nombre valor
Declaro el interpretador y un objeto JSON
que va a recibir la respuesta del servidor
Hago la petición con la dirección, el método
y los argumentos
Finalmente recojo el id del usuario en el
objeto JSON declarado antes
Red
Transmite la información al servidor
Servidor
Recibe la petición GET / POST
Ejecuta el script PHP de consulta a la base de datos
Devuelve la información, normalmente en forma de JSON
Formación de una petición GET
Es necesario lo siguiente
La IP del servidor
En su caso, el paso de argumentos
http://10.2.253.131/
?user=user18&psw=psw
El script que se ejecutará
phps/c_u_p.php
Formato JSON que devuelve el script PHP
{
"id_usr":18,
"exito":1,
"mensaje":"OK"
}
clave: id_usr, valor: (
int
) 18
clave: mensaje, valor: (
String
) OK
clave: exito, valor: (
int
) 1
Otro ejemplo
{
"exito":1,
"mensaje":"El cliente tiene cuentas",
"cuentas":
[ {
"id_cuenta":29,
"iban":"12341234181234567918",
"balance":9837,
"tipo_cuenta":"Current Account" },
{
"id_cuenta":30,
"iban":"12341234191234567919",
"balance":12312,
"tipo_cuenta":"Loan account"
} ]
}
Interpretación del objeto JSON en Android
Breve explicación sobre AsyncTask
Permite ejecutar una tarea en segundo plano, es decir podemos ejecutar tareas asíncronas.
Se divide en 4 etapas:
onPreExecute()
Normalmente se usa para configurar la tarea.
doInBackground(Tipo... args)
Es el bloque principal, ejecuta la tarea encomendada. En el ejemplo acceder al servidor, realizar la consulta y devolver los datos obtenidos.
onProgressUpdate(Tipo... progreso)
Se dispara cuando se hace una llamada publishProgress(Progress...) desde doInBackground, permite actualizar partes de la UI. Por ejemplo, una barra de progreso.
onPostExecute(Resultado)
Recibe el resultado de la tarea ejecutada en doInBackground como argumento
Prueba libre de la app
Usuarios
Contraseña
user + número del 1 al 20
psw
nota: el usuario enjuto tiene restringido el acceso
por un problema de phising
Fuentes consultadas
Salir de la app
Usuario
Contraseña
Botón de inicio
de sesión
Información
del usuario
Operaciones
Cierre de sesión
Listado de
cuentas
del usuario
Detalles de
movimientos
de la cuenta
seleccionada
Saldo
Nº de cuenta
https://www.digitalocean.com/community/articles/how-to-install-linux-apache-mysql-php-lamp-stack-on-centos-6
Instalacion LAMP
http://www.androidhive.info/2012/05/how-to-connect-android-with-php-mysql/
MySQL, JSON Parser, PHP, conexión desde Android
http://developer.android.com/
Estilos, duda y fuente principal
http://www.php.net/
PHP
http://developer.android.com/reference/android/os/AsyncTask.html
AsyncTask
http://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=581:request-php-diferencias-ventajas-y-problemas-de-get-post-request-ejercicios-ejemplos-cu00832b-&catid=70:tutorial-basico-programador-web-php-desde-cero&Itemid=193
Diferencias entre GET y POST
Software utilizado
https://www.virtualbox.org/
VirtualBox
http://www.mysql.com/
My
SQL
https://s3-eu-west-1.amazonaws.com/virtualboxes.org/CentOS-6.5-i386-minimal.ova.torrent
Máquina virtual
CentOS
http://developer.android.com/tools/index.html
Android Developer Tools
http://httpd.apache.org/
Apache server
http://www.php.net/
php
http://es.libreoffice.org/
Libre
Office
http://www.icojam.com/blog/?p=589
Iconos de la aplicación
Full transcript