miércoles, septiembre 24, 2014

Gobernanza en una estrategia SOA

 
SOA.jpg

Integración con la estrategia de TI y su gobernanza

La capacidad de utilizar la tecnología para impulsar la agilidad y la innovación en el negocio, constituye un elemento fundamental para el alto rendimiento y tener éxito.
La SOA como marco de trabajo para el desarrollo de software de implantación de los servicios que se constituyen. El desarrollo de sistemas basado en SOA, requiere de un compromiso con este modelo en términos de planificación, metodología, herramientas y la infraestructura requerida.
El uso de técnicas y ayudas neutralizará algunos factores negativos que tendrán un impacto en su análisis y aumentarán el valor de otros factores positivos.
Al implementar la conectividad SOA a través de la conectividad de servicios, se realiza el siguiente valor:
  • Ahorrar el costo de la conectividad personalizada o convencional.
  • Eliminar la redundancia al ampliar los activos de TI ya existentes en lugar de duplicarlos.
  • Proporcionar una experiencia de usuario segura y consistente al exponer el mismo proceso a través de nuevos canales empresariales y dispositivos.
  • Fortalecer las relaciones de socios comerciales a través de conexiones gestionadas basadas en servicios.
La creación de servicios y conectividad SOA proporcionará más flexibilidad empresarial y una base firme para realizar otros proyectos de SOA, para nuestro caso estaremos implementando nuestra solución a través de webservices debido a la flexibilidad que este tipo de tecnologías conlleva. 
La idea básica consiste en que el canal de catálogo publica su servicio, luego un consumidor se conecta para encontrar los servicios deseados y una vez que lo hace se realiza un lazo entre el consumidor y el canal.
Los web services apuntan a ser la piedra fundamental en este sistema. Puntos que a continuación se enlistan.
  • Interoperabilidad: Como los web services pueden ser implementados en cualquier lenguaje, los desarrolladores no necesitan cambiar sus ambientes de desarrollo para producir o consumir web services.
  • Ubicuidad: Los web services se comunican utilizando HTTP y XML. Por lo tanto cualquier dispositivo que soporte estas tecnologías pueden implementar o acceder web services.
  • Fácil de utilizar: El concepto detrás de los web services es fácil de entender, incluso existen toolkits de vendedores como IBM o Microsoft que permiten a los desarrolladores crear web services en forma rápida y fácil. 
  • Soporte de la Industria: Todos las empresas de software importantes soportan SOAP, e incluso están impulsando el desarrollo de web services. 
La gobernanza hace cumplir la forma acordada entre los miembros clave de la empresa para trabajar en conjunto con el objetivo de planificar y supervisar el sistema SOA. La empresa pretende implementar una política rigurosa de gobernanza SOA. La gobernanza tiene dos aspectos:
  • Establecer cadenas de responsabilidad, autoridad y comunicación para dar autoridad a las personas y determinar quiénes tienen derecho a tomar cada tipo de decisión.
  • Establecer mecanismos de medidas, políticas y control para habilitar a las personas a cumplir con sus roles y responsabilidades.
Cualquier esquema de gobernanza SOA debe adecuarse a la gobernanza de TI de la empresa, que hace lo siguiente:
  • Establece los derechos de toma de decisiones relacionados con TI.
  • Establece los mecanismos y las políticas que se usan para medir y controlar la forma que se toman y ejecutan las decisiones de TI.
La gobernanza de TI tiene que ver con quién es responsable de cada cosa en el departamento de TI y cómo el departamento averigua si están cumpliendo con las responsabilidades.
Aspectos específicos a la gobernanza:
  • Actúa como una extensión de la gobernanza de TI que enfoca el ciclo de vida de los servicios para asegurar el valor empresarial de la SOA.
  • Determina quién debe supervisar, definir y autorizar cambios en los servicios ya existentes en una empresa.

Aspectos operativos y funcionales a considerar y evaluar para su desarrollo

Puntos a considerar en el desarrollo:
  • Servicios de interacción y colaboración: Se debe presentar un servicio o conjunto de servicios a un usuario humano a través de varios dispositivos, como un navegador, PC y dispositivos móviles. Los servicios de interacción y colaboración también mejoran la productividad de las personas al agregar esos servicios como vistas que facilitan informaciones e interacción en el contexto de un proceso empresarial.
  • Gestión de procesos empresariales posibilitada por SOA: La gestión de procesos empresariales es una disciplina que combina posibilidades de software y pericia empresarial para acelerar la mejora de los procesos y facilitar la innovación empresarial.
  • Información como servicio: La información como servicio ofrece acceso a informaciones a través de fuentes de datos complejas y heterogéneas dentro de su compañía como servicios reutilizables.
