LUT/Saimia CapGemini Code Camp 17.10.2012 Java EE Technologies Lauri Naukkarinen Tatu Kosonen Kari-Matti Kangas.

Slides:



Advertisements
Similar presentations
J2EE Architecture Overview
Advertisements

Apache Struts Technology
ISE 390 Dynamic Web Development Java EE Web Applications.
Sergio Ferreira MoreData I16 Thursday, October 12, :30 a.m. – 11:30 a.m. Platform: Informix How to call Informix 4gl code from J2EE.
An architecture for webb applications, J2EE
Introduction to Java 2 Enterprise Edition About myself –Neutrinos, Cancer Research, IT Applications Today’s topic: J2EE –Context –Advantages –Components.
 Java  Python  Bigtable(Bt) is a distributed storage system for managing structured data that is designed to scale to a very large size.  Query Language.
Sapana Mehta (CS-6V81) Overview Of J2EE & JBoss Sapana Mehta.
Application Servers What is it? General A set of software frameworks, components, utilities, functionality that enables you to develop and deliver n-tiered.
WEB1P servintro1 Introduction to servlets and JSP Dr Jim Briggs.
Java 2 – Enterprise Edition Kevin J. LaFata April 21, 2003 UM – St. Louis.
Java Server Team 8. Overview What is a Java Server? History Architecture Advantages Disadvantages Current Technologies Conclusion.
Application Architectures Vijayan Sugumaran Department of DIS Oakland University.
Apache Struts Technology A MVC Framework for Java Web Applications.
Session-01. What is a Servlet? Servlet can be described in many ways, depending on the context: 1.Servlet is a technology i.e. used to create web application.
Web Applications Basics. Introduction to Web Web features Clent/Server HTTP HyperText Markup Language URL addresses Web server - a computer program that.
Introduction to Java web programming Dr Jim Briggs JWP intro1.
Distributed System Using Java 2 Enterprise Edition (J2EE)
J AVA SE, EE, AND ME Compiled (with permission) from Sang Shin’s Introduction to Java EE Online Course Introduction to Java EE Online Course.
UNIT-V The MVC architecture and Struts Framework.
JavaServer Faces: The Fundamentals Compiled from Sun TechDays workshops (JSF Basics, Web-Tier Codecamp: JavaServer Faces, Java Studio Creator; IBM RAD)
CSCI 6962: Server-side Design and Programming Course Introduction and Overview.
EJB Overview Celsina Bignoli Distributed Business Applications Server DB Client DB Server DB.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
CIS 285 ROBINSON WINTER 2005 CIS 285 Web Application Development with Java CIS 285 Sinclair Community College Instructor: Mary Robinson.
Bayu Priyambadha, S.Kom. What is J2EE? * Open and standard based platform for developing, deploying and managing n-tier, Web-enabled, server-centric,
Introduction to J2EE Architecture Portions by Kunal Mehta.
Web Applications - Basics. Introduction to Web Web features Clent/Server HyperText Transfer Protocol HyperText Markup Language URL addresses Web server.
J2EE Structure & Definitions Catie Welsh CSE 432
Enterprise Java v120131Intro to JavaEE1 Java EE 5 TM Introduction.
® IBM Software Group © 2007 IBM Corporation J2EE Web Component Introduction
Enterprise Java Beans Java for the Enterprise Server-based platform for Enterprise Applications Designed for “medium-to-large scale business, enterprise-wide.
Web Server Programming 1. Nuts and Bolts. Premises of Course Provides general introduction, no in-depth training Assumes some HTML knowledge Assumes some.
Fall CIS 764 Database Systems Design L8. Web ….
Source: Peter Eeles, Kelli Houston, and Wojtek Kozaczynsky, Building J2EE Applicationa with the Rational Unified Process, Addison Wesley, 2003 Prepared.
1 CS122B: Projects in Databases and Web Applications Spring 2015 Notes 03: Web-App Architectures Professor Chen Li Department of Computer Science CS122B.
SOA support in J2EE Platform overview Primitive SOA support Support for service-orientation principles Contemporary SOA support.
CliServ. J2EE/141 Client/Server Distributed Systems v Objectives –introduce the J2EE specification, and the J2EE SDK –other approaches: Struts,
Java Servlets and Java Server Pages Norman White Stern School of Business.
Assignment of JAVA id : BSSE-F10-M-10-JAVA1 Overview of J2EE/Session 2/Slide 1 of 38.
Copyright 2007 SpringSource. Copying, publishing or distributing without express written permission is prohibited. Spring MVC Essentials Getting started.
1 Introduction to Servlets. Topics Web Applications and the Java Server. HTTP protocol. Servlets 2.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Preface IIntroduction Objectives I-2 Course Overview I-3 1Oracle Application Development Framework Objectives 1-2 J2EE Platform 1-3 Benefits of the J2EE.
1 Copyright © 2004, Oracle. All rights reserved. Oracle Application Development Framework.
Java Servlets and Java Server Pages
Introduction to EJB. What is an EJB ?  An enterprise java bean is a server-side component that encapsulates the business logic of an application. By.
Java Programming: Advanced Topics1 Introduction to Advanced Java Programming Chapter 1.
Java Programming: Advanced Topics 1 Building Web Applications Chapter 13.
Glink for Java: applet, application and an API for integrating access to Bull, IBM, UNIX and Minitel systems with your Java based e-business applications.
Apache Struts Technology A MVC Framework for Java Web Applications.
1.Education Overview JAVA EE 6 Technologies
Speaker Name Speaker Title Speaker Title Oracle Corporation Olivier Le Diouris Principal Product Manager Oracle Corporation Building Servlet and JSP Applications.
Introduction to Java Web Programming Gregg Sporar
J2EE Platform Overview (Application Architecture)
CS122B: Projects in Databases and Web Applications Spring 2017
CS122B: Projects in Databases and Web Applications Winter 2017
Introduction to Advanced Java Programming
Java Servlets By: Tejashri Udavant..
4166 Review.
Introduction to J2EE Architecture
Java EE Overview The problem Java Enterprise Edition attempts to solve: maximize the use of Java technologies by providing a suite of Java technology specifications.
Design and Maintenance of Web Applications in J2EE
MSIS 655 Advanced Business Applications Programming
ISE 390 Dynamic Web Development
Java EE Overview The problem Java Enterprise Edition attempts to solve: maximize the use of Java technologies by providing a suite of Java technology specifications.
CS122B: Projects in Databases and Web Applications Winter 2018
Distributed System Using Java 2 Enterprise Edition (J2EE)
CS122B: Projects in Databases and Web Applications Spring 2018
JavaServer Faces: The Fundamentals
Presentation transcript:

