2010-07-03 9 views
7

Estoy interesado en extender mi sitio web para brindar un servicio que involucre el "registro" de los usuarios en el campus de mi universidad. Dado que los servicios basados ​​en ubicación (LBS) son bastante nuevos, y no hay mucha literatura que pueda proporcionar intereses relevantes sobre este asunto, tengo las siguientes preguntas:Creando un servicio para mi sitio web que tiene algunas características de foursquare

Primero, sé que tengo que diseñar un Android Aplicación y posiblemente una aplicación de aplicación de teléfono. Por todo lo que estoy adivinando, foursquare simplemente está utilizando el cliente para enviar datos a su servidor web de ida y vuelta.

  1. ¿Cuáles son los protocolos estándar para que el cliente se comunique con el servidor web? (¿o simplemente es json o xml?)
  2. ¿Qué tipo de servicio web especial usan en su back-end? (Como algunas investigaciones revelarían que están usando LIFT, escrito en Scala, que es algo con lo que no estoy familiarizado).
  3. Conozco python bastante bien. ¿Hay servidores web, es decir, django o torres de alta tensión, que proporcionan un servicio similar al 2) anterior?
  4. ¿Qué tan difícil es esto realmente?

Además, cualquier literatura sobre este tema es muy apreciada.

+1

No debe suponer que todos reconocerán sus acrónimos o nombres de productos.¿Qué es "LBS" y "Foursquare" en este contexto? Podría google pero no debería tener que hacerlo. – TechZen

+0

Foursquare? Pensé que todos sabían que era un sitio de Redes Geo-Sociales. Y esa pistas LBS, por supuesto: servicios basados ​​en la ubicación. –

+0

@TechZen Sí tuve "Servicios basados ​​en la ubicación (LBS)" ... – asdfawvsdv

Respuesta

2

Utilice foursquare API.

Tienen librerías prefabricadas para Django y Python here, estas deberían facilitar la integración de foursquare en su sitio web.

2

Bueno, creo que un buen primer paso sería mirar Foursquare's API, tanto para ver si puede simplemente integrarse con su servicio (es decir, buscar registros en los edificios del campus o lo que sea) o simplemente para obtener una imagen de lo que están usando. Su API parece un servicio web bastante estándar que utiliza XML o JSON, lo que también parece una buena práctica para usted.

Existen algunos desafíos al crear un servicio web escalable que manejará datos geográficos: querrá una base de datos que pueda manejar geospatial indexing (de lo contrario, los algoritmos pueden ser un poco complejos). Si está familiarizado con Django, GeoDjango podría ser una buena opción para usted. Escuché que Foursquare realmente está cambiando para usar MongoDB, que tiene algunos geospatial indexing features: es probable que utilicen una base de datos NoSQL debido a sus problemas de escalado únicos, de los que probablemente no tenga que preocuparse.

0

Imitando foursquare no es un buen enfoque. Una solución para sus necesidades específicas de funcionalidad y niveles de carga siempre será personalizada, no copiada. Incluso el campus universitario más grande del mundo, con todas las personas que utilizan el servicio, quedarían totalmente eclipsados ​​por la base de usuarios de foursquare. Entonces, lo que sea que estén haciendo es mucho mejor de lo que necesitas.

Para sus propósitos, un servicio web simple es probablemente más que adecuado. Estoy construyendo aplicaciones que son sensibles a la ubicación (eventos artísticos y culturales y ofertas de los consumidores locales a la posición actual del usuario) en este momento, que afectan a los scripts PHP con cadena de consulta o argumentos de datos publicados, y consumen JSON. No es nada sofisticado, pero puedo manejar la carga en el lado del servidor con tecnologías livianas que ya conozco, y sé que se escalará para cumplir con mi carga real.

No se debe a la forma en que alguien más lo hace, incluso si es el líder de la industria. Sus necesidades no son sus necesidades.

+0

Dan, ¿tiene algún detalle sobre las tecnologías livianas que estaba usando para la aplicación que mencionó? base de datos, idioma, marco, etc., ¿qué estás usando? – tom

+0

MySQL y PHP en un servidor LAMP. Tengo un ORM enrollado a mano que estoy usando (aunque no requiere mucha complejidad de consulta para dejar pasar su opinión y requerir codificación SQL manual). –

+0

Leo que MySQL no es apto para llamadas web transaccionales (muchas actualizaciones y lecturas), ¿está de acuerdo con eso? ¿Lo comparaste con otras soluciones de bases de datos? – tom

Cuestiones relacionadas