Newsgroup: it.lavoro.informatica
Titolo: Scelta architettura

ciao a tutti
apro questo trhead per confrontarmi su un tema che ultimamente mi sta 
facendo pensare.
Cosa fa scegliere un architettura rispetto ad un altra in un contesto 
gestionale, posso capire che in altri contesti tipo embedded ci siano 
poche scelte e a volte obbligate, ma in un contesto non 
scentifico/embedded cosa porta alla scelta delll'archittettura?
cosa fa scegliere tra win server, UNIX, MAINFRAME, Linux, ecc (lato OS),
.NET, java, perl, php, ecc.. (lato linguaggio), e DB2, ORACLE, Mysql, 
Postgrsql ecc.. (lato DB).
Non mi interessano le guerre di religione su OS o linguaggi, quello che 
mi interessa sapere è se questi hanno caratteristiche superiori nei vari 
scenari a cui vengono applicati (mi interessano le vostre esperienze in 
  merito).
Un esempio che mi viene in mente, In internet il linguaggio per che va 
per la maggiore è PHP (non solo sitarelli, si pensi a yahoo, facebook, 
google e molti altri grandi che lo utilizzano come strumento principale 
di business), in ambito enterprise è Java/.NET.
Posso capire che a volte ci siano di mezzo aziende che il prodotto lo 
vendono, tipo oracle, microsoft, IBM, ecc.. (e che quindi diano garanzia 
sugli stessi prodotti che vendono), ma java è rilasciato in open come 
php, mysql e postgrsql idem, i vari framework che si utilizzano per la 
maggiore anche loro sono open, l'application server per eccellenza 
TOMCAT anch'esso è open, allora mi chiedo cosa spinge un managment su 
una piattaforma di sviluppo piuttosto che un altra.
Mi interessa un opinione da Professionisti di IT, non da querra santa.
grazie

 di business), in ambito enterprise è Java/.NET.
Una cosa ti voglio dire, dalla mia esperienza. Molto spesso i boss 
scelgono la piattaforma sotto la spinta delle promesse dei venditori o 
di chi, fra i tecnici, dice si senza nemmeno leggere i documenti 
tecnici. Molto spesso, purtroppo, ci si scontra con problemi di backup e 
restore: programmi scritti con i linguaggi più "semplici" sono spesso 
realizzati da programmatori meno esperti che non sono in grado (o non 
vogliono considerare) l'aspetto del backup. E dall'inizio del 2009 sono 
già 3 le attività di siti internet di media dimensione che hanno chiudo 
per la mancanza di un valido plan di backup...
Francesco

 Mi interessa un opinione da Professionisti di IT, non da querra santa.
Per quella che e' la mia esperienza spesso la scelta architetturale
dipende dal know-how aziendale, sia per i linguaggi, che per i sistemi
operativi, che per i databases.

 per la mancanza di un valido plan di backup...
Puoi citarli ? me li devo essere persi !
PaF

 operativi, che per i databases.
Sono d'accordo, anche perché dal punto di vista strettamente tecnico a
volte approcci differenti possono essere equivalenti dal punto di vista del
risultato finale.
Le competenze che ogni fornitore possiede sono nello stesso tempo il suo
punto di forza e di debolezza.
PaF 

 posta elettronica....
Non mi pare parta con il piede sbagliato. Poi bisogna vedere come evolve 
il progetto.


Per quello che ho visto io le ragioni della scelta sono:
a) "ignoranza".Manager che si lasciano intortare da un commercialista
piuttosto che da un ' altro.
Mi ha sempre stupito come si possa designare come manager responsabile
IT qualcuno
che non viene dall'IT e non capisce nulla di quel settore.
b) "inciuci italiot"i. In molti CDA di banche e assicurazioni ci sono
membri dei CDA dei vari IBM Accenture etc
c) "tradizione". La societa' X ha iniziato a lavorare con la
piattaforma Y e quindi la ripropone sempre perche' e' l'unica su cui
ha esperienza.
d) "scaricabarile". Le piattaforme open source sono di solito snobbate
dai manager perche' non avendo dietro una vera e propria societa' non
saprebbero a chi addossare le colpe se combinano qualche disastro.
Nei rari casi in cui interviene il ragionamento penso che si consideri
il fatto che PHP sia tutto sommato una piattaforma un po' meno solida
e variegata
di Java o .NET e offra anche meno garanzie di evoluzione futura. Nelle
grandi applicazioni penso che Java tenda a dominare perche' di concede
qualche grado di liberta' in piu' rispetto a .NET per quanto riguarda
la scelta dei fornitori. Se sviluppi un applicazione che deve essere
usata e modificata per anni se non decenni con .NET ti stai legando
mani e piedi a MS che ti piaccia o no..