Al implementar SOA a través de la conectividad de servicios, se realizará el siguiente valor:
  • Ahorrar el costo de la conectividad personalizada o convencional.
  • Eliminar la redundancia al ampliar los activos de TI ya existentes en lugar de duplicarlos.
  • Proporcionar una experiencia de usuario segura y consistente al exponer el mismo proceso a través de nuevos canales empresariales y dispositivos.
  • Fortalecer las relaciones de socios comerciales a través de conexiones gestionadas basadas en servicios.
La creación de servicios y conectividad SOA proporcionará al negocio más flexibilidad empresarial y una base firme para realizar otros proyectos de SOA.

Cosas que hacen que un desarrollador decida quedarse en una empresa

Cosas que hacen que un desarrollador decida quedarse en una empresa

  • Buena paga.
  • Prestaciones de ley completas, eso de querer regatear o dar por mitad o no dar prestaciones para ahorrarte 3 pesos te saldrá más caro al final.
  • Si fuiste observador en todas las empresas que mencione anteriormente en ninguna permitían hacer Home Office, y esto es fundamental, un programador también tiene necesidades de ir con un médico, cuidar a sus hijos, a veces se siente enfermo, etc.), el trabajar desde casa aunque no lo parezca puede hacer más productivo al desarrollador (¿hasta cuando lo entenderán las empresas?).
  • Uso de nuevas tecnologías y hacer que el programador sienta la necesidad de competir y mejorar.
  • No estes encima del desarrollador viendo su pantalla o preguntando cada 5 minutos que esta haciendo, el sabe cual es su trabajo y lo hará, tenlo por seguro.
  • Las redes sociales quitan tiempo, pero evita bloquear TODO incluyendo GMail, es muy importante para el desarrollador revisar su correo electrónico al menos una vez al día.
  • Respeta el formato del Scrum (15 minutos por Standup, no 30 min ni 1 hora!!!).
  • Deja que el desarrollador decida con que SO trabajar.
  • Compra gadgets para que el desarrollador se divierta testeando en iPad, iPhone, Android, etc.
  • Deja que el desarrollador decida con que editor de código quiere trabajar (no a todos nos gusta Eclipse ni Netbeans, ¿entiendes?).
  • Considera incrementos salariales anuales de mínimo el 10% o 15%, cuando uno cambia de empresa este es el factor #1 en la mayoría de los casos.
  • Si el desarrollador tiene que llamar a algún cliente por teléfono, por favor consigue teléfonos Cisco con el botón de Mute y el de Altavoz... (es muy útil).
  • Flexibilidad en el horario (los desarrolladores somos trabajadores nocturnos y muchas veces estamos desvelados todo el tiempo, así que las empresas que se ponen exigentes con el horario terminan cansando a los desarrolladores).
  • Trabaja por objetivos y no por horas laborales (relacionado al punto anterior), a ti te debe dar igual si tu desarrollador llega 30 minutos tarde o no, siempre y cuando te haga su trabajo bien y en tiempo y forma no tienes por que preocuparte.
  • Sillas comodas (esto es uno de los puntos más importantes a mi parecer).
  • Dos monitores widescreen hacen a los desarrolladores más productivos.
  • En México la semana la cargan con 45 horas laborales..., creanme que 40 son más que suficientes.
  • 9am a 5pm es el horario perfecto (en México lo normal es 9 a 6 o 9 a 7pm).
  • Ten en la cafetería de la empresa bebidas (refrescos, jugos, agua, leche, inclusive cervezas, etc.), esto es un gran plus y eleva la productividad, debido a que la persona no tiene que salir del edificio a comprar sus cosas y al final que le ayudas a ahorrar unos cuantos pesos.
  • El programador debe tener un buen espacio de trabajo, sin tener a la gente codo a codo (y si puede tener un poco de privacidad es mucho mejor).
  • Utilizar Scrum + Github + Git es la combinación perfecta, aunque también podría funcionar JIRA + SVN o JIRA + Perforce (este último tiene su chiste).
  • Actividades fuera del trabajo que integren al equipo (como ir a jugar bolos, billar, etc.)
  • Tener juegos o algo divertido en tu empresa (Mesa de Ping Pong, Futbolito, VideoJuegos, Ajedrez, etc.)
  • Evita ser tan burocrático (que tengas que pedirle permiso a 5 personas para poder instalar Sublime Text... no es broma, a mi me paso ¬¬).
  • Ofrece una comida cada mes o cada 15 días a tu equipo de trabajo (esto ayudará a tener mayor comunicación y además a ¿quién no le gusta la comida gratis?).
  • El código de vestimenta esta bien hasta cierto punto, pero ya que obligues a tus empleados a traer pantalon de vestir, saco y corbata, cansa bastante, digo tampoco soy partidiario de traer short y chanclas, pero jeans y tenis no va tan mal, mientras el programador este agusto el código fluirá mejor.
