introduction to java - igalia · 2012-08-03 · introduction java platform java community process...

29
Introduction Java Platform Java Community Process Introduction to Java General overview of Java: history, basic concepts, platform and community Manuel Rego Casasnovas <[email protected]> Master on Free Software / June 2012 Manuel Rego Casasnovas <[email protected]> Introduction to Java

Upload: others

Post on 18-Feb-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduction to Java - Igalia · 2012-08-03 · Introduction Java Platform Java Community Process History Basic Concepts OriginI Specification developed by James Gosling (Sun Microsystems)

IntroductionJava Platform

Java Community Process

Introduction to JavaGeneral overview of Java: history, basic concepts, platform

and community

Manuel Rego Casasnovas <[email protected]>

Master on Free Software / June 2012

Manuel Rego Casasnovas <[email protected]> Introduction to Java

Page 2: Introduction to Java - Igalia · 2012-08-03 · Introduction Java Platform Java Community Process History Basic Concepts OriginI Specification developed by James Gosling (Sun Microsystems)

IntroductionJava Platform

Java Community Process

Outline

1 IntroductionHistoryBasic Concepts

2 Java PlatformJava Platform ComponentsJava Platform Editions

3 Java Community ProcessIntroductionJava Specification RequestsJava ReleasesExercises

Manuel Rego Casasnovas <[email protected]> Introduction to Java

Page 3: Introduction to Java - Igalia · 2012-08-03 · Introduction Java Platform Java Community Process History Basic Concepts OriginI Specification developed by James Gosling (Sun Microsystems)

IntroductionJava Platform

Java Community Process

HistoryBasic Concepts

Origin I

Specification developed by James Gosling (SunMicrosystems)

Initiated in 1991 (initially called Oak, and finally Java)

Alternative to C++/C

Finished in 1995 version 1.0 was released:Write once, run anywhere

Manuel Rego Casasnovas <[email protected]> Introduction to Java

Page 4: Introduction to Java - Igalia · 2012-08-03 · Introduction Java Platform Java Community Process History Basic Concepts OriginI Specification developed by James Gosling (Sun Microsystems)

IntroductionJava Platform

Java Community Process

HistoryBasic Concepts

Origin II

Figure: James Gosling in 20081

1http://en.wikipedia.org/wiki/james_gosling

Manuel Rego Casasnovas <[email protected]> Introduction to Java

Page 5: Introduction to Java - Igalia · 2012-08-03 · Introduction Java Platform Java Community Process History Basic Concepts OriginI Specification developed by James Gosling (Sun Microsystems)

IntroductionJava Platform

Java Community Process

HistoryBasic Concepts

Recent News

January 27, 2010: Oracle acquires Sun MicrosystemsSolaris, OpenOffice.org, MySQL, Java, Hudson, . . .Sun “brain drain”

April 9, 2010: James Gosling left OracleI didn’t leave Oracle because I had some nextgreat thing to go to. I’m feeling pretty burned outand trashed, . . .

March 28, 2011: Gosling joined GoogleAugust 30, 2011: Left Google and joined a new startupcalled Liquid Robotics

Manuel Rego Casasnovas <[email protected]> Introduction to Java

Page 6: Introduction to Java - Igalia · 2012-08-03 · Introduction Java Platform Java Community Process History Basic Concepts OriginI Specification developed by James Gosling (Sun Microsystems)

IntroductionJava Platform

Java Community Process

HistoryBasic Concepts

Java Principles

Simple, object-oriented and familiarRobust and secureArchitecture-neutral and portableHigh performanceInterpreted, threaded, and dynamic

Manuel Rego Casasnovas <[email protected]> Introduction to Java

Page 7: Introduction to Java - Igalia · 2012-08-03 · Introduction Java Platform Java Community Process History Basic Concepts OriginI Specification developed by James Gosling (Sun Microsystems)

IntroductionJava Platform

Java Community Process

HistoryBasic Concepts

Java General Description

General purposeConcurrentObject-orientedDesigned to be simpleStrongly typedHigh level languageMemory management by the Java Virtual Machine

Manuel Rego Casasnovas <[email protected]> Introduction to Java

Page 8: Introduction to Java - Igalia · 2012-08-03 · Introduction Java Platform Java Community Process History Basic Concepts OriginI Specification developed by James Gosling (Sun Microsystems)

IntroductionJava Platform

Java Community Process

HistoryBasic Concepts

Java Platform vs Java Programming Language

Java PlatformSet of software products and specifications from SunMicrosystems/Oracle Corporation that provides a way todevelop applications and deploy them in a cross-platformenvironment

Java platform main components:Java language compilerJava Virtual MachineClass libraries

