Ontwikkeling van JavaJ2EE Web Applicaties
Document Sample


Ontwikkeling van
Java/J2EE Web Applicaties
Lucas Jellema (AMIS)
Zorg en Zekerheid
Woensdag 23 maart 2005
1
Introductie Java/J2EE Web applicaties
Agenda
Uitdagingen rondom Java/J2EE
Overwegingen bij keuze van tools en technologie
Introductie Oracle Application Development
Framework (ADF)
Introductie JHeadstart als generator
Demonstratie mijn.zorgenzekerheid.nl
Discussie
2
Introductie Java/J2EE Web applicaties
Uitdagingen rondom J2EE Applicaties
Standaarden en open source
Keuzevrijheid
MVC-implementaties, Tools, Frameworks
Complexiteit
Voortdurende ontwikkelingen
Productiviteit
Voor ontwikkelaars
Voor eindgebruikers
Integratie met bestaande (backoffice) systemen
Migratie van bestaande kennis, licenties
3
Introductie Java/J2EE Web applicaties
Is Open Source goed of slecht?
Er zijn aanhangers van beide standpunten
Maar de vraag is niet van toepassing
Open source:
Bevlogen ontwikkelaars
Hoge kwaliteit software
Lage kosten
Bron Code beschikbaar
Maar ook:
Dump van commerciële partij
Stabiliteit matig
Politieke speelbal
4
Introductie Java/J2EE Web applicaties
Keuze-criteria voor
architectuur, technologie en tools
Complexiteit en “Leercurve” of toegankelijkheid
Beschikbaarheid van middelen
Cursussen, Boeken, voorbeeldcode, libraries
Ontwikkelaars met kennis en ervaring
Productiviteit
Tools, IDE, Visueel en Declaratief Ontwikkelen, Generatie
Libraries en herbruikbare componenten
Pragmatisch vs. Zuiver
Niet gaan bouwen wat niet applicatie- of organisatie-
specifiek is
Stabiliteit/volwassenheid
Heeft de software zich bewezen? Bestaat de software al?
Onderhoudbaarheid
Kunnen we met de technologie tot een goed onderhoudbare
applicatie komen – voor onszelf en eventueel derde partijen
5
Introductie Java/J2EE Web applicaties
Keuze-criteria voor
architectuur, technologie en tools
Licentie Kosten
Leverancier-specifiek (vs. Open, Standaard)
Toekomstbestendigheid
Hoe is de acceptatie in de markt?
Wat voor partij zit er achter:
• Grote open source beweging
• Commerciële organisatie
Hoe stabiel is die partij en/of hoe belangrijk is de software voor
die organisatie?
Uitwisselbaarheid (“loosely coupled”) van componenten
Goed genoeg mits schaalbaar
Wat willen we eigenlijk gaan ontwikkelen?
Past de technologie bij het type applicatie?
Past de technologie bij de overige infrastructuur
Kan de technologie meegroeien met de wensen van de
organisatie?
6
Introductie Java/J2EE Web applicaties
Java/J2EE Web Applicaties
7
Introductie Java/J2EE Web applicaties
Model View Controller
8
Introductie Java/J2EE Web applicaties
Model
Alles gebaseerd op JDBC (Java Database
Connectivity)
Implementaties:
Oracle ADF Business Components (voorheen BC4J)
(Oracle) Toplink
Apache OJB, Hibernate, Ibatis, Castor, JDO, EJB 3.0
Zelf bouwen
(nog) Geen standaard
JDO (Java Data Objects) komt er aan Controller
Onderliggend allemaal gebaseerd op JDBC View
De persistency laag of OO/R mapping kan
“gewrapped” worden in Enterprise Java Beans Model
9
Introductie Java/J2EE Web applicaties
Demo: Model in concreto
10
Introductie Java/J2EE Web applicaties
View
Implementaties
Servlet
JSP (Java Server Pages)
JSF (Java Server Faces)
ADF UIX (Oracle User Interface XML)
• Op basis van Oracle Browser Look and Feel Guidelines
• Evolueert naar Java Server Faces (JSF)
XML/XSLT
JSP geeft grootste flexibiliteit in layout
UIX/JSF gericht op applicaties met veel Controller View
data manipulatie
OLTP/Administratieve applicaties
Model
Genereren allemaal HTML uitvoer
11
Introductie Java/J2EE Web applicaties
Controller
Apache Struts
Controller
View
Model
12
Introductie Java/J2EE Web applicaties
AMIS hanteert twee technology stacks
Oracle stack Open Source Stack
JDeveloper Eclipse
Model: ADF BC en Model: Hibernate
Toplink View: JSP, JSF
View: JSP, JSF en UIX Controller: Struts
(ADF Faces) Tomcat
Eventueel rich Client
(Swing)
Controller: Struts
JHeadstart
OC4J (9iAS/10gAS)
13
Introductie Java/J2EE Web applicaties
Overige tools en technologieën
XML
XSL-T, XSL-FO, XSD
WebServices
JavaScript
HTML
Cascading Stylesheets
JUnit
Ant
Log4J
CVS
14
Introductie Java/J2EE Web applicaties
Kennis en vaardigheden voor J2EE
Applicatie Ontwikkeling
Voorbeeld studieschema voor functioneel ontwerpers en ontwikkelaars:
OO theorie (basis)
Java Programmeren
UML
Niet noodzakelijkerwijs
(Class, Activity
Servlet
iedereen (initieel) alles;
, Collaboration
, Sequence) Servlet JDBC specialisatie en
JSP rolverdeling is heel goed in
project-aanpak op te
JSP
Struts
HTML Design nemen.
ADF BC
(D)HTML
Struts
JavaScript
Naast ontwerp- en
CSS ontwikkel-vaardigheden
UIX (JSF…) zijn er ook eisen ten
aanzien van administratie
(Applicatie Server),
Functioneel Ontwikkelaar: Ontwikkelaar: Ontwikkelaar:
Ontwerper View Controller Model beveiliging, tuning, grafisch
ontwerp en testen.
15
Introductie Java/J2EE Web applicaties
Hoe verloopt een Java/J2EE Web Applicatie
ontwikkel-traject?
Ontwerp van functies
Schermen, prototypes, mockups
Batch operaties en WebServices
Model
OO en Relationeel
Implementatie database
Constructie van Business Services
Implementeer Business Rules
Ontwerp de applicatiestructuur
Schermen en Controller-logica
16
Introductie Java/J2EE Web applicaties
Hoe verloopt een Java/J2EE Web Applicatie
ontwikkel-traject?
Implementatie van de applicatie
Bouw van de schermen
Bouw van batch-fucties en web-services
Bouw van controller-acties
Afwerking
Definitieve Look & Feel
Vertaling schermteksten voor meertaligheid
Oplevering on line help systeem
Testen
17
Introductie Java/J2EE Web applicaties
Uitdagingen met Java/J2EE Ontwikkeling
Complexiteit
Productiviteit
Toegankelijkheid/Leercurve
Herbruikbaarheid van componenten
18
Introductie Java/J2EE Web applicaties
ADF Architectuur
19
Introductie Java/J2EE Web applicaties
Betekenis van ADF voor Oracle
Oracle Applications (incl PeopleSoft) gaat
stabiliseren op de ADF stack
ADF BC
ADF Binding Framework
Struts
UIX en ADF Faces
• Wellicht ook wat JSP
20
Introductie Java/J2EE Web applicaties
Wat biedt ADF nou eigenlijk?
Binding tussen Model en View/Controller
Eenvoudige registratie van Business Services
• ADF BC, TopLink, WebService, Beans
Uniforme „interface‟ van Data Controls
• Applicatie praat altijd in termen van DataControl zonder de
implementatie te hoeven kennen
• Model en Data Controls zijn te gebruiken door Web applicatie en
ook door Java Client
Eenvoudige koppeling tussen Model en View Pagina‟s
• Drag en Drop (als)
Visueel ontwikkelen door integratie in User Interface
Runtime library
• Die wijzigingen van de user verwerkt in het Model (en
achterliggende data store)
• Die data uit het Model beschikbaar maakt voor de View en
Controller
21
Introductie Java/J2EE Web applicaties
Demo ADF
Registreren Model
Gebeurt automatisch met ADF Business Components
Creëer DataPages
Bind DataControls aan DataPages
Door klikken en slepen
Verfraai de layout van de pagina
Run de applicatie
22
Introductie Java/J2EE Web applicaties
Enter: JHeadstart
JHeadstart complementeert ADF zoals Oracle
Designer het complement is voor Oracle Forms
Declaratief specificeren van de modules
Hergebruik van definities
Generatie van pagina‟s, UI Models, Resource Bundles
Runtime ondersteuning
• voor complexe pagina-constructies middels generieke ADF
extensie
• Server side templates – JSP includes of UIT-files
• Client side libraries en widgets – LOV en Calendar, JS
Migratie van Designer/Forms applicaties naar
Java/J2EE
• Als Open Zorg naar Java technologie gaat…
23
Introductie Java/J2EE Web applicaties
Demonstratie Applicatie Ontwikkeling met
ADF en JHeadstart
24
Introductie Java/J2EE Web applicaties
Demonstratie Applicatie Ontwikkeling met
ADF en JHeadstart
25
Introductie Java/J2EE Web applicaties
Demonstratie Applicatie Ontwikkeling met
ADF en JHeadstart
Stap 1:
Implementeer het Model
Stap 2:
Genereer een „first cut applicatie‟
Stap 3
Verfijn de applicatie op declaratieve wijze
Stap 4
Waar nodig, doe handmatige, post-generatie aanpassingen
Stap 5
Doe onderhoud
• Vervangen technologie componenten
• Wijzigen Model
• Realiseren van nieuwe schermen of aanpassingen op schermen
26
Introductie Java/J2EE Web applicaties
UIX als View Technologie
Gebaseerd op (Oracle) Browser Look & Feel Guidelines
Zeer zwaar gebruikt door Oracle zelf
Al sinds 2000
Evolueert naar Java Server Faces
Zeer rijke User Interface (voor HTML begrippen)
Partial Page Rendering
Table Detail Disclosure, Shuttle, Tree, LOV Validation, Image
Generation, Geavanceerde stylesheets, Total/Summary Columns
Nadeel: UIX is heel specifiek van Oracle
De opvolger: ADF Faces wordt waarschijnlijk meer “mainstream”
JHeadstart ondersteunt UIX en JSP beide
Met iets meer features voor UIX
27
Introductie Java/J2EE Web applicaties
Conclusies
Java/J2EE biedt veel mogelijkheden en uitdagingen
Keuze van Technologie, tools en frameworks is in hoge
mate bepalend voor succes
Productiviteit, time-to-market, onderhoudbaarheid,
schaalbaarheid en toekomst-bestendigheid
Keuze moet passen bij de organisatie
Bestaande kennis, infrastructuur, plannen, profilering
Oracle biedt met ADF een Java/J2EE ontwikkel-platform
met hoge productiviteit
Ondersteuning voor Web en Java Client
Ondersteuning voor diverse Business Services en View
implementaties
ADF is strategisch voor Oracle zelf
JHeadstart complementeert ADF met generatie
28
Introductie Java/J2EE Web applicaties
mijn.zorgenzekerheid.nl
29
Introductie Java/J2EE Web applicaties
mijn.zorgenzekerheid.nl
30
Introductie Java/J2EE Web applicaties
mijn.zorgenzekerheid.nl
31
Introductie Java/J2EE Web applicaties
mijn.zorgenzekerheid.nl
32
Introductie Java/J2EE Web applicaties
mijn.zorgenzekerheid.nl
33
Introductie Java/J2EE Web applicaties
mijn.zorgenzekerheid.nl
34
Introductie Java/J2EE Web applicaties
mijn.zorgenzekerheid.nl
35
Introductie Java/J2EE Web applicaties
mijn.zorgenzekerheid.nl
36
Introductie Java/J2EE Web applicaties
mijn.zorgenzekerheid.nl
37
Introductie Java/J2EE Web applicaties
Discussie
38
Introductie Java/J2EE Web applicaties
Related docs
Get documents about "