A mi parecer serían todas, espero haber ayudado a muchas empresas a mejorar varias cosas que estén haciendo mal y que por eso se les fuguen muchos buenos desarrolladores.

Cómo Mejorar el Aprendizaje: 10 Técnicas de Estudio

Estudiar de memoria los libros de texto está pasado de moda. Además, los resultados no suelen ser muy prometedores. Por suerte, existen muchas otras técnicas de estudio más divertidas y dinámicas que, además, pueden mejorar nuestros resultados y rendimiento. Desde ExamTime te presentamos algunas de ellas.

10 Técnicas de Estudio para Mejorar el Aprendizaje

Técnica de Estudio 1: Subrayar
Subrayar la parte más importante del temario es una de las técnicas de estudio más sencillas y conocidas. Se trata simplemente de destacar las partes más significativas del texto usando distintos colores. Lo ideal es hacer primero una lectura comprensiva y subrayar lo más notable para, posteriormente, proceder al estudio.
Técnica de Estudio 2: Realiza tus propios Apuntes
Realizar apuntes es una de las técnicas de estudio más extendidas junto con subrayar. Se trata de resumir lo más destacable con nuestras propias palabras para así recordarlo más fácilmente. En la mayoría de las ocasiones, la clave es ser capaz de resumir el contenido al máximo, pero sin dejar fuera ningún dato clave. A la hora de crear nuestros propios apuntes, podemos hacerlo al modo tradicional con lápiz o papel o con herramientas online, como la que ofrecemos en ExamTime.
Técnica de Estudio 3: Mapas Mentales
Otro clásico. Crear un mapa mental es la mejor manera para resumir y organizar nuestras ideas. Un buen mapa mental puede ahorrarnos muchas horas de estudio y consolidar nuestros conocimientos de cara al examen. Desde ExamTime, también ofrecemos la posibilidad de crear mapas mentales de manera rápida, sencilla y gratuita. Prueba a crear un mapa mental ahora.

Técnica de Estudio 4: Fichas de Estudio
El uso de fichas de estudio es un método de aprendizaje especialmente eficaz a la hora de asimilar datos concretos, fechas, números o vocabulario. Por tanto, materias como Historia, Química, Geografía o cualquier idioma son mucho más fáciles si incluimos las fichas de estudio entre nuestras técnicas de estudio. Con las fichas de estudio convertimos la memorización en un proceso más divertido. Además, las fichas de estudio online nos permiten ahorrar mucho trabajo a la hora de crearlas y se pueden consultar fácilmente. Prueba a crear un conjunto de fichas ahora.
Técnica de Estudio 5: Ejercicios/Casos prácticos
En ocasiones es difícil asimilar la teoría de algunas materias de estudio. Sin embargo, realizar ejercicios y casos prácticos puede ayudarnos a visualizar la teoría y a que asimilemos los conocimientos de manera más sencilla. Esto es especialmente útil en asignaturas como Matemáticas, Física, Derecho y, en general, todas aquellas que involucren problemas y/o números. Por tanto, puede ser una buena idea realizar casos prácticos a la vez que estudiamos la teoría. De esta manera podremos comprender mejor su aplicación y lo que realmente nos están trasmitiendo todas esas letras.
Técnica de Estudio 6: Tests
Los tests son una excelente manera de repasar en los días u horas previas a un examen. Con los tests podemos comprobar que áreas llevamos mejor y cuáles peor, para así centrar los esfuerzos donde sea necesario. Además, si compartimos exámenes con nuestros compañeros para ponernos a prueba mutuamente, podemos descubrir detalles importantes que hemos obviado. Por ello, sin duda os recomendamos crear tests e intercambiarlos con vuestros compañeros como una de las técnicas de estudio previas al examen.

