SlideShare a Scribd company logo
Relazione
Studio di un progetto open source per il corso di Tecnologie Open
                             Source

                         20 Giugno 2011




                             Sommario
                 Presentazione del progetto Firebird SQL.




                    Informazioni documento

                    Nome file       Firebird.pdf
                      Versione     1.0
                 Distribuzione     Prof. Bellio Luigi
                                   Nesello Lorenzo




                                                             1/17
Indice
1 Introduzione                                                                        4

2 Obiettivi                                                                           4

3 Mercato                                                                             4

4 Storia                                                                              5
  4.1   Tappe del progetto . . . . . . . . . . . . . . . . . . . . . . . . . .        6

5 Licenza                                                                             6

6 Modello di Business                                                                 7
  6.1   Firebird Foundation . . . . . . . . . . . . . . . . . . . . . . . . .         7

7 Processo di sviluppo                                                                8
  7.1   Firebird Server . . . . . . . . . . . . . . . . . . . . . . . . . . . .        8
  7.2   Quality Assurance . . . . . . . . . . . . . . . . . . . . . . . . . .         8
  7.3   Documentazione . . . . . . . . . . . . . . . . . . . . . . . . . . .          9
  7.4   JDBC, ODBC, Python Driver . . . . . . . . . . . . . . . . . . . .             9
  7.5   .NET Provider . . . . . . . . . . . . . . . . . . . . . . . . . . . .          9

8 Community                                                                          10
  8.1   Team di Firebird . . . . . . . . . . . . . . . . . . . . . . . . . . .       10
  8.2   Portali News . . . . . . . . . . . . . . . . . . . . . . . . . . . . .       11
  8.3   Siti Nazionali . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      11
  8.4   Mailing list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      12

9 Strumenti di gestione dell’informazione                                            13
  9.1   Documentazione . . . . . . . . . . . . . . . . . . . . . . . . . . .         13
        9.1.1   Release Notes . . . . . . . . . . . . . . . . . . . . . . . . .      13
        9.1.2   Reference Manuals . . . . . . . . . . . . . . . . . . . . . .         13
        9.1.3   White papers e presentazioni . . . . . . . . . . . . . . . .          13
        9.1.4   FAQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .       13
        9.1.5   Libri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     13
        9.1.6   Documentazione Driver . . . . . . . . . . . . . . . . . . .           14
        9.1.7   Documentazione esterna . . . . . . . . . . . . . . . . . . .          14
  9.2   Supporto alla community . . . . . . . . . . . . . . . . . . . . . .          14
  9.3   Supporto professionale . . . . . . . . . . . . . . . . . . . . . . . .       14




                                                                                    2/17
10 Strumenti di gestione dello sviluppo                                            15
  10.1 Coding Style . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      15
  10.2 Compilazione Codice . . . . . . . . . . . . . . . . . . . . . . . . .       15
  10.3 Issue Tracker . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     15
  10.4 Contributing Patches . . . . . . . . . . . . . . . . . . . . . . . . .      15
  10.5 Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    16
       10.5.1 Firebird Test Suite . . . . . . . . . . . . . . . . . . . . . .      16
       10.5.2 Come progettare un nuovo test . . . . . . . . . . . . . . .          16

11 Riferimenti                                                                     17




                                                                                  3/17
1     Introduzione
Firebird SQL ` un RDBMS (Relational DataBase Management System) open-
             e
source. Viene distribuito sotto licenza IPL o IDPL. Nasce da Interbase e suppor-
ta numerosi sistemi operativi. Tra i principali si trovano GNU/Linux, Windows,
FreeBSD, Mac OS X e alcuni Unix. Fra i punti di forza del progetto ci sono un
grande grado di aderenza agli standard SQL e una buona integrazione con molti
linguaggi di programmazione. Inoltre ` facilmente installabile e manutenibile
                                     e
e nelle ultime versioni sono stati fatti molti miglioramenti sul versante della
resistenza ai crash esterni, la velocit` di esecuzione e di accesso ai dati.
                                       a


2     Obiettivi
Gli obiettivi, portati avanti tramite le Firebird Foundation, sono quelli di sup-
portare e far avanzare lo sviluppo del progetto open source Firebird relational
database management system. La fondazione gestisce un infrastruttura non
commericale e meccanismi richiesti per accettare e gestire finanziamenti, sotto-
scrizioni, donazioni e sponsorizzazioni.


3     Mercato
Il prodotto Firebird si rivolge a singoli utenti e ad aziende che intendono utiliz-
zare il servizio di RDBMS. La stessa fondazione che gestisce le donazioni per il
sostentamento del progetto ` aperta a singoli utenti e ad aziende, come illustrato
                           e
nel punto 6.1. Il seguente elenco illustra alcuni nomi delle societ` utilizzatrici del
                                                                   a
software Firebird che essendo gratuito ed open source trova molti utilizzatori.
L’elenco ` in inglese preso direttamente dall’url http://www.firebirdsql.org/
         e
file/documentation/papers_presentations/html/who-uses.html

    • Broadview Software Ltd, Toronto, Canada, vendor of information and
      control systems and online services for broadcasters worldwide

    • Morfik P/L, Hobart, Tas., developers and vendors of WebOS development
      suite for construction and maintenance of interactive websites, stores web
      objects in a Firebird meta-layer (system database) as well as Firebird user
      data.

    • Communicare Systems Pty Ltd, Perth, WA, vendor of patient manage-
      ment and medical records software for hospitals, clinics, medical practices
      and mobile health units across Australia.




                                                                                 4/17
• “The Examiner” newspaper, Launceston, Tas., high availability(24/7) busi-
      ness, information, production and news systems.

    • U.S. Navy, broad range of management and logistical systems

    • Frontrange Solutions USA Inc., Colorado Springs, U.S.A, as the back-end
      of the highly scalable, award-winning integrated CRM, service manage-
      ment and business systems “Goldmine” software suite.

    • British Rail, U.K., timetabling, bookings, accounting and information
      systems for national railway passenger network.

    • Deutsche Presse-Agentur GmbH, HQ in Hamburg, Germany, largest press
      agency in Germany, provides a worldwide service to newspapers, maga-
      zines, TV and radio news networks.

    • KIMData, Munich, Germany, business intelligence systems and data ware-
      housing for German hospitals.

Il sostentamento del progetto avviene tramite donazioni effettuate da privati e
da aziende e tramite le quote di iscrizione alla fondazione. Fra le aziende pi`
                                                                              a
famose che vengono citate fra gli sponsor troviamo SAS, Mandriva, IBPhoenix,
Broadview Software. Le aziende citate (per donazioni in denaro o in risorse)
sono parecchie e questo aiuta il progetto a non essere abbandonato e continuare
il suo percorso di evoluzione.


4     Storia
Prima di parlare di Firebird ` necessario raccontare quello che ` stato il suo pre-
                             e                                  e
decessore, Interbase. Interbase era un prodotto commerciale e chiuso. Vantava
numerosi utilizzatori fra cui la NASA, la Banca Nazionale di Chicago, Ericsson,
Boeing Nokia e altri. Fra le principali caratteristiche che lo rendevano un buon
prodotto c’erano la semplicit` di installazione, l’utilizzo di poche risorse (4Mb di
                             a
RAM e meno di 10 MB di spazio su disco) e la buona gestione e il facile utilizzo
anche paragonandolo con altri RDBMS. Interbase inizialmente fu progettato per
un utilizzo professionale ed aziendale pagante. Nell’ultima fase della sua vita
Interbase fu sviluppato da una grossa azienda mondiale, la Borland Internation-
al. Dopo il rilascio del codice sorgente di Interbase 6.0 avvenuto nel 2000, reso
quindi opensource dalla Borland, nacque la prima versione di Firebird. Questa
versione era un InterBase riveduto e migliorato. Firebird 1.0 risolveva alcuni
problemi di sicurezza e qualche bug, inoltre aggiungeva qualche piccola miglio-
ria. La versione 1.5, sebbene sia stata solamente una versione di treansizione
verso la versione 2.0 rappresent` una piccola rivoluzione con un grande passo
                                o

                                                                               5/17
avanti rispetto alla versione precedente. L’intero motore del database server
viene riscritto in C++, ottenendo cos` un codice pi` chiaro e leggibile rispetto
                                     ı             u
alla versione precedente, scritta in C. Con questa scelta le versioni successive
risulteranno pi` semplici da estendere e da gestire. La versione 2.0 conferma
               u
