2010-07-03 4 views
7

Ich bin daran interessiert, meine Website zu erweitern, um einen Dienst bereitzustellen, bei dem Benutzer auf dem Campus meiner Universität "einchecken". Da Location Based Services (LBS) ziemlich neu ist und es nicht viel Literatur gibt, die relevante Interessen zu dieser Angelegenheit liefern könnte, habe ich folgende Fragen zu stellen:Erstellen eines Dienstes für meine Website mit einigen viereckigen Funktionen

Zuerst weiß ich, dass ich ein Android entwerfen muss App und möglicherweise eine Telefon-App-Anwendung. Ich vermute, dass foursquare einfach den Client benutzt, um Daten an seinen Webserver hin und her zu senden.

  1. Was sind die Standardprotokolle für die Kommunikation des Clients mit dem Webserver? (oder ist es einfach nur json oder xml?)
  2. Welche Art von speziellen Web-Service verwenden sie auf ihrem Back-End? (Wie einige Forschungsergebnisse zeigen würden, benutzen sie LIFT, geschrieben in Scala, was mir nicht vertraut ist.).
  3. Ich kenne Python ziemlich gut. Gibt es Webserver, d. H. Django oder Pylone, die einen ähnlichen Dienst wie oben 2) bieten?
  4. Wie schwierig ist das wirklich?

Auch jede Literatur zu diesem Thema wird sehr geschätzt.

+1

Sie sollten nicht davon ausgehen, dass jeder Ihre Akronyme oder Produktnamen erkennt.Was ist "LBS" und "Foursquare" in diesem Zusammenhang? Ich könnte googeln, aber ich sollte nicht müssen. – TechZen

+0

Foursquare? Ich dachte, jeder wüsste, dass es sich um eine Geo-Social-Networking-Seite handelt. Und das deutet natürlich auf LBS hin: Location-Based Services. –

+0

@TechZen Ich hatte "Location Based Services (LBS)" ... – asdfawvsdv

Antwort

2

Verwenden Sie die foursquare API.

Sie haben vorgefertigte Bibliotheken für Django und Python here, die es einfacher machen sollten, foursquare in Ihre Website zu integrieren.

2

Nun, ich denke, ein guter erster Schritt wäre Foursquare's API, beide zu sehen, ob Sie einfach mit ihrem Service integrieren können (dh Check-Ins, die Campus-Gebäude oder was auch immer sind) oder einfach zu bekommen ein Bild von dem, was sie benutzen. Ihre API scheint ein ziemlich standardmäßiger Webservice zu sein, der XML oder JSON verwendet, was für Sie ebenfalls eine gute Übung zu sein scheint.

Es gibt einige Herausforderungen beim Erstellen eines skalierbaren Webdienstes, der geografische Daten verarbeiten kann: Sie möchten eine Datenbank, die geospatial indexing für Sie behandeln kann (andernfalls können die Algorithmen ein wenig komplex werden). Wenn Sie mit Django vertraut sind, könnte GeoDjango eine gute Lösung für Sie sein. Ich höre, dass Foursquare tatsächlich zu verwenden MongoDB, die einige geospatial indexing features hat: Sie verwenden wahrscheinlich eine NoSQL-Datenbank wegen ihrer einzigartigen Skalierungsprobleme, über die Sie sich wahrscheinlich keine Sorgen machen müssen.

0

Mimicking foursquare ist kein guter Ansatz. Eine Lösung für Ihre spezifischen Funktionsanforderungen und Laststufen wird immer benutzerdefiniert und nicht kopiert. Selbst der größte Universitätscampus der Welt, mit jeder einzelnen Person, die den Service nutzt, würde Sie von der Benutzerbasis von foursquare völlig in den Schatten gestellt werden. Was auch immer sie tun, ist viel höher als das, was Sie brauchen.

Für Ihre Zwecke ist ein einfacher Webservice wahrscheinlich mehr als ausreichend. Ich entwickle gerade Apps, die ortssensitiv sind (Kunst-/Kulturereignisse und Verbraucherangebote, die lokal für die aktuelle Position des Benutzers sind), die PHP-Skripte mit Abfragezeichenfolgen oder Posted-Data-Argumenten treffen und JSON konsumieren. Nichts Besonderes, aber ich kann die Last auf der Server-Seite mit leichten Technologien, die ich bereits kenne, bewältigen, und ich weiß, dass es skaliert wird, um meine tatsächliche Last zu erfüllen.

Seien Sie nicht der Art und Weise verpflichtet, wie jemand anderes es tut, auch wenn sie Branchenführer sind. Ihre Bedürfnisse sind nicht Ihre Bedürfnisse.

+0

Dan, jedes Detail zu den leichten Technologien, die du für die von dir erwähnte App benutzt hast? Datenbank, Sprache, Framework usw., was benutzen Sie? – tom

+0

MySQL und PHP auf einem LAMP-Server. Ich habe ein Hand-Roll-ORM, das ich verwende (obwohl es nicht viel Abfragekomplexität braucht, um seine kleine Meinung zu durchbrechen und manuelle SQL-Codierung zu erfordern). –

+0

Ich habe gelesen, dass MySQL nicht für transaktionale Web-Aufrufe (viele Updates und Lesevorgänge) geeignet ist, geht es Ihnen gut? Haben Sie mit anderen Datenbanklösungen verglichen? – tom