Java Programing Language

Language core of the Java Platform which is the main one usedto produced code for the Java Platform

Manuel Rego Casasnovas <[email protected]> Introduction to Java

Page 9: Introduction to Java - Igalia · 2012-08-03 · Introduction Java Platform Java Community Process History Basic Concepts OriginI Specification developed by James Gosling (Sun Microsystems)

IntroductionJava Platform

Java Community Process

HistoryBasic Concepts

Java Platform vs Java Programming Language

Java PlatformSet of software products and specifications from SunMicrosystems/Oracle Corporation that provides a way todevelop applications and deploy them in a cross-platformenvironment

Java platform main components:Java language compilerJava Virtual MachineClass libraries

Java Programing Language

Language core of the Java Platform which is the main one usedto produced code for the Java Platform

Manuel Rego Casasnovas <[email protected]> Introduction to Java

Page 10: Introduction to Java - Igalia · 2012-08-03 · Introduction Java Platform Java Community Process History Basic Concepts OriginI Specification developed by James Gosling (Sun Microsystems)

IntroductionJava Platform

Java Community Process

HistoryBasic Concepts

JRE vs JDK

JRE (Java Runtime Environment)Java Virtual MachineJava class librariesJava plug-in (Applets)Java Web Start (JNLP - Java Network Launching Protocol)

JDK (Java Development Kit)All JREAnd compilers, debuggers, etc . . . employed to develop

Manuel Rego Casasnovas <[email protected]> Introduction to Java

Page 11: Introduction to Java - Igalia · 2012-08-03 · Introduction Java Platform Java Community Process History Basic Concepts OriginI Specification developed by James Gosling (Sun Microsystems)

IntroductionJava Platform

Java Community Process

HistoryBasic Concepts

JRE vs JDK

JRE (Java Runtime Environment)Java Virtual MachineJava class librariesJava plug-in (Applets)Java Web Start (JNLP - Java Network Launching Protocol)

JDK (Java Development Kit)All JREAnd compilers, debuggers, etc . . . employed to develop

Manuel Rego Casasnovas <[email protected]> Introduction to Java

Page 12: Introduction to Java - Igalia · 2012-08-03 · Introduction Java Platform Java Community Process History Basic Concepts OriginI Specification developed by James Gosling (Sun Microsystems)

IntroductionJava Platform

Java Community Process

Java Platform ComponentsJava Platform Editions

Java Platform Diagram

Figure: Java Platform Diagram2

2http://docs.oracle.com/javase/7/docs/

Manuel Rego Casasnovas <[email protected]> Introduction to Java

Page 13: Introduction to Java - Igalia · 2012-08-03 · Introduction Java Platform Java Community Process History Basic Concepts OriginI Specification developed by James Gosling (Sun Microsystems)

IntroductionJava Platform

Java Community Process

Java Platform ComponentsJava Platform Editions

Java Platform Key Components

Core components:Basic API: Multi-threaded programmingCORBA - Java IDL (Interface Definition Language)JNDI (Java Naming and Directory Interface)XML

Database components: JDBCJava SE SecurityDesktop components:

AWT (Abstract Window Toolkit)SwingJava 2DJava 3DJava SoundJava Help System. . .

Manuel Rego Casasnovas <[email protected]> Introduction to Java

Page 14: Introduction to Java - Igalia · 2012-08-03 · Introduction Java Platform Java Community Process History Basic Concepts OriginI Specification developed by James Gosling (Sun Microsystems)

IntroductionJava Platform

Java Community Process

Java Platform ComponentsJava Platform Editions

Java Virtual Machine

Compiler translates Java source code to bytecodeBytecode is the key to cross-platform (multi-platform)Java Virtual Machine is the Java bytecode executionengine

Sun/Oracle implementation: Java Hotspot VMJIT (Just-in-time) compiler. Part of the virtual machinewhich translates the bytecode to machine instructionsThe Java Virtual Machine is not cross-platform

Manuel Rego Casasnovas <[email protected]> Introduction to Java

Page 15: Introduction to Java - Igalia · 2012-08-03 · Introduction Java Platform Java Community Process History Basic Concepts OriginI Specification developed by James Gosling (Sun Microsystems)

IntroductionJava Platform

Java Community Process

Java Platform ComponentsJava Platform Editions

Java Platform Editions

Since Java 2 (1998) three configurations for differentpurposes:

Java SE (Standard Edition)Java EE (Enterprise Edition)Java ME (Micro Edition)

Manuel Rego Casasnovas <[email protected]> Introduction to Java