Técnica de Estudio 7: Brainstorming
Otra de las técnicas de estudio que podemos realizar en grupo. El brainstorming consiste en una reunión de un grupo de personas que realiza una lluvia de ideas sobre un determinado tema. El brainstorming puede ser especialmente útil a la hora de realizar trabajos en grupo, para así considerar diferentes ideas y perspectivas. Sin embargo, también puede ser útil para estudiar de cara a un examen para así resolver dudas y llegar al fondo de la materia.  En ambos casos, el uso de mapas mentales facilita este proceso de organización de ideas.
Asimismo, Internet hace más fácil que nunca este tipo de reuniones, eliminando las barreras geográficas. ExamTime ofrece la posibilidad de crear grupos para intercambiar ideas y recursos online. Otra opción es usar la función de mensajería de ExamTime para comunicarnos con otros miembros del grupo en tiempo real.
Técnica de Estudio 8: Reglas Mnemotécnicas
Las reglas mnemotécnicas son especialmente útiles a la hora de memorizar listas y conjuntos. Las reglas nmemotécnicas funcionan básicamente asociando conceptos que tenemos que memorizar con otros que son más familiares para nosotros. Hay muchas maneras de realizar reglas mnemotécnicas y depende mucho de la persona. Un ejemplo sería la palabra inventada “FECTES” para recordar los distintos tipos de desempleo (Friccional, Estacional, Cíclico, Tecnológico, Estructural y Shock estructural).
Técnica de Estudio 9: Organizar el Estudio
Una de las técnicas de estudio más efectivas pero que a menudo pasamos por alto consiste “simplemente” en organizar nuestro estudio. Establecer un calendario de estudio teniendo en cuenta nuestros objetivos y el tiempo que tenemos disponible es el primer paso hacia el éxito. ExamTime cuenta con una herramienta que te facilita crear tu calendario de estudio de manera sencilla en pocos minutos.
técnicas de estudio calendario de estudio mensual
Técnica de Estudio 10: Dibujos
Muchas personas cuentan con una buena memoria visual, por lo que son capaces de memorizar mejor los conceptos cuando están asociados a imágenes o dibujos. Por tanto, acompañar nuestro estudio de estos recursos visuales puede ser una gran idea, especialmente para asignaturas como Geografía, Ciencias, Arte o Historia. Otro recursos que ayuda a la memoria visual son los mapas mentales (ver punto 3). Recuerda, además, que con ExamTime puedes añadir imágenes y recursos visuales a los recursos que crees de manera sencilla .
Muchas de estas técnicas de estudio no son nuevas sino que son de sobra conocidas por estudiantes. Sin embargo, lo que sí es nuevo es la manera en la que las podemos poner en práctica, ya que hoy en día existe mucha tecnología a nuestra disposición.
Por ello, te recomendamos registrarte gratuitamente en ExamTime y transformar tu aprendizaje de manera fácil, efectiva y divertida. ¡Empieza Ahora, es Gratis!
Además, si quieres más información, te invitamos a seguir profundizando en estas técnicas de estudio y a descubrir muchas otras.
 

jueves, septiembre 18, 2014

Configurar BlueStacks como emulador de Android.

Es posible hacer esto muy fácil! pero recomiendo que primero se instale primero Launcher Pro o ADW (puedes sincronizar la aplicación con la aplicación BlueStacks Android) luego establecer como predeterminada cuando inicie BlueStacks. Una vez que hayamos realizado esto, se puede abrir Launcher Pro a través del gadget en cualquier momento.



Donde esta instalado el andoid-sdk generalmente en c:\android-sdk ejecutar "Device Manage" en la pestaña dentro "Android Remote Device" adicionar una nueva entrada con los siguientes datos:

Nombre: (el nombre a su gusto - ejemplo emulador)
Host: 127.0.0.1
Port: 5555





Tenemos listo BlueStacks como emulador de Android.

miércoles, septiembre 17, 2014

LOS 7 ROLES DEL PROFESOR EN EL APRENDIZAJE EN RED








































