Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Deep Tech Revolution: così Area Science Park apre i laboratori alle startup
Deep Tech Revolution: così Area Science Park apre i laboratori alle startup
Siamo tornati nel parco tecnologico di Trieste per il kick-off del programma che mette a disposizione di cinque startup le infrastrutture di ricerca, dal sincrotrone Elettra ai laboratori di genomica e HPC. Roberto Pillon racconta il modello e la visione
HP OMEN MAX 16 con RTX 5080: potenza da desktop replacement a prezzo competitivo
HP OMEN MAX 16 con RTX 5080: potenza da desktop replacement a prezzo competitivo
HP OMEN MAX 16-ak0001nl combina RTX 5080 Laptop e Ryzen AI 9 HX 375 in un desktop replacement potente e ben raffreddato, con display 240 Hz e dotazione completa. Autonomia limitata e calibrazione non perfetta frenano l'entusiasmo, ma a 2.609 euro è tra le proposte più interessanti della categoria.
Recensione Google Pixel 10a, si migliora poco ma è sempre un'ottima scelta
Recensione Google Pixel 10a, si migliora poco ma è sempre un'ottima scelta
Google ha appena rinnovato la sua celebre serie A con il Pixel 10a, lo smartphone della serie più conveniente se consideriamo il rapporto tra costo e prestazioni. Con il chip Tensor G4, un design raffinato soprattutto sul retro e l'integrazione profonda di Gemini, il colosso di Mountain View promette un'esperienza premium a un prezzo accessibile. E il retro non ha nessuno scalino
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 27-01-2009, 15:43   #1
IngegnerCane
Junior Member
 
Iscritto dal: Jan 2009
Messaggi: 9
Quale tecnologia usare?

Ciao a tutti, ho bisogno di un aiuto. Devo fare un'applicazione client-server in cui un'utente possa far partire un'esecuzione composta da una sequenza prestabilita di programmi in fila, ma quando vogliono sia lui che gli eventuali amministratori dell'applicazione devono poter interrompere questa sequenza.
Faccio un esempio per far capire meglio: l'utente dovrà dare un file di input e cliccare sul pulsante di avvio e l'applicazione dovrà passare l'input ad un programma A che genera un output;questo output verrà dato come input ad un programma B e così via.
Il passaggio dei file ed il lancio dei programmi non dovrebbe essere un problema; solo non so come riuscire a memorizzare il processo che è in esecuzione quando è stato lanciato un programma per poterlo poi interrompere se così richiesto dall'utente.
Avevo pensato di farla tramite j2EE ma non riesco a salvare da nessuna parte un identificatore del processo lanciato, nemmeno nel database in quanto non è serializzabile. Avete per caso consigli su altre eventuali tecnologie che possano favorire applicazioni di questo genere?
IngegnerCane è offline   Rispondi citando il messaggio o parte di esso
Old 28-01-2009, 09:57   #2
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Ogni processo e' identificato da un PID, un Process IDentifier, che alla fine e' un valore numerico, in praticamente tutti i sistemi operativi.
Potresti tenere traccia dei processi mediante il loro PID.

PS: Ho un vecchio amico che si chiama Cane (di cognome), e che di mestiere e' proprio l'ingegnere.
Se sei tu, ti saluto. Se non sei tu ti saluto lo stesso.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 28-01-2009, 10:05   #3
IngegnerCane
Junior Member
 
