SlideShare a Scribd company logo
Java Fundamentals
Middleware Trains
Java Fundamentals
Prasad
middleware.trains@gmail.com
Java Fundamentals
Java
Contents
 Java
 J2EE
 Application Packaging
 Class Loading
Java Fundamentals
Java
What is Java?
Programming Language :
They are set of code which performs a particular task
Ex : code to multiply 2 number / code to get a variable and process it ..
Programming Languages classification
• High level language vs low level language
• Compiler based vs Interpreter based
Java is high level compiler based language
Code.java (source) > compiled (using javac) > code.class > gets executed by JVM
.java files are human readable files
.class are JVM understandable files
PLATFORM
Java Fundamentals
Java
‘Java ‘ – Is Platform Independent , but how ?
Java is platform independent, but JVMs are platform Dependent
Windows Linux MAC
Java Code
JVM
Windows
JVM
Linux
JVM
MAC
Java Code is run on JVM
JVMs are run on Specific OS
Java Fundamentals
Java
Java Virtual Machine
JVM repositories are called JDK (Java developers kit)
JDK = JRE + Developers utilities
Java Fundamentals
Java
How Java Runs ?
Java Fundamentals
Java
Java Summary
• Java is a high level Compiler based programming language
• Java is platform Independent , (Java code can be executed on any
platform)
• Java is executed by a JVM (Java Virtual Machine)
• JVM is platform dependent
• JVM is a software which needs to be installed on platforms
• JVM ‘s repository is called JDK (Java Developers kit)
• JDK = JRE (Java runtime Environment ) + Developer’s utilities
• For a Java code to run/execute JRE is enough
• Latest version of JDK is Java8
• Java needs executed with Java Parameters
• Basic java parameters Min Heap size, Max Heap Size and Server variable
• -Xms and –Xmx, -Xms 512 -Xmx 2048
Java Fundamentals
J2EE
J2EE
Java Fundamentals
J2EE
J2EE - Java Standards
“J2EE is a java standard for application development, which is
collection of Java API and frame work for development”
Java
Standards
Expansion Uses
J2SE Java Standard
Edition
Java standard edition is a standard
format
J2EE Java Enterprise
Edition
J2SE+ Standard to maintain
Enterprise application
J2ME Java Mobile Edition J2SE+ Standards to Maintain Mobile
applications
Java Fundamentals
J2EE
MVC : Model View Controller (MVC) – Flow Architecture
• MVC architecture
• Java application Packaging
• Java Application utilities for enterprise (Servlets, JSP….)
In application ,
Java Fundamentals
J2EE
MVC Model ….
MVC Parts Enabling J2EE Components
Business Models Java Beans and EJBs
Controller Servlets
View Java Server Faces (jsf) / Java Servlet Pages (jsp)
Java Fundamentals
J2EE
J2EE Components
• Servlets - A server –side components used for routing/controlling
• Java Server Pages (JSPs) __ |Client -side component to receive and
• Java Server Faces (JSFs) | respond to client
• Enterprise Java Beans (EJBs) – Server-side component architecture
for modular construction of enterprise applications. The EJB
specification is one of several Java APIs in the Java EE
specification. EJB is a server-side model that encapsulates the
business logic of an application.
• Session Beans
• Entity Beans
• Message Driven Beans – Deprecate
---- Wikipedia
Java Fundamentals
J2EE
J2EE Containers
• Runtime to manage application components
• Provides access to J2EE APIs.
• Provides system level services such as Transaction, Security etc
• There are three types of containers
• Web Container (handles Servlet. JSP and JSF request)
• EJB Container (Handles EJB request)
• Embedded HTTP container (Handles static Request like HTML)
MVC Parts J2EE Components J2EE Containers
Models Java Beans and EJBs EJB Container
Controller Servlets Web Container
View JSP/JSF Web Container
Java Fundamentals
J2EE
J2EE APIs
• Data Base Connectivity-- JDBC
• Messaging Infrastructure-- JMS
• Transactions-- JTA
• Security-- JAAS
• Mail products-- JavaMail
• System Administration -- JMX
• Directory and Naming Services--JNDI
Java Fundamentals
J2EE
J2EE Architecture – Component Architecture
Application Server
Embedded
HTTPserver EJB ContainerWeb Container
HTML
JSP SessionServlet Entity
Native
Component
Java Virtual MachineJNDI
JDBC
JMS
Java
Mail
JTA
JMX
J2C
Data
Base
JDBC
Admin
JMX
MQ
JMS
Legacy
J2C
Web
Service
Browser
Client
Http
Server
http
http
SOAP
http
CSIv2
RMI
SSL
RMI/IIOP
Http
SOAP
TCP/UDP
UDDI
RMI/IIOP
Java Fundamentals
Application packaging
Application packaging
Java Fundamentals
Application packaging
Application Deployment - Environments
Development
Base
Application
Dev Config
Server 1
Testing
Base
Application
Test Config
Server 1
UAT
Base
Application
UAT Config
Server 1
Used by the client to
test the business
functions
Used by developers to
build the application
using development
tools like IDEs. The
connection
configurations are at
dev level
Used by admin/testers
to perform , testing like
manual testing ,
performance testing
etc. The connection
resources are at test
level
Java Fundamentals
Application packaging
Stage or Pre-Prod
Base
Application
Stage Config
This environment is the replica of the production
environment .This is also used as a back up for
Prod in case of emergency
Server 1 Server 2
Production
Base
Application
Prod Config
This is the actual live environment , Which
powers the application which is used by the end
users
Server 1 Server 2
Application Deployment - Environments
Java Fundamentals
Application packaging
Application packaging
“Application packaging is packing the java code in form a archive ,
its contents contain environmental references, Deployment
descriptors, java Source code and static contents “
The main uses of packaging the application are
• Avoid corruption of java files and file loss
• Easy to transfer between servers and environments
• Easy to deploy
• Easy to access the classes
Types of Packages
• JAR – Java Archive
• WAR – Web Archive
• EAR – Enterprise Archive
Java Fundamentals
Application packaging
Application packaging
Java Fundamentals
Application packaging
Request Flow
Url ear application.xml  war  web.xml  classes(inside
jar)
Java Fundamentals
Application packaging
J2EE EAR Files
ear
EJB
Module
Web
Module
Java
Utility Jar
Resource
Adapter
Client
Modules
Java
Persistence
EJB DD
EJB Ext DD
EJB Bind DD
Web DD
Web Ext DD
Web Bind DD
Client DD
Client Ext DD
Client Bind DD
Resource DD
Persistence DD
Java Fundamentals
Application packaging
Deployment Descriptors
“A deployment descriptor (DD) refers to a configuration file for
an artifact that is deployed to some java container”
• The deployment descriptor must be called web.xml and must reside
in the WEB-INF directory in the web application root.
• For Java EE applications, the deployment descriptor must be named
application.xml and must be placed directly in the META-INF
directory at the top level of the application .ear file.
Java Fundamentals
Class loaders
Class Loading
Java Fundamentals
Class loaders
What are Class Loaders ?
Class loaders find and load class files. Class loaders enable applications that
are deployed on servers to access repositories of available classes and
resources.
Application developers and deployer must consider the location of class and
resource files, and the class loaders used to access those files, to make the files
available to deployed applications
Types of class loading
1. JVM Class loading
1. Bootstrap class loading
2. Extension Class loading
2. Weblogic class loading
3. Application Class loading
4. Module class loading
Java Fundamentals
Class loaders
What are Class Loaders ?
Types of class loading
1. JVM Class loading
1. Bootstrap class loading - C:Program FilesJavajdk1.7.0_45jrelib
2. Extension Class loading -C:Program FilesJavajdk1.7.0_45jrelibext
2. System Class loaders – Location of the middleware installed (its lib)
3. Application Class loading – Location of the deployed application (its lib)
4. Module class loading – Applications
Java Fundamentals
Class loaders
Class Loaders Big Picture
JVM class Loaders
System Class Loaders
App class Loaders
Module Level
Class Loaders
App class Loaders
Module Level
Class Loaders
Module Level
Class Loaders
Module Level
Class Loaders