LUT/Saimia CapGemini Code Camp Java EE Technologies Lauri Naukkarinen Tatu Kosonen Kari-Matti Kangas

Objectives  What is Java EE  Why use Java EE  Examples

When you understand this, you understand Java EE public abstract class AbstractSingletonProxyFactoryBean extends ProxyConfigProxyConfig implements FactoryBean, BeanClassLoaderAware, InitializingBeanFactoryBeanBeanClassLoaderAware InitializingBean Convenient proxy factory bean superclass for proxy factory beans that create only singletons.

Java EE Technology Specifications  Java API for RESTful Web Services (JAX-RS)  Web Services 1.3 JSR109JSR109  Java API for XML-Based Web Services (JAX-WS) 2.2 JSR224JSR224  Java Architecture for XML Binding (JAXB) 2.2 JSR222JSR222  Web Services Metadata for the Java Platform 2.1 JSR181JSR181  Java API for XML-based RPC (JAX-RPC) 1.1 JSR101JSR101  Java APIs for XML Messaging (JAXM) 1.3 JSR67JSR67  Java API for XML Registries (JAXR) 1.0 JSR93JSR93  Java Servlet 3.0 JSR315JSR315  JavaServer Faces (JSF) 2.0 JSR314JSR314  JavaServer Pages (JSP) 2.2 JSR245JSR245  Expression Language (EL) 2.2 JSR245JSR245  JavaServer Pages Standard Tag Library (JSTL) 1.2 JSR52JSR52  Enterprise JavaBeans (EJB) 3.1 JSR318 LiteJSR318  Java Persistence API (JPA) 2.0 JSR317JSR317  Contexts and Dependency Injection for Java 1.0 JSR299JSR299  Dependency Injection for Java 1.0 JSR330JSR330  Common Annotations for the Java Platform 1.1 JSR250JSR250  Java Message Service API (JMS) 1.1 JSR914JSR914  Java Transaction API (JTA) 1.1 JSR907JSR907  JavaMail API 1.4 JSR919JSR919  Java Authentication Service Provider Interface for Containers (JASPIC) 1.0 JSR196JSR196  Java Authorization Service Provider Contract for Containers (JACC) 1.4 JSR115JSR115  …

Introduction to Java EE  J2EE == Java EE  Vendor-specific implementation of interfaces  Apache, Oracle, IBM, etc  Java EE components work with Hollywood Principle ’Don’t call us, we’ll call you’  Java EE is a server-side programming environment  NOT Java Applets or JavaScript  Client side receives processed output  HTML, JSON, XML(SOAP)  Client is often a web browser  Could as well be a mobile client or another server side system

System Using Java EE  Characteristics  Usually massive and complex enterprise scale information systems  Comprise different Java EE components and legacy systems  Distributed  Long lifetime  Modules built with common patterns  Leads easy maintenance  High demand, high performance  SOA and BPM solutions

Traditional Java EE Users  Examples of use  Insurance companies  Online banks  Manufacturing industries  Public sector ’Cobol of the 21st century’

Java EE is not only Java  Many languages with seamless integration: you can share libraries, code, classes, etc.  Groovy  Object-oriented  Inspired by Java, Python, Ruby, Smalltalk  Scala  Functional, object-oriented  ”Cutting away Java’s syntactic overhead, adding power”  Inspired by Java, Scheme, Erlang, Haskell, Lisp  JRuby: implementation of Ruby on JVM  Jython: implementation of Python on JVM

