Efter nu på fritidsbasis, at have læst på Java i et halvt år, er jeg kommet i den situation, at skulle lave en webservice, og dette emne har jeg læst en del op på java.sun.com.
Systemet er overordnet en "arkiv-styring" hvor brugerne via. en webservice har adgang til deres arkiv, som på serveren er placeret i en database (med stor sandsynlighed MySQL).
Brugeren skal på en eller anden måde autoriseres, hvorefter brugeren skal kunne søge i deres sager og hente og gemme information i sagerne. I første omgang vil en sag blot
Umiddelbart syntes jeg dette lyder overskueligt, men det er til gengæld lidt uoverskueligt at læse artikel på artikel om teknologier jeg ikke rigtig ved om jeg for brug for.
Et sådan arkiv-styrings webservice system er jeg overbevist om, må have været lavet tusinde gange før og mange andre må have udtænkt smarte lignende systemer. Mine spørgsmål er derfor:
1. Har du nogen erfaring med at lave et sådan eller lignende system? Kan jeg evt. se noget kode eller måske blot et simplificeret eksempel? 2. Hvilke teknologier bør jeg fokusere på, sætte mig ind i og bruge til dette projekt? 3. Findes der nogen patterns som i mener jeg bør bruge i forbindelse med dette projekt?
Desuden vil jeg sætte pris på en anbefaling af en Java/webservice bog og generelt gode råd.
Jeg har noget gammelt der er lavet i access (sikkert med et vb interface). Dette system brugtes for en del år siden, men er siden blevet udskiftet med et købt system der hedder Doculive.
Jev vil foreslå at du laver et sådant system med webinterface oven på en database, dermed får du ikke brug for java, men ASP eller PHP wamt javascript
claus_w>>> WebDAV opfylder din krav punkt for punkt. Den er indbygget i mange operativsystemer, herunder Winodws og i serverenden findes Apache til håndteringen. Det eneste, du ikke umiddelbart kan få Apache til, er at hælde brugernes data i en database - kun filer.
darkstar: Jeg tror jeg må prøve at definere mine krav til systemet lidt bedre:
Der er en række (100-300) brugere som skriver en helt speciel slags rapporter. En sag er tilknyttet én ejendom og består nogen gange af én rapport og andre gange af 3 forskellige rapporter.
I systemet skal hver sag have en række oplysninger som adresse, postnr., by, ejendomsnr, kommunenr., osv. (omkring 20 forskellige oplysninger). Disse oplysninger lagres i en database. Desuden skal der til hver sag tilknyttes de udarbejde rapporter og liggende i form af filer. f.eks. pdf-, gif-, doc- og txt-format.
Via et simpelt interface skal det så være muligt for en bruger, at søge i sit eget arkiv af sager så han f.eks. nemt kan finde en gammel sag frem ud fra en søgning på f.eks. rekvirentens navn. Desuden skal det være muligt at søge i de andre brugeres sager så man kan hente en gammel rapport på en gammel sag frem, som en kollega har lavet.
Den klient som brugerne benytter skal desuden også kunne kommunikere med en Access-database samt txt-filer, som i nogen tilfælde ligger på brugerens computer.
Der er desuden er række andre krav til systemet som jeg ikke tror jeg behøver at komme ind på.
Mener du stadig at WebDAV er løsningen for mig? For så vil jeg da sætte mig rigtig ind i det, men jeg vil helst ikke bruge en masse tid på noget som jeg ikke kommer til at kunne bruge.
arne_v: I første omgang til jeg også nøjes med at fokusere på server-siden. Til klienten overvejer jeg at bruge noget #C eller VB så jeg har mulighed for at bruge nogen af de smarte windows-relaterede features f.eks. i forbindelse med kommunikationen med Access-databasen. Det er bare æreligt jeg kun har programmeret VB (ASP) én gang. Men det er en problemstilling der må vente til senere ;)
Hvis du har ressourcer til at skrive en klient i et eller andet sprog, er det bestemt muligt. Data som man normalt ville anbringe i en database, kan man så nabringe i XML-filer på serveren i stedet. WebDAV giver automatisk en masse faciliteter, som det du spørger om. Rettigheder, låsning, revisionsspor, søgning og lignende. Da det blot er filer som man lagrer, kan der i sagens natur også følge alle de billeder og andre ting med.
En særlig fordel ved f. eks. at benytte subversion er at mange kan arbejde med de samme filer på en gang. Hvis f. eks. en person retter lidt i en adresse samtidig med at en anden person tilføjer en beskrivelse, finder serveren selv ud af at flette disse oplysninger sammen på en forsvarlig måde.
Derudover vil alle filerne være direkte tilgængelige via Windows-fildeling.
En lille note: med teksten "Hvis du har ressourcer til at skrive en klient" mener jeg ikke at du skal skrive en klient, der kan snakke WebDAV, men snarere en klient som benytter et bibliotek, som implementerer WebDAV - det eneste du selv skal lave er selve brugerfladen og noget forretningslogik. Der findes WebDAV-biblioteker.
Sjovt at læse denne debat. Jeg har netop skrevet et system som ligner beskrivelsen fra claus_w (kl 13:10:44). Det er udformet som en webservice kørende under Windows 2000/XP server. System anvendes til sagsstyring af byggeprojekter og kan håndtere såvel data som filer. Både client og webservice er skrevet i Delphi 6. Data lagres som XML på serveren.
darkstar: Skal der købes licens/software for at benytte WebDAV?
jlau: Det var da pudsigt. Kan det passe jeg har læst om dit projekt i et nyhedsbrev fra bygnet.dk? Det projekt jeg beskrev, er også til byggebranchen. Det er dog noget anderledes – for bygningssagkyndige (dem der laver tilstandsrapporter og energimærker).
claus_w: Jeg har ikke kendskab til en artikel på bygnet.dk. Det drejer sig om et sagsstyringssystem skræddersyet til et dansk ingeniørfirma.
Min erfaring med webservices er at det er en fantastisk fleksibel løsning. Det kører problemfrit uanset clientens netværksopsætning - firewall eller ej, så flyder objekterne gennem port 80. Filer overføres også fint, men her er der et betydeligt overhead at betale for fleksibiliteten.
arne_v: Jo, en smule. Jeg har læst de første 4 kapitler af "The Java Web Services Tutorial" og har købt Wrox's "Beginning Java Web Services", men hvis det er i orden holder jeg spørgsmålet åbent.
Mine 3 oprindelige spørgsmål må jeg prøve at stille igen på på et senere tidspunkt ét af gangen.
Jeg kunne dog godt tænke mig at vide helt præcist hvilke teknologier jeg skal bruge og hvorfor.
Tomcat vil blive brugt som server.
Hvad jeg ellers skal bruge er stadig uklart - og jo mere jeg læser, des mere forviret bliver jeg over alle de forskellige forkortelser.
I midlertid mener du (arne_v), at jeg skal bruge "Axis toolkit" og "The Java Web Services Tutorial" bruger også Axis som SOAP engine. Den bruger desuden også Xerces2 Java Parser 2.
Forkortelser/teknologier som JAXB, JAXM, JAXP, JAXR, JAX-RPC, SAAL, WSDP, Ant, XML-RPC, WSIF, WSIL, Axis, SAX osv. roder rundt i mellem hinanden. Jeg er forviret! og alle de forskellige eksempler jeg ser bruger forskellige teknologier:(
Hvilke af disse skal jeg fokusere på? kan man overskueliggøre dem ved at gruppere dem?
Til at starte med skal min web service virke sådan: En c# applikation snakker med en java web service, som henter noget data fra en lokal MySQL database og sender det til c# applikationen.
I øjeblikket har jeg installeret "Java Web Services Developer Pack 1.1" og jeg har prøvet at bruge Ant til at "installere" en web service på Tomcat. Men burde jeg hellere bruge Axis? Har Axis toolkit alt hvad jeg skal bruge? kan jeg kombinere de to ting?
Så, hvilke slags teknologier skal jeg bruge til mit projekt? og hvad har jeg at vælge i mellem?
2) Deploy Axis web app på din servlet engine (hvis ikke du har en sådan kørende downloader og udpakker du en Tomcat)
3) Lav din klasse som er din web service
4) Hvis du kun bruger simple datatyper (og i denne sammenhæng så er String også simpel), så omdøber du filen fra .java til .jws og deployer den til AXis
Er netop startet på JWSDP og Axis, så ganske interessant læsning ...
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.