Sorrento – and now for something completely different!

30 03 2007

bene gente,

dopo la nota di colore della precedente mail, in cui spero si siano riconosciuti anche gli altri presenti allo sprint, passiamo a qualcosa di piu’ seriamente tecnico.

il primo giorno sono stati dichiarati due dei temi che i “leader” volevano come centrali:

KSS in primo luogo, Membrane & Remember in secondo luogo.

KSS per chi non lo sapesse ha battuto Bling al foto-finish nella corsa verso la tecnologia da usare per dotare plone di ajax in modo “cazzuto”:
come solito nel nostro ambiente se ne sono usciti con una tecnologia veramente interessante e potente per far gestire le questioni ajax a chi di javascript non ne sa nulla o quasi..

(anche Bling merita menzione, soprattutto perchè Kapil questa notte si e’ speso con molta passione nei suoi confronti, oltre a non parlare proprio bene, dal suo punto di vista qualificato, della scelta fatta su generic setup.. http://inversesource.blogspot.com/ anyhow..

di nuovo “E’ la plone foundation, bellezza“)

il bello di KSS e’ che tende a far applicare ajax alla pagina con gli stessi concetti con cui gli applichiamo lo stile (CSS appunto..), il brutto sono molto lavoro da fare per rendere tutto plone KSS standard e alcuni problemi che Fabrizio (che ci sta lavorando sopra alacremente) potra’ spiegarci (senza esprimere giudizi, please)

per quanto riguarda Membrane e Remember, invece, Rob Miller, simpaticissimo e disponibilissimo FriscoBayGuy, autore di TeamSpace e in forze nel gruppo di Open Plans, ci ha perfettamente chiarito di che si tratta (cosa che ancora non mi era affatto chiara da lungo tempo), facendoci una crono storia lampo per quanto riguarda i servizi di autenticazione in plone.. in estrema sintesi:

in principio furono le acl_users (oggetti di tipo folderish che contenevano oggetti speciali, che avevano come attributi username, password e qualcosa d’altro) e che venivano usati per “riconoscere” utenti.. e il signore di Zope vide che erano cosa buona, e decise di moltiplicarle per poter gestire i diversi tipi di autenticazione necessari. E fu cosi’ che nacquero LDAPUserFolder, SQLUserFolder, TEXTFILEUserFolder, DeNoartriUserFolder (c), etc. etc. etc. e plone usava le singole user folder, ma solo una alla volta.

e fu cosi’ che il signore di Zope capi’ che qualcosa non andava.

il mondo creato vide poi la comparsa dei portali, feudi integrati di ogni ben di dio, e il signore di Zope vide che era cosa buona, ma in tali regni le singole acl_users non potevano bastare a gestire i vari
aspetti legati agli utenti di tali feudi.. e fu cosi’ che comparvero portal_membership, portal_memberdata, user wrappers e ogni ben di dio per dare un respiro piu’ ampio agli oggetti che le acl_users popolavano.

in tali regni ci si spinse fino a raggiungere le alte vette dei gruppi di lavoro di GRUF e la catena gemella delle colline del CMFMember. e il signore vide che era cosa buone, e gli utenti potevano essere facilmente aggregati in gruppi, e i gruppi a loro volta in gruppi, e i gruppi potevano disporre di ruoli specifici in specifici contesti, e i members (!= utenti) potevano essere revisionati, e modulati nelle proprieta’ richieste come meglio si preferiva..

ma anche questo aumentava la ridondanza di tecnologie sovrapposte, o meglio “sottoposte” (wrappate) per poter garantire che tali regni funzionassero.. per capirci c’erano sempre almeno due oggetti coinvolti nei servizi di autenticazione in cui uno conteneva l’altro.. rendendo il
gioco di scatole cinesi (i member wrappano gli user al loro interno) sempre piu’ difficili da mantenere.. e da estendere nei singoli casi specifici. grazie a tali vette, i feudi potevano godere di
implementazioni anche complesse come nel caso di TeamSpace (http://plone.org/products/teamspace), ma estendere tali prodotti era un gran putiferio.

per fortuna per altri versi si era arrivati nella terra di Zope 3, da molti considerata come la terra promessa. E fu cosi’ che il signore di Zope creo’ PAS (Pluggable Authentication Services). e vide che era cosa buona, perche’ aveva trovato un modo per evitare tutta la ridondanza di XXXUserFolder esistente, preferendo piuttosto consentire la creazione di piccoli plugin ciascuno responsabile per le sue piccole cose, ma che tutti insieme potevano fornire il “bunch” di servizi necessari a
consolidare un servizio di gestione utenti flessibile e potente al tempo stesso..

il trucco del signore di zope consisteva nel fatto che aveva individuato i singoli aspetti che tutte le UserFolder sorelle e le varie altre implementazioni necessarie a generare feudi dovevano garantire:

  • autenticazione
  • autorizzazion
  • credenziali
  • ruoli
  • gruppi
  • proprieta’
  • ..

(ndr: brutalmente italianizzati)

e il signore di Zope vide che era cosa buona, e mando’ per il mondo la sua creatura, che crebbe e crebbe e presto fu in grado di partorire nuove idee.

i costruttori di feudi furono felici di impossessarsi di PAS, e fu cosi’ che il signore di Zope creo’ Membrane, una membrana di plugin appunto da mette intorno a un qualsiasi tipo di contenuto per consentirgli di essere usato insieme a PAS al posto delle ormai vecchie sorelle, le User
Folder, in modo veramente conveniente e flessibile.

e il signore di Zope vide che era cosa buona, perche’ problemi prima molto complessi erano stati risolti, e in modo molto elegante, tanto da rendere sufficiente qualche riga di codice per stravolgere i meccanismi di autenticazione (ad es.) senza cambiare tutto il resto..

ma i cittadini dei feudi plone erano abituati agli oggetti member, e a non doversi troppo preoccupare di come implementarli.. e fu cosi’ che il signore di Zope creo’ Remember, e vide che era cosa buona, e gli utenti dei feudi potevano ora essere trattati come i vecchi utenti CMFMember,
ma con dei meccanismi completamente nuovi, flessibili e potenti ok, ricapitoliamo per chi non sa di storia:

acl_users, GRUF e CMFMember stanno morendo nel mondo Zope+CMF.

al loro posto PAS fornisce l’infrastruttura di autenticazione dello strato basso, PlonePAS “sostitusce” invece in plone quanto era offerto da acl_users e GRUF, reimplementando portal_membership,
portal_memberdata, etc..

la terra promessa degli utenti-contenuti viene raggiunta usando membrane (come fanno in modo diverso B-org e Remember, due modi alternativi per disporre di “contenuti” che si comportanto come utenti, la vecchia commistione user/member).. se non vi e’ chiaro qualcosa chiedete a Rob..
molto meglio di me a spiegare.. ma parla solo inglese ;p

last things last:

una indiscrezione che dovrebbe restare tra noi.. Plone will last long years ‘couse marketing is in charge (but great genius are going..)

e chi capisc capisc..

(magari date uno sguardo qui http://bcsaller.blogspot.com/2005/11/stop-energy.html, e chiedetevi da
quanto tempo non fa un commit sui suoi svn zopisti..)

alla prossima!


Azioni

Informazione

Lascia un commento