“Trendy” Java EE users: LinkedIn  Started with Java platform, using Java EE and extensions  Spring Framework  Grails  Now utilizing also Scala and JRuby  Scala for back-end processing  JRuby for integration interfaces

“Trendy” Java EE users: Twitter  Started with Ruby on Rails  Now using Java and Scala in back-end processing  Why?  Scalability and Performance  SOA  Encapsulation (re-use, maintenance)

“Trendy” Java EE users: Others  Google, Amazon and many others use Java EE  What about Facebook?  Writing PHP, which quickly lead to serious performance issues  Started compiling PHP to C++  Are now investigating using PHP on JVM

Pure Java isn’t always “too many lines” Package fi.app.domain.courses; import java.util.List; import org.bson.types.ObjectId; import org.springframework.data.mongodb.repository.MongoRepository; import org.springframework.data.mongodb.repository.Query; import org.springframework.data.querydsl.QueryDslPredicateExecutor; public interface CourseRepository extends MongoRepository, QueryDslPredicateExecutor { // Interface implementation is generated run-time by 'name' : { $regex : ?0, $options: 'i' } }") public List findByNameRegex(String 'code' : { $regex : ?0, $options: 'i' } }") public List findByCodeRegex(String code); }

Technology Overview  Model-View-Controller(MVC) Controller (Servlet) View (JSP) Model (EJB) Request Response DB Client bv Java EE System External Systems Web ServerApplication Server

Technology Overview  Java EE is a specification that different vendors implement  Implementation details are hidden, only API is published  Concrete classes often also used via Proxy  Java EE Application Servers  For running full stack(Servlets, JSP, EJB)  jBoss, Oracle WebLogic, GlassFish, IBM Websphere …  Java WebServers  For running Servlets and JSP  Tomcat, Jetty,  EJB-only server  OpenEJB

Technology Overview: Controller  Servlet – Controller  Component for handling pre-processing of requests  Redirects to JSP in order to view the response  Uses Model to access business {”/mail/compose”, ”/mail/delete”, ”/mail/show”} ) public class MailServlet extends HttpServlet // doGet( HttpServletRequest req, HttpServletResponse ) throws IOException, ServletException { // … Some pre-processing logic … RequestDispatcher rd = req.getRequestDispatcher( ”mail-view.jsp” ); MailBox mb = // …Fetch mailbox content from Model req.setAttribute( ”mailbox”, mb ); rd.forward( req, resp); // Forward to View for further processing }

Technology Overview: View  Java Server Pages (JSP) – View  XML/HTML –based documents which are compiled to Servlets at runtime  Servlets that spesialize on sending formatted response to client  Can contain JSP scripting elements/Expression Language(EL) statements for adding content dynamically  JSP pages done by UI Designer  Custom tags for more complex tasks (Controller logic) done by SW Developer

Technology Overview: View Welcome ${username} You have ${requestScope.mailbox.newItems} unread mail ${mail.sender} ${mail.title} ${mail.receivedDate} Compose new Mail

Technology Overview: Model  Enterprise Java Beans (EJB) – Model  Responsibilities  Transaction handling  Business logic  Stateless vs. Stateful  Remote - Uses either RMI or CORBA to expose interfaces  External App Server  Local – Used as any other Java class through interface and container generated proxy  Inside the same App Server as Controller

Technology Overview: public class MailBean { public MailBox getMail() { // Get mail data from DB or external system // Return as MailBox Transfer Object return …; }

Case Study: Online shop Example of using Core Java EE technologies in building an online shop  Why choose Core Java EE technologies  Scalability  Distributed Architecture  Security  Cost of Licenses  Support for Open and Closed Interfaces  Maintainability  Design Patterns  Interfaces

Case Study: Online shop Example of using Core Java EE technologies in building an online shop  Use cases: 1. List products 2. Searching for products 3. Adding a product to shopping cart/basket 4. View/modify shopping cart/basket contents

Case Study: Online shop Example of using Core Java EE technologies in building an online shop  Technologies  JSP 2.0  EJB 2.1  Servlet 2.x  Java EE 5  Core Java EE Design Patterns  Front Controller  View Helper  Dispatcher View  Business Delegate  Application Service  Business Object  (Data)Transfer Object, (D)TO, Value Object (VO)  Data Access Object (DAO)

Extensions to Core Java EE  Grails (Groovy on Rails)  Interpreted script compiled to Java bytecode at runtime  Supports writing Java code directly  Java libraries, JPA models etc directly available  Spring / Spring MVC  Abstraction, no need to work directly with Servlets etc  XML-based configuration  IoC/DI  Java EE 6 based on Spring  JSF - Java Server Faces  Notation for generating JSF-pages (View), which communicate with managed beans(Controller)  Struts  Custom tag libraries  XML-based

Questions / Comments ? Thank you!