tutte le funzionalit` presenti in precedenza con le stesse qualit` e ne aggiunge di
                    a                                            a
nuove. Tra le pi` interessanti ci sono lo sviluppo delle estensioni del linguaggio
                u
SQL derivate dall’SQL 200X. Queste nuove funzionalit` aiuteranno lo sviluppo
                                                    a
di Vulcano, il Firebird della prossima generazione.


4.1    Tappe del progetto
    • 1984 Jim Starkey progetta Interbase per la Groton Database System
      (.gdb)

    • 25/07/2000 Borland rilascia sotto licenza open Initial Developer’s Public
      License (IDPL) Interbase 6.0.

    • 31/07/2000 Nasce il Progetto Firebird

    • 22/11/2000 Primo kit d’installazione per Firebird

    • 14/11/2001 Firebird 1.0.

    • 23/02/2004 Firebird 1.5 scritto in C++

    • 13/02/2004 Firebird 1.5.1

    • 10/11/2004 Firebird 2.0 Alpha

    • 19/05/2006 Firebird 2.0 Release Candidate 2

    • 17/04/2008 Firebird 2.1

    • 10/09/2008 Firebird 2.5 Alpha

    • 04/10/2008 Firebird 2.5

    • maggio-agosto 2011 Firebird 3.0 Alpha 1.Giornalmente ` disponibile il
                                                           e
      build attuale (non release ufficiale)


5     Licenza
I moduli Firebird vengono rilasciati sotto licenza Initial Developer’s Public Li-
cense, mentre InterBase viene rilasciato da Inprise sotto licenza InterBase Pub-
lic License. La licenza InterBase Public License si applica anche a Firebird 1.0.
Tale licenza ` quella con cui ` stato distribuito da Boreland il codice sorgente
             e                e


                                                                              6/17
di InterBase 6 da cui ` partito il progetto Firebird. Entrambe le licenze sono
                      e
delle varianti della Mozilla Public License V.1.1 (MPL). La documentazione del
progetto Firebird ` rilasciata sotto licenza Public Documentation License salvo
                  e
diversamente indicato. La licenza Public Documentation License definisce le
regole come la Mozilla Public Licese, solo che si occupa di documentazione e
non di codifica.


6     Modello di Business
Lo sviluppo del progetto Firebird avviene tramite un team ristretto di sviluppa-
tori coadiuvati da una comunit` molto sviluppata. Il sostentamento del progetto
                              a
avviene tramite donazioni e sponsorizzazioni gestite dalla fondazione (vedi para-
grafo 6.1). Il software viene distribuito gratuitamente a tutti gli utenti (e alle
aziende). Se si necessita di supporto di tipo professionale si pu` far affidamento
                                                                 o
ad alcune aziende che coprono aree diverse del mondo e che sono sponsor del-
la fondazione Firebird. Inoltre ogni utente se vuole apportare delle modifiche
o delle migliorie pu` farlo sottoponendo poi il lavoro effettuato e ovviamente
                    o
rispettando le regole di codifica e test previste dal progetto.


6.1    Firebird Foundation
La fondazione Firebird ha il compito di gestire le risorse per l’avanzamento del
progetto. Il comitato di gestione viene eletto nell’assemblea generale annuale e
per l’anno in corso gli eletti sono:

    • Presidente : Philippe Makowski (FR)

    • Vice Presidente : Steve Summers (US)

    • Tesoriere : Raymond Cl´roux
                            e

    • Segretario : Helen Borrie (AU)

    • Comitato : Paul Beach (FR), Pavel Cisar (CZ), Fabio Codebue (IT), Ste-
      fan Heymann (DE), Alexey Kovyazin (RU), Olivier Mascia (BE), Thomas
      Steinmaurer (AT)

La fondazione ` composta da svilupparoti, utenti e compagnie di varie dimen-
              e
sioni. Tutte le componenti lavorano insieme come parte integrante di una or-
ganizzazione non-profit e questo garantisce che lo sviluppo del software open
source Firebird sia continuo. Le quote che vengono pagate dai membri hanno
un ruolo importante nel finanziamento dello sviluppo del motore di Firebird. Al-
la fondazione si pu` contribuire tramite membership, sponsorship o altre forme
                   o
di contributo minori. La membership prevede due differenti quote:


                                                                             7/17
• Voting members : paga $300 all’anno

    • Associate members : paga $50 all’anno

Per la sponsorship si guadagna un posto nella pagina degli sponsor. Ci sono
diverse modalit` di sponsorship elencate in seguito:
               a

    • Platinum : pi` di $1000 al mese o una donazione dai $12000 in su
                   u

    • Gold : dai $500 ai $1000 al mese o una donazione da $6000 a $11999

    • Silver : dai $175 ai $499 al mese o una donazione da $2000 a $5999

    • Bronze : dai $75 ai $174 al mese o una sonazione dai $900 ai $1999

    • Percentuale delle vendite : Per ogni prodotto venduto una percentuale
      viene donata

Il terzo modo per contribuire al progetto ` quello di effettuare donazioni che
                                          e
possono essere in denaro ma anche in risorse. Alcuni casi di donazioni effet-
tuate riguardano server di hosting, mackbook per lo sviluppo e il test per la
piattaforma MacOS X, accesso a risorse aziendali per migliorare lo sviluppo di
Firebird.


7     Processo di sviluppo
La realizzazione del sistema Firebird avviene attraverso lo sviluppo di un certo
numero di sottoprogetti, analizzati in seguito. Per seguire lo sviluppo dei proget-
ti ` sufficiente aprire il link http://firebird-checkins.123651.n3.nabble.
   e
com/ che rappresenta un archivio della mailing list.


7.1    Firebird Server
Lo sviluppo di questa parte si pu` seguire al sito http://www.firebirdsql.
                                 o
org/en/server/ dove vengono date le istruzioni per seguire gli aggiornamenti
delle versioni stabili, cio` le serie 2.0.x, 2.1.x e 2.5.x. Inoltre ` presente una
                           e                                        e
sezione per lo sviluppo della versione 3.0 che viene annunciata come una versione
ricca di caratteristiche annunciate da tempo che miglioreranno ulteriormente il
lavoro fin qua svolto.


7.2    Quality Assurance
Questa sezione riporta indicazioni e metodologie per il controllo della qualit`.
                                                                              a
Le informazioni presenti sono:



                                                                              8/17
• Metodologie e Tool utilizzati in Firebird QA

   • Come segnalare un bug

   • Come utilizzare la Firebird Test Suite

   • Come progettare nuovi test per Firebird

   • Come implementare nuovi test per Firebird

   • Lista dei Test

   • Ultimi report dagli sviluppatori


7.3    Documentazione
Anche per la stesura della documentazione ci sono delle regole predefinite da
rispettare. Sono presenti le direttive impartite dalla conferenza di Firebird e gli
HowTo in quattro lingue (inglese, spagnolo, italiano e portoghese brasiliano).
Vengono anche fornite le guide per la stesura delle guide in italiano e portogh-
ese brasiliano. Inoltre vengono illustrate le parti della documentazione che in
sviluppo e quelle che saranno sviluppate.


7.4    JDBC, ODBC, Python Driver
Vengono fornite le direttive e lo stato dei lavori dello sviluppo dei driver per
JDBC, ODBC e Python.