PaF ha scritto:

I nomi... cavolo, non li ricordo proprio i nomi... li ho trovati tutti 
su slashdot....
Mi ricordo i casi:
- sito dove potevi memorizzare i link, un giorno si sono ritrovati il 
disco piallato. Unico backup il raid1, piallato un disco, piallato 
l'altro. Si sospetta un ex-sysadm cacciato tempo prima, tra l'altro era 
lui che aveva raccomandato il raid 1 come backup.
- piattaforma di blog, con database mysql da mezzo tera, raid 1 e copia 
notturna con rsync (non ho capito se lo facevano a db aperto....). Il 
database master ha iniziato a incasinarsi fino a quando mysql si è 
rifiutato di aprirlo. Ovviamente l'rsync aveva propagato i problemi 
all'altro server. In questo caso c'era un minimo di ingegnerizzazione, 
con alcuni mac mini come frontend web e una coppia active/standby di 
xserve per il db... ma pure qui il concetto di "disaster-recovery" era 
nullo.
- del terzo caso, più recente, ho letto solo l'introduzione, ed era 
anche questo un tipico caso di backup affidato a dischi in raid. NOn ho 
letto oltre perché mi sono detto "e che cavolo !"... e poi occupandomi 
io anche di backup non vorrei che mi si attaccasse la sfiga... ho fatto 
un giro straordinario di check di tutte le procedure....
Mi è capitato di sviluppare una applicazione che usa 
php+mysql+filesystem ed in effetti trovare un punto di consistenza del 
tutto non è facile. Basta rifletterci un poco, trovare quale sia il dato 
prioritario, determinare il workflow dei dati e preparare le apposite 
procedure di restore per i vari casi.
Francesco


wrote:
Premetto che la tua affermazione 'php è il linguaggio che va per la
maggiore su web' è inesatta:
http://langpop.com/
  in generale sui linguaggi di programmazione, ma
puoi scalare tranquillamente visto che php non viene di solito usato
per ambiti diversi da web
e
http://jasonkolb.com/weblog/2007/02/programming_tre.html
(i dollar per click sono principalmente alimentati da pornazzi o 'siti
personali' con campagne adclick, ce ne sono milioni)
La scelta tecnologica non è solo e soltanto fuffa, in alcuni ambienti,
dove si adottano tecnologie avanzate, e si fa quality measuring si usa
java (in qualche caso .net) per due motivi:
1) le garanzie che il prodotto offre (non è il linguaggio in sè, ma,
in ambito business, le certificazioni delle piattaforme e l'aderenza
agli 'standards' e le misure di prestazioni)
2) un mondo di applicazioni enterprise che hanno adottato con successo
(relativamente alle aspettative) una certa piattaforma.
In alcune aziende si fanno studi di mercato, si analizzano in maniera
comparativa i componenti da adottare, si forniscono le linee guida di
sviluppo per i progetti che dovranno utilizzare quelle tecnologie.
Gli utilizzi che citi tu di php su siti di intrattenimento sono esempi
che hanno lo stesso valore di un 'sitarello', con milioni di utenti,
ma nessuno mai accetterebbe di far viaggiare le transazioni economiche
su un engine php o di archiviare documenti di protocollo in un sistema
che non garantisca da qualche parte la sua robustezza.
(tra le altre cose vorrei che indicassi quali parti di google sono in
php, ma giusto per mia curiosità...)
Ripeto, non è questione di linguaggio, un 'programma' scritto male fa
acqua in java come in php, il punto, quando le scelte non sono di
'marketing' ma tecniche, è di tipo tecnologico: quanti sistemi di
persistenza conosci in php e quanti ne esistono in java?
Quali webserver certificano php per la sicurezza?
E soprattutto quante cose dovresti fare a mano per interagire con
sistemi legacy o embedded (pensa che so alla semplice firma digitale,
un lettore wireless di codici a barre all'interfaccia, con un sistema
che non comunica su tcp/ip) e chi le garantirebbe su un 'sistema' che
muove milioni di euro?
Ci sono anche molti casi di scelte 'guidate' dal partner tecnologico,
se scelgo sun o ibm ovviamente vado su java, se sono microsoft
adotto .net.
Altri di 'sprovveduti' clienti che si fidano del marketing, ma, per
mia esperienza, quest'ultima scelta avviene solo in piccole aziende o
in comparti molto limitati delle grandi.
Il cliente spesso non sa cosa vuole, ma quasi sempre sa cosa non
vuole: non avere un riferimento reale di un produttore a cui dire: "ho
speso xmila euro, fai funzionare questa cosa"
Ciao Gianmarco

 wrote:
