Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

JAVA Frameworks: 'state of the union'

Het Java landschap biedt een hele brede waaier van frameworks voor het ontwikkelen van bedrijfstoepassingen aan. Frameworks zijn in constante evolutie door kruisbestuiving en standaardisatie. Zo is Java EE 6 een erg belangrijke milestone voor Java EE
by

Stijn Van den Enden

on 23 June 2011

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of JAVA Frameworks: 'state of the union'

Core Frameworks
State of the union tijn Van den Enden Enterprise JavaBeans Specification (EJB), Version 1.1
JavaServer Pages Specification (JSP), Version 1.1
Java Servlet Specification, Version 2.2
JDBC API, Version 2.0
Java Naming and Directory Interface Specification (JNDI), Version 1.2
Java Message Service (JMS), Version 1.0.2
Java Transaction API (JTA), Version 1.0.1
Java Transaction Service (JTS), Version 0.95
JavaMail API Specification Version 1.1
JavaBeans Activation Framework Specification (JAF), Version 1.0 Enterprise JavaBeans Specification (EJB), Version 2.0
JavaServer Pages Specification (JSP), Version 1.2
Java Servlet Specification, Version 2.3
JDBC API, Version 2.1
Java Naming and Directory Interface Specification (JNDI), Version 1.2
Java Message Service (JMS), Version 1.0.2
Java Transaction API (JTA), Version 1.0.1
Java Transaction Service (JTS), Version 1.0
JavaMail API Specification Version 1.1
JavaBeans Activation Framework Specification (JAF), Version 1.0
J2EE Connector Architecture, Version 1.0
Java API for XML Processing (JAXP), Version 1.0
Java Authentication and Authorization Service (JAAS), Version 1.0 Enterprise JavaBeans Specification (EJB), Version 2.1
JavaServer Pages Specification (JSP), Version 2.0 (JSR 152)
JavaServer Pages Standard Tag Library (JSTL), Version 1.1 (JSR 52)
Java Servlet Specification, Version 2.4
JDBC API, Version 3.0
Java Naming and Directory Interface Specification (JNDI), Version 1.2
Java Message Service (JMS), Version 1.1
Java Transaction API (JTA), Version 1.0.1B
Java Transaction Service (JTS), Version 1.0
JavaMail API Specification, Version 1.2
JavaBeans Activation Framework Specification (JAF), Version 1.0
J2EE Connector Architecture, Version 1.5
Java API for XML Processing (JAXP), Version 1.2
Java Authentication and Authorization Service (JAAS), Version 1.0
Java Authorization Service Provider Contract for Containers (JACC), Version 1.0
Web Services for J2EE, Version 1.0
Java API for XML-based RPC (JAX-RPC), Version 1.0
Java API for XML Registries (JAXR), Version 1.0
Java Management Extensions (JMX), Version 1.1
Java 2 Platform, Enterprise Edition Management Specification, Version 1.0
Java 2 Platform, Enterprise Edition Deployment Specification, Version 1.0 Enterprise JavaBeans Specification (EJB), Version 3.0
Java Persistence API (JPA), Version 1.0
JavaServer Pages Specification (JSP), Version 2.1
Java Servlet Specification, Version 2.5
JavaServer Faces (JSF), Version 1.2
JavaServer Pages Standard Tag Library (JSTL), Version 1.2
JDBC API, Version 3.0
Java Naming and Directory Interface Specification (JNDI), Version 1.2
Java Message Service (JMS), Version 1.1
Java Transaction API (JTA), Version 1.1
Java Transaction Service (JTS), Version 1.0
JavaMail API Specification, Version 1.4
JavaBeans Activation Framework Specification (JAF), Version 1.1
J2EE Connector Architecture, Version 1.5
Java API for XML Processing (JAXP), Version 1.3
Java Authentication and Authorization Service (JAAS), Version 1.0
Java Authorization Service Provider Contract for Containers(JACC), Version 1.1
Web Services for Java EE, Version 1.2
Java API for XML-based RPC (JAX-RPC), Version 1.1
Java API for XML Registries (JAXR), Version 1.0
Java Management Extensions, Version 1.2
Java Platform, Enterprise Edition Management Specification, Version 1.1
Java Platform, Enterprise Edition Deployment Specification, Version 1.1
Java API for XML-based Web Services (JAX-WS), Version 2.0
Java Architecture for XML Binding (JAXB), Version 2.0
SOAP with Attachments API for Java (SAAJ), Version 1.3
Web Services Metadata for the Java Platform, Version 2.0
Streaming API for XML (StAX), Version 1.0
[edit] Java Servlet, Version 3.0 JSR 315
JavaServer Faces (JSF), Version 2.0 JSR 314
Dependency Injection for Java, Version 1.0 JSR 330
Contexts and Dependency Injection for Java (Web Beans 1.0) JSR 299
Bean Validation, Version 1.0 JSR 303
Enterprise JavaBeans, Version 3.1 JSR 318
Java Persistence, Version 2.0 JSR 317
Java API for RESTful Web Services (JAX-RS), Version 1.1 JSR 311
... Modularisation Web SGi ! Criteria Developer Productivity
Developer Perception
Learning Curve
Project Health
Developer Availability
Job Trends
Templating
Components
Ajax
Plugins or Add-Ons
Scalability
Testing
i18n and l10n
Validation
Multi-language Support (Groovy / Scala)
Quality of Documentation/Tutorials
Books Published
REST Support (client and server)
Mobile / iPhone Support
Degree of Risk What if there is no 'best' web framework? How to choose? Prioritize a list of features that are important to your application.
Pick 3-4 frameworks and do a 1-week spike with each, developing the same application.
Document and rank each framework against your list of features.
Calculate and choose! 1995 1999 2001 2003 2006 2009 2011 2002 Oaks becomes Java J2EE 1.2 Released J2EE 1.3 Released J2EE 1.4 Released JEE 5 Released Ease of Development
Resource Injection
Transparent Persistency
Java SE 5 aligment Themes JEE 6 Released Themes Web Profile JSF 2.0, Servlet 3.0, JSP 2.2, EL 2.2, JSTL 1.2
Managed Beans 1.0, @Inject 1.0, CDI 1.0, Interceptors 1.1
Bean Validation 1.0
EJB Lite 3.1 JTA 1.1 JPA 2.0 Profile Support True Dependency Injection Introduced Pruning Local Session Bean
Injection
CMT / BMT
Interceptors
Security Message Driven Beans
EJB Web Service Endpoint
RMI/IIOP Interoperability
Remote interface
EJB 2.x
Timer service
CMP / BMP JEE 6 Managed Beans 'container-managed objects with minimal requirements, otherwise known under the acronym POJO.' JSR-330 Dependency Injection Support a small set of basic services
Resource Injection (@Resource)
Life-cycle (@PostConstruct, @PreDestroy)
Interceptors (@Interceptors) standardizes annotations for dependency injection @Qualifier @Scope meta-annotation to create your own scopes
javax.inject.Singleton - standard provided meta-annotation to create your own metadata on requirements of injection point
javax.inject.Named - standard provided @Inject identifies injection points;
a constructor
field
method Supported by Google Guice JEE6 Web Profile 3.0 JEE 7 'CDI is intended to be a foundation for frameworks, extensions and integration with other technologies.' CDI enhancements and utilities
Exception handling
Alternate bean metadata sources, including XML configuration
Quartz scheduling CDI extension
Drools integration
JSF enhancements
GWT support
Contextual internationalization and localization support
JMS resource injection and CDI event bridging
Seam Remoting (ala DWR)
E-mail templating
Transaction and persistence for managed beans
Enhancements to the Java API for RESTful Web Services (JAX-RS)
Authentication, identity and permissions management, rule-based security, ACLs
Utilities and functionality to complement the Servlet API
Wicket CDI integration Mission - provide a fully-integrated development platform for building rich, standards-based Internet applications tailored for traditional and cloud deployments.