7.5    .NET Provider
IL data provider .NET ` scritto in C# e provvede all’implementazione delle
                      e
funzionalit` GDS32/API. Le componenti del progetto (dal sito web http://
           a
www.firebirdsql.org/en/development-net-provider/ sono:

   • ADO.NET Data Provider

        – ADO.NET Standard classes implementation
        – Firebird GDS implementations for the Super Server, Classic Server,
           Embedded Server and Fyracle External Procedure Engine
        – Firebird Services API implementation
        – Firebird Events implementation
        – ISQL script support

   • Entity Framework support



                                                                              9/17
– Support for ADO.NET Entity Framework

    • ASP.NET Web Providers

        – Membership Provider
        – Profile Provider
        – Role Provider
        – Session State Store Provider

    • Data Designer Extensibility (DDEX) Provider.

        – Provides integration inside Microsoft Visual Studio 2005

    • Fyracle External Engine implementation for the .NET CLR


8     Community
8.1    Team di Firebird
Il team di sviluppo (principale) ` composto da 5 persone:
                                 e

    • Dmitry Yemanov : responsabile ricerca e sviluppo, ottimizzazione e statis-
      tiche, path per accesso dati e algoritmi

    • Alex Peshkov : mantenimento del build Linux, POSIX, Sicurezza e ar-
      chitettura OSRI

    • Vladyslav Khorsun : page cache manager, Dynamic SQL, Ricerca Full
      Text

    • Adriano dos Santos Fernandes : Internazionalizzazione, estensioni DDL
      e DML, built-in delle funzioni SQL, routine esterne, integrazione Java e
      controllo del codice

    • Claudio Valderrama : Sviluppo Misc, ricerca bug, utilit` da linea di
                                                             a
      comando e controllo del codice

Quello elencato ` il team principale, poi ci possono essere contributi da parte
                e
della comunit` e di singoli sviluppatori, l’importante ` che vengano seguite le
             a                                         e
regole poste ed esposte nella sezione 10




                                                                          10/17
8.2    Portali News
Di seguito vengono riportati i siti internet dove reperire notizie e novit` relative
                                                                          a
al progetto Firebird. Quelli elencati sono i siti riconosciuti (e noti) dal progetto
Firebird.

   • FirebirdSQL newsline ufficiale http://www.firebirdsql.org/en/news/

   • Firebird News http://www.firebirdnews.org/

   • Newsline alla IBPhoenix.com http://www.ibphoenix.com

   • FirebirdSQL Twitter http://twitter.com/firebirdsql

   • FirebirdSQL Pagina Facebook http://www.facebook.com/pages/FirebirdSQL/
      46546452369

   • Campagna MindTheBird e News http://www.mindthebird.com

   • IRC Chat — Canale IRC #firebird su freenode.net http://freenode.
      net/

   • Gruppo Firebird su identi.ca http://identi.ca/group/firebird

   • Gruppo Firebird su LinkedIn http://www.linkedin.com/groups?gid=
      1467097


8.3    Siti Nazionali
Sono presenti alcune comunit` nazionali (o linguistiche) per gli utilizzatori di
                            a
Firebird, riportate di seguito.

   • Firebird Messico Community Site http://www.firebird.com.mx/

   • Firebird Giappone Community http://tech.firebird.gr.jp/firebird/
     index.php?firebird_xsite=0

   • Firebird Italia http://firebirdsql.it/

   • Firebird Romania Community http://firebirdsql.ro/

   • Firebird Cina Community http://firebird.net.cn/

   • iBase.ru (sito Firebird e InterBase) http://www.ibase.ru

   • Firebird Brasile http://www.firebase.com.br/

   • Repubblica Ceca IBPhoenix www.ibphoenix.cz

   • Firebird Francia http://firebird.developpez.com/


                                                                             11/17
• Comunit` Firebird di lingua portoghese http://www.comunidade-firebird.
            a
      org/


8.4    Mailing list
Come per i siti nazionali anche nelle mailing list sono presenti gruppi di diverse
nazionalit` e ambiti applicativi. Di seguito un elenco completo delle mailing list
          a
disponibili divise per localit` e tematiche di interesse, cos` come ` strutturato il
                              a                              ı      e
progetto Firebird.

   • Firebird support (in inglese)

   • Firebird per lingua Ceka

   • Firebase Brasile (in portoghese)

   • Firebird Russia

   • Firebird support (in francese)

   • Delphi Forum Turchia

   • Firebird support (in spagnolo)

   • Firebird Python

   • Firebird Java

   • IBObjects

   • Firebird PHP

   • Firebird Docs

   • Firebird Checkins

   • Firebird Architet

   • Firebird Test

   • Firebird Website

   • Sviluppatori FlameRobin

   • Firebird General

   • Firebird Tools

   • Firebird Applications



                                                                             12/17
9       Strumenti di gestione dell’informazione
Per seguire gli sviluppi del progetto e per utilizzare il prodotto finale Fire-
bird mette a disposizione una serie di servizi per l’utente e per le aziende,
sia in maniera gratuita (quasi tutti i servizi) che a pagamento (il supporto
professionale). Di seguito verranno analizzati i vari metodi di supporto degli
utenti.


9.1       Documentazione
La documentazione del progetto ricopre la parte principale dell’informazione
a favore degli utenti del prodotto. La documentazione ` divisa per livelli di
                                                      e
difficolt` ed interesse, si va infatti dalla guida Quick Start fino ad articoli
       a
per esperti, ricoprendo tutti gli aspetti di Firebird.Tutta la documentazione
pu` essere reperita online partendo dal sito http://www.firebirdsql.org/
  o
en/documentation/. Di seguito verranno esposte le sezioni rilevanti che vanno
a comporre la documentazione finale.

9.1.1     Release Notes

Ogni release di Firebird ` accompagnata dalle Release Note, un documento che
                         e
contiene la descrizione di nuove funzionalit` e dei bug risolti.
                                            a

9.1.2     Reference Manuals

Il Reference Manual ` il documento che contiene la guida Quick Start per i nuovi
                    e
utenti e alcune guide per specifici argomenti.

9.1.3     White papers e presentazioni

Esiste una raccolta di white papers e presentazioni che riguardano argomenti
correlati con Firebird. Sono presenti in questa sezione anche le presentazioni
delle conferenze Firebird svolte in tutto il mondo.

9.1.4     FAQ

La sezione delle FAQ contiene risposte a domande frequenti della comunit` in
                                                                        a
Inglese, Russo, Portoghese ed altre lingue.

9.1.5     Libri

Sono presenti anche alcuni libri che parlano di Firebird e dei suoi aspetti, nella
sezione viene indicato il tema e come acquistarli.



                                                                            13/17
9.1.6    Documentazione Driver

Questa sezione contiene documenti e link a documentazione relativa ai driver
per Firebird.

9.1.7    Documentazione esterna

Questa sezione raccoglie una collezione di articoli vari che trattano l’argomento
Firebird.


9.2      Supporto alla community
Il supporto dato dalla comunit` avviene in maniera gratuita attraverso le mail-
                              a
ing list (vedi paragrafo 8.4). Le mailing list non vengono moderate ma viene
applicata la regola three strikes and you’re out. Quindi si viene cacciati dopo tre
infrazioni al regolamento. Viene vietato il flaming, lo spam, la monopolizzazione
della discussione e l’eccessivo requoting. Viene richiesto di firmarsi con il pro-
prio nome, e non con un nickname. Si incorre in ban se si pubblicano nickname
con offese o con indirizzi email. Viene inoltre punita la pubblicit` di qualsiasi
                                                                  a
tipo con il ban immediato. Viene inoltre richiesto agli utenti, per migliorare il
compito di chi risponder`, di fare domande intelligenti, quindi che ad esempio,
                        a
come oggetto non abbiano bug oppure problema, che sia riportata la versione e il
modello di Firebird e il sistema operativo ed inoltre che linguaggi si stanno uti-
lizzando o che interfacce di accesso dati sono usate dall’applicativo client. Viene
fornita una pagina web dove si spiega cosa si intende per domanda intelligente
a questo url http://www.catb.org/~esr/faqs/smart-questions.html


9.3      Supporto professionale
Il supporto professionale ` eseguito da cinque aziende che operano in diversi
                          e
stati.

    • IBPhoenix

    • IBSurgeon

    • iBase

    • P-Soft

    • FireBase

Ogni azienda che da supporto professionale sull’utilizzo di Firebird fa parte delle
aziende sponsor che rispettano i requisiti della sezione 6.1.



                                                                            14/17
10        Strumenti di gestione dello sviluppo
Per poter sviluppare un progetto bisogna dotarsi di regole condivise e rispet-
tate e di strumenti facilmente reperibili. Vengono quindi definite delle regole
per la stesura del codice, della documentazione, dei test e dei report. Il codice
sorgente risiede in un repository SVN ospitato su SourceForge.net all’indiriz-
zo http://sourceforge.net/scm/?type=svn&group_id=9028. Nel repository
sono presenti tre cartelle, branches, tags e trunk. Branches contiene il codice
delle release ufficiali della serie, tags di tutte le release pubblicate, trunk invece
contiene il codice delle versioni future che si stanno sviluppando.


10.1      Coding Style
Le regole di codifica del progetto sono quelle definite dal C++ Programming
Style Guideness (http://geosoft.no/development/cppstyle.html) con al-
cune modifiche riportate comunque nel sito principale. Sono state scelte queste
regole perch` sono quelle riconosciute dalla comunit` di sviluppatori in C++.
            e                                       a


10.2      Compilazione Codice
Per compilare il codice sulle piattaforme Windows e Posix sono presenti le
istruzioni dettagliate e l’elenco di software dettagliato. Nel repository sono
presenti degli script per determinate piattaforme che servono alla corretta com-
pilazione del software nel proprio ambiente.


10.3      Issue Tracker
L’issue tracker ` un applicativo che gli utenti e gli sviluppatori utilizzano per
                e
rimanere aggiornati sui bug, sulle varie richieste di miglioramenti su cui i membri
del progetto lavoreranno per risolverli. Il progetto Firebird utilizza JIRA issue
tracking sofwtare per questo proposito. Il Firebird tracker si trova all’indirizzo
http://tracker.firebirdsql.org/


10.4      Contributing Patches
Affinch` un contributo da parte di un utente venga accettato deve seguire alcune
     e
regole.

   • Preparazione : per prima cosa bisogna verificare l’ambito in cui si vuole
       apportare una modifica, sia essa una novit` o soluzione a un bug. Bisogna
                                                a
       quindi cercare nel project issue tracker l’argomento scelto e contattare la
       persona di riferimento, in modo da essere aggiornati sullo stato dell’arte.



                                                                             15/17
• Sviluppo : per lo sviluppo bisogna cercare il metodo migliore di im-
       plementare l’argomento scelto, senza esitare a contattare la mailing list
       appropriata. Per sviluppi importanti ` raccomandato condividere i propri
                                            e
       progetti prima di iniziare l’implementazione. Ogni soluzione dev’essere
       sviluppata seguendo le regole di codifica e la struttura architetturale. In-
       oltre bisogna prevedere i possibili comportamenti con piattaforme diverse
       o interazione con altre funzionalit`.
                                          a

   • Test : il primo test deve riguardare la corretta compilazione su tutte le
       piattaforme che si hanno disponibili. Inoltre i test possono essere svolti
       tramite la suite QA ufficiale.

   • Pubblicazione : una volta effettuati i passaggi precedenti bisogna postare
       nella mailing list corrispondente una descrizione dettagliata di quello che
       si ` fatto ed allegare anche la patch sviluppata. In seguito bisogna parteci-
          e
       pare alla discussione rispondendo alle annotazioni fatte dagli utenti. Una
       volta approvata la soluzione la versione finale va allegata al tracker ticket
       appropriato.


10.5      Test
Per i test, come detto, viene messa a disposizione la QA suite. Le regole per
assicurare la qualit` vengono esposte nel paragrafo 7.2 mentre di seguito vengono
                    a
illustrati alcuni strumenti per ottenere i risultati.

10.5.1    Firebird Test Suite

La Firebird Test Suite utilizza due sistemi di test. Il primo detto TCS, ri-
lasicato dalla Boreland insieme a InterBase ` composto da 390 test di vario
                                            e
tipo. Attualmente ` poco utilizzato perch` deprecato. Il secondo metodo `
                  e                      e                              e
detto QMTest. Tale tipologia di test ` open source e general-purpose, inoltre `
                                     e                                        e
cross-platfotm. Sono state scritte delle estesioni per semplificare lo sviluppo di
test. All’url http://www.firebirdsql.org/en/firebird-test-suite/ sono
presenti le istruzioni dettagliate per effettuare un test completo e di vario tipo.

10.5.2    Come progettare un nuovo test

La prima cosa da fare quando si vuole progettare un nuovo test ` identificare
                                                               e
per bene cosa si vuole testare. Risulta quindi importante controllare la lista
di test disponibili per vedere se qualcuno non abbia gi` creato il test. In caso
                                                       a
non sia presente bisogna contattare la mailing list Firebird-test e comunicare
la propria intenzione di sviluppare un test. Le linee guida che vengono dettate
riguardano la semplicit` del test, con alcuni esempi pratici di come mantenere
                       a

                                                                             16/17
semplice la prova. Infatti con una prova semplice si riesce pi` facilmente a
                                                              u
risolvere il problema. Una volta progettato il test si pu` implementare con
                                                         o
QMTest oppure sottomettere al gruppo di sviluppo seguendo alcune regole di
redazione, per semplificare la comprensione da parte del ricevente.


11     Riferimenti
   • http://www.firebirdsql.org/

   • http://www.firebirdnews.org/

   • http://firebirdsql.it/

   • http://it.wikipedia.org/wiki/Firebird_SQL

   • http://en.wikipedia.org/wiki/Firebird_(database_server)




                                                                      17/17

More Related Content

Similar to Firebird SQL

Compas Project
Compas ProjectCompas Project
Compas Project
Alessandro Trentin
 
Guida C# By Megahao
Guida C# By MegahaoGuida C# By Megahao
Guida C# By Megahao
Megahao Habbo
 
Progetto e sviluppo di un'applicazionemobile multipiattaforma per il supporto...
Progetto e sviluppo di un'applicazionemobile multipiattaforma per il supporto...Progetto e sviluppo di un'applicazionemobile multipiattaforma per il supporto...
Progetto e sviluppo di un'applicazionemobile multipiattaforma per il supporto...maik_o
 
Sviluppo Di Portali Tramite La Tecnologia Sharepoint
Sviluppo Di Portali Tramite La Tecnologia SharepointSviluppo Di Portali Tramite La Tecnologia Sharepoint
Sviluppo Di Portali Tramite La Tecnologia Sharepoint
Denis Tomada
 
Uno studio sull'efficacia di checker automatici per la modernizzazione di cod...
Uno studio sull'efficacia di checker automatici per la modernizzazione di cod...Uno studio sull'efficacia di checker automatici per la modernizzazione di cod...
Uno studio sull'efficacia di checker automatici per la modernizzazione di cod...
Idriss Riouak
 
Tesina di fine seminario sas ed sql
Tesina di fine seminario sas ed sqlTesina di fine seminario sas ed sql
Tesina di fine seminario sas ed sql
Marco D'Alessandro
 
Sviluppo e realizzazione di un sistema per la manipolazione di superfici trid...
Sviluppo e realizzazione di un sistema per la manipolazione di superfici trid...Sviluppo e realizzazione di un sistema per la manipolazione di superfici trid...
Sviluppo e realizzazione di un sistema per la manipolazione di superfici trid...Raffaele Bernardi
 
Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...
Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...
Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...Ce.Se.N.A. Security
 
Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...
Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...
Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...
Davide Ciambelli
 
Analisi e realizzazione di uno strumento per la verifica di conformità su sis...
Analisi e realizzazione di uno strumento per la verifica di conformità su sis...Analisi e realizzazione di uno strumento per la verifica di conformità su sis...
Analisi e realizzazione di uno strumento per la verifica di conformità su sis...
Davide Bravin
 
Progetto e realizzazione di un'applicazione WebGIS per la visualizzazione di ...
Progetto e realizzazione di un'applicazione WebGIS per la visualizzazione di ...Progetto e realizzazione di un'applicazione WebGIS per la visualizzazione di ...
Progetto e realizzazione di un'applicazione WebGIS per la visualizzazione di ...diegohusu
 
Profilazione utente in ambienti virtualizzati
Profilazione utente in ambienti virtualizzatiProfilazione utente in ambienti virtualizzati
Profilazione utente in ambienti virtualizzati
Pietro Corona
 
Il tutorial di Python
Il tutorial di PythonIl tutorial di Python
Il tutorial di Python
AmmLibera AL
 
Progettazione e sviluppo di un software applicativo su un single board computer
Progettazione e sviluppo di un software applicativo su un single board computerProgettazione e sviluppo di un software applicativo su un single board computer
Progettazione e sviluppo di un software applicativo su un single board computer
Alessandro Mascherin
 
Piano Nazionale Scuola Digitale (risorse integrative)
Piano Nazionale Scuola Digitale (risorse integrative)Piano Nazionale Scuola Digitale (risorse integrative)
Piano Nazionale Scuola Digitale (risorse integrative)
Ministry of Public Education
 
DOC Cubeyou Milano' presentazione
DOC  Cubeyou  Milano' presentazioneDOC  Cubeyou  Milano' presentazione
DOC Cubeyou Milano' presentazione
robcar1986
 
tititototgovòolnèoik j+ipj +iphn +nkl +àoènkl àhnilk
tititototgovòolnèoik j+ipj +iphn +nkl +àoènkl àhnilktititototgovòolnèoik j+ipj +iphn +nkl +àoènkl àhnilk
tititototgovòolnèoik j+ipj +iphn +nkl +àoènkl àhnilk
Prova Cy
 

Similar to Firebird SQL (20)

Compas Project
Compas ProjectCompas Project
Compas Project
 
Guida C# By Megahao
Guida C# By MegahaoGuida C# By Megahao
Guida C# By Megahao
 
Progetto e sviluppo di un'applicazionemobile multipiattaforma per il supporto...
Progetto e sviluppo di un'applicazionemobile multipiattaforma per il supporto...Progetto e sviluppo di un'applicazionemobile multipiattaforma per il supporto...
Progetto e sviluppo di un'applicazionemobile multipiattaforma per il supporto...
 
Sviluppo Di Portali Tramite La Tecnologia Sharepoint
Sviluppo Di Portali Tramite La Tecnologia SharepointSviluppo Di Portali Tramite La Tecnologia Sharepoint
Sviluppo Di Portali Tramite La Tecnologia Sharepoint
 
Uno studio sull'efficacia di checker automatici per la modernizzazione di cod...
Uno studio sull'efficacia di checker automatici per la modernizzazione di cod...Uno studio sull'efficacia di checker automatici per la modernizzazione di cod...
Uno studio sull'efficacia di checker automatici per la modernizzazione di cod...
 
Tesi Forcolin Fabio
Tesi Forcolin FabioTesi Forcolin Fabio
Tesi Forcolin Fabio
 
Tesina di fine seminario sas ed sql
Tesina di fine seminario sas ed sqlTesina di fine seminario sas ed sql
Tesina di fine seminario sas ed sql
 
Sviluppo e realizzazione di un sistema per la manipolazione di superfici trid...
Sviluppo e realizzazione di un sistema per la manipolazione di superfici trid...Sviluppo e realizzazione di un sistema per la manipolazione di superfici trid...
Sviluppo e realizzazione di un sistema per la manipolazione di superfici trid...
 
Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...
Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...
Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...
 
Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...
Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...
Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...
 
Analisi e realizzazione di uno strumento per la verifica di conformità su sis...
Analisi e realizzazione di uno strumento per la verifica di conformità su sis...Analisi e realizzazione di uno strumento per la verifica di conformità su sis...
Analisi e realizzazione di uno strumento per la verifica di conformità su sis...
 
Progetto e realizzazione di un'applicazione WebGIS per la visualizzazione di ...
Progetto e realizzazione di un'applicazione WebGIS per la visualizzazione di ...Progetto e realizzazione di un'applicazione WebGIS per la visualizzazione di ...
Progetto e realizzazione di un'applicazione WebGIS per la visualizzazione di ...
 
Tesi Tamiazzo09
Tesi Tamiazzo09Tesi Tamiazzo09
Tesi Tamiazzo09
 
Profilazione utente in ambienti virtualizzati
Profilazione utente in ambienti virtualizzatiProfilazione utente in ambienti virtualizzati
Profilazione utente in ambienti virtualizzati
 
Il tutorial di Python
Il tutorial di PythonIl tutorial di Python
Il tutorial di Python
 
Progettazione e sviluppo di un software applicativo su un single board computer
Progettazione e sviluppo di un software applicativo su un single board computerProgettazione e sviluppo di un software applicativo su un single board computer
Progettazione e sviluppo di un software applicativo su un single board computer
 
Tesiandroid
TesiandroidTesiandroid
Tesiandroid
 
Piano Nazionale Scuola Digitale (risorse integrative)
Piano Nazionale Scuola Digitale (risorse integrative)Piano Nazionale Scuola Digitale (risorse integrative)
Piano Nazionale Scuola Digitale (risorse integrative)
 
DOC Cubeyou Milano' presentazione
DOC  Cubeyou  Milano' presentazioneDOC  Cubeyou  Milano' presentazione
DOC Cubeyou Milano' presentazione
 
tititototgovòolnèoik j+ipj +iphn +nkl +àoènkl àhnilk
tititototgovòolnèoik j+ipj +iphn +nkl +àoènkl àhnilktititototgovòolnèoik j+ipj +iphn +nkl +àoènkl àhnilk
tititototgovòolnèoik j+ipj +iphn +nkl +àoènkl àhnilk
 

Firebird SQL

  • 1. Relazione Studio di un progetto open source per il corso di Tecnologie Open Source 20 Giugno 2011 Sommario Presentazione del progetto Firebird SQL. Informazioni documento Nome file Firebird.pdf Versione 1.0 Distribuzione Prof. Bellio Luigi Nesello Lorenzo 1/17
  • 2. Indice 1 Introduzione 4 2 Obiettivi 4 3 Mercato 4 4 Storia 5 4.1 Tappe del progetto . . . . . . . . . . . . . . . . . . . . . . . . . . 6 5 Licenza 6 6 Modello di Business 7 6.1 Firebird Foundation . . . . . . . . . . . . . . . . . . . . . . . . . 7 7 Processo di sviluppo 8 7.1 Firebird Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 7.2 Quality Assurance . . . . . . . . . . . . . . . . . . . . . . . . . . 8 7.3 Documentazione . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 7.4 JDBC, ODBC, Python Driver . . . . . . . . . . . . . . . . . . . . 9 7.5 .NET Provider . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 8 Community 10 8.1 Team di Firebird . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 8.2 Portali News . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 8.3 Siti Nazionali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 8.4 Mailing list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 9 Strumenti di gestione dell’informazione 13 9.1 Documentazione . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 9.1.1 Release Notes . . . . . . . . . . . . . . . . . . . . . . . . . 13 9.1.2 Reference Manuals . . . . . . . . . . . . . . . . . . . . . . 13 9.1.3 White papers e presentazioni . . . . . . . . . . . . . . . . 13 9.1.4 FAQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 9.1.5 Libri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 9.1.6 Documentazione Driver . . . . . . . . . . . . . . . . . . . 14 9.1.7 Documentazione esterna . . . . . . . . . . . . . . . . . . . 14 9.2 Supporto alla community . . . . . . . . . . . . . . . . . . . . . . 14 9.3 Supporto professionale . . . . . . . . . . . . . . . . . . . . . . . . 14 2/17
  • 3. 10 Strumenti di gestione dello sviluppo 15 10.1 Coding Style . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 10.2 Compilazione Codice . . . . . . . . . . . . . . . . . . . . . . . . . 15 10.3 Issue Tracker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 10.4 Contributing Patches . . . . . . . . . . . . . . . . . . . . . . . . . 15 10.5 Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 10.5.1 Firebird Test Suite . . . . . . . . . . . . . . . . . . . . . . 16 10.5.2 Come progettare un nuovo test . . . . . . . . . . . . . . . 16 11 Riferimenti 17 3/17
  • 4. 1 Introduzione Firebird SQL ` un RDBMS (Relational DataBase Management System) open- e source. Viene distribuito sotto licenza IPL o IDPL. Nasce da Interbase e suppor- ta numerosi sistemi operativi. Tra i principali si trovano GNU/Linux, Windows, FreeBSD, Mac OS X e alcuni Unix. Fra i punti di forza del progetto ci sono un grande grado di aderenza agli standard SQL e una buona integrazione con molti linguaggi di programmazione. Inoltre ` facilmente installabile e manutenibile e e nelle ultime versioni sono stati fatti molti miglioramenti sul versante della resistenza ai crash esterni, la velocit` di esecuzione e di accesso ai dati. a 2 Obiettivi Gli obiettivi, portati avanti tramite le Firebird Foundation, sono quelli di sup- portare e far avanzare lo sviluppo del progetto open source Firebird relational database management system. La fondazione gestisce un infrastruttura non commericale e meccanismi richiesti per accettare e gestire finanziamenti, sotto- scrizioni, donazioni e sponsorizzazioni. 3 Mercato Il prodotto Firebird si rivolge a singoli utenti e ad aziende che intendono utiliz- zare il servizio di RDBMS. La stessa fondazione che gestisce le donazioni per il sostentamento del progetto ` aperta a singoli utenti e ad aziende, come illustrato e nel punto 6.1. Il seguente elenco illustra alcuni nomi delle societ` utilizzatrici del a software Firebird che essendo gratuito ed open source trova molti utilizzatori. L’elenco ` in inglese preso direttamente dall’url http://www.firebirdsql.org/ e file/documentation/papers_presentations/html/who-uses.html • Broadview Software Ltd, Toronto, Canada, vendor of information and control systems and online services for broadcasters worldwide • Morfik P/L, Hobart, Tas., developers and vendors of WebOS development suite for construction and maintenance of interactive websites, stores web objects in a Firebird meta-layer (system database) as well as Firebird user data. • Communicare Systems Pty Ltd, Perth, WA, vendor of patient manage- ment and medical records software for hospitals, clinics, medical practices and mobile health units across Australia. 4/17
  • 5. • “The Examiner” newspaper, Launceston, Tas., high availability(24/7) busi- ness, information, production and news systems. • U.S. Navy, broad range of management and logistical systems • Frontrange Solutions USA Inc., Colorado Springs, U.S.A, as the back-end of the highly scalable, award-winning integrated CRM, service manage- ment and business systems “Goldmine” software suite. • British Rail, U.K., timetabling, bookings, accounting and information systems for national railway passenger network. • Deutsche Presse-Agentur GmbH, HQ in Hamburg, Germany, largest press agency in Germany, provides a worldwide service to newspapers, maga- zines, TV and radio news networks. • KIMData, Munich, Germany, business intelligence systems and data ware- housing for German hospitals. Il sostentamento del progetto avviene tramite donazioni effettuate da privati e da aziende e tramite le quote di iscrizione alla fondazione. Fra le aziende pi` a famose che vengono citate fra gli sponsor troviamo SAS, Mandriva, IBPhoenix, Broadview Software. Le aziende citate (per donazioni in denaro o in risorse) sono parecchie e questo aiuta il progetto a non essere abbandonato e continuare il suo percorso di evoluzione. 4 Storia Prima di parlare di Firebird ` necessario raccontare quello che ` stato il suo pre- e e decessore, Interbase. Interbase era un prodotto commerciale e chiuso. Vantava numerosi utilizzatori fra cui la NASA, la Banca Nazionale di Chicago, Ericsson, Boeing Nokia e altri. Fra le principali caratteristiche che lo rendevano un buon prodotto c’erano la semplicit` di installazione, l’utilizzo di poche risorse (4Mb di a RAM e meno di 10 MB di spazio su disco) e la buona gestione e il facile utilizzo anche paragonandolo con altri RDBMS. Interbase inizialmente fu progettato per un utilizzo professionale ed aziendale pagante. Nell’ultima fase della sua vita Interbase fu sviluppato da una grossa azienda mondiale, la Borland Internation- al. Dopo il rilascio del codice sorgente di Interbase 6.0 avvenuto nel 2000, reso quindi opensource dalla Borland, nacque la prima versione di Firebird. Questa versione era un InterBase riveduto e migliorato. Firebird 1.0 risolveva alcuni problemi di sicurezza e qualche bug, inoltre aggiungeva qualche piccola miglio- ria. La versione 1.5, sebbene sia stata solamente una versione di treansizione verso la versione 2.0 rappresent` una piccola rivoluzione con un grande passo o 5/17
  • 6. avanti rispetto alla versione precedente. L’intero motore del database server viene riscritto in C++, ottenendo cos` un codice pi` chiaro e leggibile rispetto ı u alla versione precedente, scritta in C. Con questa scelta le versioni successive risulteranno pi` semplici da estendere e da gestire. La versione 2.0 conferma u tutte le funzionalit` presenti in precedenza con le stesse qualit` e ne aggiunge di a a nuove. Tra le pi` interessanti ci sono lo sviluppo delle estensioni del linguaggio u SQL derivate dall’SQL 200X. Queste nuove funzionalit` aiuteranno lo sviluppo a di Vulcano, il Firebird della prossima generazione. 4.1 Tappe del progetto • 1984 Jim Starkey progetta Interbase per la Groton Database System (.gdb) • 25/07/2000 Borland rilascia sotto licenza open Initial Developer’s Public License (IDPL) Interbase 6.0. • 31/07/2000 Nasce il Progetto Firebird • 22/11/2000 Primo kit d’installazione per Firebird • 14/11/2001 Firebird 1.0. • 23/02/2004 Firebird 1.5 scritto in C++ • 13/02/2004 Firebird 1.5.1 • 10/11/2004 Firebird 2.0 Alpha • 19/05/2006 Firebird 2.0 Release Candidate 2 • 17/04/2008 Firebird 2.1 • 10/09/2008 Firebird 2.5 Alpha • 04/10/2008 Firebird 2.5 • maggio-agosto 2011 Firebird 3.0 Alpha 1.Giornalmente ` disponibile il e build attuale (non release ufficiale) 5 Licenza I moduli Firebird vengono rilasciati sotto licenza Initial Developer’s Public Li- cense, mentre InterBase viene rilasciato da Inprise sotto licenza InterBase Pub- lic License. La licenza InterBase Public License si applica anche a Firebird 1.0. Tale licenza ` quella con cui ` stato distribuito da Boreland il codice sorgente e e 6/17
  • 7. di InterBase 6 da cui ` partito il progetto Firebird. Entrambe le licenze sono e delle varianti della Mozilla Public License V.1.1 (MPL). La documentazione del progetto Firebird ` rilasciata sotto licenza Public Documentation License salvo e diversamente indicato. La licenza Public Documentation License definisce le regole come la Mozilla Public Licese, solo che si occupa di documentazione e non di codifica. 6 Modello di Business Lo sviluppo del progetto Firebird avviene tramite un team ristretto di sviluppa- tori coadiuvati da una comunit` molto sviluppata. Il sostentamento del progetto a avviene tramite donazioni e sponsorizzazioni gestite dalla fondazione (vedi para- grafo 6.1). Il software viene distribuito gratuitamente a tutti gli utenti (e alle aziende). Se si necessita di supporto di tipo professionale si pu` far affidamento o ad alcune aziende che coprono aree diverse del mondo e che sono sponsor del- la fondazione Firebird. Inoltre ogni utente se vuole apportare delle modifiche o delle migliorie pu` farlo sottoponendo poi il lavoro effettuato e ovviamente o rispettando le regole di codifica e test previste dal progetto. 6.1 Firebird Foundation La fondazione Firebird ha il compito di gestire le risorse per l’avanzamento del progetto. Il comitato di gestione viene eletto nell’assemblea generale annuale e per l’anno in corso gli eletti sono: • Presidente : Philippe Makowski (FR) • Vice Presidente : Steve Summers (US) • Tesoriere : Raymond Cl´roux e • Segretario : Helen Borrie (AU) • Comitato : Paul Beach (FR), Pavel Cisar (CZ), Fabio Codebue (IT), Ste- fan Heymann (DE), Alexey Kovyazin (RU), Olivier Mascia (BE), Thomas Steinmaurer (AT) La fondazione ` composta da svilupparoti, utenti e compagnie di varie dimen- e sioni. Tutte le componenti lavorano insieme come parte integrante di una or- ganizzazione non-profit e questo garantisce che lo sviluppo del software open source Firebird sia continuo. Le quote che vengono pagate dai membri hanno un ruolo importante nel finanziamento dello sviluppo del motore di Firebird. Al- la fondazione si pu` contribuire tramite membership, sponsorship o altre forme o di contributo minori. La membership prevede due differenti quote: 7/17
  • 8. • Voting members : paga $300 all’anno • Associate members : paga $50 all’anno Per la sponsorship si guadagna un posto nella pagina degli sponsor. Ci sono diverse modalit` di sponsorship elencate in seguito: a • Platinum : pi` di $1000 al mese o una donazione dai $12000 in su u • Gold : dai $500 ai $1000 al mese o una donazione da $6000 a $11999 • Silver : dai $175 ai $499 al mese o una donazione da $2000 a $5999 • Bronze : dai $75 ai $174 al mese o una sonazione dai $900 ai $1999 • Percentuale delle vendite : Per ogni prodotto venduto una percentuale viene donata Il terzo modo per contribuire al progetto ` quello di effettuare donazioni che e possono essere in denaro ma anche in risorse. Alcuni casi di donazioni effet- tuate riguardano server di hosting, mackbook per lo sviluppo e il test per la piattaforma MacOS X, accesso a risorse aziendali per migliorare lo sviluppo di Firebird. 7 Processo di sviluppo La realizzazione del sistema Firebird avviene attraverso lo sviluppo di un certo numero di sottoprogetti, analizzati in seguito. Per seguire lo sviluppo dei proget- ti ` sufficiente aprire il link http://firebird-checkins.123651.n3.nabble. e com/ che rappresenta un archivio della mailing list. 7.1 Firebird Server Lo sviluppo di questa parte si pu` seguire al sito http://www.firebirdsql. o org/en/server/ dove vengono date le istruzioni per seguire gli aggiornamenti delle versioni stabili, cio` le serie 2.0.x, 2.1.x e 2.5.x. Inoltre ` presente una e e sezione per lo sviluppo della versione 3.0 che viene annunciata come una versione ricca di caratteristiche annunciate da tempo che miglioreranno ulteriormente il lavoro fin qua svolto. 7.2 Quality Assurance Questa sezione riporta indicazioni e metodologie per il controllo della qualit`. a Le informazioni presenti sono: 8/17
  • 9. • Metodologie e Tool utilizzati in Firebird QA • Come segnalare un bug • Come utilizzare la Firebird Test Suite • Come progettare nuovi test per Firebird • Come implementare nuovi test per Firebird • Lista dei Test • Ultimi report dagli sviluppatori 7.3 Documentazione Anche per la stesura della documentazione ci sono delle regole predefinite da rispettare. Sono presenti le direttive impartite dalla conferenza di Firebird e gli HowTo in quattro lingue (inglese, spagnolo, italiano e portoghese brasiliano). Vengono anche fornite le guide per la stesura delle guide in italiano e portogh- ese brasiliano. Inoltre vengono illustrate le parti della documentazione che in sviluppo e quelle che saranno sviluppate. 7.4 JDBC, ODBC, Python Driver Vengono fornite le direttive e lo stato dei lavori dello sviluppo dei driver per JDBC, ODBC e Python. 7.5 .NET Provider IL data provider .NET ` scritto in C# e provvede all’implementazione delle e funzionalit` GDS32/API. Le componenti del progetto (dal sito web http:// a www.firebirdsql.org/en/development-net-provider/ sono: • ADO.NET Data Provider – ADO.NET Standard classes implementation – Firebird GDS implementations for the Super Server, Classic Server, Embedded Server and Fyracle External Procedure Engine – Firebird Services API implementation – Firebird Events implementation – ISQL script support • Entity Framework support 9/17
  • 10. – Support for ADO.NET Entity Framework • ASP.NET Web Providers – Membership Provider – Profile Provider – Role Provider – Session State Store Provider • Data Designer Extensibility (DDEX) Provider. – Provides integration inside Microsoft Visual Studio 2005 • Fyracle External Engine implementation for the .NET CLR 8 Community 8.1 Team di Firebird Il team di sviluppo (principale) ` composto da 5 persone: e • Dmitry Yemanov : responsabile ricerca e sviluppo, ottimizzazione e statis- tiche, path per accesso dati e algoritmi • Alex Peshkov : mantenimento del build Linux, POSIX, Sicurezza e ar- chitettura OSRI • Vladyslav Khorsun : page cache manager, Dynamic SQL, Ricerca Full Text • Adriano dos Santos Fernandes : Internazionalizzazione, estensioni DDL e DML, built-in delle funzioni SQL, routine esterne, integrazione Java e controllo del codice • Claudio Valderrama : Sviluppo Misc, ricerca bug, utilit` da linea di a comando e controllo del codice Quello elencato ` il team principale, poi ci possono essere contributi da parte e della comunit` e di singoli sviluppatori, l’importante ` che vengano seguite le a e regole poste ed esposte nella sezione 10 10/17
  • 11. 8.2 Portali News Di seguito vengono riportati i siti internet dove reperire notizie e novit` relative a al progetto Firebird. Quelli elencati sono i siti riconosciuti (e noti) dal progetto Firebird. • FirebirdSQL newsline ufficiale http://www.firebirdsql.org/en/news/ • Firebird News http://www.firebirdnews.org/ • Newsline alla IBPhoenix.com http://www.ibphoenix.com • FirebirdSQL Twitter http://twitter.com/firebirdsql • FirebirdSQL Pagina Facebook http://www.facebook.com/pages/FirebirdSQL/ 46546452369 • Campagna MindTheBird e News http://www.mindthebird.com • IRC Chat — Canale IRC #firebird su freenode.net http://freenode. net/ • Gruppo Firebird su identi.ca http://identi.ca/group/firebird • Gruppo Firebird su LinkedIn http://www.linkedin.com/groups?gid= 1467097 8.3 Siti Nazionali Sono presenti alcune comunit` nazionali (o linguistiche) per gli utilizzatori di a Firebird, riportate di seguito. • Firebird Messico Community Site http://www.firebird.com.mx/ • Firebird Giappone Community http://tech.firebird.gr.jp/firebird/ index.php?firebird_xsite=0 • Firebird Italia http://firebirdsql.it/ • Firebird Romania Community http://firebirdsql.ro/ • Firebird Cina Community http://firebird.net.cn/ • iBase.ru (sito Firebird e InterBase) http://www.ibase.ru • Firebird Brasile http://www.firebase.com.br/ • Repubblica Ceca IBPhoenix www.ibphoenix.cz • Firebird Francia http://firebird.developpez.com/ 11/17
  • 12. • Comunit` Firebird di lingua portoghese http://www.comunidade-firebird. a org/ 8.4 Mailing list Come per i siti nazionali anche nelle mailing list sono presenti gruppi di diverse nazionalit` e ambiti applicativi. Di seguito un elenco completo delle mailing list a disponibili divise per localit` e tematiche di interesse, cos` come ` strutturato il a ı e progetto Firebird. • Firebird support (in inglese) • Firebird per lingua Ceka • Firebase Brasile (in portoghese) • Firebird Russia • Firebird support (in francese) • Delphi Forum Turchia • Firebird support (in spagnolo) • Firebird Python • Firebird Java • IBObjects • Firebird PHP • Firebird Docs • Firebird Checkins • Firebird Architet • Firebird Test • Firebird Website • Sviluppatori FlameRobin • Firebird General • Firebird Tools • Firebird Applications 12/17
  • 13. 9 Strumenti di gestione dell’informazione Per seguire gli sviluppi del progetto e per utilizzare il prodotto finale Fire- bird mette a disposizione una serie di servizi per l’utente e per le aziende, sia in maniera gratuita (quasi tutti i servizi) che a pagamento (il supporto professionale). Di seguito verranno analizzati i vari metodi di supporto degli utenti. 9.1 Documentazione La documentazione del progetto ricopre la parte principale dell’informazione a favore degli utenti del prodotto. La documentazione ` divisa per livelli di e difficolt` ed interesse, si va infatti dalla guida Quick Start fino ad articoli a per esperti, ricoprendo tutti gli aspetti di Firebird.Tutta la documentazione pu` essere reperita online partendo dal sito http://www.firebirdsql.org/ o en/documentation/. Di seguito verranno esposte le sezioni rilevanti che vanno a comporre la documentazione finale. 9.1.1 Release Notes Ogni release di Firebird ` accompagnata dalle Release Note, un documento che e contiene la descrizione di nuove funzionalit` e dei bug risolti. a 9.1.2 Reference Manuals Il Reference Manual ` il documento che contiene la guida Quick Start per i nuovi e utenti e alcune guide per specifici argomenti. 9.1.3 White papers e presentazioni Esiste una raccolta di white papers e presentazioni che riguardano argomenti correlati con Firebird. Sono presenti in questa sezione anche le presentazioni delle conferenze Firebird svolte in tutto il mondo. 9.1.4 FAQ La sezione delle FAQ contiene risposte a domande frequenti della comunit` in a Inglese, Russo, Portoghese ed altre lingue. 9.1.5 Libri Sono presenti anche alcuni libri che parlano di Firebird e dei suoi aspetti, nella sezione viene indicato il tema e come acquistarli. 13/17
  • 14. 9.1.6 Documentazione Driver Questa sezione contiene documenti e link a documentazione relativa ai driver per Firebird. 9.1.7 Documentazione esterna Questa sezione raccoglie una collezione di articoli vari che trattano l’argomento Firebird. 9.2 Supporto alla community Il supporto dato dalla comunit` avviene in maniera gratuita attraverso le mail- a ing list (vedi paragrafo 8.4). Le mailing list non vengono moderate ma viene applicata la regola three strikes and you’re out. Quindi si viene cacciati dopo tre infrazioni al regolamento. Viene vietato il flaming, lo spam, la monopolizzazione della discussione e l’eccessivo requoting. Viene richiesto di firmarsi con il pro- prio nome, e non con un nickname. Si incorre in ban se si pubblicano nickname con offese o con indirizzi email. Viene inoltre punita la pubblicit` di qualsiasi a tipo con il ban immediato. Viene inoltre richiesto agli utenti, per migliorare il compito di chi risponder`, di fare domande intelligenti, quindi che ad esempio, a come oggetto non abbiano bug oppure problema, che sia riportata la versione e il modello di Firebird e il sistema operativo ed inoltre che linguaggi si stanno uti- lizzando o che interfacce di accesso dati sono usate dall’applicativo client. Viene fornita una pagina web dove si spiega cosa si intende per domanda intelligente a questo url http://www.catb.org/~esr/faqs/smart-questions.html 9.3 Supporto professionale Il supporto professionale ` eseguito da cinque aziende che operano in diversi e stati. • IBPhoenix • IBSurgeon • iBase • P-Soft • FireBase Ogni azienda che da supporto professionale sull’utilizzo di Firebird fa parte delle aziende sponsor che rispettano i requisiti della sezione 6.1. 14/17
  • 15. 10 Strumenti di gestione dello sviluppo Per poter sviluppare un progetto bisogna dotarsi di regole condivise e rispet- tate e di strumenti facilmente reperibili. Vengono quindi definite delle regole per la stesura del codice, della documentazione, dei test e dei report. Il codice sorgente risiede in un repository SVN ospitato su SourceForge.net all’indiriz- zo http://sourceforge.net/scm/?type=svn&group_id=9028. Nel repository sono presenti tre cartelle, branches, tags e trunk. Branches contiene il codice delle release ufficiali della serie, tags di tutte le release pubblicate, trunk invece contiene il codice delle versioni future che si stanno sviluppando. 10.1 Coding Style Le regole di codifica del progetto sono quelle definite dal C++ Programming Style Guideness (http://geosoft.no/development/cppstyle.html) con al- cune modifiche riportate comunque nel sito principale. Sono state scelte queste regole perch` sono quelle riconosciute dalla comunit` di sviluppatori in C++. e a 10.2 Compilazione Codice Per compilare il codice sulle piattaforme Windows e Posix sono presenti le istruzioni dettagliate e l’elenco di software dettagliato. Nel repository sono presenti degli script per determinate piattaforme che servono alla corretta com- pilazione del software nel proprio ambiente. 10.3 Issue Tracker L’issue tracker ` un applicativo che gli utenti e gli sviluppatori utilizzano per e rimanere aggiornati sui bug, sulle varie richieste di miglioramenti su cui i membri del progetto lavoreranno per risolverli. Il progetto Firebird utilizza JIRA issue tracking sofwtare per questo proposito. Il Firebird tracker si trova all’indirizzo http://tracker.firebirdsql.org/ 10.4 Contributing Patches Affinch` un contributo da parte di un utente venga accettato deve seguire alcune e regole. • Preparazione : per prima cosa bisogna verificare l’ambito in cui si vuole apportare una modifica, sia essa una novit` o soluzione a un bug. Bisogna a quindi cercare nel project issue tracker l’argomento scelto e contattare la persona di riferimento, in modo da essere aggiornati sullo stato dell’arte. 15/17
  • 16. • Sviluppo : per lo sviluppo bisogna cercare il metodo migliore di im- plementare l’argomento scelto, senza esitare a contattare la mailing list appropriata. Per sviluppi importanti ` raccomandato condividere i propri e progetti prima di iniziare l’implementazione. Ogni soluzione dev’essere sviluppata seguendo le regole di codifica e la struttura architetturale. In- oltre bisogna prevedere i possibili comportamenti con piattaforme diverse o interazione con altre funzionalit`. a • Test : il primo test deve riguardare la corretta compilazione su tutte le piattaforme che si hanno disponibili. Inoltre i test possono essere svolti tramite la suite QA ufficiale. • Pubblicazione : una volta effettuati i passaggi precedenti bisogna postare nella mailing list corrispondente una descrizione dettagliata di quello che si ` fatto ed allegare anche la patch sviluppata. In seguito bisogna parteci- e pare alla discussione rispondendo alle annotazioni fatte dagli utenti. Una volta approvata la soluzione la versione finale va allegata al tracker ticket appropriato. 10.5 Test Per i test, come detto, viene messa a disposizione la QA suite. Le regole per assicurare la qualit` vengono esposte nel paragrafo 7.2 mentre di seguito vengono a illustrati alcuni strumenti per ottenere i risultati. 10.5.1 Firebird Test Suite La Firebird Test Suite utilizza due sistemi di test. Il primo detto TCS, ri- lasicato dalla Boreland insieme a InterBase ` composto da 390 test di vario e tipo. Attualmente ` poco utilizzato perch` deprecato. Il secondo metodo ` e e e detto QMTest. Tale tipologia di test ` open source e general-purpose, inoltre ` e e cross-platfotm. Sono state scritte delle estesioni per semplificare lo sviluppo di test. All’url http://www.firebirdsql.org/en/firebird-test-suite/ sono presenti le istruzioni dettagliate per effettuare un test completo e di vario tipo. 10.5.2 Come progettare un nuovo test La prima cosa da fare quando si vuole progettare un nuovo test ` identificare e per bene cosa si vuole testare. Risulta quindi importante controllare la lista di test disponibili per vedere se qualcuno non abbia gi` creato il test. In caso a non sia presente bisogna contattare la mailing list Firebird-test e comunicare la propria intenzione di sviluppare un test. Le linee guida che vengono dettate riguardano la semplicit` del test, con alcuni esempi pratici di come mantenere a 16/17
  • 17. semplice la prova. Infatti con una prova semplice si riesce pi` facilmente a u risolvere il problema. Una volta progettato il test si pu` implementare con o QMTest oppure sottomettere al gruppo di sviluppo seguendo alcune regole di redazione, per semplificare la comprensione da parte del ricevente. 11 Riferimenti • http://www.firebirdsql.org/ • http://www.firebirdnews.org/ • http://firebirdsql.it/ • http://it.wikipedia.org/wiki/Firebird_SQL • http://en.wikipedia.org/wiki/Firebird_(database_server) 17/17