Etantonio Varie
Welcome to the forum.
Username:
Password:
Save Password


Register
Select Language

Forgot your Password?
 
Active Topics | Active Polls | Members | Online Users | Avatar Legend | Search
Select Skin: 
 All Forums
 Ingegneria
 Informatica & Java
 Antipattern ma reggerà?
   All users can post NEW topics in this forum
   All users can reply to topics in this forum
Rating is not allowed for this topic.
 Printer Friendly
Author Previous Topic: c''è lavoro per programmatori java? Topic Next Topic: Info su Hard disk  

etantonio
Administrator




Status: offline
Member Rated:


 Posted - 05/15/2014 :  08:58:59  Show Profile  Add etantonio to Buddylist
Sono a conoscenza di una applicazione abbastanza importante e diretta a centinaia di migliaia di utenti che è sostanzialmente basata su due antipattern racchiudibili in una osservazione.

E' una web application costituita da un unico Ear,

ne consegue che:

1) non c'è una distinzione fisica tra web farm e server farm, conseguentemente potenzialmente apre grosse falle di sicurezza, ma quali effettivamente e che non possano essere arginate diversamente?

2) Un unico EAR quindi all'interno session bean e entity bean che lavorano tutti con l'interfaccia locale, anche qui, completamente fuori dai pattern tradizionali, ma in realtà la problematica della scalibilità può essere indirizzata clusterizzando quell'unico EAR.

In definitiva la domanda è, reggerà alla carica dei 100.000 utenti?

 CapoStecca 2008 & 2010 & Mutanda 2014

 Country: Italy  ~  Posts: 8976  ~  Member Since: 10/21/2005  ~  Last Visit: 03/28/2024 Alert Moderator 

iksyos
Starting Member

Status: offline

 Posted - 05/15/2014 :  12:19:49  Show Profile  Add iksyos to Buddylist
Ciao a tutti questo è il mio primo post in assoluto su questo forum e spero che dia un buon contributo alla discussione.

Inizio immediatamente con il punto 1. In realtà io non vedo un vero problema di sicurezza nella mancata separazione fisica tra web e server farm ma vedo un serio problema di scalabilità. Il mio parere è che le necessità di backend (dove vedrei solo gli EJB) e frontend (dove vedrei la sola GUI) non sono compatibili per quanto riguarda la scalabilità. Questo è il motivo principale per cui farei la divisione secondo me anche senza divisione il sistema può avere un buon grado di sicurezza.

Per quanto riguarda il punto 2 sono più preoccupato, l'uso delle interfacce locali è una palla al piede se successivamente si vuole cambiare la distribuzione del software. Basare la scalabilità solo sul fatto di potenziare il clustering è un limite ed è anti-economico.

Allo stato attuale io alla domanda "reggerà 100.000 utenti?" rispondo:
dipende da quanti soldi sono disposti a spendere .

 Country: Italy  ~  Posts: 3  ~  Member Since: 05/15/2014  ~  Last Visit: 05/23/2014 Alert Moderator  Go To Top Of Page

etantonio
Administrator




Status: offline
Member Rated:


 Posted - 05/15/2014 :  12:51:32  Show Profile  Add etantonio to Buddylist
Ciao iksyos e benvenuto,
sul punto 1) riflettendoci la problematica che vedo è quella che la macchina di web farm è aperta a tutti sul web (.. e naturalmente anche agli hacker della concorrenza) pertanto se la si separa dalla macchina di serverFarm che ha accesso hai dati si ha la possibilità di inserire tra le due un firewall che consente il traffico soltanto dalla macchina di webFarm e soltanto tramite gli ejb.


Per quanto riguarda la scalabilità di webFarm a tuo parere i carichi sono diversi? Ovvero Apache per quel che ricordo riesce a gestire grandi moli di connessioni, il dubbio riguarda il war (JSF), qui sinceramente non sò se può rappresentare un collo di bottiglia su un server come JBoss 5.


E' il primo progetto di Entity in cui incappo ed in effetti mi incuriosisce, il pattern è SessionBean stateless che richiama l'Entity, entrambi possono essere inseriti in un pool, quindi forse effettivamente dipende soltanto dalla capacità di JBoss di gestire grossi numeri.