More Related Content

What's hot

java database connection (jdbc)
java database connection (jdbc)java database connection (jdbc)
java database connection (jdbc)
Sanjay Gunjal
 
Java ee introduction
Java ee introductionJava ee introduction
Java ee introduction
Moumie Soulemane
 
Intro in JavaEE world (TU Olomouc)
Intro in JavaEE world (TU Olomouc)Intro in JavaEE world (TU Olomouc)
Intro in JavaEE world (TU Olomouc)
blahap
 
Designing JEE Application Structure
Designing JEE Application StructureDesigning JEE Application Structure
Designing JEE Application Structure
odedns
 
Ajava final(sachin sir9822506209)_vision_academy_21
Ajava final(sachin sir9822506209)_vision_academy_21Ajava final(sachin sir9822506209)_vision_academy_21
Ajava final(sachin sir9822506209)_vision_academy_21
SachinZurange
 
J2ee
J2eeJ2ee
Jdbc drivers
Jdbc driversJdbc drivers
Jdbc drivers
Prabhat gangwar
 
Types of Drivers in JDBC
Types of Drivers in JDBCTypes of Drivers in JDBC
Types of Drivers in JDBC
Hemant Sharma
 
Java Web Programming [1/9] : Introduction to Web Application
Java Web Programming [1/9] : Introduction to Web ApplicationJava Web Programming [1/9] : Introduction to Web Application
Java Web Programming [1/9] : Introduction to Web Application
IMC Institute
 
