Deklaratıvne-Imperatıvny Aplikaˇcn´Y R´Amec

Total Page:16

File Type:pdf, Size:1020Kb

Deklaratıvne-Imperatıvny Aplikaˇcn´Y R´Amec MASARYKOVA UNIVERZITA F}w¡¢£¤¥¦§¨ AKULTA INFORMATIKY !"#$%&'()+,-./012345<yA| Deklarat´ıvne-imperat´ıvny aplikaˇcny´ r´amec DIPLOMOVA´ PRACA´ Martin Jurˇca Brno, jar 2012 Prehl´asenie Prehlasujem, zeˇ tato´ diplomova´ praca´ je moj´ım povodnˆ ym´ autorskym´ die- lom, ktore´ som vypracoval samostatne. Vsetkyˇ zdroje, pramene a literaturu,´ ktore´ som pri vypracovan´ı pouzˇ´ıval alebo z nich cerpal,ˇ v praci´ riadne citu- jem s uveden´ım upln´ eho´ odkazu na pr´ıslusnˇ y´ zdroj. Ved´ucipr´ace: RNDr. Vlastislav Dohnal, Ph.D. iii Pod’akovanie Rad´ by som tymto´ pod’akoval panovi´ Vlastislavovi Dohnalovi za jeho od- bornu´ pomoc a vedenie pri tvorbe tejto prace.´ Dalejˇ by som rad´ pod’akoval panovi´ Pavlovi Cenkovi za jeho odbornu´ asistenciu pri tvorbe navrhu´ tohto aplikacnˇ eho´ ramca.´ Tiezˇ by som rad´ pod’akoval panom´ Petrovi Kubovi, Alesoviˇ Pejchalovi a Milanovi Krˇapkovi´ za podporu a spatn¨ u´ odozvu pri zvazovanˇ ´ı roznychˆ architektonickych´ roz- hodnut´ı v navrhu.´ V neposlednej rade by som chcel pod’akovat’ Andreji Cechovejˇ a mojim rodicomˇ za ich podporu bez ktorej by tato´ praca´ nemohla vzniknut´ ’. v Zhrnutie Rozvoj v oblasti informacnˇ ych´ systemov´ a enterprise aplikaci´ ´ı viedol k na-´ vrhu corazˇ zlozitejˇ sˇ´ıch aplikaci´ ´ı tvorenych´ znacnˇ ym´ mnozstvomˇ progra- moveho´ kodu.´ Aplikacie´ tvorene´ vel’kym´ mnozstvomˇ programoveho´ kodu´ su´ obvykle naro´ cnejˇ sieˇ na udrzovanieˇ a potencialne´ sa v nich vyskytuje viac chyb.´ Tento stav bol adresovany´ roznymiˆ aplikacnˇ ymi´ ramcami,´ ktore´ riesiaˇ beznˇ e´ ukony´ vykonavan´ e´ aplikaciami.´ Tieto ramce´ tiezˇ obvykle zavadzaj´ u´ doporucenˇ e´ praktiky a konvencie pre tvorbu aplikaci´ ´ı. Niektore´ aplikacnˇ e´ ramce´ zaviedli deklarat´ıvne popisy aplikacie,´ ktore´ umozˇnujˇ u´ vyjadrit’ rozneˆ castiˇ aplikacie´ deklarat´ıvnym popisom, ciˇ uzˇ vyu- zitˇ ´ım struktˇ ur´ poskytovanych´ danou platformou, alebo pomocou konfi- guracie.´ Tato´ praca´ sa zaobera´ prepojen´ım deklarat´ıvneho a imperat´ıvneho pr´ıs- tupu ku tvorbe aplikaci´ ´ı s ciel’om vytvorenia noveho´ aplikacnˇ eho´ ramca.´ Ciel’om aplikacnˇ eho´ ramca´ vytvoreneho´ v tejto praci´ je rozsˇ´ırit’ moznostiˇ su´ casnˇ ych´ aplikacnˇ ych´ ramcov´ o nove´ deklarat´ıvne koncepty. vii Kl’´uˇcov´eslov´a aplikacnˇ y´ ramec,´ deklarat´ıvny ramec,´ modularny´ ramec,´ Java, ORM, JPA, validacia´ dat,´ Java Enterprise Edition ix Obsah 1 Poziadavkyˇ ............................... 5 1.1 Ciele ................................ 5 1.1.1 Vyuzitieˇ pre enterprise aplikacie´ . 5 1.1.2 Deklarat´ıvny navrh´ aplikaci´ ´ı.............. 5 1.1.3 Opakovatel’na´ vyuzitelˇ ’nost’ kodu´ . 6 1.1.4 Abstrakcia datov´ eho´ ulo´ ziskaˇ . 6 1.2 Funkcnˇ e´ poziadavkyˇ ....................... 7 1.2.1 Pouzˇ´ıvatel’ske´ u´ cty,ˇ skupiny, role a prava´ . 7 1.2.2 Multi-pouzˇ´ıvatel’ske´ aplikacie´ . 7 1.2.3 Podpora viac-nasobn´ eho´ behu aplikacie´ . 7 1.2.4 Centralna´ konfiguracia´ aplikacie´ . 8 1.2.5 Automaticka´ validacia´ konfiguracie´ . 8 1.2.6 Logovanie . 8 1.2.7 Alarmy . 9 1.2.8 Behove´ statistikyˇ . 9 1.3 Nefunkcnˇ e´ poziadavkyˇ ...................... 9 2 Koncepty aplikaˇcnych´ r´amcov .................... 11 2.1 Model-View-Controller architektura´ . 11 2.2 Deklarat´ıvna tvorba aplikaci´ ´ı . 12 2.3 Agnosticky´ pr´ıstup k pouzˇ´ıvatel’skemu´ rozhraniu . 12 2.4 Databazov´ a´ abstrakcia ...................... 13 2.5 Automaticka´ validacia´ dat´ .................... 13 2.6 Model udalost´ı .......................... 14 2.7 Automaticke´ poskytovanie zavislost´ ´ı . 14 2.8 Autentizacia´ a autorizacia´ .................... 14 2.9 Logovanie ............................. 15 3 N´avrharchitekt ´ury ........................... 17 3.1 Struktˇ ura´ aplikacie´ ........................ 17 3.2 Jadro ................................ 18 3.2.1 Podporne´ nastroje´ . 19 3.3 Moduly ............................... 19 3.3.1 Stav modulu, instalˇ acia´ a odinstalovanieˇ . 20 1 3.4 Sluzbyˇ ............................... 20 3.5 Datov´ e´ sady ............................ 23 3.6 Konfiguracia´ ............................ 23 3.7 Lokalizacia´ ............................. 24 3.8 Zivotnˇ y´ cyklus aplikacie´ ..................... 25 3.8.1 Spustenie aplikacie´ . 25 3.8.2 Ukoncenieˇ aplikacie´ . 26 3.9 Module Manager ......................... 26 3.9.1 Datov´ e´ sady . 27 3.10 Presenter .............................. 27 3.11 File Logger ............................. 27 3.11.1 Datov´ e´ sady . 27 3.12 Users ................................ 28 3.12.1 Datov´ e´ sady . 28 3.13 Sessions ............................... 28 3.13.1 Datov´ e´ sady . 28 3.14 Alarm Logger ........................... 29 3.15 Statistics .............................. 29 3.15.1 Datov´ e´ sady . 29 3.16 Billing ................................ 29 3.16.1 Datov´ e´ sady . 29 3.17 Instalˇ ator´ .............................. 29 4 Uk´azkov´aaplik´aciaˇ .......................... 31 4.1 Modul Fridge ........................... 32 4.2 Modul GUI ............................. 33 4.3 Spustenie aplikacie´ ........................ 33 4.4 Beh aplikacie´ ............................ 34 4.5 Ukoncenieˇ aplikacie´ ........................ 35 5 Z´aver ................................... 37 2 Uvod´ Aplikacnˇ e´ ramce,´ ako napr´ıklad Tapestry [15], predstavuju´ rozsˇ´ırenia danej softwarovej platformy, napr´ıklad Java 6 Enterprise Edition [14]. Pridavaj´ u´ dodatocnˇ u´ funkcionalitu oproti funkcionalite poskytovanej danou softwa- rovou platformou, hoci tato´ funkcionalita je obvykle zaistena´ vyuzitˇ ´ım exis- tujucich´ konstruktovˇ danej platformy. Motivaciou´ pre vytvorenie noveho´ aplikacnˇ eho´ ramca´ je zvy´senieˇ pro- duktivity pri vyvoji´ aplikaci´ ´ı. Toho je dosiahnute´ definovan´ım a implemen- tovan´ım podpornych´ API, ktore´ riesiaˇ castoˇ sa vyskytujuce´ problemy´ alebo ulohy.´ Tieto podporne´ API su´ doplnene´ definovan´ım konvenci´ı danych´ pre navrhnuty´ aplikacnˇ y´ ramec.´ Tieto konvencie predstavuju´ doporucenˇ e´ po- stupy pouzitiaˇ implementovanych´ API pri tvorbe aplikaci´ ´ı. Praca´ je zamerana´ na tvorbu noveho´ aplikacnˇ eho´ ramca´ za u´ celomˇ spo- jenia najuzitoˇ cnejˇ sˇ´ıch postupov a funkcionality aplikacnˇ ych´ ramcov.´ Po- stupy a funkcionalita prevzata´ z inych´ aplikacnˇ ych´ ramcov´ je doplnena´ o dodatocnˇ u´ funkcionalitu. Ciel’om prace´ je navrh´ aplikacnˇ eho´ ramca´ pre prostredie takzvanych´ en- terprise aplikaci´ ´ı orientovanych´ na data.´ Ako enterprise aplikacie´ sa ob- vykle oznacujˇ u´ aplikacie´ vyuzˇ´ıvane´ v priemyselnom sektore, firmami alebo vladnymi´ organizaciami´ [1]. Aplikacie´ orientovane´ na data´ su´ zamerane´ na systematicke´ zbieranie a ukladanie dat,´ ktore´ su´ nasledne´ aplikaciou´ spra- covavan´ e´ za danym´ u´ celom.ˇ Pr´ıkladom aplikacie´ orientovanej na data´ je in- formacnˇ y´ system´ alebo administracnˇ e´ rozhranie webovej aplikacie.´ Pr´ıkla- dom aplikacie,´ ktora´ nie je orientovana´ na data,´ je napr´ıklad akcnˇ a´ pocˇ´ıta- covˇ a´ hra alebo jednoduchy´ hudobny´ prehrava´ cˇ bez funkci´ı ako hudobna´ kniznica.ˇ Navrhnuty´ aplikacnˇ y´ ramec´ bude podporovat’ webove´ pouzˇ´ıvatel’ske´ rozhranie a API pre vzdialenu´ komunikaciu´ s aplikaciou.´ Zabudovana´ pod- pora pre vzdialenu´ komunikaciu´ umozˇnujeˇ intergraciu´ so systemami´ tre- t´ıch stran´ alebo ich spajanie´ do supersystemu.´ Webove´ pouzˇ´ıvatel’ske´ roz- hranie bolo zvolene´ z dovoduˆ multi-platformnosti a pretozeˇ predstavuje technologicky´ trend pre enterprise aplikacie.´ Praca´ je clenenˇ a´ nasledovne: Kapitola Poziadavkyˇ obsahuje zhrnutie a 3 pop´ısanie poziadavkovˇ na navrhnuty´ aplikacnˇ y´ ramec.´ V kapitole Kon- cepty aplikacnˇ ych´ ramcov´ su´ preskuman´ e´ su´ casnˇ e´ aplikacnˇ e´ ramce´ pod- porujuce´ webove´ pouzˇ´ıvatel’ske´ rozhranie z hl’adiska ponukan´ ych´ funkci´ı. Vysledky´ prieskumu aplikacnˇ ych´ ramcov´ spolu s definovanymi´ poziadav-ˇ kami su´ v kapitole Navrh´ architektury´ rozpracovane´ do architektury´ navr- hnuteho´ aplikacnˇ eho´ ramca.´ Kapitola Uka´zkovˇ a´ aplikacia´ popisuje navrh´ a implementaciu´ jednoduchej aplikacie´ zalozenejˇ na navrhnutom aplikac-ˇ nom ramci.´ Praca´ je uzavreta´ kapitolou Zaver´ , ktora´ zhodnocuje navrhnuty´ aplikacnˇ y´ ramec´ a popisuje moznostiˇ jeho d’alsiehoˇ rozsirovaniaˇ a vyvoja.´ 4 Kapitola 1 Poziadavkyˇ Poziadavkyˇ je moznˇ e´ rozdelit’ do nasledujucich´ zakladn´ ych´ skup´ın: • ciele – popisuju´ cohoˇ by malo byt’ dosiahnute´ navrhom´ aplikacnˇ eho´ ramca´ alebo jeho pouzˇ´ıvan´ım. • funkcnˇ e´ poziadavkyˇ – popisuju´ spravanie´ (funkcie ciˇ sluzby)ˇ sys- temu´ a podporuju´ ciele, ulohy´ alebo cinnostiˇ pouzˇ´ıvatel’ov [4]. • nefunkcnˇ e´ poziadavkyˇ – obsahuju´ obmedzenie a kvality [4]. 1.1 Ciele 1.1.1 Vyuzitieˇ pre enterprise aplik´acie Aplikacnˇ y´ ramec´ bude urcenˇ y´ pre tvorbu enterprise aplikaci´ ´ı zameranych´ na data.´ Ked’zeˇ jednou z veducich´ technologi´ ´ı v tejto oblasti je Java Enter- prise Edition, aplikacnˇ y´ ramec´ bude urcenˇ y´ pre tuto´ platformu. 1.1.2 Deklarat´ıvnyn´avrhaplik´aci´ı Deklarat´ıvny navrh´ aplikacii´ spocˇ´ıva vo vytvoren´ı popisu struktˇ ury´ ap- likacie´ a aplikaciou´ spracovavan´ ych´ dat.´ Aplikacnˇ y´ ramec´ nasledne´ vyuzijeˇ tento popis na prisposobenieˆ aplikacnejˇ logiky. Vyuzitieˇ deklarativity zaist’uje [2]: • vysˇsiuˇ produktivity vyvoj´ arov´ • mensieˇ mnozstvoˇ programoveho´ kodu´ • l’ahsiuˇ udrzovatelˇ ’nost’ aplikacie´ – vyplyva´ z mensiehoˇ mnozstvaˇ ko-´ du • mensˇ´ı vyskyt´ chyb´ v aplikacii´ – vyplyva´ z mensiehoˇ mnozstvaˇ kodu´ 5 1. POZIADAVKYˇ Aplikacie´ budu´ navrhovane´ z vel’kej castiˇ definovan´ım datov´ ych´ sad.´ Datov´ a´ sada predstavuje
Recommended publications
  • Osgi and GWT Integration Via Pax-Web and Maven (V:0.01)
    OSGi and GWT integration via Pax-web and Maven (v:0.01) Sergio Blanco Diez Ignacio Diaz de Sarralde Carvajal January 13, 2010 Contents 1 Introduction 2 2 GWT 3 2.1 Toolkit overview.....................................3 2.1.1 Development overview..............................3 2.1.2 Google Web Toolkit component overview...................4 2.2 Workflow.........................................4 2.2.1 Project creation.................................4 2.2.2 Project structure.................................5 2.2.3 \Hosted" or Development server........................6 2.2.4 Module definition; .gwt.xml files........................8 2.2.5 Coding the client; GWT Widgets........................9 2.2.6 Coding the server; Remote Procedure Calls.................. 12 2.3 Other features...................................... 14 2.3.1 Internationalization............................... 14 2.3.2 Declarative User Interfaces........................... 14 3 OSGi and GWT integration 17 3.1 Creating the GWT Project............................... 17 3.2 Things to consider in GWT Maven projects...................... 20 3.3 Enabling OSGi in the GWT project.......................... 20 3.3.1 Turning the GWT project into a bundle.................... 20 3.3.2 Dependencies management........................... 25 3.3.3 Run using Pax Runner.............................. 28 1 Chapter 1 Introduction When developing complex OSGi applications it is usual to implement one or more web frontends, be them for end users or for consumption by other systems. OSGi provides a standard way to register servlets and resources under different URLs, but creating complex frontends can be dif- ficult and time consuming. When the frontend is SOA based, solutions like Apache CXF help exposing internal services via web services or REST. But if the frontend must be a fairly complex web application in itself, complexity rises.
    [Show full text]
  • Developing Webapps Faster with Appfuse Matt Raible [email protected]
    Developing webapps faster with AppFuse Matt Raible [email protected] !ww.raibledesigns.co" Who is Matt Raible? • Developing websites since 1994 (before Netscape 1.0) - Developing in Java since 1999 • Committer on several open source projects: Roller Weblogger, Struts Menu, Display Tag, AppFuse, Struts Resume • Have a weblog (http://raibledesigns.com) with tips n’ tricks for J2EE and web development • Author: Spring Live (SourceBeat) and contributor to Pro JSP (Apress) !ww.raibledesigns.co" Audience Questions • Your Experience with webapps? • What do you want to get from this presentation? • Open Source experience with Ant, XDoclet, Struts, Hibernate, Spring? !ww.raibledesigns.co" Presentation Agenda • What is AppFuse? • Open Source Dependencies • Demo of Features • HowTo: Create Person object and DAO to persist • Questions? !ww.raibledesigns.co" AppFuse - what is it? • History - how it came to be • Powered by Ant, glued together with Spring, persisted by Hibernate and controlled with Struts • Easy setup (ant setup) for Tomcat and MySQL • Testing on all tiers: DAOs, Business Delegates, Struts Actions and JSPs !ww.raibledesigns.co" Dependencies !ww.raibledesigns.co" Demo of Features • Container Managed Authentication - easily switch from JDBC to LDAP or Windows domain authentication • Remember Me and Self Registration • GZip Compression Built-in • Testing environment ready to go, Anthill ready • http://demo.raibledesigns.com/appfuse !ww.raibledesigns.co" Create database, table, POJO and DAO A Quick HowTo !ww.raibledesigns.co" Development
    [Show full text]
  • Migrating from Struts 1 to Struts 2
    Migrating from Struts 1 to Struts 2 Matt Raible, Virtuas Open Source Solutions [email protected] © 2005-2006, Virtuas Open Source Solutions Introductions Your experience with Java? Your experience with Web Frameworks? What do you hope to learn today? Open Source experience: Ant, Struts, WebWork, Spring, Hibernate, Eclipse, Tomcat? Favorite IDE? Favorite OS? Favorite Server? Matt Raible Web Framework Experience Struts: used since June 2001 - same time 1.0 was released. Spring MVC: used since January 2004 - before 1.0 was released. WebWork: used since July 2004. Tapestry: used since July 2004. JSF: used since July 2004 - both Sun’s RI and MyFaces. Agenda 1. Struts Overview 2. WebWork Overview 3. Reasons for Upgrading 4. Migrating from Struts 1 to Struts 2 5. Migrating from WebWork 2 to Struts 2 6. Pitfalls 7. Q and A Struts 1.x Overview Struts 1.x Pros: The “Standard” - lots of Struts jobs Lots of information and examples HTML tag library is one of the best Cons: ActionForms - they’re a pain Can’t unit test - StrutsTestCase only does integration Project has been rumored as “dead” WebWork/Struts2 WebWork/Struts 2 Pros: Simple architecture - easy to extend Tag Library is easy to customize with FreeMarker or Velocity Interceptors are pretty slick Controller-based or page-based navigation Cons: Small Community Documentation is poorly organized WebWork / Struts 2 WW/S2 Lifecycle WebWork Action public class UserAction extends ActionSupport { private UserManager mgr; private User user; private String id; public void setUserManager(UserManager
    [Show full text]
  • Engageone Deliver V2.7.0 Release Summary
    Customer Engagement ® EngageOne Deliver Versions 2.3 to 2.7 Enhancement Summary Table of Contents ® 1 - EngageOne Deliver Changes in Deliver 2.7 4 Changes in Deliver 2.6 5 Changes in Deliver 2.5 6 Changes in Deliver 2.4 7 Changes in Deliver 2.3 8 ® 1 - EngageOne Deliver This document provides details of enhancements made between release 2.3 and 2.7. It is intended to give you an insight into the benefits of upgrading to a particular release. In this section Changes in Deliver 2.7 4 Changes in Deliver 2.6 5 Changes in Deliver 2.5 6 Changes in Deliver 2.4 7 Changes in Deliver 2.3 8 ® EngageOne Deliver Changes in Deliver 2.7 SparkPost API gateway for email sending – provides support for the SparkPost API email gateway used for sending emails. Refer to Reference Guide for details. SparkPost API gateway for email bounce handling – provides support for email bounce handling through the SparkPost events APIs. Refer to Reference Guide for details. Location tracking for URL clicks – provides support for tracking the geo-location of URL clicks within an email. It utilizes Pitney Bowes LI APIs for tracking geo-location by IP address. Refer to Reference Guide for details. Home Page dashboard graph update – in this release the Home page dashboard bar graph has been changed to present doughnut charts for improved user experience. Date filter caching is also added to avoid frequent server hits and improve page load time Java1 1 support – This release has been tested and verified for Java 11.x with Tomcat 9.x.
    [Show full text]
  • Struts.Sf.Net
    struts.sf.net 1. Welcome to the Struts Applications Project The goals of the Struts Applications Project are: • to provide example Struts applications, • to host Struts extensions and utilities, and • to put the code out where the Community can use it, fix it, and maintain it The Struts Applications Project currently consists of the following sub- projects: • AppFuse - A baseline Struts application to be used for future web applications • Polls - A survey-management Struts application • Struts Action Invocation Framework (SAIF) - Adds features like Action interceptors and Inversion of Control (IoC) to Struts. • Struts BSF - A Struts Action implementation that uses BSF-compatible scripting languages. • Struts Cocoon - Integrates Struts and Cocoon, using Cocoon for the presentation layer • Struts Dialogs - Implements event handling paradigm, state management, provides simplified control flow and facilitates component development. • Struts Flow - Brings Cocoon's Control Flow to Struts • Struts Resume - An application written using AppFuse as a foundation. • Struts Spring - Integrates Struts and the Spring Inversion of Control (IoC) framework. • StrutsDoc - A JavaDoc-type documentation tool for Struts and Struts-related configuration files • AjaxTags - A modified version of the Struts HTML taglib that adds AJAX functionality in a purely declarative fashion (please see the important note about this project on the AjaxTags page) • AjaxChat - A Struts-based chat application utilizing AJAX techniques. This is meant to serve as an example for those wondering how to use AJAX within a Struts app. AppFuse An application for starting your Struts-based applications. Checkout from CVS and execute "ant -Dapp.name=yourApp -Ddb.name=database" to instantly be up and running with a Tomcat/MySQL app.
    [Show full text]
  • Diseño E Implementación De Un Framework De Presentación Curso 2012/13
    PFC – Diseño e implementación Framework Presentación (2012/13) Licencia Esta obra está bajo una licencia Reconocimiento - No comercial- Sin obras derivadas 2.5 España de Creative Commons. Puede copiarlo, distribuirlo y transmitirlo públicamente siempre que cite al autor y la obra, no se haga un uso comercial y no se hagan copias derivadas. La licencia completa se puede consultar en: http://creativecommons.org/licenses/by-nc-nd/2.5/es/deed.es 1 PFC – Diseño e implementación Framework Presentación (2012/13) Estudios de Informática y Multimedia Proyecto Fin de Carrera Diseño e implementación de un Framework de Presentación Curso 2012/13 Nombre: Daniel Rodríguez Simó Username: drodriguezsi Tutor : Óscar Escudero Sánchez 2 PFC – Diseño e implementación Framework Presentación (2012/13) Agradecimientos Quiero agradecer el apoyo a Isabel, mi mujer, de cara a todo el tiempo invertido para poder sacar adelante estos años de estudio y esfuerzo. Y en general a toda mi familia, especialmente a mis padres Eugenia y Juan Pedro, porque sin ellos y sin la educación que se han esforzado en darme, esto nunca habría sido posible y a Pilar y Eugenia, mis abuelas, que aunque no se encuentren entre nosotros, siempre algo de ellas que nos acompaña en el día a día. Por último agradecer a mi tutor Óscar su apoyo y orientación de cara a la consecución de este objetivo y al buen desarrollo de este Proyecto Fin de Carrera. A todos vosotros, Gracias! 3 PFC – Diseño e implementación Framework Presentación (2012/13) Descripción General El presente proyecto se centra en el estudio y elaboración de un marco de trabajo basado en un Framework de Presentación, dedicado al desarrollo de aplicaciones web bajo la plataforma J2EE.
    [Show full text]
  • Choosing a JVM Web Framework
    Choosing a JVM Web Framework Matt Raible [email protected] http://raibledesigns.com © 2007 Raible Designs, Inc. Today’s Agenda Introductions The Problem Is there a solution to The Problem? How do you choose? 6 Important Factors Case Studies What do I think? Q and A © 2007 Raible Designs, Inc. Audience Matters This talk is designed for teams trying to navigate the confusion in the JVM Web Framework space It is designed to be a discussion, not a presentation These are my opinions... ... and options are like ... Your opinions will influence mine So please share them! © 2007 Raible Designs, Inc. Introductions Your experience with web applications? Your experience with Java EE? What do you want to get from this session? Experience with Maven, Tomcat, Hibernate, Spring? Web Framework Experience: Spring MVC, Struts 2, Stripes, JSF, Tapestry, Wicket, Rails, Grails, Flex © 2007 Raible Designs, Inc. Who is Matt Raible? Power user of Java Open Source Frameworks Author of Spring Live and Pro JSP 2.0 Founder of AppFuse and AppFuse Light Member of Java EE 5, JSF 1.2 and Bean Validation Expert Groups Committer on Apache Projects: Roller and Struts Java Blogger since 2002 © 2007 Raible Designs, Inc. The Problem © 2007 Raible Designs, Inc. The Problem © 2007 Raible Designs, Inc. How do you choose? © 2007 Raible Designs, Inc. Eliminate, don’t Include © 2007 Raible Designs, Inc. © 2007 Raible Designs, Inc. 6 Important Factors Request, Component or RIA Framework Ease of Development Project Community Project Future and Roadmap Maintenance Technical Features © 2007 Raible Designs, Inc. Request, Component or RIA Are you developing..
    [Show full text]
  • Migrating from Struts 1 to Struts 2 Matt Raible Virtuas Open Source Solutions [email protected]
    Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions Migrating from Struts 1 to Struts 2 Matt Raible Virtuas Open Source Solutions [email protected] Matt Raible — Migrating from Struts 1 to Struts 2 Page 1 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions Introductions Your experience with Java? Your experience with Web Frameworks? What do you hope to learn today? Open Source experience: Ant, Struts, WebWork, Spring, Hibernate, Eclipse, Tomcat? Favorite IDE? Favorite OS? Favorite Server? Matt Raible — Migrating from Struts 1 to Struts 2 Page 2 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions Matt Matt Raible — Migrating from Struts 1 to Struts 2 Page 3 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions Raible Matt Raible — Migrating from Struts 1 to Struts 2 Page 4 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions Matt Raible — Migrating from Struts 1 to Struts 2 Page 5 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions Matt Raible — Migrating from Struts 1 to Struts 2 Page 6 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions Matt Raible — Migrating from Struts 1 to Struts 2 Page 7 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions Matt Raible — Migrating from Struts 1 to Struts
    [Show full text]
  • Web Application for Interoperability Testing of Web Services
    Master's Degree in Informatics Engineering Thesis Final Report Web application for interoperability testing of web services Bruno Miguel Filipe Martins [email protected] Supervisor: Prof. Nuno Laranjeiro Date: January 29th, 2016 Master's Degree in Informatics Engineering Thesis Final Report Web application for interoperability testing of web services Author: Bruno Miguel Filipe Martins [email protected] Jury: Prof. Marco Vieira Prof. Carlos Bento Supervisor: Prof. Nuno Laranjeiro Date: January 29th, 2016 WitWS - Web application for interoperability testing of web services Acknowledgments I would like to start by thanking my supervisor, Professor Carlos Nuno Laranjeiro. Without his immeasurable help and guidance this thesis would have been a shadow of itself. To this day I still cannot comprehend how can someone not be completely fed up with me after three meetings a day. His resilience is admirable. To Ivano Elia, for putting up with my endless questions about his previous work. His input throughout the thesis, especially in the testing phase, was invaluable. To Paulo Martins. After a day’s work, after taking care of his own company and after looking for his own family, still having the time to provide me with some tips is nothing short of incredible. To Catarina Lopes, because a long-distance relationship is hard enough without one of the members always complaining about his day. For always having the patience to hear me out even when going through some tough times herself. For understanding that this thesis took a lot more of my time than I expected. And last but definitely not least, to my parents.
    [Show full text]
  • Matt F. Raible Denver, Colorado 720-560-8460 / [email protected]
    Matt F. Raible Denver, Colorado 720-560-8460 / [email protected] Summary of Functional Experience Programming Languages: Java, Java EE, JSP, JSTL, XML, XSL, XSLT, JavaScript, CSS, XHTML, HTML, ASP, SQL, Velocity, FreeMarker. Learning Groovy, GWT, Stripes, Seam, Wicket and Ruby. Development Software: Eclipse, Intellij IDEA, BBEdit, vi, Macromedia (HomeSite, Flash, Dreamweaver, Fireworks), Microsoft FrontPage, Adobe Photoshop Open Source Software: AppFuse (founder), Ant, Struts, Spring Framework, Acegi Security Framework, Display Tag Library (committer), Cactus, DBUnit, JUnit, Hibernate, Log4J, Roller Weblogger (committer), Struts-Menu (lead developer), XDoclet (committer) Web Server Software: Tomcat, JBoss, WebLogic, Sun Application Server, Resin, Orion, Sun Web Server, IIS, Apache HTTP Server Databases: Oracle, SQL Server, MySQL, HSQL, PostgreSQL, Access Operating Systems: Windows, UNIX (Solaris), Linux (Red Hat/Fedora, Suse and Ubuntu), Mac OS X Certifications: Sun Certified Web Component Developer, Sun Certified Java Programmer, Microsoft Certified Systems Engineer (2000 & NT), Microsoft Certified Database Administrator (2000 & NT), Dreamweaver MX Developer Professional Experience Founder and Lead Developer, AppFuse. January 2003 – Present. AppFuse is an open source project that helps you create web applications quickly with popular open source tools like Hibernate, Spring, Struts and Maven 2. Java Author, Spring Live, SourceBeat. March 2004 – May 2007. Authoring constantly updated (dynamic) book on the Spring Framework. Conference Speaker, MySQL User Conference, ApacheCon, ApacheCon EU, OSCON, Colorado Software Summit, No Fluff Just Stuff, The Spring Experience. President and CEO, Raible Designs, Denver, CO. 1998 - Present. Own and operate my own J2EE Consulting Company. Below are recent projects and my roles in them. Java Open Source Consultant, eInvite.com, West Boylston, MA.
    [Show full text]
  • Direct Assurance » (D
    REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE MINISTERE DE L’ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE UNIVERSITE MOULOUD MAMMERI DE TIZI-OUZOU FACULTE DE GENIE ELECTRIQUE ET D’INFORMATIQUE DEPARTEMENT INFORMATIQUE De fin d'étude En vue de l’obtention du diplôme de Master en informatique Option : Conduite de Projets Informatiques. Etude comparative des frameworks et réalisation d’une application J2EE pour l’entreprise d’assurance « Direct Assurance » (D. A) Proposé et dirigé par : Réalisé par : Mr: A.Dib Melle : ABROUS Lamia. Melle : BOUDJEMA Celia 2014 Remerciements Nous tenons à exprimer nos vifs remerciements à tous ceux qui nous ont aidés à aboutir dans notre travail et à tous ceux qui ont contribué d’une façon ou d’une autre à réaliser ce projet de fin d’études, en premier lieu notre promoteur M. Dib. Nos plus vifs remerciements vont également aux membres du jury pour nous avoir fait l’honneur de juger ce travail. Dédicaces A ma famille, à mes amis et à tous ceux qui m’ont soutenu de prés ou de loin dans la réalisation de ce modeste travail. Lamia A ma famille, à mes amis et à tous ceux qui m’ont soutenu de prés ou de loin dans la réalisation de ce modeste travail. Celia Sommaire Introduction générale ...................................................................................... 1 Chapitre I : généralités sur les assurances I-Introduction ................................................................................... 2 II- Historique ................................................................ 3 III-
    [Show full text]
  • Comparing Java Web Frameworks
    Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Virtuas, LLC Comparing Web Frameworks Struts, Spring MVC, WebWork, Tapestry & JSF Matt Raible [email protected] Matt Raible — Comparing Web Frameworks Struts, Spring MVC, WebWork, Tapestry & JSF Page 1 Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Virtuas, LLC Introductions Your experience with webapps? Your experience with J2EE? What do you want to get from this session? Experience with Ant, Tomcat, Hibernate, Spring? Web Framework Experience: Struts, Spring MVC, WebWork, Tapestry, JSF Others: Wicket, Ruby on Rails? Anyone used AppFuse or Equinox? Matt Raible — Comparing Web Frameworks Struts, Spring MVC, WebWork, Tapestry & JSF Page 2 Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Virtuas, LLC Matt Raible — Comparing Web Frameworks Struts, Spring MVC, WebWork, Tapestry & JSF Page 3 Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Virtuas, LLC Matt Raible — Comparing Web Frameworks Struts, Spring MVC, WebWork, Tapestry & JSF Page 4 Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Virtuas, LLC Matt Raible — Comparing Web Frameworks Struts, Spring MVC, WebWork, Tapestry & JSF Page 5 Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Virtuas, LLC Matt Raible — Comparing Web Frameworks Struts, Spring MVC, WebWork, Tapestry & JSF Page 6 Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Virtuas, LLC Matt Raible — Comparing Web Frameworks Struts, Spring MVC, WebWork,
    [Show full text]