Sono più aperto invece sul discorso delle interfacce locali, e se fosse un gran vantaggio tagliare fuori inutili lente connessioni tramite interfacce remote?

 CapoStecca 2008 & 2010 & Mutanda 2014

 Country: Italy  ~  Posts: 8976  ~  Member Since: 10/21/2005  ~  Last Visit: 03/28/2024 Alert Moderator  Go To Top Of Page

francis
Senior Member

Status: offline
Member Rated:


 Posted - 05/15/2014 :  13:13:26  Show Profile  Add francis to Buddylist
quote:
Sono a conoscenza di una applicazione abbastanza importante e diretta a centinaia di migliaia di utenti che è sostanzialmente basata su due antipattern racchiudibili in una osservazione.

E' una web application costituita da un unico Ear,

ne consegue che:

1) non c'è una distinzione fisica tra web farm e server farm, conseguentemente potenzialmente apre grosse falle di sicurezza, ma quali effettivamente e che non possano essere arginate diversamente?

2) Un unico EAR quindi all'interno session bean e entity bean che lavorano tutti con l'interfaccia locale, anche qui, completamente fuori dai pattern tradizionali, ma in realtà la problematica della scalibilità può essere indirizzata clusterizzando quell'unico EAR.

In definitiva la domanda è, reggerà alla carica dei 100.000 utenti?

Originally posted by etantonio - 05/15/2014 :  08:58:59



poni la questione per garantire i 100.000 utenti di questo sito?

basta con Pioppi, voglio le onde!

 CapoStecca 2011 & 2013 & ViceCepoStecca 2014 & Mutanda 2012

 Country: Italy  ~  Posts: 1031  ~  Member Since: 09/08/2010  ~  Last Visit: 02/15/2024 Alert Moderator  Go To Top Of Page

etantonio
Administrator




Status: offline
Member Rated:


 Posted - 05/15/2014 :  13:54:31  Show Profile  Add etantonio to Buddylist
Si francis,
ho ricevuto per il sito una proposta di gemellaggio con Facebook,
sono un pò titubante, non vorrei che ci sputt...aniamo

 CapoStecca 2008 & 2010 & Mutanda 2014

 Country: Italy  ~  Posts: 8976  ~  Member Since: 10/21/2005  ~  Last Visit: 03/28/2024 Alert Moderator  Go To Top Of Page

etantonio
Administrator




Status: offline
Member Rated:


 Posted - 05/15/2014 :  14:32:34  Show Profile  Add etantonio to Buddylist
Una interessante presentazione,
ricalca un progetto a cui ho lavorato nel 2006 ceh si vedeva lontano un km che era ben strutturato

www.jugtorino.it%2Fvqwiki%2Fjsp%2FWiki%3Faction%3Daction_view_attachment%26attachment%3DJ2EE_Guidelines.ppt&ei=pat0U8WHJM-AyQOB4ICoCg&usg=AFQjCNF5uQfAKS7c0H7S47YB_XoYlkrHBw&sig2=cxfW3m-mvsYLkzv_Jj84SA&bvm=bv.66699033,d.bGQ&cad=rja" target="_blank">http://www.google.it/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CDMQFjAA&url=http%3A%2F%2Fwww.jugtorino.it%2Fvqwiki%2Fjsp%2FWiki%3Faction%3Daction_view_attachment%26attachment%3DJ2EE_Guidelines.ppt&ei=pat0U8WHJM-AyQOB4ICoCg&usg=AFQjCNF5uQfAKS7c0H7S47YB_XoYlkrHBw&sig2=cxfW3m-mvsYLkzv_Jj84SA&bvm=bv.66699033,d.bGQ&cad=rja

 CapoStecca 2008 & 2010 & Mutanda 2014

 Country: Italy  ~  Posts: 8976  ~  Member Since: 10/21/2005  ~  Last Visit: 03/28/2024 Alert Moderator  Go To Top Of Page

corradino
Senior Member


Status: offline
Member Rated:


 Posted - 05/18/2014 :  09:39:29  Show Profile  Visit corradino's Homepage  Click to see corradino's MSN Messenger address  Add corradino to Buddylist
Sicuramente vedo i problemi di scalabilità, ma solo economici rispetto a scelte sbagliate. Se il backend dovesse richiedere molto lavoro rispetto al front devi uppare tutto ... specie se consideri che generalmente le macchine dedicate hanno specialità differenti.