Iscritto dal: Jan 2009
Messaggi: 9
Ma come faccio ad ottenere questo PiD? Perchè quando faccio l'esecuzione con la Runtime.getRuntime().exec(comando) mi ritorna un oggetto di tipo Process e non trovo un metodo per recuperare il suo PID..Sennò esiste un altro comando per lanciare un programma e tener traccia del PID?
IngegnerCane è offline   Rispondi citando il messaggio o parte di esso
Old 28-01-2009, 10:22   #4
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Quote:
Originariamente inviato da IngegnerCane Guarda i messaggi
Ma come faccio ad ottenere questo PiD? Perchè quando faccio l'esecuzione con la Runtime.getRuntime().exec(comando) mi ritorna un oggetto di tipo Process e non trovo un metodo per recuperare il suo PID..Sennò esiste un altro comando per lanciare un programma e tener traccia del PID?
Dipende dal sistema operativo e dal linguaggio utilizzato (che dovrebbe essere fra parentesi nel titolo del thread).
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 28-01-2009, 10:59   #5
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
Quote:
Originariamente inviato da gugoXX Guarda i messaggi
PS: Ho un vecchio amico che si chiama Cane (di cognome), e che di mestiere e' proprio l'ingegnere.
Se sei tu, ti saluto. Se non sei tu ti saluto lo stesso.
ehm... no guarda, non credo proprio che sia lui
fero86 è offline   Rispondi citando il messaggio o parte di esso
Old 28-01-2009, 11:04   #6
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
Quote:
Originariamente inviato da IngegnerCane Guarda i messaggi
Avete per caso consigli su altre eventuali tecnologie che possano favorire applicazioni di questo genere?
si, bash
in bash si tratta di un compito veramente banale, dovresti banalmente mettere tutti i processi in pipe e lanciarli senza scrivere nessun programma (per interrompere l'esecuzione ti basterebbe premere Ctrl+C o Ctrl+Z se ricordo bene).
fero86 è offline   Rispondi citando il messaggio o parte di esso
Old 28-01-2009, 11:05   #7
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da IngegnerCane Guarda i messaggi
Ma come faccio ad ottenere questo PiD? Perchè quando faccio l'esecuzione con la Runtime.getRuntime().exec(comando) mi ritorna un oggetto di tipo Process e non trovo un metodo per recuperare il suo PID..Sennò esiste un altro comando per lanciare un programma e tener traccia del PID?
Stai usando Java come linguaggio.
In questo caso il PID del processo potresti ottenerlo in questo modo:
1) lancia il tuo applicativo specificando una custom property (la puoi aggiungere da riga di comando, o se stai sviluppando in un IDE come NetBeans nella pagina delle proprietà del progetto, nella scheda "Run", nel textField "VM Option" aggiungi la stringa in grassetto):
Quote:
exec java -Dpid=$$ -jar /Applications/myApp.jar
A questo punto nel codice basta una:
Quote:
System.getProperty("pid");
Ci sono altri modi, se questo non dovesse funzionare; consulta questi link:
- How a Java Application Can Discover its Process ID (PID)
- How can I start a Java process and retain its process id?
- Get the PID
- Retrieving a VM’s PID (and more info) through Java
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 28-01-2009, 11:23   #8
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
e una volta avuto il PID basta lanciare un kill o un kill -9 per essere sicuri se sei sotto linux..
se sei sotto windows invece facendolo in C# è una cavolata così ad occhio...
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 28-01-2009, 11:49   #9
IngegnerCane
Junior Member
 
Iscritto dal: Jan 2009
Messaggi: 9
Quote:
Originariamente inviato da banryu79 Guarda i messaggi
Stai usando Java come linguaggio.
In questo caso il PID del processo potresti ottenerlo in questo modo:
1) lancia il tuo applicativo specificando una custom property (la puoi aggiungere da riga di comando, o se stai sviluppando in un IDE come NetBeans nella pagina delle proprietà del progetto, nella scheda "Run", nel textField "VM Option" aggiungi la stringa in grassetto):

exec java -Dpid=$$ -jar /Applications/myApp.jar

A questo punto nel codice basta una:

System.getProperty("pid");
Il problema è che questo modo mi sembra vada bene solo se verrà lanciato un solo programma,ma nel caso mio si tratta di un applicazione client-server con più client che possono lanciare più programmi e io volevo tenere traccia del pid di ogni processo lanciato.
Il sistema operativo usato è windows.
IngegnerCane è offline   Rispondi citando il messaggio o parte di esso
Old 28-01-2009, 11:54   #10
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da IngegnerCane Guarda i messaggi
Il problema è che questo modo mi sembra vada bene solo se verrà lanciato un solo programma,ma nel caso mio si tratta di un applicazione client-server con più client che possono lanciare più programmi e io volevo tenere traccia del pid di ogni processo lanciato.
Il sistema operativo usato è windows.
Prova a guardare gli altri link.
Tra le alternative opterei per l'uso di JNI.

