Ontwikkeling van JavaJ2EE Web Applicaties by bzs12927

VIEWS: 0 PAGES: 38

									




                         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

								
To top