Cercando di costruire 2 applicazioni java. dovrebbe essere un'applicazione web-based o un'applicazione standalone?

0

La prima applicazione (basata sul Web) si troverà sul sito1 e una volta elaborate le informazioni, verrà inviata alla seconda applicazione (basata sul Web) situata nel sito2. Application2 deve essere in grado di fare la stessa cosa dell'applicazione1. Per questo motivo, ci deve essere un modo per condividere il database per mantenere i dati sincronizzati. Volevo andare sul web per queste due applicazioni, ma il problema sorge, e se Internet non funziona? Se l'applicazione1 si interrompe a causa di un blackout o della perdita di Internet, l'applicazione 2 dovrebbe essere ancora in grado di fare ciò che è necessario. Stavo pensando che il database / server sarà su Amazon EC2.

Anche se vado con un'applicazione standalone per site1 e site2, ha ancora bisogno di una sorta di connessione internet per parlare con un database / server condiviso a destra, possibilmente attraverso la connessione tcp? Per questo motivo, non vedo perché non dovrebbe essere una semplice applicazione basata sul web. Questo è il disaccordo che sto avendo con il mio team.

Voglio conoscere i pro e i contro di fare in modo che queste due applicazioni siano indipendenti o basate sul Web.

    
posta bobby 07.03.2013 - 22:09
fonte

6 risposte

1

Prima di andare sul Web o autonomamente, scopri il tuo dominio aziendale.

  • Quante volte l'app parla al server (sincronizzazione dell'area di lavoro dell'utente, recupero dei dati, aggiornamento dei dati, ecc.)
  • Con che frequenza l'utente accederà all'app (1 o 100 volte al giorno).
  • Quanto tempo passerà l'utente sull'app (5 minuti o 2 ore).

vantaggi e svantaggi di creare queste due applicazioni ...

Può esserci una lista enorme, ma qui ci sono solo pochi punti per standalone:

Pro:

  • lavoro-offline (grande vantaggio).
  • Non è necessario considerare problemi come la compatibilità tra browser.
  • Non è necessario entrare in un altro layer JEE (principio KISS)
  • Modello di sicurezza più semplice (ad esempio, non c'è bisogno di preoccuparsi di attacchi xss, ecc.).

cons:

  • accessibilità (necessario installare su macchine separate, ad esempio casa, ufficio).
  • disponibilità (non disponibile su altri dispositivi, come tablet, smartphone)
  • aggiornamento
risposta data 08.03.2013 - 20:20
fonte
0

Sembra che dovrebbe essere una singola applicazione web con più moduli basati sulla funzionalità. Gli utenti entrano in domini diversi e accedono a determinati dati in base a ruoli e privilegi. Se crei basi di codice separate, probabilmente creerai molto tempo e sforzi (e quindi denaro sprecato) dalla creazione di codice ridondante.

    
risposta data 07.03.2013 - 23:16
fonte
0

A meno che tu non stia utilizzando una specie di server proxy che può fallire, Internet sta andando giù significherebbe una partizione di rete. Poiché HTTP è su TCP, "internet down" probabilmente significa che non sei in grado di stabilire connessioni TCP tra i due nodi. Preferisco il web-based perché la porta 80 e 443 sono generalmente aperte attraverso i firewall, mentre le porte oddball possono essere un problema in alcuni ambienti.

In ogni caso, probabilmente dovrai gestire una partizione calcolando come rappresentare le tue modifiche (ad esempio ogni messaggio è una chiamata di metodo serializzata da eseguire sul nodo di destinazione). Quando si rileva una partizione (perché non è possibile stabilire una connessione di rete) si accodano i messaggi. La parte difficile sta nel rilevare che la partizione è stata eliminata e ora puoi svuotare il tuo backlog del messaggio nella destinazione.

Tuttavia, ed è qui che entra in gioco CAP, una volta che hai una partizione di rete devi scegliere tra disponibilità e consistenza. link . Questo, IMHO, è un problema più grosso e spinoso rispetto al livello di trasporto.

    
risposta data 09.03.2013 - 06:13
fonte
0

Può avere un sito web (funziona su browser) ma è ospitato sulla tua LAN (molto veloce e non dipende dalla rete)

Se disponi di un numero sufficiente di server per oggi e di un utilizzo di 2 anni in entrambe le sedi e di un buon team IT per supportare i server, questa è la strada da percorrere. Entrambe le app possono sincronizzarsi a intervalli predefiniti con il controllo degli errori per riprovare ogni 15 minuti circa quando la rete non funziona.

Stand alone significa che il codice dell'app si trova sul computer locale del client. Ciò significa che java deve essere installato su tutti i client. Tali app vengono talvolta chiamate thick client se parlano con un server centrale. Non penso che questo sia il modo per farlo a meno che le persone non lavorino sul campo sui laptop senza una buona connettività. Può essere applet o web start o stand alone.

    
risposta data 08.04.2013 - 18:32
fonte
0

... there has to be a way to share the database to keep data in sync. I wanted to go web-based for these two applications, but the issue arises, what if the internet is down? If application1 goes down due to a blackout or lost of internet, application2 should still be able to do what it needs to.

Questo sembra contraddittorio: Se i dati devono essere mantenuti sincronizzati, in particolare si desidera bloccare AppB quando non è possibile connettersi allo stesso archivio dati di AppA. In caso contrario, i dati potrebbero essere fuori sincronizzazione , ad un certo punto. Non sarebbe?

Devi chiedertelo:

  1. I dati saranno di sola lettura? In caso contrario, sarà necessario definire un modo per mantenere sincronizzati due database, anche se la connessione viene persa. Utilizzerebbe un singolo server o cluster di database per risolvere questo e soddisfare i requisiti?
  2. Voglio utilizzare i framework web per realizzare qualsiasi parte del mio progetto? È necessario o attraente?

Per essere chiari e secondo me: rendere il tuo progetto 'basato sul web' non ha nulla a che fare con la soluzione di questo, a meno che, naturalmente, non si richieda un'interazione basata sul web con il software oi dati. Penso che questa domanda sia troppo generalizzata e richieda più informazioni.

    
risposta data 08.04.2013 - 19:33
fonte
0

A causa della sicurezza, Java fornito tramite un browser non è una buona idea (TM). Sun ha avuto una serie di gravi lacune nella sicurezza che hanno portato a molte patch. Sono preoccupato abbastanza di questi problemi di sicurezza che ho VM configurazione solo per browser i due siti ho bisogno di utilizzare Java per. Quando indosso il mio cappello informatico, consiglio agli utenti di disinstallare completamente Java. La maggior parte delle persone non naviga effettivamente sui siti che lo richiedono, ma sono vulnerabili ad altri siti che contengono un payload Java malevolo.

link

Qualcos'altro da considerare è che sia iPad che Windows 8 RT non supportano affatto Java nel browser.

Se hai bisogno di andare con qualcosa consegnato tramite il browser, ti consiglio vivamente di prendere in considerazione l'idea di utilizzare un'altra tecnologia.

    
risposta data 08.04.2013 - 19:46
fonte

Leggi altre domande sui tag