Sempre che appunto tu non possa cavartela in maniera più semplice, come ti hanno suggerito sopra.
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 28-01-2009, 13:13   #11
IngegnerCane
Junior Member
 
Iscritto dal: Jan 2009
Messaggi: 9
Ma secondo voi se utilizzo invece che la J2EE i web services,mi può facilitare nel poter lanciare sequenzialmente questi programmi e poterli interrompere quando voglio?
IngegnerCane è offline   Rispondi citando il messaggio o parte di esso
Old 28-01-2009, 14:43   #12
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
visto che sei su windows...
http://msdn.microsoft.com/en-us/libr...s_members.aspx
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 28-01-2009, 15:11   #13
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
Quote:
Originariamente inviato da IngegnerCane Guarda i messaggi
Ma secondo voi se utilizzo invece che la J2EE i web services,mi può facilitare nel poter lanciare sequenzialmente questi programmi e poterli interrompere quando voglio?
non ho ancora capito perché non puoi scrivere qualche riga di C o di C++ anziché tutti sti ammassi di tecnologia di Java e .NET
fero86 è offline   Rispondi citando il messaggio o parte di esso
Old 28-01-2009, 15:39   #14
IngegnerCane
Junior Member
 
Iscritto dal: Jan 2009
Messaggi: 9
Quote:
Originariamente inviato da fero86 Guarda i messaggi
non ho ancora capito perché non puoi scrivere qualche riga di C o di C++ anziché tutti sti ammassi di tecnologia di Java e .NET
Ho provato ma su windows non riesco a scrivere il giusto codice c/c++ per lanciare un processo e recuperare il suo id,sarà che ormai è tanto ke nn lo uso.. potete darmi un aiutino?
IngegnerCane è offline   Rispondi citando il messaggio o parte di esso
Old 28-01-2009, 15:46   #15
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
Quote:
Originariamente inviato da IngegnerCane Guarda i messaggi
Ho provato ma su windows non riesco a scrivere il giusto codice c/c++ per lanciare un processo e recuperare il suo id,sarà che ormai è tanto ke nn lo uso.. potete darmi un aiutino?
hai usato questa?
http://msdn.microsoft.com/en-us/library/ms682425.aspx
il PID viene restituito nella struttura PROCESS_INFORMATION, membro dwProcessId; per attendere che un processo termini prima di far partire il successivo usa WaitForSingleObject sull'HANDLE del processo (membro hProcess della stessa struttura):
http://msdn.microsoft.com/en-us/library/ms687032.aspx
per terminare prematuramente un processo usa TerminateProcess:
http://msdn.microsoft.com/en-us/library/ms686714.aspx
ma per quelli con interfaccia grafica sarebbe meglio inviare WM_QUIT.
ricordati di chiudere gli HANDLE con CloseHandle quando non li usi piu:
http://msdn.microsoft.com/en-us/libr...11(VS.85).aspx
anche quelli dei thread primari (membro hThread della struttura).

scrivi del codice e vediamo cosa non funziona
fero86 è offline   Rispondi citando il messaggio o parte di esso
Old 28-01-2009, 15:50   #16
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
Quote:
Originariamente inviato da fero86 Guarda i messaggi
hai usato questa?
http://msdn.microsoft.com/en-us/library/ms682425.aspx
il PID viene restituito nella struttura PROCESS_INFORMATION, membro dwProcessId; per attendere che un processo termini prima di far partire il successivo usa WaitForSingleObject sull'HANDLE del processo (membro hProcess della stessa struttura):
http://msdn.microsoft.com/en-us/library/ms687032.aspx
per terminare prematuramente un processo usa TerminateProcess:
http://msdn.microsoft.com/en-us/library/ms686714.aspx
ma per quelli con interfaccia grafica sarebbe meglio inviare WM_QUIT.
ricordati di chiudere gli HANDLE con CloseHandle quando non li usi piu:
http://msdn.microsoft.com/en-us/libr...11(VS.85).aspx
anche quelli dei thread primari (membro hThread della struttura).

