Our implementation is separated in three main three tiers. For the Data tier we used the Mysql Database. Some of the information that is stored into the database is all the Social network (Facebook, Twitter) credentials (OAuth 2.0 access token, OAuth v1.oa oauth_consumer_secret and oauth_token_secret), Movies watched, Moves recommended to friends and place where the movie watched. This information can be exploited in order to provide advanced recommendations.
The Second tier (logic tier) is implemented in java and more specifically using Servlets . We choose this technology firstly because it is free (this will decrease the cost if we want make this project a commercial program), secondly because it provides low level HTTP that provides access to the HTTP Headers allowing us to access protected Web resources using for example OAuth credentials, and thirdly because it is based on java which is a well-established language and it has plenty of available and well documented libraries that it speed up our development process. The servlet Component is accessed from the client (Web app, Mobile app, Desktop app) using the GET HTTP method. The reasons that we selected this (and not Sessions or the Post method) is because using the GET method is easier to debug and it provides less overhead to the server providing in that way better throughput. The downside of it is that is not secure (the data are vulnerable to Sniffing attacks). The responses are in JSON or JSONP format (no HTML formatting is returned). It this way we implement a Web API that can be provided to third party developers. The servlet on the other hand uses other APIs like the themoviedb for getting movie information, the Facebook Graph API and Twitter API for the user’s interaction. For parsing JSON data we used the JSON-simple library form parsing XML data we used the Xstream library and finally for Twitter authentication we used the Scribe-java OAuth library.
In the third tier we used pure HTML 5 pages (no server site scripting langue is used for html code generation). The content of the page is generated using JavaScript and AJAX to provide dynamic user experience. In order to provide a browser independent Javascript code we used the JQuery Library and for providing a better mobile user experience we used the JQuery Mobile library.
#1 by connor on 3rd May 2011 - 1:09 pm
Nice post, when you have time I would love to sit down with you and have a look at the source code behind the app, especially the servlets which seem to do the neat interfacing.
#2 by Tolias on 9th May 2011 - 4:41 pm
Whenever you ant Connor 😉