scusa, dimenticavo anche questo
http://www.tiobe.com/index.php/content/paperinfo/tpci/
per i linguaggi di programmazione.
Ciao Gianmarco

 saprebbero a chi addossare le colpe se combinano qualche disastro.
Questo lo vedo veritiero in parte, non penso che in tutte le occasioni, 
se compri Oracle ti fai fare assistenza dalla stessa casa madre, oppure 
se utilizzi .NET, non è che sempre (diciamo quasi mai) ci si affida alla 
microsoft Italia, in genere ci si affida a fornitori e/o partner degli 
stessi, mi chiedo quest'ultimi che tipo di garanzia offrano in più 
rispetto ad una controparte che utilizzino/offrano piattaforme open.
una controparte open tipo Mysql Enterprise, se si fa affidamento sulla 
casa madre (leggi assistenza e consulenti con le palle), penso non sia 
poi tanto distante da un fornitore (non madre) di oracle.
tralasciamo il fatto che sono due prodotti non equiparabili, non mi 
sognerei mai di mettere a paragone le caratteristiche tecniche dei due.
In altri casi, appunto può essere vero nel momento in cui prendi un 
applicazione verticale, tipo SAP (la parte per PMI) rispetto ad una open 
tipo Compiere o altri.
Semmai lo scaricabarile lo fa il tipo di contratto/licenza che si firma.
Ciao

 Ciao Gianmarco
comunque ecco una risposta che condivido, non fino in fondo ma ne 
apprezzo l'analisi.

Gianmarco ha scritto:
 > Gli utilizzi che citi tu di php su siti di intrattenimento sono esempi
 > che hanno lo stesso valore di un 'sitarello', con milioni di utenti,
 > ma nessuno mai accetterebbe di far viaggiare le transazioni economiche
 > su un engine php o di archiviare documenti di protocollo in un sistema
 > che non garantisca da qualche parte la sua robustezza.
Vallo a spiegare ad Ebay allora...
 > (tra le altre cose vorrei che indicassi quali parti di google sono in
 > php, ma giusto per mia curiosità...)
 >
 > Ripeto, non è questione di linguaggio, un 'programma' scritto male fa
 > acqua in java come in php, il punto, quando le scelte non sono di
 > 'marketing' ma tecniche, è di tipo tecnologico: quanti sistemi di
 > persistenza conosci in php e quanti ne esistono in java?
 > Quali webserver certificano php per la sicurezza?
mah.. di solito le certificazioni le fanno società controllate dalle 
società a loro volta certificate...
 > E soprattutto quante cose dovresti fare a mano per interagire con
 > sistemi legacy o embedded (pensa che so alla semplice firma digitale,
 > un lettore wireless di codici a barre all'interfaccia, con un sistema
 > che non comunica su tcp/ip) e chi le garantirebbe su un 'sistema' che
 > muove milioni di euro?