JDBC,Types of JDBC,Resultset, statements,PreparedStatement,CallableStatements...
JDBC,Types of JDBC,Resultset, statements,PreparedStatement,CallableStatements...JDBC,Types of JDBC,Resultset, statements,PreparedStatement,CallableStatements...
JDBC,Types of JDBC,Resultset, statements,PreparedStatement,CallableStatements...
Pallepati Vasavi
 
Introduction to Java EE (J2EE)
Introduction to Java EE (J2EE)Introduction to Java EE (J2EE)
Introduction to Java EE (J2EE)Atit Patumvan
 
JDBC Driver Types
JDBC Driver TypesJDBC Driver Types
JDBC Driver Types
Rahul Sharma
 
A dynamic application using jboss
A dynamic application using jbossA dynamic application using jboss
A dynamic application using jboss
ijcax
 
Unit 5-jdbc2
Unit 5-jdbc2Unit 5-jdbc2
Unit 5-jdbc2
msafad
 
Chapter 12:Understanding Server-Side Technologies
Chapter 12:Understanding Server-Side TechnologiesChapter 12:Understanding Server-Side Technologies
Chapter 12:Understanding Server-Side Technologies
It Academy
 
Introduction to java ee
Introduction to java eeIntroduction to java ee
Introduction to java eeRanjan Kumar
 
Mobile Application Development MAD J2ME UNIT 2
Mobile Application Development  MAD J2ME UNIT 2Mobile Application Development  MAD J2ME UNIT 2
Mobile Application Development MAD J2ME UNIT 2
Pallepati Vasavi
 

What's hot (20)

Jdbc
JdbcJdbc
Jdbc
 
java database connection (jdbc)
java database connection (jdbc)java database connection (jdbc)
java database connection (jdbc)
 
Java ee introduction
Java ee introductionJava ee introduction
Java ee introduction
 
Intro in JavaEE world (TU Olomouc)
Intro in JavaEE world (TU Olomouc)Intro in JavaEE world (TU Olomouc)
Intro in JavaEE world (TU Olomouc)
 
jdbc document
jdbc documentjdbc document
jdbc document
 
Designing JEE Application Structure
Designing JEE Application StructureDesigning JEE Application Structure
Designing JEE Application Structure
 
Ajava final(sachin sir9822506209)_vision_academy_21
Ajava final(sachin sir9822506209)_vision_academy_21Ajava final(sachin sir9822506209)_vision_academy_21
Ajava final(sachin sir9822506209)_vision_academy_21
 
J2ee
J2eeJ2ee
J2ee
 
