Fandom

Wikia Centrale

Comments0

Introduzione dell'Architettura Orientata ai Servizi

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.

Ciao a tutti, sono DaNASCAT! Pensate a tutte le cose che potete fare in Wikia: modificare articoli, chattare in tempo reale con altri utenti, collezionare medaglie, organizzare contenuti o semplicemente passare ore e ore a leggere sui vostri argomenti preferiti. Scalate tutto ciò alle nostre 360.000 comunità, ognuna delle quali ha un suo design e contenuti unici e vedrete quanta varietà offriamo.

Le nostre comunità si basano su questo. Quello che le comunità non notano, tuttavia, è come molta varietà possa essere causa di grandi difficoltà di codificazione per i nostri tecnici e manager di prodotti. Dato tutto quello che Wikia è in grado di fare, abbiamo sviluppato una base di codici piuttosto estesa nel corso degli anni.

Alcuni anni fa, alcuni dei nostri tecnici con maggiore esperienza si sono riuniti e chiesto se vi fosse un modo per ridurre la base di codici. Volevano vedere se vi fosse un modo più semplice per mantenere tutto il codice e le funzionalità che contribuiscono a far prosperare Wikia. Dopotutto, ciò consentirebbe uno sviluppo software più rapido ed efficiente. Sono lieto di informarvi che stiamo facendo grandi progressi in tal senso!

La soluzione è quella che è nota come Service-Oriented Architecture (SOA - Architettura orientata ai servizi) e, in qualità di redattore di wiki da lungo tempo (ho appena festeggiato il mio 10° anniversario di redattore di wiki!) e programmatore informatico, sono lieto di spiegare il nostro approccio e condividere ciò che sta accadendo dietro le scene nello sviluppo software Wikia.

Termini da sapere

Al fine di spiegare meglio le modifiche tecniche cui Wikia sta lavorando, definiamo dapprima alcuni concetti importanti.

MediaWiki: MediaWiki è il motore primario che costituisce le fondamenta di Wikia sin dal suo lancio nel 2006. MediaWiki è integrale alla creazione del concetto wiki ed è meglio identificabile per la semplicità di modifica, la presentazione di contenuti creati dall'utente, una struttura di gruppi utente semplice e la capacità di tenere traccia delle cronologie di modifica.

Wikia gira su una versione di MediaWiki numerata 1.19 ed è improbabile che eseguiremo un aggiornamento su larga scala a una versione più recente. Uno dei principali motivi per questo è che MediaWiki è considerato un software monolitico. Ciò significa, che la codifica, il design e altre parti di MediaWiki controllano tutto. La stessa funzione che consente di salvare una modifica, per esempio, è anche responsabile dell'eliminazione di una pagina. Ciò avviene principalmente tramite PHP e JavaScript.

Un servizio, in termini tecnologici, è un piccolo software responsabile di svolgere un'operazione singola comune. Può essere codificato in qualsiasi lingua. Di conseguenza, la Service-Oriented Architecture è quando si progetta un sistema che consente alle operazioni di un sito Web di essere gestite da servizi individuali che collaborano, piuttosto che un singolo software gigante che fa tutto.

Perciò qual è il problema?

Nel cercare di comprendere i vantaggi dell'utilizzo di un modello SOA rispetto al modello MediaWiki, facciamo finta che il monolito di MediaWiki sia una città. Tutti i suoi cittadini sono responsabili di gestire tutte le attività della città, dall'edilizia, alla polizia, alla gestione dei negozi. Tutte le attività quotidiane sono gestite bene dalla città; tuttavia, in caso di incendio, sarebbe strano pensare che un negoziante, poliziotto o muratore sarà responsabile di spegnere le fiamme invece dei pompiere che si dedicano in modo specifico all'estinzione degli incendi.

Per continuare con la nostra analogica, diamo un'occhiata a quale tipo di città sarebbe offerto da un modello Service-Oriented. In quella città, si avrebbero cittadini incaricati specificatamente dell'ediliza, la polizia e la gestione dei negozi. Questa sarebbe l'unica cosa su cui si concentrebbero tali persone. In caso di incendio, interverrebero i pompieri. Non so voi, ma se la mia casa prendesse fuoco, mi sentirei molto meglio se il primo a intervenire fosse un pompiere invece di un panettiere. Anche se le l'idea di un incendio spento con la glassa potrebbe essere un motivo per farsi quattro risate.

Questa generalizzazione è una buona descrizione del motivo per cui Wikia favorisce ora il metodo SOA. Vantaggi specifici di SOA rispetto al MediaWiki core sono:

  • Meno complessità. È molto più semplice che un ingegnere software comprenda, corregga e migliori un software se il suo ambito di applicazione è piccolo e il suo codice è contenuto in un unico luogo.
  • Efficienza. SOA ci consente di usare linguaggi software come Java o Python, che tendono a offrire prestazioni migliori per lo svolgimento di determinate attività che PHP non è in grado di fare bene.
  • Adattabilità. MediaWiki è enorme e lento da aggiornare. Del resto, Internet cambia rapidamente. MediaWiki è spesso molto indietro rispetto a funzionalità necessarie, come lo sviluppo di app mobili.

Cosa è cambiato?

Potreste essere sorpresi di sapere che il passaggio di Wikia a un modello SOA si è svolto a piccoli passi nel corso dell'ultimo anno. Il disporre di un modello SOA non significa ricevere un nuovo Wikia vistoso e appariscente. SOA prende semplicemente pezzi di ciò che MediaWiki fa per Wikia, ricostruisce il codice in modo che sia efficace ed efficiente, quindi inserisce nuovamente il codice. Non si dovrebbe notare la differenza, anche se la riscrittura del codice non ci consente spesso di aggiungere una o due funzionalità extra.

Un ottimo esempio è il nostro sistema di accesso all'account. Che ci crediate o meno, sì, è cambiato molto nell'ultimo anno! Il sistema di autenticazione degli utenti MediaWiki presenteva delle inefficienze nella gestione di una database utenti delle dimensioni di Wikia e nell'accettare facilmente componenti aggiuntivi come Facebook Connect. Perciò, lo scorso anno abbiamo iniziato a progettare qualcosa chiamato Helios, che consente un processo di registrazione e accesso molto più sicuro e veloce. Helios gira in modo indipendente da MediaWiki e parla a MediaWikia per mezzo di un API semplice.

Inoltre, abbiamo creato dei servizi che gestisono in modo specifico i permessi dei gruppi utente e le preferenze. La maggior parte di tale sviluppo si è svolto nel mondo delle app mobili e del Web mobile. Infatti, siamo stati in grado di usare Helios per autenticare l'accesso degli utenti a Wikia nel Web mobile e nelle app mobili, un'operazione molto più semplice di quanto sarebbe stato cercare di inserire il sistema di autenticazione MediaWiki esistente in tali strumenti mobili.

Questo è solo l'inizio del nostro impegno a fare di Wikia un sistema più efficiente. Ciò ci consentirà funzioni e codici di progettazione migliori per continuare a espandere Wikia in futuro. Se avete domande sullo sviluppo della Service-Oriented Architecture in Wikia, saremo lieti di rispondere nei commenti!

Inoltre su Fandom

Wiki a caso