Interfacce locali o remote non cambia poi molto... gli application server possono essere settati in modo da ridurre al minimo la differenza fra remoto e locale con opportuni caching.

Ancora coi 2.1 .. ma non sarà quello i problema principale?

----------------------
Tutto ciò che avete da fare è tenervi il vento alle spalle.
J. Conrad
----------------------

 ViceCapoStecca 2009 & Panettone Oro 2009 & Panettone Oro Edizione Special

 Country: Australia  ~  Posts: 1583  ~  Member Since: 03/30/2006  ~  Last Visit: 10/17/2019 Alert Moderator  Go To Top Of Page

etantonio
Administrator




Status: offline
Member Rated:


 Posted - 05/18/2014 :  11:13:24  Show Profile  Add etantonio to Buddylist
Qui Corrado apri un mio grosso dubbio,
in questo progetto ci son anche cose che partono da zero e quindi le stò facendo con ejb 3, li ho studiati un pò e sono giunto alla seguente osservazione che spero smentirete:

Tra Ejb 2.1 e 3 cambia soltanto la carrozzeria, il motore è esattamente lo stesso, in pratica per i session, MDB e Entity cambia soltanto che puoi definirli tramite annotazioni e che magari l'application server in alcuni casi da queste annotazioni deduce qualcosa che te invece con i 2.1 dovresti specificargli nel file di configurazione.

Credo che per un progetto già codificato non ha molto senso migrare ad ejb 3, il loro unico scopo credo sia semplificare la scrittura del codice, ma se il codice è già scritto ...

Per quanto riguarda la distinzione web farm/server farm, bhe, sono all'antica, una macchina che ha accesso diretto ad un db con dati sensibili non la metterei direttamente accessibile da internet.

 CapoStecca 2008 & 2010 & Mutanda 2014

 Country: Italy  ~  Posts: 8976  ~  Member Since: 10/21/2005  ~  Last Visit: 03/28/2024 Alert Moderator  Go To Top Of Page

corradino
Senior Member


Status: offline
Member Rated:


 Posted - 05/19/2014 :  08:27:32  Show Profile  Visit corradino's Homepage  Click to see corradino's MSN Messenger address  Add corradino to Buddylist
Il fatto che gli ejb 3 non debbano portarsi per forza appresso tutto, come invece fanno i 2.1 lascia molto spazio all'ottimizzazione... Sono molto più snelli, il che lascia ampi spazi agli appServer di ottimizzare.

Poi, sempre, è come li progetti, scrivi e deploy che fa la differenza.


----------------------
Tutto ciò che avete da fare è tenervi il vento alle spalle.
J. Conrad
----------------------

 ViceCapoStecca 2009 & Panettone Oro 2009 & Panettone Oro Edizione Special

 Country: Australia  ~  Posts: 1583  ~  Member Since: 03/30/2006  ~  Last Visit: 10/17/2019 Alert Moderator  Go To Top Of Page

iksyos
Starting Member

Status: offline

 Posted - 05/21/2014 :  14:18:48  Show Profile  Add iksyos to Buddylist
Tornando alla separazione tra web e server farm io non la vedo una falla seria di sicurezza. Io parto dal presupposto che, solo dal punto di vista della sicurezza, un'architettura fisica ad un livello è più sicura di una multilivello in quanto fa meno transizioni sulla rete. Entrando solo nel merito del firewall basterebbe tenere aperta solo la porta per HTTP agli utenti esterni.

Per quanto riguarda la scalabilità avere la parte web e la parte business separate avrebbe permesso di implementare logiche che permettessero di sfruttare al meglio le architetture multiprocessore. Mi spiego megli. Nell'architettura attuale da te esposta quando arriva una richiesta web questa viene elaborata da un thread che si occupa della fase di unmarshalling dei parametri, dell'elaborazione della logica business e infine del marshalling dei risultati. Se l'elaborazione business diventa lunga hai molti thread che vanno in round robin. Separando la parte business avresti la possibilità di separare il carico su due macchine in modo da avere più thread su macchine diverse che fanno poca roba e limitano il round robin.