Un nuevo modelo
Para contextualizar, diremos que las nuevas tecnologías 2.0 han puesto en entredicho (una vez más, todo hay que decirlo) la metodología tradicional de aprendizaje: la clase magistral, el profesor experto y el alumno que escucha y toma notas, para después estudiarse al dedillo el contenido impartido y repetirlo en un examen. Frente a esta metodología, las nuevas formas de aprendizaje potenciadas por las redes sociales y las TIC han reavivado el debate  en torno a una metodología más constructivista, en la que el alumno gana autonomía en el proceso de aprendizaje y el profesor se convierte en guía o facilitador de este proceso.
Esta es la idea que subyace, por ejemplo, en la teoría de la coasociación de Prensky, que combina la conveniencia pedagógica de este cambio con su funcionalidad en la coyuntura actual: cuando el alumno sabe más que el profesor sobre los medios técnicos, como es el caso, es más que conveniente que profesor y alumno trabajen en coasociación, cada uno haciendo lo que sabe hacer, es decir, el docente guiando y planificando, y el alumno llevando a cabo los procesos necesarios para buscar, organizar y elaborar la información con las herramientas disponibles en ese momento.
George Siemens, en el artículo que traemos a colación (“Teaching in Social and Technological Networks”), incide precisamente sobre los roles que el profesor podría desempeñar en un entorno de aprendizaje de este tipo, en el que un colectivo (“la clase” en el aprendizaje formal o “el grupo de personas interesadas en un tema”, en el informal) construye conocimiento basándose en la transmisión de información y la suma de los conocimientos previos de cada uno de los individuos, que se convierten en “nodos” de una “red de aprendizaje”. Esto se entiende mucho mejor en la enseñanza a distancia, donde la clase es siempre un colectivo de individuos conectados de algún modo, pero es también aplicable a un curso presencial ordinario, donde los estudiantes comparten conocimiento durante sus horas juntos en un aula, pero también mientras estudian o preparan un trabajo para el día siguiente fuera del horario establecido.
Los 7 roles del profesor en un entorno semejante, por tanto, serían los siguientes:
1. Amplificar. Cuando reenviamos una información que nos parece relevante a multitud de personas (a través del correo electrónico o de las redes sociales), estamos amplificándola, en una red que se extiende en progresión geométrica. Siemens pone como ejemplo retuitear. Todos los individuos de una red colaboran en esta redifusión y amplificación de la información, pero el nodo-profesor “lo más probable es que sea uno de los nodos más importantes en la red de un estudiante, de modo que los pensamientos, ideas o mensajes que el profesor amplifique, van a tener mayor visibilidad entre los nodos de la red de aprendizaje”.
2. Intermediar. Una de las tareas clave del profesor es intermediar entre el contenido y el estudiante para hacérselo accesible en un primer momento. Por ello, “el profesor puede resaltar determinados temas para que los estudiantes se topen con ellos continuamente. No se trata de decir “tienes que saber esto” sino de que los temas importantes estén presentes en el diálogo con los estudiantes, en los comentarios sobre las entradas de blog, en los debates en clase, y en las reflexiones personales.”
3. Señalizar y crear sentido socialmente. Una de las preguntas más repetidas por los profesores: ¿cómo van a estudiar con lo que encuentran en Internet? En Internet todo son opiniones, retazos contradictorios, informaciones fragmentadas. Precisamente, una de las principales tareas del profesor actual de cara al futuro es enseñar a manejarse entre informaciones complementarias e incluso contradictorias, y elaborar la información dándole coherencia y sentido. “Ser capaces de construir sentido en entornos complejos, fragmentados y distribuidos es muy importante”. La propia red de aprendizaje puede actuar como filtro y contribuir al entrenamiento del sentido crítico.
4. Agregar. Con la idea de que el camino se hace al andar, Siemens plantea un futuro no muy lejano en que las nuevas herramientas de búsqueda de información se hagan verdaderamente “semánticas”, permitiendo construir el corpus de los cursos a medida que se avanza, y no previamente, agregando lo que de relevante vaya surgiendo en torno al tema discutido o investigado: “en vez de crear la estructura del curso con antelación a que los alumnos comiencen (el modelo al uso), la estructura del curso emerge a través de numerosas interacciones fragmentadas”.
5. Filtrar. Este punto viene a sumarse a los de construcción de sentido y agregación, que ya son formas de filtrar la información. Ahora se trata de “reforzar el papel de experto del profesor” (como en el modelo “antiguo”, de la escuela tradicional), llevando a cabo el filtrado de manera explícita (por ejemplo, buscando lecturas en torno al tema tratado) o implícita (proponiendo síntesis o índices de contenidos en torno a un tema, en suma, “una corriente de información filtrada”).
6. Modelar. “Modelar tiene sus raíces en el aprendizaje de un oficio”. El trabajo del aprendiz es siempre un proceso multifacético, que implica dimensiones emocionales, cognitivas y sociales. De la misma manera, el conocimiento implica facetas teóricas, procedimentales y académicas. Se trata de “convertirse en carpintero, fontanero o físico”, y “lo que no puede comunicarse y entenderse a través de las lecturas o las actividades puede ser suplido por el modelaje del profesor”.
7. Presencia continua. El docente tiene que estar presente on-line con una identidad virtual definida: un blog, un perfil en una red social, Twitter, o una combinación de todo ello, a través de los cuales “resumir discusiones, aportar perspectivas críticas y proponer nuevas fuentes de información”. De este modo podrá conectar con otros (no solo con sus alumnos), y seguir ampliando horizontes.
¿Crees que es realista este retrato? ¿Consideras factible este modelo a corto-medio plazo?

