Gå til innhold

Anbefalte innlegg

Hei.

 

Tenkte jeg skulle lage et java program som viser innholdet (filer/mapper) til en server. Poenget da er at filene og mappene skal vises akkurat som de gjør i et desktop OS som linux, windows etc. Finnes det et ferdig desktop som man kan bruke, eller må jeg designe alt selv med grafikk, bevegelseslyttere ol?

Lenke til kommentar
Videoannonse
Annonse

Ja, hadde tenkt å bruke swing. Hvis jeg forklarte litt dårlig så skal utseende på programmet være et skrivebord (som i linux, windows) med mapper man kan trykke på og filer man åpne/laste ned. I f.eks. JFileChooser er vel noe lignende allerede implementert for å lett kunne navigere gjennom filene på operativsystemet, men vet ikke noe om hvordan de har klart det.

 

Spørsmålet mitt er bare en del av hele ideen min til dette programmet, jeg driver nemlig å tenker på å lage et slags "desktop OS" til servere som skal ha en del funksjonalitet. Programmet skal kanskje være en applet hvor eieren av serveren kan logge seg inn (via nettleseren) på serveren sin og bruke "OS'et" som et slags ftp-program og sikkert noe annet også. Jeg har ikke fått noe særlig ned på arket, og vet ikke om det er gjennomførbart, men skal prøve meg litt fram så får vi se. Tenker jeg legger ut en detaljert beskrivelse av prosjektet her på forumet hvis jeg planlegger å gjennomføre det. Tenkte ihvertfall i første omgang å lage en "prototype" som kan vises fram, så kanskje flere blir interessert i prosjektet og vil bidra. Men som sagt, jeg bare leker litt med ideen.

Lenke til kommentar

Så du ønsker noe i nærheten av midnight commander lignende gui i ditt lille virtuelle "desktop". Jeg ville kanskje ungått å kalle det et Os, noe det tydeligvis heller ikke skal være. Men jeg er med på å skjønne hva du beskriver.

 

Hvis dette er ment som et proskjekt for å lære deg å programmere så støtter jeg det, ellers tror jeg jeg kanskje ville løst det på en annen måte over noen allerede spesifiserte protokoller.

Lenke til kommentar

Hehe, jeg vet det ikke er et OS, derfor jeg brukte "" ;) Jeg vet rett og slett ikke hva det er for noe, fordi jeg ikke har bestemt meg for hva programmet skal gjøre for noe, men det jeg er mest interessert i er å lage et desktop system som kan laste opp filer etc.

 

Grunnen til at jeg liker denne ideen er fordi jeg aldri har sett noen slike systemer som har et så "avansert" gui, og jeg har alltid hatt lyst til å ha et system på mitt eget webhotell hvor jeg kan laste opp dokumenter ol. Men du nevner at du ville løst dette på en annen måte, hva legger du i det?

 

De grunnleggende kravene til systemet er ihvertfall filbehandling på serveren via et desktop-lignende GUI. Systemet må også ligge på selve serveren i og med at det skal være tilgjengelig overalt, uten å måtte laste ned programmet på maskinen.

Endret av kjey
Lenke til kommentar

Det skal jo ikke være så vanskelig. Vil du ha autentisering? Du kan lage en enkel protokoll selv. Koble deg til server, send, en streng som f. eks "ls path", så sender serveren deg liste over alle filer og kataloger. Deretter kan du sende en streng "send filename;size" og så sier serveren "ACK" eller "NACK" avhengig av om du får lov eller ei, og får du lov, sender du filen som er size byte.

 

http://java.sun.com/docs/books/tutorial/networking/sockets/

Lenke til kommentar

Ja, skjønner, var noe i den duren jeg hadde tenkt. Det som er "vanskelig" fra mitt ståsted er hvordan jeg skal få til selve brukergrensesnittet med drag and drop osv. Men takk for hjelpen ihvertfall! Skal se hva jeg finner på. Hvis det blir noe av dette systemet skal jeg ihvertfall opprette en tråd om prosjektet for videre feedback.

 

Forresten, et spørsmål til. Siden systemet sannsynligvis skal ha annen funksjonalitet enn bare å laste opp filer osv, spørsmålet er da hva annet nyttig man kan gjøre med en server? Kan man beskytte filer for nedlastning? Kan man passordbeskytte områder? Altså hva annet ville dere sett som nyttig i et server-system?

Lenke til kommentar

Du kan selvsagt sette opp autentisering og filrettigheter og -eierskap. Hvis serveren har en liste over brukere og deres MD5/SHA1/[insert hash function]-hashede passord, kan du jo be brukeren på klienten taste inn brukernavn og passord, hashe passordet og sende opp. Dette blir jo ikke veldig sikkert, men mye sikrere enn å sende passord i klartekst. Du kan også, for å gjøre det hakket sikrere, salte passordet før hashing.

 

Serveren kan også kommunisere med det faktiske OS-et og hente filrettigheter og -eierskap derfra, men da tror jeg ikke du kan hashe passordet før du sender det. Da bør du i så tilfelle se på SSL.

 

JPasswordField er fin for å la bruker skrive inn passord!

 

Uansett tror jeg du må finne deg en helt konkret målsetting og lage deg faste mål slik at ikke prosjektet og dets grenser blir dårlig definert. Da er det lett for å ikke vite hva du skal jobbe med.

 

Og så, det aller aller aller viktigste ... Begynn med API-en, i.e. interface og javadoc (kontrakten).

Lenke til kommentar

Takk for tipsene! Jeg skal helt klart planlegge godt i forveien, men prøver å lage meg en desktop-løsning for å se at jeg ihvertfall får det til, så skal jeg starte igjen fra scratch å skrive interfacene og de grunnleggende funksjonene til systemet, og til slutt fikse GUI'et.

 

Men i sammenheng med at desktopen skal vises gjennom en web-browser (applet) så dukker det opp noen problemer... Jeg leste på sun sine sider om appleter, og der står det er en del begrensninger som en applet har. Jeg skriver opp de som hindrer i mitt tilfelle:

 

- It cannot ordinarily read or write files on the host that's executing it.

It cannot start any program on the host that's executing it.

 

Betyr dette at en applet er nytteløst, eller mener de bare at man ikke kan accessere filer osv direkte fra appleten, men at man heller må bruke socketer (kan ikke mye om det enda)? Jeg husker jeg sendte en mail til hosten av webhotellet mitt (one.com), og der spurte jeg om jeg kunne logge inn på databasen min fra et java-program på min maskin, og de svarte nei. Er det vanlig at man ikke kan håndtere filer også fra "utestående" programmer?

Endret av kjey
Lenke til kommentar
  • 2 uker senere...

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...