Jdbc drivers
Jdbc driversJdbc drivers
Jdbc drivers
 
Types of Drivers in JDBC
Types of Drivers in JDBCTypes of Drivers in JDBC
Types of Drivers in JDBC
 
Java Web Programming [1/9] : Introduction to Web Application
Java Web Programming [1/9] : Introduction to Web ApplicationJava Web Programming [1/9] : Introduction to Web Application
Java Web Programming [1/9] : Introduction to Web Application
 
JDBC,Types of JDBC,Resultset, statements,PreparedStatement,CallableStatements...
JDBC,Types of JDBC,Resultset, statements,PreparedStatement,CallableStatements...JDBC,Types of JDBC,Resultset, statements,PreparedStatement,CallableStatements...
JDBC,Types of JDBC,Resultset, statements,PreparedStatement,CallableStatements...
 
Introduction to Java EE (J2EE)
Introduction to Java EE (J2EE)Introduction to Java EE (J2EE)
Introduction to Java EE (J2EE)
 
JDBC Driver Types
JDBC Driver TypesJDBC Driver Types
JDBC Driver Types
 
A dynamic application using jboss
A dynamic application using jbossA dynamic application using jboss
A dynamic application using jboss
 
Unit 5-jdbc2
Unit 5-jdbc2Unit 5-jdbc2
Unit 5-jdbc2
 
Chapter 12:Understanding Server-Side Technologies
Chapter 12:Understanding Server-Side TechnologiesChapter 12:Understanding Server-Side Technologies
Chapter 12:Understanding Server-Side Technologies
 
Jboss
JbossJboss
Jboss
 
Introduction to java ee
Introduction to java eeIntroduction to java ee
Introduction to java ee
 
Mobile Application Development MAD J2ME UNIT 2
Mobile Application Development  MAD J2ME UNIT 2Mobile Application Development  MAD J2ME UNIT 2
Mobile Application Development MAD J2ME UNIT 2
 

Similar to Java Introduction

Summer training java
Summer training javaSummer training java
Summer training java
Arshit Rai
 
Lecture 19 dynamic web - java - part 1
Lecture 19   dynamic web - java - part 1Lecture 19   dynamic web - java - part 1
Lecture 19 dynamic web - java - part 1Д. Ганаа
 
Summer training java
Summer training javaSummer training java
Summer training java
Arshit Rai
 
Lecture 19 - Dynamic Web - JAVA - Part 1.ppt
Lecture 19 - Dynamic Web - JAVA - Part 1.pptLecture 19 - Dynamic Web - JAVA - Part 1.ppt
Lecture 19 - Dynamic Web - JAVA - Part 1.ppt
KalsoomTahir2
 
Advance java1.1
Advance java1.1Advance java1.1
Advance java1.1
Prince Soni
 
Devjyotippt
DevjyotipptDevjyotippt
Devjyotippt
Gaurav pathak
 
Enterprise application developement
Enterprise application developementEnterprise application developement
Enterprise application developement
Archana Jha
 
Introduction to java
Introduction to java Introduction to java
Introduction to java
Java Lover
 
Web programming and development - Introduction
Web programming and development - IntroductionWeb programming and development - Introduction
Web programming and development - Introduction
Joel Briza
 
Java programming(unit 1)
Java programming(unit 1)Java programming(unit 1)
Java programming(unit 1)
SURBHI SAROHA
 
Web Sphere Administration guide – Packaging and Deploying Jee Applications
Web Sphere Administration guide – Packaging and Deploying Jee ApplicationsWeb Sphere Administration guide – Packaging and Deploying Jee Applications
Web Sphere Administration guide – Packaging and Deploying Jee Applications
Gagandeep Singh
 
Greate Introduction to Oracle Fusion Middleware and ADF
Greate Introduction to Oracle Fusion Middleware and ADFGreate Introduction to Oracle Fusion Middleware and ADF
Greate Introduction to Oracle Fusion Middleware and ADF
Mohamed Shahpoup
 
4. J2EE.pptx
4. J2EE.pptx4. J2EE.pptx
4. J2EE.pptx
HariChandruduM
 
