Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista
Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista
Il nuovo top di gamma vivo punta su un comparto fotografico particolarmente articolato, con un teleobiettivo da 200 megapixel e teleconvertitori esterni capaci di arrivare a 400 mm equivalenti. Lo abbiamo provato a Tenerife, mettendo alla prova fotocamere, prestazioni, autonomia e accessori. Ecco come si è comportato.
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
Un mondo affollato e vivo, personaggi destinati a sparire a fine test e nessuno a inseguire l'oggetto giusto. Beta e stress test di World of Warcraft: Forever hanno fatto emergere un roleplay spontaneo, tra danze a Goldshire e code ordinate ai PNG
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
In tre giorni a Las Vegas Oracle ha presentato agenti che eseguono il lavoro, l'alleanza con OpenAI e un cloud aperto agli acceleratori di tutti. Ma i clienti europei chiedono garanzie prima ancora delle funzionalità
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: 12113
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: 12113
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: 12113
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: 12113
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


Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista Recensione vivo X500 Pro Max: la fotografia mobi...
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà WoW Forever: la beta è stato uno dei mome...
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA Oracle AI World 2026: in Europa prima la sovrani...
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort DS N°7 E-Tense: il SUV premium made in Melfi...
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più Recensione Samsung Galaxy Tab S12 Ultra: non chi...
Qualcomm HBC supera la validazione in la...
Tachyum avvia la procedura di fallimento...
La sonda spaziale NASA Lucy ha raggiunto...
Le GeForce RTX 5000 scarseggiano, tornan...
Raspberry Pi 5, il prezzo è ormai...
I frigoriferi dei supermercati diventano...
Le vecchie fotocamere digitali compatte ...
La Cina potrebbe rinviare il ritorno del...
Verizon non è preoccupata della c...
RDNA 5 sulle APU AMD, ma non per tutti: ...
Marvell acquisisce Lumentum per 115 mili...
La febbre dei data center fa impennare i...
ECOVACS T90S OMNI crolla a 499€ su Amazo...
In Cina i camion elettrici hanno gi&agra...
Attacchi hacker ai supermercati in Europ...
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: 04:33.


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