Sulla differenza tra interfacce locali e interfacce remote mi trovo d'accordo con corradino. Mi pare di ricordare che molti application server gestiscano in automatico il rebinding da interfaccia remota a locale se si accorgono che le applicazioni stanno deployate sulla stessa macchina.

 Country: Italy  ~  Posts: 3  ~  Member Since: 05/15/2014  ~  Last Visit: 05/23/2014 Alert Moderator  Go To Top Of Page

etantonio
Administrator




Status: offline
Member Rated:


 Posted - 05/22/2014 :  22:55:35  Show Profile  Add etantonio to Buddylist
Bhe, almeno stò sfatando nella mia mente l'approccio distribuito come unica strategia di deploy ..

http://apparchguide.codeplex.com/wikipage?title=Chapter%205%20-%20Deployment%20Patterns

sinceramente non sò che tipologie di falle può sfruttare un hacker, ossia se basta solo consentire l'accesso http visto che su http passa di tutto, compresi i file, buoni o cattivi, può un file del genere attivarsi da solo, ricavarsi una connessione e trasmettere le informazioni fuori?
Bha, vabbhe, comunque in realtà forse per questa applicazione non è difficile separare il war dai jar di business logic, mi preoccupano solo un pò i 950 ejb presenti nell'unico Ear.

Confermato, Jboss ottimizza le chiamate remote che sono sulla stessa macchina, mi auguro solo che l'ottimizzazione sia banale e non onerosa come nel caso della reflection.

Insomma forse conviene aver chiaro a priori il piano di deployment e impostare le chiamate conseguentemente.

 CapoStecca 2008 & 2010 & Mutanda 2014

 Country: Italy  ~  Posts: 8976  ~  Member Since: 10/21/2005  ~  Last Visit: 03/28/2024 Alert Moderator  Go To Top Of Page

iksyos
Starting Member

Status: offline

 Posted - 05/23/2014 :  09:24:38  Show Profile  Add iksyos to Buddylist
quote:
Bhe, almeno stò sfatando nella mia mente l'approccio distribuito come unica strategia di deploy ..

http://apparchguide.codeplex.com/wikipage?title=Chapter%205%20-%20Deployment%20Patterns

sinceramente non sò che tipologie di falle può sfruttare un hacker, ossia se basta solo consentire l'accesso http visto che su http passa di tutto, compresi i file, buoni o cattivi, può un file del genere attivarsi da solo, ricavarsi una connessione e trasmettere le informazioni fuori?
Bha, vabbhe, comunque in realtà forse per questa applicazione non è difficile separare il war dai jar di business logic, mi preoccupano solo un pò i 950 ejb presenti nell'unico Ear.

Confermato, Jboss ottimizza le chiamate remote che sono sulla stessa macchina, mi auguro solo che l'ottimizzazione sia banale e non onerosa come nel caso della reflection.

Insomma forse conviene aver chiaro a priori il piano di deployment e impostare le chiamate conseguentemente.

Originally posted by etantonio - 05/22/2014 :  22:55:35



Interessante il link che hai postato. Per quanto riguarda le problematiche di sicurezza la guida OWASP è preziosissima

https://www.owasp.org/index.php/Category:OWASP_Guide_Project

 Country: Italy  ~  Posts: 3  ~  Member Since: 05/15/2014  ~  Last Visit: 05/23/2014 Alert Moderator  Go To Top Of Page

etantonio
Administrator




Status: offline
Member Rated:


 Posted - 06/09/2014 :  20:10:30  Show Profile  Add etantonio to Buddylist
L'application Server si è freezato con un carico ben inferiore alle attese ed in assenza di alcuna contromisura rispetto alla architettura originaria, ma non ho altre informazioni per arricchire l'analisi, alla luce dei discorsi qui fatti sarebbe stato almeno auspicabile avere un application server per la parte web ed uno per la business logic.

 CapoStecca 2008 & 2010 & Mutanda 2014

 Country: Italy  ~  Posts: 8976  ~  Member Since: 10/21/2005  ~  Last Visit: 03/28/2024 Alert Moderator  Go To Top Of Page
  Previous Topic: c''è lavoro per programmatori java? Topic Next Topic: Info su Hard disk  
 Printer Friendly
Jump To:
 Image Forums 2001 This page was generated in 0.8 seconds. Powered By: Snitz Forums 2000