a collection of modules Themes Cloud HTML5 Modularisation multi-tenancy, application versioning, support for NRDBMS aligment with modularisation in JSE 7
better integration with @Inject/CDI (aka Modular EJBs) WebSocket support, JSF 2.1 Spring 1.0 Spring 2.0 Spring 2.5 Spring 3.0 Spring 3.1.m2 Java 5 alignment
Spring Expression Language
IoC enhancements/Java based bean metadata (JavaConfig)
General-purpose type conversion system and field formatting system
Object to XML mapping functionality (OXM) moved from Spring Web Services project
Comprehensive REST support (not JAX-RS)
@MVC additions
JSR-330 Support
Early support for Java EE 6 (JPA 2.0, @Inject, @Async, JSF 2.0) Added support for environment profiles
New caching abstraction and cache annotation support Extensions Spring Security Spring WebFlow Spring Integration Spring Batch Spring Mobile Spring Android Spring AMQP Spring GemFire Spring Social Spring Data make it easier to build Spring-powered applications that use new data access technologies such as non-relational databases, map-reduce frameworks, and cloud based data services OSGi Release 1 May 2000 Spring DM 1.0 jan 2008 nov 2007 dec 2009 Spring DM 2.0.0 M1 sept 2009 OSGi Release 4, v4.2 Sept 2009 OSGi Service Platform
Enterprise Specification + OSGi 4.2 Blueprint Reference Implementation (RI) Eclipse Gemini Mar 2010 trim (a tree, shrub, or bush) by cutting away dead or overgrown branches or stems, esp. to increase fruitfulness and growth. Pruned in Java EE 6 - so candidates for removal from JEE 7
Entity CMP 2.x
JAX-RPC
JAX-R
Java EE Application Deployment (JSR-88) JSR-299 Contexts and Dependency Injection for the Java EE platform (CDI) events instances live in a specific context
@RequestScope
@SessionScope
@ApplicationScope
@ConversationScope

... and it is pluggable typesafe dependency injection @Qualifiers on steriods Fire Listen contextual instances s.vandenenden@aca-it.be stieno Based on work from Matt Raible
http://raibledesigns.com/ Spring JEE 7 JEE 7 JEE 7 JEE 7 JEE Fit with HTML5 vs. Java Module System (Java 8) 08-06-2011 Theme: Eliminate XML Configuration 10/2002 march 2004 oct 2006
Full transcript