miércoles, 30 de enero de 2008

Plantejaments

Parlant del projecte amb un amic ens han sorgit plantejaments com els que detallo a continuació.

1. Enviament de les dades del mòbil al servidor.

Cada vegada que es duu a terme la sincronització de dades necessitarem enviar els nous esdeveniments generats al servidor, per fer-ho en principi tenim un string que ens emmagatzema la informació a enviar. Aquesta informació està emmagatzemada amb els corresponents tags XML. De manera que si per a un esdeveniments no coneixem tots els seus paràmetres, només enviarem aquells coneguts amb els tags corresponents.

Fins ara tot sembla correcte, però si ens parem a pensar ens podem trobar de que estem enviant massa informació al servidor, per tant el paquet de dades és més gran per què cada tag apareix com a mínim dues vegades.

Una alternativa plantejada seria enviar les dades separades per comes en comptes de per tags. Ara tindríem que enviar una coma per cada paràmetre que enviem al servidor. De manera que si desconeixem una característica del esdeveniment en el seu lloc col·locarem una coma i el servidor ha de ser capaç de interpretar que aquell camp es troba buit. Per tant podríem formar el XML al servidor.

Al separar-lo per comes podem estar reduint a la meitat el nombre de dades a enviar.

Caldria tenir present possibles problemes de velocitat en la generació / tractament de arxius XML en el dispositiu mòbil.


2. Programació part del servidor

Fins ara tenia molt clara la idea de programar la part del servidor en PHP. No s'han analitzat en profunditat els temes d'arquitectura corresponents, però resultava interessant fer treballar dos llenguatges diferents. Però per altre banda ens trobem que el PHP no ens permet debugar.

Una alternativa seria fer-ho en Java, passaríem a treballar en el fons en el mateix llenguatge sols que aplicat a arquitectures hardware diferents. Tot hi que ens podem trobar que el tomcat ens doni problemes.

3. Gestió de la base de dades

Per ara hi ha tres possibles opcions, el que no implica que les tres siguin vàlides.

a. gestionar la base de dades "a pèl" a base de SQL
b. Propel
c. Hibernate


4. Gestió del tema de seguretat

S'han plantejat opcions com encriptació amb keypair i SSL...

5. Gestió de login

Cada vegada que un usuari es logegi tindrem que dur a terme una gestió. Una de les coses que ens pot ajudar a decidir entre PHP o JAVA seria l'existència de una API que ens permetés dur a terme la gestió d'aquest login.

Alguna idea més?

lunes, 28 de enero de 2008

Sincronització en el client casi enllestida

Fa una setmana que ja comença a tenir més bona pinta la part del client, és a dir, aquella que s'executarà en el telèfon mòbil. Per ara, cada vegada que des de la nostra aplicació escollim l'opció de sincronitzar s'ens genera un string que emmagatzema (per ara) tots els esdeveniments que tinguem emmagatzemats en l'agenda del dispositiu mòbil.

Aquest String serà el que enviarem al servidor, és a dir, al webservice. Per tant ara cal desenvolupar una petita part de servidor.

La part de servidor es desenvoluparà en PHP, per tal haig de montar un servidor que treballi amb extensions de SOAP.