Første
Oversigt
Planche 79
Print af Apaches Jakarta Projekt
1 : Apaches Jakarta Projekt
Webløsninger
J2EE
Servlets
JSP
EJB?
Hvorfor ikke!
Tomcat
Jetspeed
Turbine
Torque
Log4J
XML-værktøj
Gump!
Jakarta-projektet iøvrigt
2 : CV
Født 1954, Munkebo, Fyn
Civilingeniør, 1980
EBA fra IKT, 1997
Chr. Rovsing 80-86
Alm. Brand 86-88
DDE 88-93
CSC Danmark 93-99
BLA*net 99-
Linux siden 1992
Java siden 1996
3 : Webløsninger
Web Portal
Business Portal
eBusiness Portal
Content Management
4 : Klient/serverløsninger
5 : Webportal
6 : Masser af alternativer
Lav den selv
Koster tid!
Køb den
Koster penge (og tid!)
Brug et OSS-projekt
Kræver indsigt, lidt tid og meget lidt penge
7 : Java er ikke eneste mulighed!
PHPNuke og PostNuke
Slashdot-afledte
8 : Avancerede Portaler
Artikler,
debat,
henvisninger
og downloads
9 : Webløsninger
Standard web-elementer
Forretningslogik
Forretningsdata
10 : J2EE Arkitektur
11 : J2EE Container og Services
J2EE kan hjælpe med:
Opsætning af sikkerhed (adgangskontrol)
Opsætning af transaktioner (dataintegritet)
Opslagsservices (JNDI)
Transparant kommunikation mellem komponenter i forskellige containere
Containerer i J2EE
EJB-containere
Webkomponent container
Klient applikations container
Klient applet container (plugin)
12 : J2EE pakker
EJB er en jar-fil (.ear)
beskrivelse (XML), .class-filer og andre filer
Appl./Aplets er .jar-filer
do.
Web-komponenter WAR (.war)
do.
13 : J2EE udvikling:
Udviklere laver
klasser og resourcefiler, oversætter, tester og pakker
J2EE Assembler
samler JAR og WAR til EAR, angiver politiker for distribution
J2EE Deployer
Konfiguration og installation
J2EE Administrator
do. men løbende ændringer
14 : J2EE teknologier
Webserver
Databaseadgang (JDBC - i J2SDK)
J2EE API
EJB 2.0
JDBC 2.0
Java Servlet 2.3
JSP v.1.2
Java Message Service (JMS) 1.0
Java Transaction API (JTA) 1.0
JavaMail 1.2
JavaBeans Activation Framework 1.0
Java API for XML (JAXP) 1.1
J2EE Connector API 1.0
Java Athentication Authorizasion Service (JAAS) 1.0
Tools
Application Deployment tool
15 : Servlets
Håndtere HTTP-requests
GET, POST og PUT
Sende HTML-sider tilbage
men er
platformsuafhængige
16 : Anvendelser
Transaktionssystem
e-Handel, reservationssystemer
Konferencesystemer
Beskeder
Synkronisering
"Loadsharing"
17 : Servletkomponenter
18 : HTTP-Kommunikation
ServletRequest
ServletResponse
19 : ServletRequest
Oplysninger om klienten
adresse
En inddatastrøm at typen ServletInputStrem
20 : ServletResponse
Sæt (HTTP)datatyper
En uddatastrøm af typen ServletOutputStream
21 : En HTTP-server
22 : Forklaring til eksempel
SimpleServlet udvider HTTPServlet-klassen
Overskriver doGet-metoden
doGet-metoden kaldes, når klienten har sendte en GET-request
Svaret sættes i et objekt af typen HTTPServletResponse
HTML-siden skrives til PrintWriter-objektet out, som fås fra HTTPServletResponse
23 : Servletmiljø
En webserver med servlet support
Servletrunner
JavaServer Web Development Kit (jswdk)
Tomcat
24 : Servletters "levetid"
init ()
destroy ()
25 : Nyttige muligheder
Sessioner
en session er et objekt af typen HttpSession
Infokager (Cookie)
sætter en Infokage(navn, værdi)
parameter-metoder (set/get-metoder)
ServletContext
26 : Java Server Pages
Introduktion til JSP
Arkitektur
Livstidscyklus
Syntaks og semantik
27 : JSP fordele
Adskiller statisk fra dynamisk indhold
Write Once Run Anywhere (tm)
Dynamisk indhold præsenteres i forskeliige formater
HTML, DHTML, WML, XML
Anbefales af SUN og IBM (!)
Udvider servlet koncepterne...
28 : JSP versus ASP
Webserver supporte
JSP: Alle, inkl. Apache, Netscape og IIS
ASP: IIS.
Platform understøttet
JSP: All java-platforme
ASP: Win32-baserede
Komponentmodel
JSP: JavaBeans, EJB og tag-biblioteker
ASP: COM
Skriptsprog
JSP: Java eller Javascript
ASP: VBScript eller JScript
Sikkerhed
JSP: Java sikkerheds model
ASP: Active Data Objects
Custum-tags
JSP: Kan udvides med tag-biblioteker
ASP: Kan ikke udvides
29 : JSP Arktektur
deklarativ, -
præsetations-orienteret metode
Servlets!
30 : Servlet Container
31 : Genereret kode (eksempel)
32 : JSP adgangsmetoder
33 : Designfilosofier
Model 1
34 : Designfilosofier
Model 2 Model/View/Control
35 : Enterprise JavaBeans (EJB)
Placeret på en server
Ikke data, ikke præsentation, men logik.
36 : Fordele ved EJB
1. EJB-containere sørger for systemspecifikke ting, såsom transaktioner og adgangskontrol
2. Klienter koncentrere sig om præsentation, servere om forretninglogik - tynde klienter mulige.
3. EJB kan afvikles i alle EJB-containere!
37 : Hvornår anvendes EJB
1. Når løsningen skal skaleres
2. Løsningen forudsætter dataintegritet
3. Løsningen bruger forskellige klienttyper.
forskellige præsentationer.
38 : EJB typer
1. Session
holder rede på klienter
2. Entitet
forretningsobjekt, der er persistent
3. Besked-drevet (Message-driven)
En lytter for Java Messsage Service (asynkron)
39 : EJB og Open Source
Jakarta indeholder p.t. ikke EJB-containere
OSS projekter
JBoss (www.jboss.org)
OpenEJB (www.openejb.org)
Jonas (del af BullSoft Enhydra)
Gratis - men usikkerhed om licensbetingelser.
40 : Web Archive (WAR)
Servlets
Javaprogrammerede anvendelsesprogrammer
Java Server Pages
Tekstprogrammerede anvendelsesprogrammer
(HTML, WML, XML...)
Begge styres af HTTP
41 : Webkomponentens livscyklus
Udvikle komponentens logik og resourcefiler
Pakke komponenten med statiske resourcer
Distribuere (placere) komponenten
Aktivere den via en URL
42 : WAR-formatet
Toppen af strukturen kaldes "Document Root"
Den indeholder et katalog, WEB-INF
web.xml "deployment descriptor"
tag-library descriptor (JSP)
classes - klassefiler
lib - jarfiler med klassefiler og tag-filer
43 : Jakarta Tomcat
Bedre, billigere og OPEN Source.
Referenceimplementering af servlets og JSP
Tomcat er e komplet Webcontainer servermiljø
44 : Installation
1) unzip til lokal folder ("Tomcat" ?)
2) start server med
./start.sh (UNIX)
startup (Win32)
3) stop med
./shutdown.sh (UNIX)
shutdown (Win32)
45 : Versioner
V.3.2.3
Produktionsversion
V.3.3
Næste Produktionsversion (beta)
V.4.0
Næste nye version (beta)
46 : Startupbillede
47 : Tomcat-struktur (V.4.0.1)
bin
Tomcats kode, opstart og nedlukning
classes (ny)
bytecode for Tomcat
common (ny)
bytecode + jar-filer
conf
Konfiguration (xml-filer)
lib
biblioteker (jar-filer)
logs
logfiler
server (ny)
bytecode + jarfiler
work
en slags /tmp
48 : webapps-kataloget
WAR-distributioner
udpakkes automatisk under opstart
en WAR-lignende struktur
Mindst et WEB-INF katalog
og en web.xml fil herunder
ROOT
Har (havde) særlig betydning
49 : Jetspeed
50 : Jetspeeds fordele
Binær distribution i form af WAR-fil
En "Enterprise Portal Solution"
Programmeret i XML
Design i JSP eller Velocity
Let at konfigurere (?)
51 : Installation
Download jetspeed.war
Placer den i Tomcats webapps-katalog
Det er ikke nødvendigt at udpakke den.
Start eller restart Tomcat
Ret browser mod server
http://localhost:8080/jetspeed
52 : Startbillede
53 : Efter login
54 : En Jetspeed-site (DiverseBooks.com)
55 : Men...
Opstart er meget langsom
Kan køre med 384Mb
32Mb RAM standser opstart
56 : Turbine
Forudsætter dog J2SDK og Ant installeret
Medbringer egen Tomcat-server
Udpak til en lokal folder
57 : Konfiguration og start
Giv kommandoen 'ant'
Danner en standard applikation
Angiv navn i 'build.properties'
Rediger 'build.properties' (database opsætning)
MySQL er et sikkert valg
Postgresql - se særlig FAQ
Giv kommando 'ant init'
Ret browser mod
http://localhost:8080/'navn'/servlet/'navn'
58 : Efter et lille stykke tid!
59 : Login (turbine/turbine)
60 : Turbine TDK
61 : Turbine TDK-komponenter
Jakarta
ECS
Regexp
JUnit
Log4j
ORO
velocity
Andre Apache:
xalan
xerces
xmlrpc
Databasedrivere
mysql, postgresql m.v.
Torque
Databasegenerator (ikke runtime)
62 : Turbine - præsentation
templates/app
layoyts - overordnet layout
navigation - menulayout
screens - indholdet
63 : Turbine - Model
Der er automatisk inkluderet rollebaseret brugeradministration
delprojekt flux
Alle andre datastrukturer kan genereres af Torque
64 : Torque
bundled med Turbine
'ant init' danner SQL-scripts og Java-klasser
Konfigureret af build.properties
Kontrolfil build.xml
65 : Torque eksempel
66 : Log4J
Lavt overhead på "logged" program
Mange muligheder for log-devices
Herunder eksisterende SYSLOG
Filtrering af logning
level-styret INFO, WARN, ERROR, FATAL
Konfigurerbar på runtime
67 : Gumpa
Ekstrem Programming
Løbende integration
... til nye højder!
68 : Gump - beskrivelse
XML-konfiguration (prioriteret projektliste)
Udfører projektets build.xml fl m. Ant
Output - resultater og dokumentation i HTML
Bruger også seneste udgave af XML, Ant og JUnit!
Fejl adviseres via e-post
69 : Gump-output oversigt
70 : Gump-output tomcat (udsnit)
71 : Gump - anbefaling
Mere end 2 deltagere
Spredt i tid og sted
Hver dag
Hver uge
72 : Jakarta-projektet
73 : Alle sub-projekter (alfabetisk)
Alexandria
CVS/Javadoc/source management
Ant
make-erstatning
Avalon
rammestruktur for programudvikling
Cactus
JUnit-udvidelse for test i container
74 : Alle subprojekter (alfabetisk)
Commons
Fælles komponenter
ECS
Generere opmarkerede output (XML, HMTL, ...)
James
Postagent-server (SMTP, POP3, IMAP...)
Jetspeed
Webportal
JMeter
75 : Alle subprojekter (alfabetisk)
Testloader for Webservere
Log4J
Logbibliotek
Lucene
Tekstsøgekerne
ORO
Regulære udtrykfortolker
Regexp
Regulære udtrykfortolker (alternativ)
Slide
WebDAV-værktøj (opdatering via HTTP)
76 : Alle subprojekter (alfabetisk)
Struts
Rammeværktøj for webløsninger
Taglibs
JSP tagbliotek
Tomcat
webserver
Turbine
Rammeværktøj til sikrede webløsninger med servlets
77 : Alle subprojekter (alfabetisk)
Velocity
Skema-kerne - alternativ til JSP og PHP!
Watchdog
Tests for Servlet og JSP specifikationer.
78 : XML-projektet
Xerces
XML parsers in Java, C-- (with Perl and COM bindings)
Xalan
XSLT stylesheet processors, in Java and C--
Cocoon
XML-based web publishing, in Java
FOP
XSL formatting objects, in Java
Xang
Rapid development of dynamic server pages, in JavaScript
SOAP
Simple Object Access Protocol
Batik
A Java based toolkit for Scalable Vector Graphics (SVG)
Crimson
A Java XML parser derived from the Sun Project X Parser.
79 : Andre Apache-projekter
© 2001 BLA*net - Leif E. Andersen, leander@blanet.dk (Open Content License)