scrivi del codice e vediamo cosa non funziona
perchè deve spararsi sulle balle se con il C# non ci mette niente a fare tutto?
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 28-01-2009, 15:54   #17
IngegnerCane
Junior Member
 
Iscritto dal: Jan 2009
Messaggi: 9
Quote:
Originariamente inviato da ^TiGeRShArK^ Guarda i messaggi
perchè deve spararsi sulle balle se con il C# non ci mette niente a fare tutto?
Il fatto è ke il C# non l'ho mai usato e quindi dovrei iniziare a impararmelo, ed inoltre ho già una gran parte di lavoro del progetto ke devo fare (jsp,servlet,EJB) già fatti in java. Per questo cercavo se possibile di fare tutto in java o tutt'al più in c/c++ inserendolo grazie a JNI..
IngegnerCane è offline   Rispondi citando il messaggio o parte di esso
Old 28-01-2009, 16:04   #18
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da IngegnerCane Guarda i messaggi
...ed inoltre ho già una gran parte di lavoro del progetto ke devo fare (jsp,servlet,EJB) già fatti in java. Per questo cercavo se possibile di fare tutto in java o tutt'al più in c/c++ inserendolo grazie a JNI..
Guarda il terzo link che ti avevo postato, quello intitolato Get the PID, c'è tutta la soluzione interfacciata in JNI da scaricare.
Con quel materiale e un po' di studio e prove dovresti cavartela facile (il codice in se è minimale, il tempo lo spendi in funzione della tua conoscenza di JNI).
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 28-01-2009, 16:30   #19
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
Quote:
Originariamente inviato da banryu79 Guarda i messaggi
Guarda il terzo link che ti avevo postato, quello intitolato Get the PID, c'è tutta la soluzione interfacciata in JNI da scaricare.
Con quel materiale e un po' di studio e prove dovresti cavartela facile (il codice in se è minimale, il tempo lo spendi in funzione della tua conoscenza di JNI).
infatti... basta quello se vuole usare java.
Quote:
Originariamente inviato da IngegnerCane Guarda i messaggi
Il fatto è ke il C# non l'ho mai usato e quindi dovrei iniziare a impararmelo, ed inoltre ho già una gran parte di lavoro del progetto ke devo fare (jsp,servlet,EJB) già fatti in java. Per questo cercavo se possibile di fare tutto in java o tutt'al più in c/c++ inserendolo grazie a JNI..
scusa... non avevi detto che dovevi fare un'applicazione client/server?
e che c'entrano jsp, servlet ed EJB con un'applicazione client/server?
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Deep Tech Revolution: così Area Science Park apre i laboratori alle startup Deep Tech Revolution: così Area Science P...
HP OMEN MAX 16 con RTX 5080: potenza da desktop replacement a prezzo competitivo HP OMEN MAX 16 con RTX 5080: potenza da desktop ...
Recensione Google Pixel 10a, si migliora poco ma è sempre un'ottima scelta Recensione Google Pixel 10a, si migliora poco ma...
6G, da rete che trasporta dati a rete intelligente: Qualcomm accelera al MWC 2026 6G, da rete che trasporta dati a rete intelligen...
CHUWI CoreBook Air alla prova: design premium, buona autonomia e qualche compromesso CHUWI CoreBook Air alla prova: design premium, b...
Il nuovo MacBook Neo ha una memoria SSD ...
Xbox Project Helix, le prime specifiche ...
Annunci pubblicitari sulla TV quando cam...
Prezzi aumentati del 50% durante la nott...
Sconti studiati per singolo utente: Sony...
Addio alla Kia Niro EV, il crossover sar...
Apple crede nel suo iPhone Fold: la prod...
Fortnite, un nuovo listino per i pacchet...
Ecco i nuovi Sonos Play ed Era 100 SL: d...
Razer svela il futuro del gaming potenzi...
Tre robot Narwal in offerta: pulizia aut...
Gracenote denuncia OpenAI: ChatGPT addes...
Microsoft AI Tour Milano: dall'efficienz...
Asus ExpertBook Ultra: Intel Core Ultra ...
Intel presenta i processori desktop Core...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 02:40.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v