21. januar 2003 - 23:14Der er
35 kommentarer og 3 løsninger
J2EE og at sælge et produkt
Jeg sidder og er ved at lærer mig selv J2EE. Jeg har slået mig fast på følgende:
Server: JBoss IDE: Eclipse med Lomboz plugin Database: MySQL eller Mckoi
Mit spørgsmål går på om der er nogle specielle ting jeg ikke har taget hensyn til da jeg ønsker at den applikation jeg vil udvikle skal kunne sælges. Derfor vil jeg vide om jeg bare kan pakke alle de nødvendige ting med applikationen og så sælge den uden jeg skal betale for noget af ovenstående.
Jeg vil lige se lidt på de licenser og så vil jeg lade spørgsmålet her stå åbent til i morgen for at se om andre har noget at bidrage med... Men foreløbigt tak til dig arne.
jeg kom til at tænke på at du måske ikke behøver at bekymre dig så meget om licenser. Dels kan du jo måske lave programmet så du kan skifte databasen ud efter behov, så du kan benytte dig af en billigere (gratis?) database eller en professionel. Du behøver jo ikke at distribuere databasen med dit program - lidt lige som at du ikke behøver at distribuere Windows med et eget udviklet program. Hvis det er et produkt folk vil betale penge for at benytte så kan man som regel også lokke dem til at betale penge for den database og/eller applikationsserver de vil benytte. Lad mig lige agitere for EJBgen - så skulle det være ret let at distribuere dit program til forskellige applikationsservere (virker i al fald til JBoss og WebLogic).
mfalck>> Det kan der jo være noget om... Men jeg kunne så vælge at distribuere med en java database der er gratis og så kan man bare skifte den ud hvis man lyster... Men eneste mulighed jeg ser for at lave programmet uafhængigt af databasen er ODBC... Men er der da andre muligheder? Og så havde jeg tænkt mig at lave connection pool, men det bliver lidt svært hvis jeg ikke må lægge fast på en server. Men det kan man vel også bare bruge en Bean til... Altså lade en Bean styre database connectionen.
Du låser dig ikke fast, når du vælger en database. Du bruger jo jdbc til at connecte til din database, og hvis du sørger for at indlæse drivernavn og jdbc url via en konfigurations parameter, så kan du jo bare skifte database som du lyster.
Dog skal du så holde dig fra database specifikke kommandoer som fx. limit i mysql.
Jeg har selv lavet en applikation som bruger mysql, og den beskrev jeg bare, og så sørger man bare for at vedlægge et script som kan oprette de nødvendige databaser, tabeller mv.
websmith>> Klart det med jdbc driveren... Det sker når man ikke tænker før man taler :-) Og ja det med scripts til de understøttede databaser måske og så et "rent" sql script hvis man vil bruge andre.
App-server og database uafhængighed er desværre ofte lidt af et problem, fordi JNDI og CMP konfigureringen normalt kræver specielle deployment descriptorer.
Groft sagt har du 2 valgmuligheder: 1) Prøve at kode så de ikke er nødvendige, fordi default virker. 2) Lave til flere servere (evt. via et tool som kan generere til multiple servere).
Jeg mener måske mere at du kunne generere forskellige war/ear-filer til de forskellige databaser/webservere - det kræver mere arbejde fra din hånd, ganske vist, men aligevel tror jeg at man kommer længere på denne måde. Evt kan du nøjes med at bygge oven på en database (og prøve at holde dig så tæt op ad ansi-specen som muligt) og så tilrette dit program bagefter mod andre databaser.
Et helt andet alternativ er jo at gøre som MySql (firmaet, ikke db :-) ) og så lade dit program være opensource og så "nøjes" med at tjene på at sælge tjenester omkring dit program bagefter .. det er lidt mere satset - men hvem ved :-)
arne_v> Måske, men der er vel ikke noget i vejen for at man kan indlæse jdbc url, drivernavn, osv. fra en konfigurations fil, lige meget hvilken metode man bruger til at connecte til databasen, så længe at det er jdbc?
Et eller andet sted i maven på koden skal der jo alligevel laves en
Class.for("xxx").newInstance() osv..?? Går jeg ud fra, og hvis det er en string som er drivernavnet, så burde den kunne læses ind fra en .orperties fil.
arne>> Nej det er nemlig en ting man sætter op på server jo, Derfor hvis det skal kan bruges på flere forskellige server, så er det ikke muligt at benytte uden det kræver brugeropsætning, eller evt conf filer leveret med fra min side.
mfalck>> Måske man skulle overveje den med Open Source... For MySQL er udelukket at distribuere med, hvis man vil tjene penge.
Hmm.. Men hvad så kan man så ikke bare lave et installationsprogram, som spørger brugeren om hvilken driver, jdbc url osv, og så lave en web.xml eller hvad den ny hedder, og så skiften den ud i .war filen, og så derefter deployer den til serveren?
Hvis målet er at understøtte multiple databaser under JBoss, så burde man faktisk kunne lave et sådant tool der genererer en service XML som definerer data sourcen udfra bruger input.
mfalck>> Det han han også fået, men i to andre har jo også bidraget med ideer og foreslag, så i skal ikke snydes...
Jeg siger tak for indlægene og vil gå i tænkebox og kigge lidt på tingene. Vil gerne have deer ting på plads før jeg begynder at lavet for meget design...
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.