Tralasciando il discorso di sistemi legacy o embedded ( se non c'è la 
piattaforma... c'è poco da fare, si deve usare altro ed è pacifico).
Mi chiedo perchè, perchè in Italia c'è questa tendenza ad insinuare il 
dubbio su ogni cosa.
Perchè utilizzare il terrorismo informatico celandosi dietro le paroline 
magiche: "e se poi dovesse succedere una cosa qualsiasi" ?
I casi spiccioli in cui mi sono trovato direttamente coinvolto in scelte 
di terrorismo informatico sono sempre scaturite da pratiche commerciali. 
Col senno di poi ho sempre avuto ragione.
D'altronde ad un ipotetico "E se poi..." tu stesso rispondi
 > "ho
 >> speso xmila euro, fai funzionare questa cosa"
Il tutto si riduce ad una questione puramente di prezzo.
Sei hai pagato tanto qualcuno, allora sei garantito, se ha usato dei 
file batch o php o 
asp.net
 poco importa, basta che ci sia qualcuno che 
si dia da fare.
Ma il discorso esula dalla validità delle piattaforme...
Massimo De Disprezzo
blog: 
www.maxdisprezzo.com

 sviluppo piuttosto che un altra
Per come la vedo io, tradizione e esperienza disponibile. Tradizione,
ti consente di poter pescare soluzioni presso chi magari le soluzioni
le ha già trovate; esperienza disponibile, ossia la quantità di persone
che una determinata tecnologia sanno usare.
Nota che non ne faccio una questione di 'bellezza tecnica', perché a me
e non solo a me il da te citato PHP non piace nemmeno un po'.
-- 
Ciao!
Luca

PaF ha scritto:

Quoto tutti e due al 200%, aggiungo solo che trovo la cosa naturale.
E' ora di finirla di considerare la parte tecnologica come un puro
dettaglio all'interno dell'intera soluzione, come pure credere che faccia
parte della realtà la possibilità di conoscere in modo approfondito le
varie tecnologie oggi sul mercato in modo di scegliere la migliora in base
al contesto, è pura utopia.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 posta elettronica....
Ahhhhhhhhhhh visto uguale :-(((((((((((
Nonostante alcuni progetti chiave *falliti* a causa di Alfresco che hanno
fatto perdere letteralmente una barca di soldi, un cliente s'è intestardito
a volere il fileserver su Alfresco. Ho cercato di spiegarglielo in tutti
i modi possibili, niente, lui vuole Alfresco! Alfresco! Alfresco!
E vabbé fatti il tuo @%$! di Alfresco, i dati sò i tuoi!!!

 che non garantisca da qualche parte la sua robustezza.
Passi per l'archiviazione, ma cosa esattamente motiva la tua affermazione
sul php?

Sentenza ha scritto:

Sai se esiste letteratura circa i progetti falliti con alfresco ?

 scentifico/embedded cosa porta alla scelta delll'archittettura?
Un trade off tra i seguenti aspetti:
1) Budget
2) Buona integrazione con eventuali piattaforme preesistenti
3) Disponibilità di skill
4) Feature della piattaforma
5) Accordi commerciali
6) Decisioni politiche
Ovviamente non nell'ordine, a seconda del progetto e delle parti in
gioco i vari punti possono avere "pesi" diversi gli uni rispetto
all'altro. Il punto 6) l'ho messo per tenere conto di scelte imposte
per ragioni non tecniche ma che impattano la decisione (es: enti
pubblici che privilegiano strumenti Open Source, o clienti privati che
hanno litigato con il commerciale di un dato marchio e quindi hanno
messo il veto a tutte le soluzioni che portano quel marchio...)
bye!

 Sai se esiste letteratura circa i progetti falliti con alfresco ?
Non ne ho idea, dopotutto non č che parliamo di progetti scientifici...

 sul php?
l'assenza di un Application Server certificato?
Ciao Gianmarco

 l'assenza di un Application Server certificato?
E adesso mi mostri esattamente quale articolo di legge nazionale,
comunitaria, internazionale, standard ISO UNI eccetera obbliga 
chiunque ad adottare application server?

 chiunque ad adottare application server?
ahahahah, il mercato vale solo per le tariffe dei consulenti?
i failure point di un web server sono anni luce distanti da quelli di
un AS certificato,  la prassi consolidata è fornire misure di
robustezza, un web server NON è un AS.
Ciao Gianmarco

 Postgrsql ecc.. (lato DB).
Due cose: l'eventuale ambiente preesistente con cui fare i conti (una
migrazione di 1000 prg. Cobol intorcinati non costa poco in tempo e
denaro); e la bravura (od ammanicamento, fai tu...) dei commerciali
della tale ditta.
Qualche volta la presenza di un prodotto specifico di particolare
valore in quell'ambito. Parlo di qualche applicativo, non del s.o.,
linguaggio,  o DB.
Qualche altra volta la necessità di avere certe prestazioni fisiche:
un mainframe ti dà qualcosa in più di Win 2003 o di Linux server,
presumibilmente.

 mani e piedi a MS che ti piaccia o no..- Nascondi testo citato
Hai detto tu stesso perchè Java tende a dominare: IBM, Sun, ed i loro
partners.......
Se MS è il diavolo, gli altri non sono mica i chierichetti ;-)

 robustezza, un web server NON è un AS.
Ma dai, e non è neanche un fuoristrada.
Nel momento in cui l'applicazione decidi di scrivertela da te, la
progetti anche come decidi te. E la sicurezza la costruisci tu.
E' più complicato che usare un AS? Certo, ma è anche più leggero,
gli AS hanno la spiacevole tendenza ad essere dei mastodonti che
moltiplicano le risorse necessarie. Non è impossibile, è una
questione di scelta, e c'è chi lo sceglie.

 questione di scelta, e c'è chi lo sceglie.
no non è questione di scelta, adottare uno standard di sicurezza
certificato o adottare la tua soluzione 'light' non è un fatto di
scelta del momento è un fatto economico e di risk management.
Un AS ha la garanzia del produttore di fare certe cose come indicato
(spesso da standard) la tua soluzione ha la tua di garanzia, e,
consentimi, non credo che alcuna azienda rischi i suoi milioni di euro
sulla la tua parola, o quella di chicché sia.
Inoltre non è vero che usare un AS richiede più risorse, se sai come
funziona, nella maggior parte dei casi, hai molti più benefici che
costi, ma qui passiamo al tema della qualità dei lavoratori e dei
progetti che è altro.
A me piace molto php, ho fatto parecchie cose anche di una certa
complessità, ma nessuno, salvo sporadici casi e per ambiti di estrema
nicchia, vuole garantire niente, è il prodotto as is, così come è, poi
da una versione all'altra decidono di smantellare e rifare metà delle
cose, tanto nessuno paga per averlo.
Chi ha il 'potere' di scegliere la soluzione artigianale lo fa o per
un fatto economico (leggi uso open source così risparmio le licenze,
ma non pagherà poi per sviluppi di qualità e quindi chili di bachi e
di patch da applicare) o perché la sua attività non ha necessità di
garanzie formali.
Ciao Gianmarco

 garanzie formali.
Pienamente d'accordo. Alla fine ciò che conta, perlomeno su sistemi dal
costo importante, è la solidità e durevolezza della struttura
organizzativa più delle qualità intrinseche dello strumento tecnico.
Per questo motivo strumenti tecnici (linguaggi, o.s., ...) validi
restano penalizzati rispetto ad altri, magari pure meno validi ma
meglio supportati nell'immediato e nel futuro prevedibile.
E qui ha molta importanza la qualità delle risorse umane messe in
campo: meglio un software fatto sì con il linguaggio di ultimissimo
grido ma da sviluppatori inesperti, o il software fatto con il
linguaggio "di mezza età" ma da gente molto esperta in esso e nella
problematica?
Io, dovendo scegliere, mi troverei quantomeno in grosso imbarazzo.

 garanzie formali.
Così come c'è chi adotta soluzioni open-source perché ritiene che 
offrano garanzie superiori rispetto alle controparti proprietarie.

 offrano garanzie superiori rispetto alle controparti proprietarie.
questa è effetto di una sbronza, non esiste un prodotto open source
che abbia una qualsiasi garanzia di manutenzione o di sviluppi nel
tempo, molti dei progetti open source si fermano a metà, vanno in
disuso o sono seppelliti dai troppi bachi...
o anche qui tu conosci un OS che ha vita >15 anni o magari anche 10
anni ed è in uso in ambiti business?
Ciao Gianmarco


Esattamente il buzzword che mi aspettavo, condito invece da un eccesso 
di ignoranza che non mi aspettavo.
Plonk!

 Plonk!
tanto per parlare di ignoranza, buzzword è femminile, usi, in
italiano, le buzzword o la buzzword.
comunque hai un buon modo di argomentare e molto educato, complimenti.
Ciao Gianmarco

Il Wed, 01 Apr 2009 13:32:38 +0200, Cammello ha scritto:
[cut]
Anche il tuo quoting non č certo degno di nota...
PaF

PaF wrote:

Chiedo venia...
Comunque, meglio sbagliare il quoting che sbagliare mestiere.