viernes, septiembre 12, 2014

Tu sitio Android compatible

Descubre lo fácil que es convertir un sitio web personal en una web app compatible Android

  1. Para convertir un sitio web en una web app compatibe con Android, se necesita añadir un simple fragmento de código en el encabezado de la página web. Abre tu página web en un editor, localiza las etiquetas <head> y añade lo siguiente: <meta name=”mobile-webapp-capable” content=”yes”>.
  2. Dentro de las etiquetas <head> habrá un conjunto de etiquetas <title>. Estas contienen el nombre que aparece en el navegador. Si deseas cambiar el título a algo distinto, por ejemplo ‘Esta es mi web app’, cambia simplemente el título que se muestra actualmente y guarda la página.
  3. Cuando una web app opera en modo app se añade un icono en la pantalla de inicio.
    El icono está definido por otra línea de código: <link rel=”icon” sizes=”196x196”
    href=”mywebappicon.png”>. El elemento href es el nombre del icono, que debería estar en el mismo directorio que la página web.
  4. El tamaño 196 x 196 es el recomendado para que un icono se vea bien, pero pueden
    usarse otros tamaños como 128 x 128 o 48 x 48. Android ofrece una guía sobre creación de iconos para dispositivos Android. Puedes encontrar la guía en developer.android.com/design/style/iconography.html.

Una Aplicacion Web que emule una aplicacion Android

  1. El primer paso del proceso es seleccionar una web app que emule la forma en la que
    funciona una app real. Para este tutorial vamos a utilizar la web app Penzu, un periódico online. Si tienes una web app alternativa no dudes en usarla en su lugar, el proceso es el mismo.
  2. Asegúrate de que tienes la última versión de Google Chrome instalada o al menos la
    versión 31. Sin esta versión o superior, la función Añadir a pantalla de inicio no  estará. Comprueba la versión en Ajustes>Información sobre Chrome. Si es necesario ve a Google Play y actualízala.
  3. Si no lo tienes abierto entra en el navegador Google Chrome. Busca la ubicación de
    la web app que vamos a usar. La app Penzu la puedes encontrar en  https://penzu.com. Observa que sea cual sea la URL que usemos es la URL en
    la que se abrirá la app ‘verdadera’ .
  4. Toca el icono de menú. En la lista encontrarás la opción Añadir a página de inicio.
    Toca la opción y se abrirá una ventana. Mostrará el nombre predeterminado de la app, que será el título de la página web. Añade uno nuevo si quieres cambiarlo a tu gusto.
  5. Tras darle un nombre, toca en Añadir y Android pasará a la pantalla de inicio. Tras unos segundos aparecerá en pantalla el icono para la web app seleccionada. Por omisión el icono aparecerá arriba, o después de los iconos que tengas ya. Lo puedes colocar donde quieras.
  6. Toca el icono en situación y espera a que cargue la web app en su nuevo modo a pantalla completa. El nuevo aspecto se parecerá al de la URL original, pero no mostrará elementos típicos de la ventana de navegador. Ahora podrás usar la
    web app como si se tratara de una app nativa.
  7. Una web app en modo app se reconoce como cualquier otra app instalada. Las web apps lanzadas desde la pantalla de inicio aparecerán en el administrador de tareas. No se etiquetan como una tarea de Chrome sino que se le da el nombre de la web app para distinguirlas.
  8. La app creada a partir de la web app es en esencia un acceso directo a la URL. Esto
    quiere decir que la app no está instalada como una app tradicional. Para eliminarla solo borra el icono de la pantalla de inicio. Toca y mantén para arrastrar sobre el botón Borrar.

martes, septiembre 09, 2014

Demo de servicio web consumidor y emisor con PHP

Demostracion de 6 diferentes servicios web con PHP y SOAP.

Introduccion

En este arcticulo se demuestra de una forma muy simplificada, como trabajan los diferentes servicios web, esta principalmente orientado a principiantes.
  • El fuente contiene 6 diferentes servicios web consumidores o clientes, y 2 servicios web emisores.
  • Todos los ejemplos fueron programados en PHP 5, los mismos corren sin problemas en Windows o Linux.
  • Algunos ejemplos requieren enviar información mediante GET y otros mediante la utilización de POST.
  • Algunos ejemplos envian peticiones via URL y otros mediante SOAP.
  • El codigo no utiliza libreria PHP, nuestra intención es mostrar como se construye y envia información por medio de HTTP.
  • Adicionalmente este articulo nos indica como un  XML responde y como utilizar el XPath.
  • Los ejemplos estan basados en la reutilizacion de clases de servicios web clientes o consumidores
  • La intencion de este codigo es indicar la parate basica de los servicios web, no cubre topicos complejos de WSDL.
  • Si nunca utilizaron PHP, esto les puede servir como un utotial sencillo para poder ejecutar y probar en ambiente Windows.
