|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: May 2006
Messaggi: 35
|
[*] Discussione su possibili architetture per applicazioni medio grosse
Apro questo topic per poter fare esprimere a tutti le loro idee riguardo a delle possibili architetture software specificando ovviamente l'ambito e lo scopo dell'applicazione.
Essendo uscito dall'università poco tempo fa e non essendo ancora imbattuto in progetti di grosse dimensioni sono curioso di sentire il parere di esperti. Per esempio se volessi realizzare un'applicazione gestionale con un numero di utenti elevato cosa consigliereste? Io ho pensato a queste possibile alternative: 1) Applicazione Web. * CLIENT: BROWSER * SERVER: Servlet/Jsp oppure Asp.net o altro 2) * CLIENT: Applicazioni DESKTOP: (framework .net o java o ?) oppure Browser in base alle esigenze (Ad esempio FLEX) * SERVER: SOAP Web services che espongono una serie di funzionalità e fungono da Businnes Logic e da interfaccia verso il Database 3) * CLIENT: Applicazioni DESKTOP: (framework .net o java) * SERVER: Solo Database e la logica per interrograre il DB risiede del Client La seconda soluzione mi sembra la più scalabile anche nell'ottica che in sistema debba comunicare con altri sistemi differenti. Forse un possibili problema potrebbero essere le performace del SOAP? Ad esempio se uno dovesse scegliere la secoda sarebbe sbagliato utilizzare Java lato server per creare i Web service e il framework .net lato Windows? Scrivete pure i vostri pareri o delle altre possibili alternative. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jul 2009
Città: Varès
Messaggi: 658
|
penso che dovresti essere più chiaro su cosa vuoi realizzare...
(o forse sono io tordo che non lo capisco) un'applicazione gestionale....per cosa? gestionale per aziende ? tipo i software zucchetti ? con un numero di utenti elevato...nel senso che distribuisci su larga scala o che molti utenti accedono contemporaneamente ? perchè nel secondo caso perdo il legame con l'idea che mi ero fatto di software gestionale |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Insomma sei partito con l'idea di rifare l'ennesimo gestionale?
Un grande gestionale è un misto dei primi 2 punti. Avrai a che fare sia con web site sia con webservice e magari qualche applicativo desktop che comunque si interfaccia con i webservice. Ma è tutto molto molto complesso. Infatti non funzionano Non funzionano perchè ogni azienda ha le sue esigenze e nessun gestionale è adeguatamente adattabile alle specifiche casistiche (si magari SAP spendendo qualche milione di euro in consulenze gli fai fare quello che vuoi...) |
|
|
|
|
|
#4 | |
|
Member
Iscritto dal: Apr 2004
Messaggi: 56
|
Ciao!
Dipende dall'obiettivo, dovessi fare qualcosa che deve girare su architetture eterogenee, o con particolari requisiti di accessibilita' userei la 1) * CLIENT: BROWSER * SERVER: Servlet/Jsp oppure Asp.net o altro Nel caso di esigenze particolari come x esempio lavorare offline e sincronizzazione quando possibile, fornendo solo eventualmente la parte browser, userei la 2) * CLIENT: Applicazioni DESKTOP: (framework .net o java o ?) oppure Browser in base alle esigenze (Ad esempio FLEX) * SERVER: SOAP Web services che espongono una serie di funzionalità e fungono da Business Logic e da interfaccia verso il Database La 3 francamente non la prenderei in considerazione, ma dipende sempre anche da che cosa vuole il cliente e.. ... Quote:
Con pm+analisti+sviluppatori vari validi farei anche un nuovo progetto!! Zak |
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
Oppure mutate esigenze di business ti obbligano a cambiare fornitore del software per limiti intrinseci del gestionale e ovviamente il nuovo ti costringe alla modifica di tutte le procedure che ovviamente erano tarate per far funzionare l'azienda con il vecchio gestionale. Ho visto personalmente entrambe le casistiche. Oltretutto il gesitonale perfettamente custom è una pura utopia, sarà sempre un lieve adattamento di un software già esistente all'esigenze del cliente. Non che bisogna per forza finire nelle mani di SAP (credo che non si parta da meno di 500.000 euro solo per macchine e software, senza assistenza), però per lo meno pagando puoi sempre trovare qualcuno che ci sappia mettere le mani. Con un gestionale custom questo non succede. |
|
|
|
|
|
|
#6 | |
|
Member
Iscritto dal: Apr 2004
Messaggi: 56
|
Quote:
Certo che se tutto viene fatto come l'ultimo progetto "enterprAis" a cui ho partecipato in cui viene seguita la metodologia "spaghetti".. manco il Dio dei Programmatori riesce a capirci qualcosa senza un aiuto divino! (tutto imho) Ultima modifica di zakmckraken : 13-04-2010 alle 12:24. Motivo: dislessia portami via... |
|
|
|
|
|
|
#7 |
|
Member
Iscritto dal: May 2006
Messaggi: 35
|
Sinceramente non ho nessun progetto da realizzare, però voglio solo capire le possibili architetture.
Comunque se per esempio volessi realizzare un software aziendale generico (che permetta di gestire delle informazioni aziendali/prodotti e che lo si voglia realizzare completamente custom) e che abbia un numero elevato di utenti contemporaneamente consessi come lo organizzareste? Ad esempio se il front-end utente dovesse essere un'applicazione desktop come organizzereste il back-end? Partendo dal presupposto che non si voglia incorporare nessuna logica di businnes nei client Ad esempio all'univeristà mi avevano fatto studiare in ambito java RMI per realizzare applicazioni client/server ma forse oggi non ha più molto visto il continuo sviluppo dei web services. Ultima modifica di omniteo790 : 13-04-2010 alle 12:41. |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Jul 2009
Città: Varès
Messaggi: 658
|
io strutturerei così :
WEB SERVICE CENTRALE | | (WEB) SERVER AZIENDALE --- DATABASE /|\ / | \ CLIENT AZIENDALI in modo da avere sul server aziendale, o web server a seconda di come si realizza, l'accesso al database, altre funzionalità di connessione (se salta la connessione durante un operazione, etc...), i moduli per il prelievo di dati sensibili (cambio di valute in tempo reale, connessione con banche blablabla) in connessione con il ws, mentre i client non forniscono altro che un amichevole interfaccia di accesso ai dati |
|
|
|
|
|
#9 | |
|
Member
Iscritto dal: May 2006
Messaggi: 35
|
Quote:
Ok perfetto, quindi esporresti tramite il (WEB) SERVER AZIENDALE un numero di servizi SOAP che i diversi client potrebbero invocare? In confronto a tecnologie "like RMI" questa soluzione forse è meno efficiente ma secondo me è la più scalabile nell'ottica di un domani di dover intefacciare il proprio sistema con altri software. E nell'ottica di introdurre anche client web realizzeresti un'architettura di questo genere? APP SERVER (es: jsp) <--> (WEB - SOAP) SERVER AZIENDALE<->DATABASE /|\--------------------------------- /|\ / | \--------------------------------/ | \ CLIENT AZIENDALI (browser) CLIENT AZIENDALI (desktop) Ultima modifica di omniteo790 : 13-04-2010 alle 13:49. |
|
|
|
|
|
|
#10 | |
|
Senior Member
Iscritto dal: Jul 2009
Città: Varès
Messaggi: 658
|
Quote:
personalmente preferisco la soluzione dell'applicativo desktop perchè i browser, oggi come oggi, pur di fornire funzionalità aggiuntive, appesantiscono di molto il servizio. se poi nell'architettura della parte aziendale, strutturi l'applicazione su pattern proxy, va a finire che ottieni una struttura molto simile a una RMI su rete interna. il fatto che sia solo il server aziendale ad interfacciarsi all'esterno garantisce un leggero vantaggio in fatto di velocità ed efficienza di traffico. riguardo all'interfacciamento server-web service....io credo che la maggior funzionalità la si ottenga inserendo tutte le funzioni principali (gestione magazzino, patrimonio, etc) sul server, e la comunicazione con il web service, attraverso SOAP o altri metodi, utilizzarla solo per aggiornare i dati (conti bancari, valute, disposizioni...) tutto questo ovviamente è una mia opinione e non pretendo che sia la migliore. è solo la struttura che utilizzerei io per gestire una cosa così |
|
|
|
|
|
|
#11 | |
|
Member
Iscritto dal: May 2006
Messaggi: 35
|
Quote:
(SOAP) SERVER AZIENDALE <-----------------> DATABASE /|\ / | \ CLIENT AZIENDALI Ultima modifica di omniteo790 : 13-04-2010 alle 14:13. |
|
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Jul 2009
Città: Varès
Messaggi: 658
|
per me il server aziendale è dove risiede effettivamente il programma gestionale.
i client non fanno altro che instaurare una socket con questo e comunicare i cambiamenti di dati etc etc... se vuoi vederla così, sul client c'è soltanto la GUI per comunicare con il server. in un sw gestionale ogni cambiamento/modifica/inserimento deve essere comunicato in tempo reale, quindi è bene che il sw stesso sia uno solo, e i client accedono al server e comunicano cosa cambiare, in modo che gli altri client possano vederlo in tempo reale |
|
|
|
|
|
#13 | |
|
Member
Iscritto dal: May 2006
Messaggi: 35
|
Quote:
|
|
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Jul 2009
Città: Varès
Messaggi: 658
|
il soap lo usi quando comunichi con un web service, per cui non sai cosa ti arriva, il socket quando hai server-client ben progettati e sai come deve avvenire la comunicazione
|
|
|
|
|
|
#15 |
|
Member
Iscritto dal: May 2006
Messaggi: 35
|
Ok. Però se i web service li progetto io dovrei ottenere lo stesso risultato del socket. La soluzione socket mi sembra più efficiente ma meno scalabile non trovi?
|
|
|
|
|
|
#16 |
|
Senior Member
Iscritto dal: Jul 2009
Città: Varès
Messaggi: 658
|
un socket è come una connessione persistente su cui viaggiano oggetti...per questo non è efficace su un ws remoto.
con il soap tu mandi un oggetto o una richiesta e ottieni una risposta, senza usufruire della banda quando non stai trasferendo |
|
|
|
|
|
#17 | |
|
Member
Iscritto dal: May 2006
Messaggi: 35
|
Quote:
Mi sa che non ci intendiamo :-). Non farei una chiamata socket su un web service. I socket non li userei proprio. Esporrei in un server una serie di funzionalità tramite web service soap e li invocherei tramite chiamate SOAP/http attraverso i client. Per esempio con .net è possibile fare questo in modo automatico conoscendo solamente il wsdl di un servizio esistente. |
|
|
|
|
|
|
#18 | |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
Potresti anche usare alternative come ICE che già implementano meccanismi affidabili per la gestione distribuita di oggetti con binding per C++/C#/Java. Ovviamente devi pensare che in un'azienda non esiste una sola piattaforma e un solo linguaggio (sono ancora vivi e vegeti VB6 e ASP...), specialmente se di una certa dimensione. Perchè sicuramente verranno sviluppati sistemi di interfacciamento interno verso il gestionale, quindi è d'obbligo rimanere quanto più negli standard possibile. |
|
|
|
|
|
|
#19 | |
|
Member
Iscritto dal: May 2006
Messaggi: 35
|
Quote:
Parlando di tecnologie cosa suggeriresti? E' sbagliato pensare a java lato server side in modo tale da poter utilizzare server linux e .net come client desktop in modo tale da realizzare interfaccie standard in modo veloce? Oppure è meglio uniformare le tecnologie? Con la possibilità futura di realizzare inoltre client web (tecnologia a scelta grazie a beckend SOAP)? Ultima modifica di omniteo790 : 13-04-2010 alle 16:22. |
|
|
|
|
|
|
#20 | |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 7863
|
Quote:
Un socket, in fondo, individua una qudrupla di indirizzamento, per cui una volta instaurata la connessione, se il mio protocollo è ben studiato, potrei ridurre al minimo il transito di dati, non utili, sulla rete (riducendo il costo solo al carico elaborativo, per gli host, di mantenera persistente la connessione). Del resto anche i soap devono poggiare su protocolli di livello applicazione (come HTTP) che a loro volta non fanno altro che sfruttare, in maniera trasparente, il concetto di socket. |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:57.




