Java EE 7 introduction
Java EE 7  introductionJava EE 7  introduction
Java EE 7 introduction
Moumie Soulemane
 
Advance Java Topics (J2EE)
Advance Java Topics (J2EE)Advance Java Topics (J2EE)
Advance Java Topics (J2EE)
slire
 
EJ NOV-18 (Sol) (E-next.in).pdf
EJ NOV-18 (Sol) (E-next.in).pdfEJ NOV-18 (Sol) (E-next.in).pdf
EJ NOV-18 (Sol) (E-next.in).pdf
SPAMVEDANT
 
C,c++,java,php,.net training institute in delhi, best training institute for ...
C,c++,java,php,.net training institute in delhi, best training institute for ...C,c++,java,php,.net training institute in delhi, best training institute for ...
C,c++,java,php,.net training institute in delhi, best training institute for ...MCM COmpetitive Classes
 
JAVA ALL 5 MODULE NOTES.pptx
JAVA ALL 5 MODULE NOTES.pptxJAVA ALL 5 MODULE NOTES.pptx
JAVA ALL 5 MODULE NOTES.pptx
DrPreethiD1
 
IBM Websphere introduction and installation for beginners
IBM Websphere introduction and installation for beginnersIBM Websphere introduction and installation for beginners
IBM Websphere introduction and installation for beginners
Shubham Gupta
 

Similar to Java Introduction (20)

Summer training java
Summer training javaSummer training java
Summer training java
 
Lecture 19 dynamic web - java - part 1
Lecture 19   dynamic web - java - part 1Lecture 19   dynamic web - java - part 1
Lecture 19 dynamic web - java - part 1
 
Summer training java
Summer training javaSummer training java
Summer training java
 
Lecture 19 - Dynamic Web - JAVA - Part 1.ppt
Lecture 19 - Dynamic Web - JAVA - Part 1.pptLecture 19 - Dynamic Web - JAVA - Part 1.ppt
Lecture 19 - Dynamic Web - JAVA - Part 1.ppt
 
Advance java1.1
Advance java1.1Advance java1.1
Advance java1.1
 
Devjyotippt
DevjyotipptDevjyotippt
Devjyotippt
 
Enterprise application developement
Enterprise application developementEnterprise application developement
Enterprise application developement
 
Introduction to java
Introduction to java Introduction to java
Introduction to java
 
Web programming and development - Introduction
Web programming and development - IntroductionWeb programming and development - Introduction
Web programming and development - Introduction
 
Java programming(unit 1)
Java programming(unit 1)Java programming(unit 1)
Java programming(unit 1)
 
Web Sphere Administration guide – Packaging and Deploying Jee Applications
Web Sphere Administration guide – Packaging and Deploying Jee ApplicationsWeb Sphere Administration guide – Packaging and Deploying Jee Applications
Web Sphere Administration guide – Packaging and Deploying Jee Applications
 
Greate Introduction to Oracle Fusion Middleware and ADF
Greate Introduction to Oracle Fusion Middleware and ADFGreate Introduction to Oracle Fusion Middleware and ADF
Greate Introduction to Oracle Fusion Middleware and ADF
 
4. J2EE.pptx
4. J2EE.pptx4. J2EE.pptx
4. J2EE.pptx
 
Java EE 7 introduction
Java EE 7  introductionJava EE 7  introduction
Java EE 7 introduction
 
Advance Java Topics (J2EE)
Advance Java Topics (J2EE)Advance Java Topics (J2EE)
Advance Java Topics (J2EE)
 
EJ NOV-18 (Sol) (E-next.in).pdf
EJ NOV-18 (Sol) (E-next.in).pdfEJ NOV-18 (Sol) (E-next.in).pdf
EJ NOV-18 (Sol) (E-next.in).pdf
 
C,c++,java,php,.net training institute in delhi, best training institute for ...
C,c++,java,php,.net training institute in delhi, best training institute for ...C,c++,java,php,.net training institute in delhi, best training institute for ...
C,c++,java,php,.net training institute in delhi, best training institute for ...
 