Despues de leer este articulo y estudiado los ejemplos estaremos en capacidad de crear cualquier otro ejemplo y con las mismas caracteristicas.

Consumidor ServicioWeb de Yahoo Maps

Este ejemplo nos demuestra como enviar direccion al servicio web de Yahoo Maps el cual nos returna un dato de las coordenadas GPS (longitud y latitud).

El servicio web recepta parametros via GET en la URL.

El cliente nos demuestra como extraer información desde el XML utilizando el XPath.

Servidorr: http://local.yahooapis.com/MapsService/V1/geocode

Requerimiento:

Street = 701 First Ave, City = New York, State = NY

Respuesta:
--- RESULTADO 1 ---
Precision: address
Address:   701 1st Ave
ZIP:       11232
Latitude:  40.656335
Longitude: -74.012770

Servicio Web Cliente Weather

Con este ejemplo se demuestra de una forma sencilla como obtener un valor del temperaturas en cualesquiera de las 10,000 ciudades del mundo.
Cada ciudad representa un codigo  (ejemplo NLXX0002 for Amsterdam, Dinamarca).

Es posible seleccionar los resultados en Celsius, kilometros, kilometros/h y millibar o Fahrenheit, millas, millas/h, pulgadas.

Tambien es posible disponer del pronostico del tiempo desde una hora hasta 10 dias. Pero no incluye un ejemplo.

Este servicio web recibe parametros via GET en la URL.
En el cliente se demuestra como extraer la información desde un XML que nos retorna utilizando el XPath.

Servidor: http://xml.weather.com/weather/local

Requerimiento:

City= NLXX0002, Count of forecast days = 0, Units = European

Respuesta:
Location:     Amsterdam, Netherlands
Local Time: 5:53 PM
Sunrise:       6:40 AM
Sunset:        8:44 PM
Longitude:  4.90
Latitude:     52.35



Sky:                     Partly Cloudy
Temperature:    18°C
Feels Like:         18°C
Dew Point:         13°C
Pressure:           1010.8 mb
Humidity:           73%
Visibility:            10.0 km
Wind Speed:      21 km/h
Wind Direction: WSW
UV Index:           2



Moon:  Waxing Crescent
WeatherStation: Amsterdam, NETHERLANDS

Servicio Web Cliente de Amazon SimpleDB

Este servicio web se conecta a una base de datos de servicios web de Amazon.
Antes de seguir leyendo, por favor por un rato y olvidarse de todo lo que sabes acerca de Amazon !! Este servicio web no tiene absolutamente nada que ver con ninguno de los productos que se pueden comprar en Amazon, como libros, CDs o DVDs.

Amazon ofrece un servicio web que permite almacenar los datos de cualquier tipo en sus servidores de bases de datos web donde usted puede crear su propia base de datos privada (dominio). Así que usted puede escribir (web) las aplicaciones que almacenan los datos en la base de datos de Amazon. La ventaja es que se puede acceder a esta base de datos de todo el mundo, que puede almacenar grandes volúmenes de datos (como archivos de vídeo) y que Amazon ofrece servidores muy rápidos que están conectados directamente a una red troncal de Internet. Obviamente, este servicio no es gratuito.
En el código fuente, se encuentra la URL donde suscribirse y donde recibe su clave privada y pública que necesita. Pero si usted no se ha suscrito con la información de facturación válida (por ejemplo, MasterCard), usted seguirá recibiendo un error aunque tienes las claves válidas y aunque el primer tráfico de 1GB cada mes es gratis.

Esta muestra es interesante porque muestra cómo se valida un cliente. Para evitar que otra persona utiliza la cuenta de que usted está pagando, todas las peticiones al servidor deben contener la clave pública con la que te identificas y todos los campos de datos A continuación, debe haber iniciado sesión con su clave privada. La firma se realiza con el comando PHP
hash_hmac(). 

La siguiente accion crea una nueva base de datos "CreateDomain" con el nombre de "TestDomain".
 

