Atelier Développement

l'avenir de ESUP-Commons

Pascal.Rigaux @ univ-paris1.fr

Plan

  • ESUP-Commons
  • Présentation de l'atelier
  • Petite veille technologique
  • Programme alléchant des prochaines réunions

Historique
ESUP-Commons v1

  • 2006-2009-
  • ant, spring, hibernate, JSF
  • mixte servlet/portlet
  • très structurant : 1 bibliothèque + 1 patron très complet
  • documentation + formations

Retours : trop contraignant

Historique
ESUP-Commons v2

  • 2010-2012-
  • compatibilité v1
  • plus modulaire : 12 bibliothèques, 10 archétypes
  • maven, spring, JPA, Spring-MVC / JSF
  • documentation + formations

Décision coordination ESUP (09/2012) :
  • Spring-MVC pour les portlets (accroches)
  • servlet pour applis métier/gestion

Enquête ESUP-Commons

  • 2013
  • 33 réponses
  • 85% d'universités
  • 65% de développeur-intégrateur

ESUP-Commons :
  • Formations et auto-formations : utiles
  • v2 plus utilisée que la v1
  • v2 appréciée : plus facile, plus flexible
  • OK pour encore plus de flexibilité

Présentation de l'atelier « Développement »

⇒ harmoniser/faciliter/mutualiser le développement des applications autour de l'ENT

Comment ?

  • recommander des technologies
  • recenser les pratiques
  • produire des exemples
  • veille technologique
  • retours d'expériences
  • discussion techniques

Premières décisions

ouverture sur les technologies Javascript client et PHP

Un peu de veille technologie

une analyse de certaines évolutions de la programmation Web...

Le Web évolue

vue desktop vue desktop,
vue mobile
responsive
web design
applets
flash
HTML5
canvas, SVG
single page app
backbone.js, AngularJS
reveal.js
XHR JSONP CORS
iframe ⚠ cookies « des sites visités »
CSP
Shadow DOM
Web Components
...

XML : le reflux ?

beans XML annotations java
ant, maven
build.xml, pom.xml
gradle
(groovy DSL)
SOAP
JAX-WS
REST/JSON
JAX-RS, Jackson
SAML oauth2
XHTML HTML5
XHTML5/polyglot peu utilisé

Fonctions anonymes

Java 5 + Guava Java 8 + Guava

Iterables.filter(persons,
  new Predicate<Person>() {
    @Override
    public boolean apply(Person p) {
      return p.getAge() >= 18;
    }
  });

Iterables.filter(persons,
    p -> p.getAge() >= 18);
⇒ parallélisme, callbacks

C#
2007
PHP
2009
Objective C
2009
C++
2011
Java
2014!

Programmation événementielle

les débuts

signaux sous unix
1970
GUI libraries
1980
Javascript
1995

async IO

XHR
2004
nginx
2004
node.js
2010
Play/Netty
2010

Les langages de programmation évoluent

PHPJava servletJavascriptWeb Workers
concurrency processus
+ pthreads
threads
preemptive
1 seul thread
⚠ async IO + CPS
threads
partage
données
non
DB, memcached...
oui
⚠ synchronisation
oui message
passing
sessions fichier
memcached, mongodb, DB
mémoire
⚠ si serializable : fichier, DB
mémoire, cookies,
redis, mongodb
choix simplicité performance léger, C10K

Participez !

Sujets des prochaines réunions :

Questions ?