Skip to content

Instantly share code, notes, and snippets.

@acadavid
Created October 24, 2011 21:16
Show Gist options
  • Select an option

  • Save acadavid/1310345 to your computer and use it in GitHub Desktop.

Select an option

Save acadavid/1310345 to your computer and use it in GitHub Desktop.

Revisions

  1. acadavid revised this gist Oct 24, 2011. 1 changed file with 2 additions and 0 deletions.
    2 changes: 2 additions & 0 deletions pi2.md
    Original file line number Diff line number Diff line change
    @@ -54,6 +54,8 @@ Interfaz de usuario
    Nuestro módulo tendrá una interfaz para los administradores de la comunidad:

    Proveerá la siguiente información:

    - Estadísticas del uso de la comunidad. Ej: A qué horas hay más usuarios? Cuales son los contenidos más visitados?

    - Últimas 100 actividades realizadas por usuarios.

  2. acadavid revised this gist Oct 24, 2011. 1 changed file with 33 additions and 2 deletions.
    35 changes: 33 additions & 2 deletions pi2.md
    Original file line number Diff line number Diff line change
    @@ -11,11 +11,14 @@ En cuanto a XML, para las respuestas de nuestro servicio web, no es necesario te
    Diseño de la aplicación
    =======================

    Métodos para otros módulos
    -------------------------

    Nuestra aplicación ofrecerá los métodos que habíamos acordado anteriormente de la siguiente manera.

    *Método aplicación:* registrarActividad(Actividad actividad)

    *URL:* /activities
    *URL:* `/activities`

    *Método HTTP:* POST

    @@ -25,4 +28,32 @@ Nuestra aplicación ofrecerá los métodos que habíamos acordado anteriormente
    <module>Perfil</module>
    <action>Ver</action>
    <user_id>1234</user_id>
    </activity>
    <module_parameters>
    <profile_id>4567</profile_id>
    </module_parameters>
    </activity>

    *Respuesta:*

    <response>
    <code>544</code>
    <authorized>true</authorized>
    <module_response>
    <![CDATA[
    <html>
    <body>This is the profile</body>
    </html>
    ]]>
    </module_response>
    <response>


    Interfaz de usuario
    -------------------

    Nuestro módulo tendrá una interfaz para los administradores de la comunidad:

    Proveerá la siguiente información:
    - Estadísticas del uso de la comunidad. Ej: A qué horas hay más usuarios? Cuales son los contenidos más visitados?
    - Últimas 100 actividades realizadas por usuarios.

  3. acadavid revised this gist Oct 24, 2011. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions pi2.md
    Original file line number Diff line number Diff line change
    @@ -20,6 +20,7 @@ Nuestra aplicación ofrecerá los métodos que habíamos acordado anteriormente
    *Método HTTP:* POST

    *Parámetros:*

    <activity>
    <module>Perfil</module>
    <action>Ver</action>
  4. acadavid revised this gist Oct 24, 2011. 1 changed file with 3 additions and 0 deletions.
    3 changes: 3 additions & 0 deletions pi2.md
    Original file line number Diff line number Diff line change
    @@ -14,8 +14,11 @@ Diseño de la aplicación
    Nuestra aplicación ofrecerá los métodos que habíamos acordado anteriormente de la siguiente manera.

    *Método aplicación:* registrarActividad(Actividad actividad)

    *URL:* /activities

    *Método HTTP:* POST

    *Parámetros:*
    <activity>
    <module>Perfil</module>
  5. acadavid created this gist Oct 24, 2011.
    24 changes: 24 additions & 0 deletions pi2.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,24 @@
    Almacenamiento de la información.
    =================================

    Las necesidades de nuestro módulo en términos de almacenamiento y consulta son diferentes a las de los demás módulos. La diferencia principal es el volumen de datos a almacenar y la concurrencia de las consultas. En primer lugar, nuestro módulo almacenará muchísimos más datos que los demás, sólo el hecho de publicar un contenido en el módulo de Contenidos almacenará una actividad en nuestro módulo, o el simple hecho de loggearse ó visitar un perfil.

    Por las razones anteriormente expuestas, nuestra aplicación necesita un mecanismo altamente escalable, fácilmente provisto por una base de datos NOSQL. Además, los queries tienen que tener tiempos rápidos de respuesta. Por estas razones creemos conveniente utilizar el motor MongoDB que ofrece estas ventajas (frente a otras desventajas como la imposibilidad de hacer consultas sobre atributos anidados de una entidad, aunque en nuestro caso no es necesario esto).

    En cuanto a XML, para las respuestas de nuestro servicio web, no es necesario tener almacenados las respuestas sino que se generaran en la marcha cuando sean solicitadas. En el peor de los casos, si se necesita almacenar un XML, se puede hacer en texto plano en MongoDB pero no ofrece ninguna ventaja para procesarlo o consultarlo.


    Diseño de la aplicación
    =======================

    Nuestra aplicación ofrecerá los métodos que habíamos acordado anteriormente de la siguiente manera.

    *Método aplicación:* registrarActividad(Actividad actividad)
    *URL:* /activities
    *Método HTTP:* POST
    *Parámetros:*
    <activity>
    <module>Perfil</module>
    <action>Ver</action>
    <user_id>1234</user_id>
    </activity>