JAVA ALL 5 MODULE NOTES.pptx
JAVA ALL 5 MODULE NOTES.pptxJAVA ALL 5 MODULE NOTES.pptx
JAVA ALL 5 MODULE NOTES.pptx
 
Chapter2 j2ee
Chapter2 j2eeChapter2 j2ee
Chapter2 j2ee
 
IBM Websphere introduction and installation for beginners
IBM Websphere introduction and installation for beginnersIBM Websphere introduction and installation for beginners
IBM Websphere introduction and installation for beginners
 

Recently uploaded

The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
CatarinaPereira64715
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 

Recently uploaded (20)

The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 

Java Introduction

  • 1. Java Fundamentals Middleware Trains Java Fundamentals Prasad middleware.trains@gmail.com
  • 2. Java Fundamentals Java Contents  Java  J2EE  Application Packaging  Class Loading
  • 3. Java Fundamentals Java What is Java? Programming Language : They are set of code which performs a particular task Ex : code to multiply 2 number / code to get a variable and process it .. Programming Languages classification • High level language vs low level language • Compiler based vs Interpreter based Java is high level compiler based language Code.java (source) > compiled (using javac) > code.class > gets executed by JVM .java files are human readable files .class are JVM understandable files
  • 4. PLATFORM Java Fundamentals Java ‘Java ‘ – Is Platform Independent , but how ? Java is platform independent, but JVMs are platform Dependent Windows Linux MAC Java Code JVM Windows JVM Linux JVM MAC Java Code is run on JVM JVMs are run on Specific OS
  • 5. Java Fundamentals Java Java Virtual Machine JVM repositories are called JDK (Java developers kit) JDK = JRE + Developers utilities
  • 7. Java Fundamentals Java Java Summary • Java is a high level Compiler based programming language • Java is platform Independent , (Java code can be executed on any platform) • Java is executed by a JVM (Java Virtual Machine) • JVM is platform dependent • JVM is a software which needs to be installed on platforms • JVM ‘s repository is called JDK (Java Developers kit) • JDK = JRE (Java runtime Environment ) + Developer’s utilities • For a Java code to run/execute JRE is enough • Latest version of JDK is Java8 • Java needs executed with Java Parameters • Basic java parameters Min Heap size, Max Heap Size and Server variable • -Xms and –Xmx, -Xms 512 -Xmx 2048
  • 9. Java Fundamentals J2EE J2EE - Java Standards “J2EE is a java standard for application development, which is collection of Java API and frame work for development” Java Standards Expansion Uses J2SE Java Standard Edition Java standard edition is a standard format J2EE Java Enterprise Edition J2SE+ Standard to maintain Enterprise application J2ME Java Mobile Edition J2SE+ Standards to Maintain Mobile applications
  • 10. Java Fundamentals J2EE MVC : Model View Controller (MVC) – Flow Architecture • MVC architecture • Java application Packaging • Java Application utilities for enterprise (Servlets, JSP….) In application ,
  • 11. Java Fundamentals J2EE MVC Model …. MVC Parts Enabling J2EE Components Business Models Java Beans and EJBs Controller Servlets View Java Server Faces (jsf) / Java Servlet Pages (jsp)
  • 12. Java Fundamentals J2EE J2EE Components • Servlets - A server –side components used for routing/controlling • Java Server Pages (JSPs) __ |Client -side component to receive and • Java Server Faces (JSFs) | respond to client • Enterprise Java Beans (EJBs) – Server-side component architecture for modular construction of enterprise applications. The EJB specification is one of several Java APIs in the Java EE specification. EJB is a server-side model that encapsulates the business logic of an application. • Session Beans • Entity Beans • Message Driven Beans – Deprecate ---- Wikipedia
  • 13. Java Fundamentals J2EE J2EE Containers • Runtime to manage application components • Provides access to J2EE APIs. • Provides system level services such as Transaction, Security etc • There are three types of containers • Web Container (handles Servlet. JSP and JSF request) • EJB Container (Handles EJB request) • Embedded HTTP container (Handles static Request like HTML) MVC Parts J2EE Components J2EE Containers Models Java Beans and EJBs EJB Container Controller Servlets Web Container View JSP/JSF Web Container
  • 14. Java Fundamentals J2EE J2EE APIs • Data Base Connectivity-- JDBC • Messaging Infrastructure-- JMS • Transactions-- JTA • Security-- JAAS • Mail products-- JavaMail • System Administration -- JMX • Directory and Naming Services--JNDI
  • 15. Java Fundamentals J2EE J2EE Architecture – Component Architecture Application Server Embedded HTTPserver EJB ContainerWeb Container HTML JSP SessionServlet Entity Native Component Java Virtual MachineJNDI JDBC JMS Java Mail JTA JMX J2C Data Base JDBC Admin JMX MQ JMS Legacy J2C Web Service Browser Client Http Server http http SOAP http CSIv2 RMI SSL RMI/IIOP Http SOAP TCP/UDP UDDI RMI/IIOP
  • 17. Java Fundamentals Application packaging Application Deployment - Environments Development Base Application Dev Config Server 1 Testing Base Application Test Config Server 1 UAT Base Application UAT Config Server 1 Used by the client to test the business functions Used by developers to build the application using development tools like IDEs. The connection configurations are at dev level Used by admin/testers to perform , testing like manual testing , performance testing etc. The connection resources are at test level
  • 18. Java Fundamentals Application packaging Stage or Pre-Prod Base Application Stage Config This environment is the replica of the production environment .This is also used as a back up for Prod in case of emergency Server 1 Server 2 Production Base Application Prod Config This is the actual live environment , Which powers the application which is used by the end users Server 1 Server 2 Application Deployment - Environments
  • 19. Java Fundamentals Application packaging Application packaging “Application packaging is packing the java code in form a archive , its contents contain environmental references, Deployment descriptors, java Source code and static contents “ The main uses of packaging the application are • Avoid corruption of java files and file loss • Easy to transfer between servers and environments • Easy to deploy • Easy to access the classes Types of Packages • JAR – Java Archive • WAR – Web Archive • EAR – Enterprise Archive
  • 21. Java Fundamentals Application packaging Request Flow Url ear application.xml  war  web.xml  classes(inside jar)
  • 22. Java Fundamentals Application packaging J2EE EAR Files ear EJB Module Web Module Java Utility Jar Resource Adapter Client Modules Java Persistence EJB DD EJB Ext DD EJB Bind DD Web DD Web Ext DD Web Bind DD Client DD Client Ext DD Client Bind DD Resource DD Persistence DD
  • 23. Java Fundamentals Application packaging Deployment Descriptors “A deployment descriptor (DD) refers to a configuration file for an artifact that is deployed to some java container” • The deployment descriptor must be called web.xml and must reside in the WEB-INF directory in the web application root. • For Java EE applications, the deployment descriptor must be named application.xml and must be placed directly in the META-INF directory at the top level of the application .ear file.
  • 25. Java Fundamentals Class loaders What are Class Loaders ? Class loaders find and load class files. Class loaders enable applications that are deployed on servers to access repositories of available classes and resources. Application developers and deployer must consider the location of class and resource files, and the class loaders used to access those files, to make the files available to deployed applications Types of class loading 1. JVM Class loading 1. Bootstrap class loading 2. Extension Class loading 2. Weblogic class loading 3. Application Class loading 4. Module class loading
  • 26. Java Fundamentals Class loaders What are Class Loaders ? Types of class loading 1. JVM Class loading 1. Bootstrap class loading - C:Program FilesJavajdk1.7.0_45jrelib 2. Extension Class loading -C:Program FilesJavajdk1.7.0_45jrelibext 2. System Class loaders – Location of the middleware installed (its lib) 3. Application Class loading – Location of the deployed application (its lib) 4. Module class loading – Applications
  • 27. Java Fundamentals Class loaders Class Loaders Big Picture JVM class Loaders System Class Loaders App class Loaders Module Level Class Loaders App class Loaders Module Level Class Loaders Module Level Class Loaders Module Level Class Loaders