Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Come implementare il mio progetto JAVA sul web?

    Salve, sono un programmatore per applicazioni Android, quindi conosco Java ed utilizzo l'IDE Eclipse, non ho mai adoperato java per il web e quindi sono qui a chiedervi un aiuto.

    Il mio progetto necessita di utilizzare la libreria HtmlUnit che su Android fa molti capricci, allora ho pensato di realizzare qualcosa in java che dovrà girare sul web e che grazie ad HtmlUnit ogni 10 minuti estrapolerà dei dati da un sito, e li salverà in un database al quale la mia app si collegherà per leggerli.

    Ho scaricato la versione di Eclipse IDE for Java EE Developers
    Quindi in sostanza il progetto si divide in 4 fasi:

    1-realizzare un applicazione web che ripeta un ciclo ogni 10 minuti:
    Non ho idea da dove partire, non so se quello che voglio realizzare si chiama application web, application server, web service ecc...Ho bisogno di qualcosa che giri ininterrottamente sul web. Per il momento ho installato TomCat 7 su Eclipse ho creato un Dynamic Web Project e al suo interno ho inserito una servlet che esegue il codice HtmlUnit. Funziona, ma non so se sia questo il modo giusto. E non so ancora come salvare i dati letti su un database.

    2-implementare la libreria htmlunit per estrapolare i dati da un sito:

    TUTTO OK - L'unico quesito verte sulla scelta di inserire il codice di HtmlUnit all'interno di una Servlet o all'interno di qualche altro tipo di componente

    3-salvare i dati su un database:
    Conosco MYSQL ma non so come implementarlo con Java

    4-l'app android interroga il database:
    QUESTO E' IL MIO CAMPO E QUI NON HO PARTICOLARI DUBBI

    Come avete potuto notare sono profondamente confuso, non so da dove partire, grazie a tutti coloro che mi aiuteranno a comprendere come agire
    Ultima modifica di GennyAndroid; 08-04-2014 a 17:21

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,326
    Premesso che non conosco la libreria HtmlUnit, secondo me ti stai complicando troppo la vita.

    Se tutto ciò che devi fare è un'applicazione che ogni 10 minuti estrapola dati da un sito e li salva su un DB, quello che ti serve è solamente una applicazione Java desktop. Non ti serve Java EE, non ti serve una WebApplication, non ti serve un Servlet Container, non ti servono le servlet, non ti servono Application Server, non ti serve nulla di più del normalissimo JDK.

    Una WebApplication è, in soldoni, un sito. Non hai bisogno di un sito.
    Una Servlet è una componente di una WebApplication che si occupa di rispondere ad una richiesta HTTP. Non è ciò che ti serve.
    Un Servlet Container è un "server web"... una grossa applicazione dove girano le web-applications. Non è ciò che ti serve.
    Java EE è un framework che sta sopra a Java SE, che offre una miriade di componenti aggiuntivi per lo sviluppo di web-applications e applicazioni Enterprise. Non è ciò che ti serve.

    Quello che serve a te sono due cose:

    1) Una semplice applicazione che prende i dati da un sito e li salva su un DB
    2) Un DB che sia accessibile dall'esterno (da internet).

    La prima la puoi sviluppare in due modi:

    1) Una semplice applicazione che legge i dati dal sito, li salva su DB. Poi, usando lo scheduler della macchina su cui gira (che siano le "Operazioni Pianificate" di Windows, o il cron di Linux, ecc), pianifichi la sua esecuzione ogni 10 minuti.

    2) Una applicazione che sta sempre in esecuzione sulla macchina e che ogni 10 minuti (quindi, usando Timer e TimerTask di java.util) effettua la lettura dei dati dal sito e li salva sul DB.

    L'unica vera "difficoltà" è l'avere il DB accessibile da remoto. Generalmente i servizi di hosting non permettono l'accesso al DB da remoto (per ovvie questioni di sicurezza), quindi o trovi un servizio che permetta questo tipo di accesso, oppure rendi pubblica la tua macchina col tuo DB.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Innanzi tutto grazie per la tua pazienza e per essere stato così preciso, purtroppo molti punti di quello che mi hai spiegato non mi sono chiari:

    Quote Originariamente inviata da LeleFT Visualizza il messaggio
    Una applicazione che sta sempre in esecuzione sulla macchina e che ogni 10 minuti (quindi, usando Timer e TimerTask di java.util) effettua la lettura dei dati dal sito e li salva sul DB.
    Cosa intendi per applicazione? Sino ad'ora ho sempre e solo utiizzato Java per la creazione di app Android, ovvero la realizzazione finale di un file.apk, in questo caso che tipo di progetto devo aprire in eclipse? Un semplice Java Project? come lo si salva?

    Cosa intendi per macchina? Io ho bisogno che questa "macchina" giri sul web in quanto deve essere sempre in esecuzione e non solo quando il mio pc sia acceso. Tutti i dispositivi che avranno installato l'app potranno interrogare quindi il database attraverso la pagina web. E' una cattiva idea? Esistono altre soluzioni?

    Quote Originariamente inviata da LeleFT Visualizza il messaggio
    L'unica vera "difficoltà" è l'avere il DB accessibile da remoto. Generalmente i servizi di hosting non permettono l'accesso al DB da remoto (per ovvie questioni di sicurezza), quindi o trovi un servizio che permetta questo tipo di accesso, oppure rendi pubblica la tua macchina col tuo DB.
    Quando realizzavo siti web potevo interrogare il database direttamente in rete, vorrei realizzare una pagina che una volta richiamata invii degli input al database.

    Sono gia 3 giorni che per colpa della mia inesperienza nel settore perdo soltanto del tempo, se mi potresti spiegare queste ultime due cose e su come muovermi ti sarei molto grato

    Ciao.
    Ultima modifica di GennyAndroid; 09-04-2014 a 13:07

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,326
    Quote Originariamente inviata da GennyAndroid Visualizza il messaggio
    Cosa intendi per applicazione? Sino ad'ora ho sempre e solo utiizzato Java per la creazione di app Android, ovvero la realizzazione finale di un file.apk, in questo caso che tipo di progetto devo aprire in eclipse? Un semplice Java Project? come lo si salva?
    Un'applicazione è semplicemente un programma per computer.
    Microsoft Word è un'applicazione, la calcolatrice di Windows è un'applicazione, il browser è un'applicazione, ecc.
    Quindi, quando parlo di "applicazione" parlo semplicemente di "programma".
    Quindi, sì... si tratta di creare un semplice Java Project. Il "come lo si salva" è una domanda bizzarra: Eclipse salverà il progetto come meglio crede, tu dovrai semplicemente compilarlo (esattamente come fai per le App Android) ed esportarlo come Runnable JAR File (che è il tipo standard per le applicazioni Java... verrà creato un file JAR ed, eventualmente, una cartella contenente le eventuali librerie esterne). Il file JAR è ciò che la JVM avvierà quando sarà ora di mandarlo in esecuzione (esattamente come fosse un EXE per PC).

    Cosa intendi per macchina?
    Un qualunque computer... anche quello che stai usando ora per leggere questa risposta... purchè sia "sempre acceso" e collegati ad internet (tipo con una ADSL flat), se hai bisogno che il programma (quello che legge i dati dal sito e popola il DB) giri tutto il giorno e tutta la notte

    Io ho bisogno che questa "macchina" giri sul web in quanto deve essere sempre in esecuzione e non solo quando il mio pc sia acceso. Tutti i dispositivi che avranno installato l'app potranno interrogare quindi il database attraverso la pagina web. E' una cattiva idea? Esistono altre soluzioni?
    Questo complica un po' le cose perchè a te servirebbe un server.
    I servizi di hosting, generalmente, offrono solo dello spazio disco e un DB. Non permettono l'accesso alla macchina, né l'esecuzione di programmi in quella macchina. Esistono servizi, come i cloud server, che mettono a disposizione un intero server: sono "costosi" e bisogna saperli configurare affinchè diventino dei WebServer.
    Esistono anche soluzioni di hosting Java, che permettono di caricare WebApplications... in questo caso ti serve tutto l'ambiente JEE per fare quelle poche cose che farebbe una normalissima applicazione.
    Qualcuno ti potrà dire che esiste Goolgle App Engine (che non conosco), che forse può fare al caso tuo... non lo so, a me sembra sia comunque a pagamento.

    Quello che so è che tu stai cercando un servizio che solitamente viene reso a delle aziende (in housing o in cloud), che di conseguenza possono permettersi di pagarlo. Non so se esistano soluzioni di server hosting gratuite, forse anche sì. Probabilmente, comunque, sono rivolte al mondo JEE (che richiede conoscenze approfondite di Java SE, per cominciare).

    Quando realizzavo siti web potevo interrogare il database direttamente in rete, vorrei realizzare una pagina che una volta richiamata invii degli input al database.
    Qui non è molto chiaro: se mi dici che leggevi i dati dal DB interrogando una pagina (PHP o ASP o JSP) è un conto (e si tratta di un accesso INTERNO: è la pagina che accede al DB, fa le query, assembla i dati e li restituisce al client, non tu direttamente dall'esterno), se mi dici che andavi direttamente a collegarti al DB da fuori, effettuando query, è un altro paio di maniche... ora è molto difficile che qualcuno ti permetta questo accesso da fuori.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Quote Originariamente inviata da LeleFT Visualizza il messaggio
    Qualcuno ti potrà dire che esiste Goolgle App Engine (che non conosco), che forse può fare al caso tuo... non lo so, a me sembra sia comunque a pagamento.
    Io ho il "lato server" della mia app mobile su Google App Engine e sto usando l'account gratuito. Ha dei limiti orari/giornalieri (ore di processore, banda massima, numero richieste, numero query ecc ecc) ma se non hai centina/migliaia di utenti ti bastano e avanzano. Nel mio caso solo di oggi la mia servlet è stata invocata quasi 1000 volte e ha consumato il 44% del tempo di processore e il 10% della banda... e scarica diversa robetta ad ogni invocazione). Il prossimo reset dei limiti è tra 12 ore.

    Ho appena controllato tra le impostazioni e c'è la possibilità di utilizzare cron per schedulare l'esecuzione.
    Ultima modifica di Alex'87; 09-04-2014 a 21:21
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  6. #6
    Quote Originariamente inviata da LeleFT Visualizza il messaggio
    I servizi di hosting, generalmente, offrono solo dello spazio disco e un DB. Non permettono l'accesso alla macchina, né l'esecuzione di programmi in quella macchina. Esistono servizi, come i cloud server, che mettono a disposizione un intero server: sono "costosi"
    Per costosi intendi prezzi come questi http://www.hosty.it/_hosting_java.jsp#piani_java ? o prezzi ancora più alti?

    In ogni caso da domani comincio a vedere come funziona Google App Engine, grazie mille per il supporto che mi state dando

  7. #7
    sono riuscito a far funzionare mysql+servlet+tomcat adesso mi occorre eseguire diverse servlet contemporaneamente faccio un esempio:

    Servlet1 : ore 11:23 - legge dati da un sito e li salva nel database
    Servlet2 : ore 11:23 - legge dati da un altro sito e li salva nel database

    oppure:

    Servlet1 : ore 11:23 - legge dati da un sito e li salva nel database contemporaneamente la stessa servlet deve leggere anche in un altro sito e salvare i dati sullo stesso database.

    Spero di essere stato chiaro

  8. #8
    up

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.