Pertanto il successo o meno di blorigo, almeno dal punto di vista puramente tecnico, dipendera' in gran parte dal raggiungimento di alcuni obiettivi strategici:
- selezionare alcune di quelle che sono tecnologie gia' esistenti e conosciute in relazione alla loro utilita', anche solo potenziale, per la riuscita del progetto; cosa non poi cosi' banale, come potrebbe sembrare ad una prima analisi, in quanto implica lo studio e la scelta tra varie alternative di cui non sono chiare le possibile applicazioni future;
- realizzare appositamente delle nuove tecnologie che vanno a colmare delle lacune esistenti nell' insieme delle risposte necessarie alla soluzione dei problemi da affrontare; il che puo' essere considerata di per se' un attivita' innovativa nell' ambito di un panorama, come quello del mondo dell'informatica, che e' comunque in forte movimento;
- riuscire ad integrare queste tecnologie in maniera tale da ottenere un risultato solido ed affidabile e non una soluzione posticcia che cerca di mettere insieme cose difficilmente componibili (chi si e' occupato di system integration in ambienti eterogenei sapra' di cosa sto parlando); e la chiave per il raggiungimento di questo obiettivo e', ovviamente, l'utilizzo di tecnologie open-source.
- Python, come linguaggio/collante di tutto il resto;
- SQLite, come database, per le sue doti di ubiqita', intergrabilita' e velocita' che lo rendono il candidato ideale per la gestione dei dati in un ambiente P2P;
- Twisted, come ambiente di programmazione per tutti i necessari servizi di rete; la stessa scelta operata in precedenza da altri progetti, come Bittorrent o Zope, nel momento in cui si e' trattato di decidere come apportare un miglioramento ad applicazioni gia' di successo;
- Divmod Axiom, come ORM (Object Relational Mapper), per rendere molto piu' agevole lo sviluppo di applicazioni basate su SQLite; un aiuto indispensabile nel momento in cui la complessita' nella gestione dei dati verra' ad aumentare.
- Universal Feed Parser, come parser dei vari formati con cui vengono pubblicati/distribuiti i blog; per trattare i dati ottenuti nei differenti formati originali (Atom, RSS, ..ecc) per quello che essenzialmente sono: dei dizionari.
- BoZoFeed, che integra Twisted, Axiom/SQlite ed Universal Feed Parser, per realizzare un crawler ed un database di post estratti dai blog;
- Axil, ovvero AXiom Indexing Library, che integra in Axiom/SQLite un full text search engine; l'algoritmo di ricerca utilizzato e', a differenza di quelli utilizzati nella maggior parte degli altri search engine, basato su grafi invece che su matrici. Questa caratteristica lo rende ideale per un utilizzo in un ambiente P2P dove i dati si devono potere distribuire su i vari peer.
- SmartFeed, che realizza l'integrazione delle funzionalita' di Axil con quelle di BoZoFeed;
- Exil, ovvero Exogenous aXiom Indexing Library, che implementa le funzionalita' di Axil utilizzando le modalita' di P2P; sostanzialmente un search engine distribuito.
- WikiFeed, ovvero Blorigo/2, in quanto realizza piu' o meno la meta' delle funzionalita' di Blorigo; essenzialmente integra le funzionalita' di SmartFeed con quelle di Exil.
Post a comment