Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( ) Innehåll: Introduktion till Java EE (Enterprise Edition) Enterprise Java Beans (EJB)
Jonny Karlsson Introduktion till Java EE En plattform för serverprogrammering i Java EE plattformen skiljer sig från SE plattformen på så sätt att den sätter till bibliotek som erbjuder funktionalitet för säkra, distribuerade och ”multi-tier” programvara som till största delen är baserade på modulära komponenter som körs på en applikationsserver Distribuerad programvara = ett program som är uppsjälkt i delar och körs parallellt på multipla datorer Multi-tier programvara = Är en klient-server arkitektur där själva presentationen, processeringen och datahanteringen av ett program är logiskt separata processer, se bild på nästa slide
Jonny Karlsson ”Multi-tier” programvara
Jonny Karlsson Introduktion till Java EE Modulära komponenter = Separata moduler som fungerar som systemelemet som erbjuder olika typer av service och kan kommunicera med andra komponenter
Jonny Karlsson Introduktion till Java EE Inkluderar flera API specifikationer: JDBC (Java Database Connectivity) – definierar hur klienter kommunicerar med en db JDBC (Java Database Connectivity) – definierar hur klienter kommunicerar med en db RMI (Remote Method Invocation) – Metodanrop över nätverk RMI (Remote Method Invocation) – Metodanrop över nätverk JMS (Java Message Service) – Distribuering av meddelanden mellan två eller flere klient. JMS (Java Message Service) – Distribuering av meddelanden mellan två eller flere klient. Web services – Webbbaserade dataprogram som kommunicerar och samarbeter dynamiskt med andra webbtjänster (på samma sätt som en människa kan surfa till olika webbsidor) Web services – Webbbaserade dataprogram som kommunicerar och samarbeter dynamiskt med andra webbtjänster (på samma sätt som en människa kan surfa till olika webbsidor) XML XML Enterprise JavaBeans – Distribuerade objekt Enterprise JavaBeans – Distribuerade objekt Servlets och JSP (Java Server Pagets) – Dynamiska websidor (Javas motsvarighet till PP, CGI och ASP) Servlets och JSP (Java Server Pagets) – Dynamiska websidor (Javas motsvarighet till PP, CGI och ASP)
Jonny Karlsson Enterprise Java Beans En serverkomponent som sköter ”affärslogiken” i en applikation. Med ”affärslogik” menas den kod som uppfyller syftet med applikationen. En Enterprise Java Bean kan t.ex. Implementera ”affärslogiken” i anropade metoder som t.ex. bestallProdukt och kollaLager Dessa metoder finns alltså i komponenter på applikationsservern som klienter kan anropa och på det sättet komma åt inventarietjänsterna som applikationen erbjuder.
Jonny Karlsson Fördelar med Enterprise Beans Enterprise beans förenklar utvecklingen av storskaliga distribuerade applikationer på många Sätt: EJB containtern på applikationsservern sköter om alla möjliga system-nivå tjänster som behövs för en bean på det sättet kan en Bean utvekclare koncentrera sej på att lösa själva ”affärsproblemet” EJB containtern på applikationsservern sköter om alla möjliga system-nivå tjänster som behövs för en bean på det sättet kan en Bean utvekclare koncentrera sej på att lösa själva ”affärsproblemet” Eftersom ”bönorna” i stället för själva klienten innehåller själva programlogiken kan klientutvecklaren fokusera på själva gränssnittet i stället för att behöva bry sej om att koda rutiner för åtkomst till databaser odyl. ---> Klienterna är mycket ”klena” och de kan köras på små enheter med liten processorkraft (t.ex. På smarttelefoner) Eftersom ”bönorna” i stället för själva klienten innehåller själva programlogiken kan klientutvecklaren fokusera på själva gränssnittet i stället för att behöva bry sej om att koda rutiner för åtkomst till databaser odyl. ---> Klienterna är mycket ”klena” och de kan köras på små enheter med liten processorkraft (t.ex. På smarttelefoner) EnterpriseBeans är portabla komponenter vilket betyder det går lätt att återanvända dem, dvs. att bygga helt nya applikationer på böner som redan finns EnterpriseBeans är portabla komponenter vilket betyder det går lätt att återanvända dem, dvs. att bygga helt nya applikationer på böner som redan finns
Jonny Karlsson När använda Enterprise Beans? När din applikation bör vara ”scalable” dvs. Ha en förmåga att klara av ett växande antal användare genom att distribuera kompenenter på multipla maskiner När din applikation bör vara ”scalable” dvs. Ha en förmåga att klara av ett växande antal användare genom att distribuera kompenenter på multipla maskiner När din applikation måste stöda säkre datatransaktioner När din applikation måste stöda säkre datatransaktioner När din applikation kommer att ha varierande klienter (både med hög och låg prestanda) När din applikation kommer att ha varierande klienter (både med hög och låg prestanda)
Jonny Karlsson Olika typer av Enterprise Beans Session Beans Session Beans – Representerar en enskild klient på en applikationsserver – För att komma åt en applikation som finns på servern anropar klienten ”sessionsbönans” metoder – Sessionsbönan utför arbete för dess klient, på det sättet undviker klienten komplexitet genom att exekvera applikationens rutiner på servern – Kan inte ”delas” dvs. den kan endast ha en klient – Data lagras inte på servern utan när klienten avslutas så förstörs också dess sessionböna och är inte längre associerad med klienten Message-Driven Beans Message-Driven Beans – Tillåter Java EE applikationer att processera medelanden asynkront. – Meddelanden t.ex. Från en klient till en Message-Driven Bean går via en kö. – Exekverar efter att ett meddelande tagits emot från en kient – Representerar inte direkt delad data, men kan komma åt och uppdatera data
Jonny Karlsson Läs mera om Enterprise Beans Teori och exempel EJB programmering i NetBeans 6.5 IDE