introduction to java - igalia · 2012-08-03 · introduction java platform java community process...
TRANSCRIPT
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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