Enterprise scalabile rispetto a internet scalabile, qual è il significato e le differenze?

3

Durante la lettura delle applicazioni Java EE, da qualche parte ho visto persone che dicono che sono scalabili in azienda, sono confuso su cosa significhi realmente?

Le applicazioni web Java sono scritte principalmente e amp; adatto per la creazione di strumenti di gestione aziendale, non per i siti Web ad alto traffico del mondo di oggi, che devono essere adattati a una grande popolazione di Internet?

    
posta Rajat Gupta 22.02.2012 - 08:45
fonte

6 risposte

3

Penso che il termine "scalabile su Internet" significhi una cosa in particolare: pronta a crescere per soddisfare la crescita virale. Il sogno di ogni persona che costruisce un'applicazione internet è che toccherà i nervi e crescerà attraverso il passaparola, attraverso la passione per i suoi utenti. Twitter, Facebook, ci sono molti esempi e praticamente tutti hanno difficoltà a far crescere il loro software e infrastruttura per soddisfare la domanda. I tempi morti sono velenosi e la lezione sulla scalabilità di Internet è pronta per crescere rapidamente o essere pronta a metterla in valigia.

La scalabilità aziendale è una bestia diversa. Le aziende non crescono viralmente; ogni persona assunta in genere non va quindi a portare tre o quattro persone in più nell'organizzazione, almeno non per periodi di tempo di settimane o mesi. Tuttavia, le imprese hanno altre esigenze diverse da quelle interessanti sul Web e anche la creazione di applicazioni e il supporto delle infrastrutture per soddisfare tali esigenze è impegnativo.

Tutto ciò detto, non credo che ci sia qualcosa di inerente alla natura delle applicazioni scritte in Java che impedisce loro di raggiungere entrambi i tipi di scalabilità o di predisporle verso entrambi i tipi. Sviluppare applicazioni veramente scalabili generalmente ha più a che fare con i buoni principi architetturali e pianificare in anticipo, fin dall'inizio, per soddisfare tali esigenze di scalabilità.

    
risposta data 22.02.2012 - 16:26
fonte
2

La scalabilità aziendale è (almeno l'ho percepita in questo modo) un termine molto sfocato (come la scala di Internet). Entrambi in realtà si riferiscono allo stesso, cioè, in grado di reagire ai mutevoli requisiti, al carico e possibilmente alla semplice scalabilità orizzontale.

Are Java web applications mainly written & suitable for building enterprise management tools, not for the high traffic websites of today's world, that need to scaled to a large internet population?

Java EE non è comunemente usato per siti Web di grandi volumi. Invece, attraverso il loro modello transazionale strong combinato con un ampio supporto per la messaggistica e la disponibilità di supporto commerciale, sono una soluzione migliore per le compagnie assicurative o le banche.

Questo non significa ovviamente che non puoi scrivere siti Web scalabili con Java. Se lo desideri, devi solo assicurarti di evitare determinate parti di Java EE. Ad esempio, dovresti cercare di evitare Enterprise JavaBeans e Java Persistence 2.0 se vuoi (semplice ed economico) scalabilità.

Per fare un esempio, eBay è (o almeno è stato nel 2004) utilizzando Java con proprie implementazioni per ORM e un modello transazionale ottimista per soddisfare i loro requisiti non funzionali.

    
risposta data 22.02.2012 - 11:21
fonte
0

No! Java come .NET o anche PHP (se ben sviluppato) può fornire applicazioni scalabili per gestire molte richieste dei clienti.

Enterprise scalable si riferisce probabilmente alla capacità dei server enterprise di rispondere a tali richieste, penso che questo tipo di scalabilità non dipenda dal linguaggio, ma piuttosto hardware, DB e altri strumenti.

    
risposta data 22.02.2012 - 11:16
fonte
0

Bene, ognuno ha le sue opinioni, quindi perché non anche io.

Scala aziendale - come indicato sopra, adatta per compagnie assicurative, banche e simili - che significa molte richieste, affidabilità, transazioni (ACID), ordine delle sequenze corretto, tempestività, database coerenti, relazionali, ecc.

Scala Internet: un numero enorme di richieste, transazioni non applicate (meno ACID), nessun ordine, incoerente (a causa della ridondanza sincronizzata in modo lasco), memoria strutturata anziché database relazionali, ecc.

Potresti confrontare le differenze tra la tecnologia di scala Internet come Google App Engine e la tecnologia di scala Enterprise come EJB.

    
risposta data 22.02.2012 - 11:44
fonte
0

Le app aziendali dovrebbero essere abbastanza scalabili da consentire alle piccole e medie imprese di eseguirle sullo stesso server delle loro altre app, mentre le grandi aziende possono eseguirle su dozzine o forse centinaia di server con ampia dispersione geografica, con migliaia di utenti. Le sfide qui sono mantenere sincronizzati i dati tra data center, failover automatico e ripristino e integrazione con altri sistemi aziendali. L'integrità dei dati è un problema enorme e la progettazione delle transazioni richiede un notevole sforzo di sviluppo.

Le applicazioni su scala Internet dovrebbero essere in grado di funzionare su centinaia o migliaia di server sparsi in tutto il mondo, con centinaia di migliaia (o anche milioni) di utenti. Le sfide qui sono il routing del traffico e il mantenimento dello stato minimo. La fedeltà dei dati condivisa spesso non rappresenta un problema rilevante (se si dimentica un aggiornamento di stato non è un grosso problema) e il tempo di risposta è la metrica principale delle prestazioni.

    
risposta data 22.02.2012 - 16:31
fonte
0

Vedo risposte che suggeriscono isolamento transazionale, preferenze di lingua o altre soluzioni hardware per determinare la differenza.

Scala aziendale = sistemi progettati per l'utilizzo in dipendenti totali & |; popolazioni di clienti. Di solito meno di un paio di 100 mila utenti.

Scala Internet = sistemi progettati, o almeno pronti a gestire tutti gli altri rispetto alla popolazione utente interna.

Il banking online potrebbe essere considerato il limite della scala Internet aziendale, ma pensiamo che per un momento non valutino le transazioni non differite? Esistono alcune tecniche utilizzate nelle soluzioni di architettura tra queste, ma non esiste una regola semplice e veloce.

Servlet / JSP fa parte di Java EE, ma non esiterei a usarli per un sistema su scala internet. Al contrario, ho visto i sistemi su scala quasi internet gestiti primari nella shell Unix (oh così tabù). Vai a capire.

    
risposta data 22.02.2012 - 22:58
fonte