Page 16: Introduction to Java - Igalia · 2012-08-03 · Introduction Java Platform Java Community Process History Basic Concepts OriginI Specification developed by James Gosling (Sun Microsystems)

IntroductionJava Platform

Java Community Process

Java Platform ComponentsJava Platform Editions

Java SE (Standard Edition)

Target: Java platform for desktop and serversAll explained till now is not all the Java platform. It is theJava Platform Standard Edition

Manuel Rego Casasnovas <[email protected]> Introduction to Java

Page 17: Introduction to Java - Igalia · 2012-08-03 · Introduction Java Platform Java Community Process History Basic Concepts OriginI Specification developed by James Gosling (Sun Microsystems)

IntroductionJava Platform

Java Community Process

Java Platform ComponentsJava Platform Editions

Java EE (Enterprise Edition) I

Target: Set of technologies to develop, deploy and managemultitier, server-centric applications

Extension of the Java SE with a set of functionalitiesappropriate for the enterprise

Manuel Rego Casasnovas <[email protected]> Introduction to Java

Page 18: Introduction to Java - Igalia · 2012-08-03 · Introduction Java Platform Java Community Process History Basic Concepts OriginI Specification developed by James Gosling (Sun Microsystems)

IntroductionJava Platform

Java Community Process

Java Platform ComponentsJava Platform Editions

Java EE (Enterprise Edition) II

Technologies included in Java EE:Related to web services. Some of them:

Java API for XML-Based Web Services (JAX-WS)Java API for XML-Based RPC (JAX-RPC)Java Architecture for XML Binding (JAXB)

Related to web development. Some of them:Java Server Faces (JSF)Java Server Pages (JSP)Java Server Pages Standard Tag Library (JSTL)Java Servlet

Related to enterprise applications. Some of them:Enterprise Java Beans (EJB)Java Message Service (JMS)Java Persistence API (JPA)

Manuel Rego Casasnovas <[email protected]> Introduction to Java

Page 19: Introduction to Java - Igalia · 2012-08-03 · Introduction Java Platform Java Community Process History Basic Concepts OriginI Specification developed by James Gosling (Sun Microsystems)

IntroductionJava Platform

Java Community Process

Java Platform ComponentsJava Platform Editions

Java ME (Micro Edition)

Target: Embedded systemsCollection of technologies to create a platform that fits therequirements of mobile devices (consumer products,embedded devices, advanced mobile devices)Not based in Java SE. It is smallerTwo profiles (configuration):

Connected Device Configuration (CDC): For embeddeddevices with certain capabilities). Example: PDAConnected Limited Device Configuration (CLDC): Forsmall devices. Example: Mobile phones

Manuel Rego Casasnovas <[email protected]> Introduction to Java

Page 20: Introduction to Java - Igalia · 2012-08-03 · Introduction Java Platform Java Community Process History Basic Concepts OriginI Specification developed by James Gosling (Sun Microsystems)

IntroductionJava Platform

Java Community Process

IntroductionJava Specification RequestsJava ReleasesExercises

Java Evolution

Java platform evolves (dynamic): Since it was born allthe components of the Java platform change with timeHow is managed the evolution of Java?

Trough the Java Community Process (JCP). The JavaCommunity Process is an open and participative processwhich defines the future of JavaIntroduced in 1998URL: http//jcp.orgJCP has an Executive Committee (EC)

Manuel Rego Casasnovas <[email protected]> Introduction to Java

Page 21: Introduction to Java - Igalia · 2012-08-03 · Introduction Java Platform Java Community Process History Basic Concepts OriginI Specification developed by James Gosling (Sun Microsystems)

IntroductionJava Platform

Java Community Process

IntroductionJava Specification RequestsJava ReleasesExercises

JCP Membership

JCP members participate in the definition of the JavaPlatformMore than 700 membersImportant companies: BEA, Fujitsu, HP, IBM, ...Individuals can be members of JCP, even not belonging toany companyRequirements to be JCP member:

Sign JSPA (Java Specification Participation Agreement)It has a fee depending of your type of membership:

Commercial entities: 5000 $Educational/non profit organizations: 2000 $Individual: 0 $

Manuel Rego Casasnovas <[email protected]> Introduction to Java

Page 22: Introduction to Java - Igalia · 2012-08-03 · Introduction Java Platform Java Community Process History Basic Concepts OriginI Specification developed by James Gosling (Sun Microsystems)

IntroductionJava Platform

Java Community Process

IntroductionJava Specification RequestsJava ReleasesExercises

JPC Specifications

The artifacts used by the JCP to define Java are thespecificationsSpecifications define:

The Java programming languageJVM specificationAPIs of technologiesTechnologies of the Java Platform from several viewpoints:

How use the technologyInternals of technologyPerformance

Manuel Rego Casasnovas <[email protected]> Introduction to Java

Page 23: Introduction to Java - Igalia · 2012-08-03 · Introduction Java Platform Java Community Process History Basic Concepts OriginI Specification developed by James Gosling (Sun Microsystems)

IntroductionJava Platform

Java Community Process

IntroductionJava Specification RequestsJava ReleasesExercises

JSRs (Java Specification Requests)

Specifications are organized in JSR (Java SpecificationRequest)A JSR is composed of:

Java specification: Document detailing the specificationReference Implementation (RI): Prototype or proof ofconcept. Demonstrate the feasibilityTechnology Compatibility Kit (TCK): Suite of tests, tools,and documentation that allows an implementor of aspecification to determine if it is compliant

Manuel Rego Casasnovas <[email protected]> Introduction to Java

Page 24: Introduction to Java - Igalia · 2012-08-03 · Introduction Java Platform Java Community Process History Basic Concepts OriginI Specification developed by James Gosling (Sun Microsystems)

IntroductionJava Platform

Java Community Process

IntroductionJava Specification RequestsJava ReleasesExercises

JSR Life-cycle

JCP Process Document: Specifies the JSR life-cycle

Figure: JSR Timeline3

3http://jcp.org/en/introduction/timeline

Manuel Rego Casasnovas <[email protected]> Introduction to Java

Page 25: Introduction to Java - Igalia · 2012-08-03 · Introduction Java Platform Java Community Process History Basic Concepts OriginI Specification developed by James Gosling (Sun Microsystems)

IntroductionJava Platform

Java Community Process

IntroductionJava Specification RequestsJava ReleasesExercises

Java SE Releases

Covered by JSR umbrellaJava SE releases:

Without JCPJDK 1.0 - 1996JDK 1.1 - 1997J2SE 1.2 - 1998 - From here it is called Java 2 PlatformJ2SE 1.3 - 2000

With JCPJ2SE 1.4 - 2002 - JSR 59J2SE 1.5 - 2004 - JSR 176Java SE 1.6 - 2006 - JSR 270Java SE 1.7 - 2011 - JSR 336 (Current release)

Manuel Rego Casasnovas <[email protected]> Introduction to Java

Page 26: Introduction to Java - Igalia · 2012-08-03 · Introduction Java Platform Java Community Process History Basic Concepts OriginI Specification developed by James Gosling (Sun Microsystems)

IntroductionJava Platform

Java Community Process

IntroductionJava Specification RequestsJava ReleasesExercises

Java EE Releases

Java EE releases:Without JCP

J2EE 1.2 SDK - 1999With JCP

J2EE 1.3 SDK - 2001 - JSR 58J2EE 1.4 SDK - 2002 - JSR 151Java EE 5 SDK - 2006 - JSR 244Java EE 6 SDK - 2009 - JSR 313

Manuel Rego Casasnovas <[email protected]> Introduction to Java

Page 27: Introduction to Java - Igalia · 2012-08-03 · Introduction Java Platform Java Community Process History Basic Concepts OriginI Specification developed by James Gosling (Sun Microsystems)

IntroductionJava Platform

Java Community Process

IntroductionJava Specification RequestsJava ReleasesExercises

JSR Exercises

Exercise 1Find the JSR which specifies the way of doing REST webservices and open it

Exercise 2Find the JSR which specifies the Java SE 8

Manuel Rego Casasnovas <[email protected]> Introduction to Java

Page 28: Introduction to Java - Igalia · 2012-08-03 · Introduction Java Platform Java Community Process History Basic Concepts OriginI Specification developed by James Gosling (Sun Microsystems)

IntroductionJava Platform

Java Community Process

IntroductionJava Specification RequestsJava ReleasesExercises

JSR Exercises

Exercise 1Find the JSR which specifies the way of doing REST webservices and open it

Exercise 2Find the JSR which specifies the Java SE 8

Manuel Rego Casasnovas <[email protected]> Introduction to Java

Page 29: Introduction to Java - Igalia · 2012-08-03 · Introduction Java Platform Java Community Process History Basic Concepts OriginI Specification developed by James Gosling (Sun Microsystems)

References

References

Oracle Technology Network for Java Developershttp://www.oracle.com/technetwork/java/

Java (software platform) - Wikipedia, the free encyclopediahttp://en.wikipedia.org/wiki/Java_(software_platform)

Java (programming language) - Wikipedia, the freeencyclopediahttp://en.wikipedia.org/wiki/Java_(programming_language)

Java Community Processhttp://jcp.org/

Manuel Rego Casasnovas <[email protected]> Introduction to Java