2. Bueno en esta ocasión vamos a hablar un
poco sobre los web services que nos
servirán para la comunicación del
dispositivo con android a una aplicación
web(PC)
Introducción
3. Un servicio web (en inglés, Web services) es
una tecnología que utiliza un conjunto de
protocolos y estándares que sirven para
intercambiar datos entre aplicaciones.
Distintas aplicaciones de software
desarrolladas en lenguajes de programación
diferentes, y ejecutadas sobre cualquier
plataforma, pueden utilizar los servicios web
para intercambiar datos en redes de
ordenadores como Internet.
Que es un Web Service?
4. La ventaja de los web services es que
pueden ser creados en otro lenguaje, eso
facilita la comunicación con otras
aplicaciones, ya que las solicitudes y
respuestas se realizan en un formato
SOAP.
5. En este caso los web services creados,
están hechos con el Framework .NET 3.5
en el lenguaje C#.
El motivo por el cual se eligió este
framework es por la facilidad de publicar
los web services en el servidor de
aplicaciones IIS (Internet Information
Services)
6. Los métodos tienen un atributo llamado
[webmethod], este atributo hace visible al
método para poder consumirse en caso que
sea necesario.
-public string getUserId(string user, string password)
- public DataTable getTasks(string userId)
- public DataTable getTaskDetail(string idTask)
- public DataTable getCuestions(string idTask)
- public Boolean SetResponse(String idTask, int[] ArrayIdPreguntas,
string[] Respuestas)
- public Boolean SetStatusTasks(Array idTasks, Array ArrayIDStatus)
7. Los metodos anteriores obtienen Id del
empleado, las tareas pendientes, detalle
de las tareas, preguntas y las respuestas.
Estos métodos también se encargan de
recibir las coordenadas y la imagen
obtenida desde el dispositivo con android
y las inserta en la base de datos, para
después poder visualizarlo en la aplicación
web.
8. public class ConnectionManager
{
private MySqlConnection conn = new MySqlConnection("Server=192.168.0.208;Database=DEMO_OWNER;”);
private MySqlDataAdapter da;
private int[] idRespuestas;
private MySqlDataReader dr;
public void ConnectionClass()
{
}
public String isUser(string user, string password)
{
String userId = "0";
String sqlCommand = "SELECT count(idusuario), idUsuario FROM usuarios WHERE usuario = '" + user + "' AND contrasena
= '" + password + "'";
da = new MySqlDataAdapter(sqlCommand, conn);
DataTable dataTable = new DataTable();
conn.Open();
int recordsAffected = da.Fill(dataTable);
if (!dataTable.Rows[0][0].ToString().Equals("0"))
{
userId = dataTable.Rows[0][1].ToString();
}
conn.Close();
return userId;
}
Ejemplo
9. En el ejemplo anterior solo se verifica que
sea un usuario existente en la base de
datos y en caso que lo sea trae su Id y da
acceso a la aplicación.
10. public DataSet getTasks(string userId)
{
String sqlCommand = "SELECT t.idTarea, t.nombre FROM relUsuariostareas reltu,"
+
"(select u.* from usuarios u where idusuario = " + userId + ") u,
tareas t " +
"where reltu.idusuario = u.idusuario and reltu.idtarea = t.idtarea " +
"and reltu.idtarea = t.idtarea and t.idstatustarea = 2";
da = new MySqlDataAdapter(sqlCommand, conn);
DataSet ds = new DataSet("Tasks");
conn.Open();
int recordsAffected = da.Fill(ds);
conn.Close();
return ds;
}
Ejemplo II
11. En el ejemplo anterior se obtiene un
dataset con las tareas del usuario y se
llena un dataadapter con la información.