El requerimiento tambien debe enviar un dato valido de UTC timestamp. Si este dato esta equivocado el servicio web es rechazado. Estos datos deben ser enviados via POST.

Servidor: https://sdb.amazonaws.com


Requerimiento:

Action                     = CreateDomain
AWSAccessKeyId = AIWMFIAEQGPKI3LFRADW
DomainName        = TestDomain
SignatureMethod = HmacSHA256
SignatureVersion = 1
Timestamp            = 2009-08-25T15:57:40.000Z
Version                   = 2009-04-15
Signature               = Xp3QbA4G4Ws41aZ7LX80i8Z4WRqL6LmsIKX9P8DLluY=

Servicio Web Cliente + Server Math calculation

Este servicio web cliente consume un consumidor para realizar operaciones matematicas.
Nos indica como escribir un servicio web emisor simple.

Consumidor y Cliente corren en localhost.

Esto se hace muy cimple: El cliente envia una operacion matematica en conjunto con dos numeros.
El emisor calcula y nos devuelve el resultado en XML.

Los datos se envian via POST.

Requerimiento:
Operation = Multiply
Value1      = 21
Value2      = 3

Respuesta:
Result      = 63

Servicio Web Cliente + Operaciones con Cadenas

Este servicio web es muy similar al anterior, pero ahora utilizaremos SOAP.
El cliente envía una cadena y el servidor ejecuta una operación sobre ella como revertirla, o lo que es mayúscula.

Servidor y cliente se ejecutan en localhost.
Para muchos servidores SOAP, es importante asignar el campo - HTTP header field "SOAPAction".

No es muy lógico que se envía un documento XML que también podría contener un campo XML "SOAPAction" .
Pero dependiendo del servidor, es posible obtener un error si esta cabecera HTTP no existe


Requerimiento:

POST /webservice/Server_Soap.php HTTP/1.0
Host: localhost
Content-Type: text/xml; charset=utf-8
Content-Length: 260
SOAPAction: STR_RevertRQ
User-Agent: PHP WebService Client
<?xml version="1.0"?>
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Header/>
    <soapenv:Body>
        <STR_RevertRQ>
           <Message>This is a little Text</Message>
       </STR_RevertRQ>
    </soapenv:Body>
</soapenv:Envelope>
Respuesta:

<?xml version="1.0"?>
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Header/>
    <soapenv:Body>
        <STR_RevertRS TimeStamp="1251219075">
            <Message>txeT elttil a si sihT</Message>
        </STR_RevertRS>
    </soapenv:Body>
</soapenv:Envelope>

Servicio Web Cliente  - Sabre

Sabre es un servicio web que no retorna vuelos, y hoteles con datos de la industria del turismo. Se puede leer un libro de vuelos, hoteles, renta de carros via servicios web.

Sabre es miembro de Open Travel Alliance (OTA).

Es necesario tener en cuenta que este servico tiene su costo y de hecho se debe suscribir. La documentación esta disponible para el desarrollador que dispone de una suscripcion.

Servidor: https://webservices.sabre.com/websvc

En el ejemplo se envia un  OTA_PingRQ al servidor el cualdo es un simple comando de una lista larga de comando que tiene OTA.

El servidor responde con el comando OTA_PingRS retorna la misma cadena.

Existio problemas en hacerlo funcionar.

Como ejecutar los ejemplos en Windows

  1. Primero compruebe que no hay ningún programa en tu PC que se ejecuta un servidor en el puerto 80.
    Si ha instalado Skype, asegúrese de que en el menú Herramientas -> Opciones -> Conexión, la casilla de verificación "Usar el puerto 80 y 443 como alternativas para las conexiones entrantes" no este activado !!
  2. Verifiar que su navegador no este asociado a un proxy, si es necesario configure para que permita el acceso a los servicios web!
  3. Instalar Wamp Server el cual incluye Apache, mySql y PHP en  C:\Program Files\Wamp.
  4. Editar y modificar el archivo C:\Program Files\Wamp\bin\apache\Apachex.y.z\bin\php.ini  y remover el punto y coma de la sugiente linea ;extension=php_openssl.dll
  5. Seguidamente inicie el servidor desde el startmenu. 
  6. Pero no hay nada que se debe configurar: Wamp se ejecuta por si mismo.
  7. Copie todo el contenido del archivo ZIP de CodeProject en la carpeta C:\Program Files\Wamp\www\webservice
  8. Si todo fue Ok, debe existir este archivo: C:\Program Files\Wamp\www\webservice\index.php
  9. Abrir en el Navegador con http://localhost/webservice

Mas Informacion en : Servicios web con PHP