J2EE. Katalogtjenester, JNDI og Enterprise Beans
|
|
- Vegard Knutsen
- 7 år siden
- Visninger:
Transkript
1 J2EE Katalogtjenester, JNDI og Enterprise Beans
2 Navnetjeneste Rmiregistry er en navnetjeneste Mapper et navn til en objektreferanse MittObjekt obj = (MittObjekt)Naming.lookup( rmi://tjener.no/lotto ); Poenget med en navnetjeneste er altså at man kan finne et objekt med å bruke et navn. Rmiregistret har helt klare svakheter. Blant annet må objektet være opprettet (bind) på samme maskin som rmiregistret kjører på, dette er ugunstig. Det finnes andre navnetjenester som kan brukes i stedet.
3 Katalogtjeneste En katalogtjeneste kan sammenliknes med en navnetjeneste Forskjellen ligger i at objektene kan ha flere verdier knyttet mot seg. For eksempel bruker katalogtjeneste til å holde styr på ansatte. Bruker en LDAP-tjener Skal finne ansatte ved AITel som sitter i 3.etg. ldap://hist.no/enhet=aitel, etg=3 Her må det selvsagt være lagt inn felter med navn enhet og etg.
4 Distribuert navnetjeneste; DNS Domain Name System Eksempel på en distribuert og replikert navnetjeneste Distribuert => systemet er spredd over flere tjenere faktisk tjenere over hele verden viktig for skalerbarhet og lagringskapasitet endringer gjøres lokalt (for eksempel ved AITeL) Replikert Det finnes minst to like DNS-tjenere på hvert nivå. En kan feile uten at systemet bryter sammen.
5 root Lag 1 COM DNS ORG DNS 2 NO DNS andre domener Lag NTNU DNS 4 5 HIST DNS Lag 3 Nettleser 6 AITeL DNS Lag 4 7 AITEL's maskiner Web-tjener: /fag/index.php
6 Java Naming and Directory Interface Dette er et Java-bibliotek som kan brukes som grensesnitt mot ulike navne/katalogtjenester. Analogt med JDBC Drivere/Service Providers plugges i nederste lag Dns Active Directory Filsystemet NDS Osv. Se lenke leksjon 7 for hvor få tak i drivere JNDI
7 JNDI mot filsystemet. import javax.naming.*; import javax.naming.directory.*; import java.util.*; import java.io.*; public class LosnTestFilSystem{ public static void main(string args[]){ try{ Hashtable env = new Hashtable(); //vi bestemmer nå hvilken driver (service provider) som skal brukes //her bruker vi driveren for filsystemet env.put(context.initial_context_factory, "com.sun.jndi.fscontext.fscontextfactory"); //vi bestemmer oppstartspunktet for oppslag i katalogtjenesten //her blir det file:/ da det er filsystemet vi skal bruke. env.put(context.provider_url,"file:/"); Context context = new InitialContext(env); File fil = (File)context.lookup("c:/WINDOWS/"); catch(exception e){ System.out.println(e);
8 Databaser I J2EE bruker man DataSource-objekter til å ta kontakt med en database. DataSource-objekter inneholder flere databaseoppkoblinger. Oppkoblingene (Connection) deles mellom klientene! Lurt fordi å lage oppkoblinger er tidkrevende Mange DBMS har lisens pr. antall samtidige brukere. DataSource-objektet bindes i en katalogtjeneste slik at man kan finne tak i det. DataSource-objektet vet altså hvilken driver som må brukes mot databasen og oppretter et gitt antall oppkoblinger
9 Bruk av DataSource-objekter DataSource-objekt Connection-objekter Oppkoblinger... Database Klientkode: DataSource ds =...;//Bruk JNDI for å finne objektet Connection con = ds.getconnection();//låner et av Connection-objektene //Gjør databasekall... con.close(); //Gir Connection-objektet tilbake til DataSource-objektet
10 J2EE Java 2 Enterprise Edition tillegg til J2SE Inneholder biblioteker for hovedsakelig tjenerprogrammering. Mail API Det viktigste med J2EE er at også er et rammeverk for å lage komponenter Enterprise JavaBeans Hjelper utviklere når det er snakk om store og krevende applikasjoner (tjenerapplikasjoner)
11 Gjenbruk av kode og komponetbasert utvikling Problemer ved gjenbruk av kode (i ulike sammenhenger) Laget kode for et DB-system => vil nå bruke et annet DBsystem. Reglene for systemet endrer seg. I utgangspunktet skal Administrator kunne kalle metode A Vanlige bruker metode B Systemet skal nå brukes i en annen sammenheng der vanlige brukere også skal kalle metode A. Systemet ble laget for 100 brukere. Nå er det 200 og systemet har blitt tregt og ustabilt. Gjenbruk av kode er vanskelig uten et ordentlig rammeverk for hvordan det skal gjøres! Enterprise JavaBeans (EJB) er komponenter som utvikles i forhold til en gitt standard. EJB en skal løse et gitt delproblem Skal kunne smettes inn i et annet system Kjøp salg av ferdigtestede komponenter.
12 Applikasjonstjener/Container Tilbyr tjenester til komponentene Kommunikasjon mot database, skriver ingen databasekode selv Sjekker hvem brukeren er og hvilke rettigheter brukeren har. Klusterløsning med flere applikasjonstjenere. EJB en blir dermed spredd på flere maskiner => skalerbarhet. Hvordan kan Containeren vite hvilke brukere som skal ha rettigheter til metode A? Man lager en XML-fil, kalt deployment descriptor, som beskriver dette. Containeren sjekker i denne fila om brukeren har rettighet. Enkelt å endre rettigheter! Ingen endring i kode. Ansvar for en del oppgaver flyttes fra programmereren til Containeren/tjeneren! Komponentene EJB ene skal kunne legges i hvilken som helst applikasjonstjener.
13 RMI og interface... KlientImpl.java int tall = obj.henttall();... Tjener.java public interface Tjener{... public int tall() throws RemoteException;... Klientens "syn" TjenerImpl.java public int henttall() throws RemoteExcpetion { return 10;
14 Remote-interfacet til en EJB Lager interface på samme måte som for RMI (fjerninterface). Vi har altså en implementsjonsklasse og tilhørende interface La oss se på EJB en HelloWord Den skal ha en metode som returnerer en streng. Remote-interfacet blir slik: Remoteinterface import javax.ejb.*; import java.rmi.remoteexception; public interface HelloWorld extends EJBObject{ public String gethelloworldstring() throws RemoteException;
15 EJB-implementasjonsklasse import javax.ejb.*; public class HelloWorldBean implements SessionBean{ private String value="helloworldbean says hello"; public void ejbcreate(){ log("ejbactivate()"); Merk! Hiver ikke RemoteException public String gethelloworldstring(){ return value; public void ejbremove(){ log("ejbremove()"); /*************************************************************/ //brukes for å lette endring av utskriftsrutiner... private void log(string s){ System.out.println("HelloWorldBean: " + s);
16 EJB-koden forts. /* * metoder som ikke er av interesse foreløpig, men ligger i SessionBean-interfacet */ public void ejbactivate(){ log("ejbactivate()"); public void ejbpassivate(){ log("ejbpassivate()"); public void setsessioncontext(sessioncontext con){ log("setsessioncontext()"); Merk at metodene ikke er gjort synchronized. Det er containeren sin oppgave å sørge for at flerbrukerproblematikk ikke blir et problem.
17 Implementasjons-objekte HelloWorld Klient Container //bruk JNDI til å finne fjernobjekt //(se omtale home-objektet) //kaller en fjernmetode på EJB-objektet String str = hello.gethelloworldstring(); HelloWorldBean HelloWorldBean HelloWorldBean EJBObject (for HelloWorld) EJBObject (for HelloWorld)
18 EJB-objektet Ikke et objekt av implementasjonsklassen!!! Et objekt som applikasjonstjeneren lager på grunnlag av Remote-interfacet Fjernmetoden gethellowordstring() ligger altså i dette objektet. Alle kall til implementasjonsobjektet går via dette EJB-objektet!!! Implementasjonen av gethelloworldstring() ligger i implementasjonsobjektet, men dette er en lokal metode. EJB-objektet er en del av Containeren og det er her (sannsynligvis) at klientkontroll o.l skjer (på grunnlag av innholdet i XML-filen).
19 Opprettelsen av implementasjonsobjekter I RMI ville vi gjort HelloWorld hello = new HelloWorldBean();//oppretter tjenerobjektet Naming.rebind(hello, bønna );//objektet tilgjengelig via RMI-registret Klient gjør så lookup() Når vi bruker Tilstandsløse Session Beans (HelloWorld) så er det applikasjonstjeneren sin oppgave å tilby til klientene et passe antall objekter. Har en pool av objekter Ikke noe problem da alt de gjør er å returnere en streng. Klienten må imidlertid kunne gi beskjed om når det trenger en EJB å jobbe mot Containeren vil da returnere referansen til et eksiterende objekt eller opprette et nytt.
20 Home-interfacet til en EJB import javax.ejb.*; import java.rmi.remoteexception; public interface HelloWorldHome extends EJBHome{ public HelloWorld create() throws CreateException, RemoteException; Home-interfacet beskriver en/flere fjernmetoder som klienten skal kunne kalle. Klienten vil kalle create() og vil da få returnert en referanse til et EJB-objekt som man så kommuniserer med. Applikasjonstjeneren vil i det man legger ut en J2EE-applikasjon på tjeneren sørge for å opprette et Home-objekt for EJB en. Dette objektet får et JNDInavn som klienten kan bruke. Ved å kalle create() på home-objektet får man en referanse til et EJB-objekt.
21 Fullstendig skisse Klient Container //gjør JNDI-lookup for å finne home-objektet //dette må castes til riktig interface HelloWorld hello = home.create(); HelloWorldBean String str = hello.gethelloworldstring(); 5 HelloWorldHomeobjekt HelloWorldBean 6 4 EJBObject (for HelloWorld) HelloWorldBean EJBObject (for HelloWorld)
22 import javax.ejb.*; import javax.naming.*; public class HelloWorldClient{ public static void main(string args[]){ try{ //bruker default navnetjeneste = CORBA sin => brukes for j2ee Context context = new InitialContext(); //gjør lookup og finn home-objektet til EJB en Object objref = context.lookup("hello"); //caster til riktig interface altså vårt interface til home-objektet HelloWorldHome home = (HelloWorldHome) javax.rmi.portableremoteobject.narrow(objref, HelloWorldHome.class); //la oss finne et EJB-objekt HelloWorld hello = home.create(); String streng = hello.gethelloworldstring(); System.out.println(streng); catch(exception e){ System.out.println(e);
23 Samling av tråder En EJB består av implementasjonsklassen, Remote-interface, Home-interface og minst en XML-fil, også kalt deployment descriptor (dd). (Det kan også være andre (lokale) interface til en EJB (se kap. 3 i boka)). Disse delene hører sammen og pakkes i en Jar-fil (Vi skal bruke verktøyet deploytool for dette). For å lage en applikasjon bestående av flere EJB er og også nødvendige klienter lager vi en Ear-fil. Denne vil da inneholde en flere EJB Jar-filer m.m. Det vil også finnes en XML-fil (dd) som beskriver JNDI-navn til EJB ene osv. Ear-filen lages ved bruk av deploytool. Deploytool brukes også for å legge applikasjonen ut på applikasjonstjeneren. Vi skal bruke tjeneren j2ee.
24 Oppskrift for kjøring av app Start applikasjonstjeneren ved å skrive j2ee verbose Start deploytool ved å skrive deploytool Sett sammen applikasjonen eller åpne en eksisterende Ear-fil Trykk på deploy For å kjøre klienten skriv set APPCPATH=navnPåKlientJarFil.jar runclient -client navnpåearfil.ear name navnpåklientklassen -textauth runclient er en batch-fil som sørger for å kjøre klienten og å finne i nødvendige klasser som klienten trenger (j2ee.jar m.fl). Mulig å kjøre klienten direkte med java navnpåklient, men du må da sørge for at alle klasser er tilgjengelig. Se J2EE-leksjon 7 for hvordan klienten kan kjøres på en annen maskin enn tjeneren. Se J2EE-leksjon 8 kap. 3 for hvordan bruke deploytool
J2EE og distribuerte systemer Leksjon 8: Oppbygning av J2EE-applikasjoner
J2EE og distribuerte systemer Leksjon 8: Oppbygning av J2EE-applikasjoner Leksjonen er forfatters eiendom. Som kursdeltaker kan du fritt bruke leksjonen til eget personlige bruk. Kursdeltakere som ønsker
DetaljerJ2EE og distribuerte systemer Leksjon 7: Installasjon av applikasjonstjener og JNDI
J2EE og distribuerte systemer Leksjon 7: Installasjon av applikasjonstjener og JNDI Leksjonen er forfatters eiendom. Som kursdeltaker kan du fritt bruke leksjonen til eget personlige bruk. Kursdeltakere
DetaljerRepetisjon J2EE. Fullstendig skisse. JNDI og EJB. Session Beans Entity Beans (BMP)
J2EE Session Beans Entity Beans (BMP) Repetisjon TLSB (tilsandsløse Session Beans). Husk: Remote-interface => EJB-objekt gethelloworldstring() Home-interface => home-objekt create() Implementasjonsklasse
DetaljerJ2EE. CMP Entity Beans, Transaksjoner, JSP
J2EE CMP Entity Beans, Transaksjoner, JSP CMP Entity Beans Container Managed Persistence Container sin oppgave å lagre innholdet i EJB til varig lager (typisk DB). Implementasjonsklassen lages abstrakt.
DetaljerJ2EE og distribuerte systemer Leksjon 9: Session Beans
J2EE og distribuerte systemer Leksjon 9: Session Beans Leksjonen er forfatters eiendom. Som kursdeltaker kan du fritt bruke leksjonen til eget personlige bruk. Kursdeltakere som ønsker å bruke leksjonene
DetaljerJ2EE og distribuerte systemer Leksjon 10: Entity Beans (BMP)
J2EE og distribuerte systemer Leksjon 10: Entity Beans (BMP) Leksjonen er forfatters eiendom. Som kursdeltaker kan du fritt bruke leksjonen til eget personlige bruk. Kursdeltakere som ønsker å bruke leksjonene
DetaljerLøsningsskisse, eksamen J2EE og distribuerte systemer 19.mai 2004
Løsningsskisse, eksamen J2EE og distribuerte systemer 19.mai 2004 Oppgave 1 RMI-tjenerobjekt (databasewrapper) A Sentral tjenermaskin med database, RMi-register og RMI-tjenerprogram vis kart gjør bestilling
DetaljerJ2EE og distribuerte systemer Leksjon 11: Entity Beans (CMP)
J2EE og distribuerte systemer Leksjon 11: Entity Beans (CMP) Leksjonen er forfatters eiendom. Som kursdeltaker kan du fritt bruke leksjonen til eget personlige bruk. Kursdeltakere som ønsker å bruke leksjonene
DetaljerHØGSKOLEN I SØR-TRØNDELAG
HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring Kandidatnr: Eksamensdato: 10.desember 2008 Varighet: 0900 1200 Fagnummer: Fagnavn: LO346D Java EE og distribuerte systemer Klasse(r): NETT
DetaljerJava RMI (Remote Method Invocation) Gruppe 9: Ivar Steien Rasmussen Tom Anders Dalseng Andreas Petlund
Java RMI (Remote Method Invocation) Gruppe 9: Ivar Steien Rasmussen Tom Anders Dalseng Andreas Petlund Antagelser og forutsetninger Implementasjonseksemplet kompileres og kjøres på Java SDK 1.4.2 Dokumentasjon
DetaljerJava RMI. Introduksjon. Markus Foss Hans-Gunnar Vold
Java RMI Markus Foss Hans-Gunnar Vold Introduksjon Java Remote Method Invocation Tillater metodekall mellom Java virituelle maskiner Introdusert i Java 1.02 Javas svar på RPC, men er objekt orientert,
DetaljerKapittel 13 Advanced Hypertext Implementation. Martin Lie Ole Kristian Heggøy
Kapittel 13 Advanced Hypertext Implementation Martin Lie Ole Kristian Heggøy 08.11.04 Forbedring av arkitektur Problem med alt i ett -løsning: Spredning av forretningslogikk. Avhengighet mellom presentasjonssider
DetaljerHentet fra Suns Totorial:
Sun s Hello-eksempel Hentet fra Suns Totorial: http://java.sun.com/j2se/1.4.2/docs/guide/idl/gshome.html Andre nyttige URIer: Java IDL documentation: http://java.sun.com/j2se/1.4.2/docs/guide/idl/index.html
DetaljerCORBA Component Model (CCM)
CORBA Component Model (CCM) INF5040 Høst 2005 Erlend Birkedal Jan Erik Johnsen Tore Ottersen Løkkeberg Denne presentasjonen CORBA Svakheter ved CORBA Object Model Komponenter CORBA Component Model Hva
DetaljerDistributed Component Object Model. Utvikling av distribuerte applikasjoner. Utvidelse av COM for støtte av distribuerte objekter
DCOM Distributed Component Object Model Almir Delkic og Frank Jensen Institutt for Informatikk, Universitetet i Oslo, oktober 2003 Introduksjon Utvikling av distribuerte applikasjoner Utvidelse av COM
DetaljerStein Gjessing. Institutt for informatikk. Universitetet i Oslo. Institutt for informatikk
INF1010 11. mai 2017 Monitorer med kritiske regioner og passive venting innbygget i Java - Kommunikasjon mellom prosesser i Java (Ikke pensum i INF1010) Stein Gjessing Universitetet i Oslo 1 Repetisjon:
DetaljerOOT Seminar H-97 CORBA. Praktisk del
OOT Seminar H-97 CORBA Praktisk del Valg av ORB implementasjon Har valgt å bruke Visigenic sin ORB implementsjon ORB en er 100% Java kodet Bygger på OMG sin IDL to Java language mapping fra Jun 97 Gratis
DetaljerJSP - 2. Fra sist. Hvordan fungerer web? Tjenerside script HTML. Installasjon av Web-tjener Et enkelt JSP-script. Ønsker dynamiske nettsider:
Fra sist JSP - 2 Installasjon av Web-tjener Et enkelt JSP-script HTML statisk Forms Tags Ønsker dynamiske nettsider: Klientside-script/programmering Javascript, vbscript, applets Tjenerside-script/programmering
DetaljerImplementering av caching ved hjelp av Spring. Christian Vestøl 27.04.06
Implementering av caching ved hjelp av Spring Christian Vestøl 27.04.06 Agenda Kort introduksjon til Spring med Spring Praktiske eksempler Forskjellige rammeverk for caching April 2006 2 Kort om Spring
DetaljerLøsningsforslag Test 2
Løsningsforslag Test 2 Oppgave 1.1: Interface definerer et grensesnitt som kan implementeres av flere klasser. Dette gir en standardisert måte å kommunisere med objekter av en eller flere relaterte klasser.
DetaljerKapittel 9. Distribusjon. Fjernbruker. Tjenermaskin LAN WAN. Nærbruker. Figur 9-1: En enkel klient/tjener distribusjon
Kapittel 9 Distribusjon Tjenermaskin Fjernbruker LAN Nærbruker WAN Figur 9-1: En enkel klient/tjener distribusjon 195 Tjenermaskin Fjernbruker LAN Replikert tjener Nærbruker WAN Figur 9-2: Klient/tjener-konfigurasjon
DetaljerVideregående programmering 6
Videregående programmering 6 1. Feilkontroll i klasser uten unntaksobjekter Klasser skal lages sikre. Argumentverdier skal kontrolleres, og eventuelle feil skal rapporteres til klienten. I praksis har
DetaljerEksekveringsrekkefølgen (del 1) Oppgave 1. Eksekveringsrekkefølgen (del 2) Kommentar til oppgave 1. } // class Bolighus
// class Bygning Oppgave 1 System.out.println( Bolighus ); // class Bolighus Hva blir utskriften fra dette programmet? class Blokk extends Bolighus{ // class Blokk IN105subclassesII-1 Eksekveringsrekkefølgen
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF1010 Objektorientert programmering Dato: 9. juni 2016 Tid for eksamen: 09.00 15.00 (6 timer) Oppgavesettet er på 7 sider.
DetaljerINF5120 Oblig 1c4 - Gruppe 19
INF5120 Oblig 1c4 - Gruppe 19 Berge, Kristian, Trond og Fredrik Mapping av domenemodell mot EJB/WEB modell Teknologispesifikke valg PIM Class Model 1 PIM Service Model PIM class model PIM service model
DetaljerINF1010, 15. januar 2014 2. time. Parametriserte klasser (generiske klasser) Stein Gjessing Inst. for Informatikk Universitetet i Oslo
INF1010, 15. januar 2014 2. time Parametriserte klasser (generiske klasser) Stein Gjessing Inst. for Informatikk Universitetet i Oslo Repetisjon fra gamle dager: Metoder med parametre En metode uten parameter:
DetaljerCORBA & Java RMI & J2EE & CORBA CCM OMG & CORBA
CORBA & Java RMI & J2EE & CORBA CCM IN-ODP høst 2001 foreleser: Frank Eliassen Frank Eliassen, Simula RL &Ifi/UiO 1 OMG & CORBA Object Mangement Group (OMG): non-profit organisasjon med over 800 medlemsorganisasjoner
Detaljerimport java.io.*; import java.util.*; import javagently.text;
//-------------------------------------------------------- // // Fil: Oppg1.java - // løser oppgave 1 i eksamensettet for in105 - v99 // //-------------------------------------------------------- import
DetaljerEksamen i Internetteknologi Fagkode: ITE1526
Datateknikk Side 1 av 8 Eksamen i Internetteknologi Fagkode: ITE1526 Tid: Mandag, 23.05.05, 9:00-12:00 Tillatte hjelpemidler: Alle trykte og skrevne hjelpemidler tillatt. Eksamen består av 3 oppgaver og
DetaljerTOD063 Datastrukturer og algoritmer
TOD063 Datastrukturer og algoritmer Øving : 3 Utlevert : Uke 7 Innleveringsfrist : 26. februar 2010 Klasse : 1 Data og 1 Informasjonsteknologi Gruppearbeid: 2-3 personer pr. gruppe. Oppgave 1 Vi skal lage
DetaljerInstallasjonsveiledning
Installasjonsveiledning Magne Rodem og Jan-Erik Strøm 18. juni 2006 Innhold 1 Installasjon av Web Service 3 1.1 Krav........................................... 3 1.2 Installasjon av Sun Java System Application
DetaljerJavaServer Pages (JSP)
JavaServer Pages (JSP) Forelesning 1 Klient/tjener-systemer, installasjon av tjener, og intro til JSP. Statisk Web = HTML Overskrift
Detaljer1. NetBeans IDE: Lage en enkel mobilapplikasjon
Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag NetBeans IDE: Lage en enkel mobilapplikasjon Mildrid Ljosland/Lene Hoff 09.09.2008 Lærestoffet er utviklet for faget SO350D J2ME for programmering
DetaljerINF1010 våren 2018 tirsdag 23. januar
INF1010 våren 2018 tirsdag 23. januar I/O og litt om bruk av unntak i Java Stein Gjessing Lesing fra terminal og fil navn: mininn Bruk Scanner: Scanner mininn = new Scanner(); Type: Scanner boolean
DetaljerINF1010, 21. februar Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo
INF1010, 21. februar 2013 Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo Ikke noe nytt her From the Java language specification (version 6): 14.14.2
DetaljerÅ lese tall fra en fil, klassen Scanner
Å lese tall fra en fil, klassen Scanner 1. Et Scanner-objekt kan knyttes til et strømobjekt eller til en streng. 2. Kan skanne teksten etter data av ulike typer. 3. Kan kun skanne framover i teksten. Vis
DetaljerKapittel 9: Sortering og søking Kort versjon
Kapittel 9: Sortering og søking Kort versjon Redigert av: Khalid Azim Mughal (khalid@ii.uib.no) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen
DetaljerUNIVERSITETET I OSLO
Bokmål UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF1000 Grunnkurs i objektorientert programmering Eksamensdag: Fredag 4. desember 2015 Tid for eksamen: 14.30 (4 timer)
Detaljer2. Java-interface og RMI.
Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag 2. Java-interface og RMI. Else Lervik 17.09.2008 Lærestoffet er utviklet for faget LO346D Java EE og distribuerte systemer 2. Java-interface
DetaljerKomponentarkitekturer
Komponentarkitekturer INF 5040 høst 2004 foreleser: Frank Eliassen Frank Eliassen, SRL & Ifi/UiO 1 En historie om mellomvare!første generasjons mellomvare " Utelukkende basert på klient-tjerner modellen
DetaljerINF1010 våren 2019 Onsdag 30. januar. Mer om unntak i Java (med litt repetisjon av I/O først)
INF1010 våren 2019 Onsdag 30. januar Mer om unntak i Java (med litt repetisjon av I/O først) Stein Gjessing Lesing fra terminal og fil navn: mininn Bruk Scanner: Scanner mininn = new Scanner(); Type:
DetaljerINF 1010, vår 2005 Løsningsforslag uke 11
INF 1010, vår 2005 uke 11 Anders Brunland 11. april 2005 Oppgave 1 Oppgave 1 i kapittel 19, Rett på Java Er følgende metoder lovlige? Hovorfor/hvorfor ikke? a) void koknverter ( int mnd ) { konverterdato
DetaljerHva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; }
Hva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; Hva skrives ut på skjermen når følgende kode utføres? int [] tallene =
DetaljerINF1010. Grensesnittet Comparable<T>
INF1010 21. februar 2013 Grensesnittet Comparable Stein Michael Storleer Institutt for Informatikk Universitetet i Oslo Interface med parametre interface Utkledd { // T er klassen jeg er utkledd
DetaljerHittil har programmene kommunisert med omverden via tastatur og skjerm Ønskelig at data kan leve fra en kjøring til neste
Datafiler og serialisering Tekstfiler Scanner klassen Binær overføring av data Direkte tilgang til filinnholdet Serialisering LC191D Videregående programmering Semesterplan: http://aitel.hist.no/fag/vprg/index_lc191d.php
DetaljerArray&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister
Dagens tema Lister og generiske klasser, del I Array-er og ArrayList (Big Java 6.1 & 6.8) Ulike lagringsformer (Collection) i Java (Big Java 15.1) Klasser med typeparametre («generiske klasser») (Big Java
DetaljerKomponentarkitekturer. En historie om mellomvare
Komponentarkitekturer INF 5040 høst 2003 foreleser: Frank Eliassen Frank Eliassen, SRL & Ifi/UiO 1 En historie om mellomvare Første generasjons mellomvare Utelukkende basert på klient-tjerner modellen
DetaljerTilstandsmaskiner med UML og Java
Tilstandsmaskiner med UML og Java DAT2160 DAT2160 Høst Høst 2002 2002 Tilstandsmaskiner Tilstandsmaskiner med med UML UML og og Java Java Hva er en (endelig) tilstandsmaskin? En tilstandsmaskin kan sees
DetaljerRepitisjonskurs. Arv, Subklasser og Grensesnitt
Repitisjonskurs Arv, Subklasser og Grensesnitt Subklasser Klasser i OO-programmering representerer typer av objekter som deler et sett med egenskaper. En subklasse har egenskapene til en klasse + ett sett
DetaljerINF Notater. Veronika Heimsbakk 10. juni 2012
INF1010 - Notater Veronika Heimsbakk veronahe@student.matnat.uio.no 10. juni 2012 1 Tilgangsnivåer 2 CompareTo Modifier Class Package Subclass World public Y Y Y Y protected Y Y Y N no modifier Y Y N N
DetaljerINF1000 - Løsning på seminaropppgaver til uke 8
INF1000 - Løsning på seminaropppgaver til uke 8 Oppgave 1 a) for(string nokkel : studenter.keyset){ System.out.println(nokkel); Studenten sitt navn blir skrevet ut. b) for(student dennestudenten : studenter.values()){
DetaljerEksamen Objektorientert Programmering 2012
Eksamen Objektorientert Programmering 2012 Høgskolen i Østfold 2012-05-09 Emnekode Emne ITF10611 Dato 2012-05-09 Eksamenstid 09:00-13:00 Hjelpemidler Faglærer Objektorientert Programmering To A4-ark (fire
DetaljerDistributed object architecture
Forelesning IMT2243 6. April 2010 Tema: forts. arkitektur og design av programvare Prosjektstatus Programvarearkitektur Oppsummering fra før påske Distribuerte objektarkitektur MDA - Model Driven Architecture
Detaljer23.09.2015. Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert.
Grunnkurs i objektorientert programmering Introduksjon til objektorientert programmering INF1000 Høst 2015 Siri Moe Jensen INF1000 - Høst 2015 uke 5 1 Siri Moe Jensen INF1000 - Høst 2015 uke 5 2 Kristen
DetaljerDistribuerte objekter og objekt-basert mellomvare
Distribuerte objekter og objekt-basert mellomvare INF 5040 H2006 foreleser: Frank Eliassen INF5040 Frank Eliassen 1 Hvorfor objekt-basert distribuert mellomvare? Innkapsling naturlig tilnærming til utvikling
DetaljerINF1010 våren 2017 Onsdag 25. januar. Litt om unntak i Java
INF1010 våren 2017 Onsdag 25. januar Litt om unntak i Java Stein Gjessing Nytt tema: Feilhåndtering (IO: Innlesing/Utskrift) n En metode som kan komme til å gjøre en IO-feil på fil må enten behandle denne
DetaljerNB!!! Veldig korte svar er gitt her. Disse burde det vært skrevet mer på ved en eksamen..
Løsningsforslag Eksamen V2007 Oppgave 1 NB!!! Veldig korte svar er gitt her. Disse burde det vært skrevet mer på ved en eksamen.. Oppgave 1.1 Klasse som pakke rinne n primitiv datatype, slik at vi kan
DetaljerINF2100. Oppgaver 9. oktober 2012 C 100 X 10
INF2100 Oppgaver 9. oktober 2012 Oppgave 1 Vi skal se på et meget enkelt språk E som består av uttrykk med de fire vanligste regneartene +,, * og /; grammatikken 1 ser du i figur 1 på neste side. Tallkonstanter
DetaljerEksamen. Objektorientert Programmering IGR 1372
+ JVNROHQL1DUYLN $YGHOLQJIRU7HNQRORJL Eksamen i Objektorientert Programmering IGR 1372 7LG'HVHPEHU± 7LOODWWHKMHOSHPLGOHU 6NULYHVDNHU2UGE NHU -DYD6RIWZDUH6ROXWLRQV)RXQGDWLRQVRI3URJUDP 'HVLJQVNUHYHWDY/HZLV
Detaljer1- og 2-veis Innkapsling Java Stabel Kø Prio-kø Iterator. Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5)
Dagens tema Litt mer om vanlige lister Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5) Nyttige varianter av lister: Stabler («stacks») (Big Java 15.5.1) Køer («queues») (Big Java 15.5.2)
DetaljerDistribuerte objekter og objekt-basert mellomvare
Distribuerte objekter og objekt-basert mellomvare INF5040 foreleser: Olav Lysne Frank Eliassen, SRL & Ifi/UiO 1 Hvorfor objekt-basert distribuert mellomvare? Innkapsling naturlig tilnærming til utvikling
DetaljerINF2100. Oppgaver 6. og 11. oktober 2011 C 100 X 10
INF2100 Oppgaver 6. og 11. oktober 2011 Oppgave 1 Vi skal se på et meget enkelt språk E som består av uttrykk med de fire vanligste regneartene +,, * og /; grammatikken 1 ser du i figur 1 på neste side.
DetaljerIntroduksjon til objektorientert programmering
Introduksjon til objektorientert programmering Samt litt mer om strenger og variable INF1000, uke6 Ragnhild Kobro Runde Grunnkurs i objektorientert programmering Strategi: Splitt og hersk Metoder kan brukes
DetaljerKapittel 8: Programutvikling
Kapittel 8: Programutvikling Redigert av: Khalid Azim Mughal (khalid@ii.uib.no) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cappelen Akademisk
Detaljer1. Krav til klasseparametre 2. Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo
INF1010, 26. februar 2014 1. Krav til klasseparametre 2. Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo Vi tar utgangspunkt i dette programmet for
DetaljerINF2100. Oppgaver 26. september til 1. oktober 2007
INF2100 Oppgaver 26. september til 1. oktober 2007 1 Språket Denne uken skal vi implementere en utvidelse av språket fra forrige ukes oppgave. Syntaksen er vist i figur 1 på neste side og betydning er
DetaljerForkurs INF1010. Dag 1. Andreas Færøvig Olsen Tuva Kristine Thoresen
Forkurs INF1010 Dag 1 Andreas Færøvig Olsen (andrefol@ifi.uio.no) Tuva Kristine Thoresen (tuvakt@ifi.uio.no) Institutt for Informatikk, 6. januar 2014 Forkurs INF1010 - dag 1 Hello, World! Typer Input/output
DetaljerINF2100. Oppgaver uke 40 og
INF2100 Oppgaver uke 40 og 41 2014 For å få trening i å programmere en parser, skal vi aller først gjøre det for et veldig enkelt programmeringsspråk: E. Dette språket består av uttrykk med de fire vanligste
DetaljerDistribuerte objekter og objekt-basert mellomvare
Distribuerte objekter og objekt-basert mellomvare INF 5040 H2004 foreleser: Frank Eliassen Frank Eliassen, SRL & Ifi/UiO 1 Hvorfor objekt-basert distribuert mellomvare?! Innkapsling " naturlig tilnærming
DetaljerI et Java-program må programmøren lage og starte hver tråd som programmet bruker. Er dette korrekt? Velg ett alternativ
INF2440-V18 Information INF2440 Vår 2018 eksamen Dato og tid: 11. juni 2018 09:00. Varighet: 4 timer Hjelpemidler: Alt skriftlig materiale er tillatt. Ingen elektroniske hjelpemidler er tillatt. Powerpoint
Detaljer1- og 2-veis Innkapsling Java Stabel Kø Prio-kø Iterator. Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5)
Dagens tema Litt mer om vanlige lister Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5) Nyttige varianter av lister: Stabler («stacks») (Big Java 15.5.1) Køer («queues») (Big Java 15.5.2)
DetaljerINF1000 - Uke 10. Ukesoppgaver 10 24. oktober 2012
INF1000 - Uke 10 Ukesoppgaver 10 24. oktober 2012 Vanlige ukesoppgaver De første 4 oppgavene (Oppgave 1-4) handler om HashMap og bør absolutt gjøres før du starter på Oblig 4. Deretter er det en del repetisjonsoppgaver
DetaljerDagens forelesning. Java 13. Rollefordeling (variant 1) Rollefordeling (variant 2) Design av større programmer : fordeling av roller.
Dagens forelesning Java 13 Design av større programmer : fordeling av roller INF 101-13. mars 2003 Flere eksempler på bruk av objekter MVC-prinsippet MVC-prinsippet Flere eksempler på programmer med objekter
DetaljerINF1010, 21. januar 2016. Klasser med parametre = Parametriserte klasser = Generiske klasser
INF1010, 21. januar 2016 Klasser med parametre = Parametriserte klasser = Generiske klasser Stein Gjessing Inst. for Informatikk Universitetet i Oslo Først litt repetisjon fra i går class LagBiler { public
DetaljerKonstruktører. Bruk av konstruktører når vi opererer med "enkle" klasser er ganske ukomplisert. Når vi skriver. skjer følgende:
Konstruktører Bruk av konstruktører når vi opererer med "enkle" klasser er ganske ukomplisert. Når vi skriver Punkt p = new Punkt(3,4); class Punkt { skjer følgende: int x, y; 1. Det settes av plass i
DetaljerSteg 1: Sette opp Java-prosjekt, og lage app-mappe og app-klasse
Hello world Skrevet av: Hallvard Trætteberg Kurs: Javafx Introduksjon Formålet til denne leksjonen er å lære hvordan man får satt opp et Java-prosjekt i Eclipse og kjørt et JavaFX-program. I tillegg skal
DetaljerMål med kurset. Java i INF 2400. Dagens tema. GUI med Swing. Dokumentasjon
Mål med kurset Java i INF 2400 Introduksjon til signalbehandling Lyd som anvendelse Få programmeringserfaring Dagens tema Utplukk av Java (GUI, kode-konvensjon, polymorfisme, classpath, javadoc) Java og
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Side 1 Det matematisk-naturvitenskapelige fakultet Eksamen i: INF1010 Objektorientert programmering Eksamensdag: Onsdag 4. juni 2014 Tid for eksamen: 9:00-15:00 Oppgavesettet er på
DetaljerINF1010, 22. mai Prøveeksamen (Eksamen 12. juni 2012) Stein Gjessing Inst. for Informatikk Universitetet i Oslo
INF, 22. mai 23 Prøveeksamen 23 (Eksamen 2. juni 22) Stein Gjessing Inst. for Informatikk Universitetet i Oslo Oppgave a Tegn klassehierarkiet for de 9 produkttypene som er beskrevet over. Inkluder også
DetaljerKapittel 7: Mer om arv
Kapittel 7: Mer om arv Redigert av: Khalid Azim Mughal (khalid@ii.uib.no) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cappelen Akademisk Forlag,
DetaljerKalkulator-leksjonen (nesten ferdig)
Kalkulator-leksjonen (nesten ferdig) Introduksjon I denne leksjonen vil du lære hvordan du kan koble FXML-koden til Java-koden og gjøre app-en levende (interaktiv)! Steg 1: Opprette app-pakke, app-klasse,
DetaljerLeksjon 4. Metoder. Program, klasse og metode
6108 Programmering i Java Leksjon 4 Metoder Roy M. Istad 2015 Program, klasse og metode public class Kode { main-metode Kode.java import static java.... // ulike klasser Våre program så langt Én fil Én
DetaljerWeb Services. Olav Lysne
Web Services Olav Lysne Til nå har dere hørt om Mellomvare for objektbasert kommunikasjon brukes vanligvis i anvendelser som er innen én organisasjon, eller innen et tett konsortium av samarbeidende organisasjoner
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1010 Objektorientert programmering Dato: 9. juni 2016 Tid for eksamen: 09.00 15.00 (6 timer) Oppgavesettet er på 7 sider. Vedlegg:
Detaljer6108 Programmering i Java. Leksjon 4. Metoder. Roy M. Istad 2015
6108 Programmering i Java Leksjon 4 Metoder Roy M. Istad 2015 Program, klasse og metode public class Kode { main-metode Kode.java import static java.... // ulike klasser Våre program så langt: Én fil Én
DetaljerArray&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister Videre
Dagens tema Lister og generiske klasser, del I Array-er og ArrayList (Big Java 6.1 & 6.8) Ulike lagringsformer (Collection) i Java (Big Java 15.1) Klasser med typeparametre («generiske klasser») (Big Java
DetaljerOblig 4Hybelhus litt mer tips enn i oppgaven
Oblig 4Hybelhus litt mer tips enn i oppgaven lørdag 19. okt 2013 Arne Maus Obligatorisk oppgave 4 Gulbrand Grås husleiesystem I denne oppgaven skal vi se på hans studenthus Utsyn. Utsyn består av 3 etasjer,
DetaljerKapittel 8: Sortering og søking INF100
Forelesningsnotater for: Kapittel 8: Sortering og søking INF100 Java som første programmeringsspråk Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cappelen Akademisk, 2003. ISBN 82-02-23274-0 http://www.ii.uib.no/~khalid/jfps/
DetaljerNaming og trading INF5040. Foreleser: Olav Lysne. Ifi/UiO 1
Naming og trading INF5040 Foreleser: Olav Lysne Ifi/UiO 1 To design spørsmål Navngiving ressursdeling krever globale lokasjonsuavhengige navn på ressurser og objekter hvordan konstruere navngivingsskjema
DetaljerKapittel 8: Sortering og søking INF100
Forelesningsnotater for: Kapittel 8: Sortering og søking INF100 Java som første programmeringsspråk Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cappelen Akademisk, 2003. ISBN 82-02-23274-0 http://www.ii.uib.no/~khalid/jfps/
DetaljerÅ bruke Java API-et til å sortere tabeller/arraylister der elementene er (referanser til) objekter
Sortering og søking i Java-API-et Tabeller og Arraylister Comaparable Comparator equals() LC9D Videregående programmering Semesterplan: http://aitel.hist.no/fag/vprg/index_lc9d.php Høgskolen i Sør-Trøndelag,
DetaljerForklaring til programmet AbstraktKontoTest.java med tilhørende filer Konto.java, KredittKonto.java, SpareKonto.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 Forklaring til programmet AbstraktKontoTest.java med tilhørende
DetaljerKapittel 9: Sortering og søking Kort versjon
Kapittel 9: Sortering og søking Kort versjon Redigert av: Khalid Azim Mughal (khalid@ii.uib.no) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen
DetaljerOppsummering. Kort gjennomgang av klasser etc ved å løse halvparten av eksamen Klasser. Datastrukturer. Interface Subklasser Klasseparametre
Oppsummering Kort gjennomgang av klasser etc ved å løse halvparten av eksamen 2012. Klasser Interface Subklasser Klasseparametre Datastrukturer Hva er problemet? Oppgaven Emballasjefabrikken Renpakk skal
DetaljerJava WebStart er et verktøy for å distribuere Java-applikasjoner av ulik type. Forfatter: Else Lervik (else.lervik@hist.no) Dato: 2006-03-01
Java WebStart Java WebStart er et verktøy for å distribuere Java-applikasjoner av ulik type. Forfatter: Else Lervik (else.lervik@hist.no) Dato: 2006-03-01 Innhold 1 Introduksjon... 1 2 Hva må utvikleren
DetaljerStikkord: Java EE, EJB, JSF, JPA, SWT, klient/tjener, Glassfish server, Application Client.
Stikkord: Java EE, EJB, JSF, JPA, SWT, klient/tjener, Glassfish server, Application Client. Studenter: Magnus Skomsøy Bae, Marius Eggen, Magnus Krane Klasse: 3ING, Systemutvikling Produserer redaksjonelle
DetaljerINF2100. Oppgaver 23. og 24. september 2010
INF2100 Oppgaver 23. og 24. september 2010 Oppgave 1 Vi skal se på et meget enkelt språk E som består av uttrykk med + og ; grammatikken ser du i figur 1 på neste side. Tallkonstanter består av bare ett
DetaljerLogo med FXML. Introduksjon. Skrevet av: Hallvard Trætteberg
Logo med FXML Skrevet av: Hallvard Trætteberg Kurs: Javafx Introduksjon En viktig del av det å lage app-er er å utforme skjerminnholdet, dvs. alt app-en inneholder av grafikk, knapper, lister, osv. Formålet
DetaljerGruppe 11. Frank Petter Larsen Vegard Dehlen
qoskets Gruppe 11 Frank Petter Larsen Vegard Dehlen Problematikk Dagens mellomvare for objektbaserte distribuerte systemer har ikke innebygget støtte for å spesifisere, overvåke og kontrollere tjenestekvalitet
DetaljerIN1010 våren 2018 Tirsdag 15. mai. Repetisjon av subklasser og tråder. Stein Gjessing Institutt for informatikk Universitetet i Oslo
IN1010 våren 2018 Tirsdag 15. mai Repetisjon av subklasser og tråder Stein Gjessing Institutt for informatikk Universitetet i Oslo 1 Klassehierarki: Personbil Bil Klasser - Subklasser class Bil {
Detaljer