Pemrograman Jaringan Pengenalan Java
Pemrograman Jaringan:
Pengenalan Java
ARMIN LAWI
PROGRAM PASCASARAJAN UNHAS
Pengenalan java
2
Menerapkan compiler dan interpreter
program.java
javac program.java
public class myCetak {
public static void main(String args[])
{
System.out.println(“Hello World!”);
}
}
compiler
11010101
java program
interprete
r
program.class
-------------------------------------------------------------------------------------------------------------------------------------------------------
bytecode
Karakteristik Multi-platform
3
program.java
program.class
public class myCetak {
public static void main(String args[])
{
System.out.println(“Hello World!”);
}
}
-------------------------------------------------------------------------------------------------------------------------------------------------------
interpreter
compiler
interpreter
interpreter
interpreter
JVM
Windows
Linux
Solaris
MacOS
Software yang dibutuhkan
4
Java Standrd Edition (SE) Development Kit (JDK)
Dapat didownload gratis di
http://developers.sun.com/downloads/
JDK yang digunakan pada MK ini adalah versi terbaru
saat ini: JDK1.6.0 update 10
Text Editor: Notepad, Edit, dll
Java IDE:
Jcreator, Eclipse, NetBeans, dll
OOP dan Java
5
Java adalah bahasa pemrograman murni berbasis
object-oriented (OO)
OOP: Program bekerja atas interaksi atau
komunikasi antar obyek (object interprocess)
OO-program dapat dipandang sebagai sistem
tersebar (distributed system)
Apa itu obyek?
6
Segala sesuatu dapat dipandang sbg obyek
Karateristik obyek
Memiliki atribut sebagai status (state/variable)
Memiliki tingkah laku (behavior) atau method
variabel/
state
method/
behavior
Object model
Bagaimana membuat obyek
7
Obyek dikonstruksi/dirancang dari prototipe atau
blueprint yang telah ditetapkan (class)
Contoh:
resep class
kue obyek
Resep
Kue 1
Bahan:
1 kg gula
2 sdk mentega
dan sterusnya.
Cara Membuat:
Campur semua lalu
panaskan dan seterusnya
Kue 2
Contoh oop dalam java
8
class mhs {
private String nama;
private String nim;
private String ttl;
private String agama;
public mhs(String nama, String nim, String m, String agama) {
this.nama = nama;
this.nim = nim;
this.ttl = ttl;
this.agama = agama;
}
public String getNama() {
return this.nama;
}
public String getNim() {
return nim;
}
public static void main(String args[]) {
mhs m = new mhs(“Armin”, “132133693”, “19”, “Islam”);
System.out.println(“Nama =“ + m.getNama());
}
}
variabel/
state
konstruktor
method/
behavior
obyek m
Ciri-ciri oop
9
Abstraksi (abstraction)
Pengabstrakan atau penyembunyian kerumitan dari suatu proses
Pembungkusan (encapsulation)
Abstraksi dilakukan dengan cara pembungkusan (kapsulasi) semua
kode dan data kedalam satu entitas tunggal (obyek)
Pewarisan (inheritance)
Implementasi khusus dalam OOP yang dapat menurunkan prilaku ke
sub-class atau menerima prilaku dari super-class
Kebanyak-rupaan (polymorphism)
Kemampuan obyek mengungkap banyak hal melalui suatu cara yang
sama. Obyek dapat menjalankan prilaku-prilaku atau metode-metode
yang diturunkan dari beberapa superclassnya
Important Java Packages
java.net TCP/IP networking
java.io
I/O streams & utilities
java.rmi Remote Method Invocation
java.security Security policies
java.lang
10
Threading classes
Netprog 2000 - Java Network
Programming
Java Sockets Programming
Java uses BSD-style sockets to interface with TCP/IP
services (java.net package)
Java distinguishes between UDP, TCP server & TCP
client sockets
Behind-the-scenes classes do the actual work & can
be updated or swapped out transparently
11
Netprog 2000 - Java Network
Programming
IP Addresses & Hostnames
java.net.InetAddress class
Represents a single IP address
Factory class – no public constructor
Performs transparent DNS lookups or reverse
lookups
java.net.UnkownHostException thrown if
DNS system can’t find IP address for specific host
12
Netprog 2000 - Java Network
Programming
TCP Server Sockets
java.net.ServerSocket class
Binds to a local port to listen for initial connections
Can be bound to a local IP for multi-homed
machines
accept() method returns a java.net.Socket,
not an integer descriptor
13
Netprog 2000 - Java Network
Programming
TCP Client Sockets
java.net.Socket class
Combines socket with socket options (timeout,
linger, keep alive, no delay, etc)
Encapsulates a java.io.InputStream and a
java.io.OutputStream – can be retrieved for
use in a layered I/O system
14
Netprog 2000 - Java Network
Programming
UDP Sockets
java.net.DatagramSocket class
Java makes no distinction between client/server for
UDP sockets
Connected mode UDP supported in Java 2
Can be bound to both a local port & a local IP
address – multi-homed support
Supports some socket options (timeout, buffer size)
15
Netprog 2000 - Java Network
Programming
UDP Datagrams
java.net.DatagramPacket class
Expects a byte array of data
Address optional for connected-mode UDP
This class is final – can’t be extended!
java.net.DatagramSocket instances can only
send instances of java.net.DatagramPacket
16
Netprog 2000 - Java Network
Programming
Threading
Java doesn’t support the notion of forking
processes; how do we support concurrency?
– Java was designed to support multithreading!
– In server environments we can spawn new
threads to handle each client
– Thread groups allow for collective control
of many threads
17
Netprog 2000 - Java Network
Programming
Java Servlets
Servlets are the Java analog to CGI
Advantages of servlets: full access to other Java APIs,
persistence between invocations, guaranteed
portability
Servlets can be generic services or specific to HTTP
18
Netprog 2000 - Java Network
Programming
HTTP Servlets
javax.servlet.http.HttpServlet class
Uses HTTP to receive requests and generate
responses
Full support for all HTTP methods, cookies, sessions,
persistent connections
Servlets can be chained – example: de-blink servlet
19
Netprog 2000 - Java Network
Programming
Java Applets
Client-side Java programs that run in a browser
Applets have special security restrictions called the
applet sandbox
Only applets loaded over the network are subject to
the applet sandbox
The applet sandbox is controlled by a
java.lang.SecurityManager
20
Netprog 2000 - Java Network
Programming
Applet Sandbox
Can’t load libraries or define native methods
Can’t access local host filesystem
Can’t open sockets to hosts other than
originating host
Can’t use Runtime.exec()
Applet windows have a unique appearance
Restricted access to certain system properties
21
Netprog 2000 - Java Network
Programming
Escaping the Applet Sandbox
Browsers can define their own security policy via a
new security manager
Applets can be signed and executed as trusted
content
Security policies may vary from browser to browser,
even for signed applets
22
Netprog 2000 - Java Network
Programming
Remote Method Invocation (RMI)
RMI is the Java analog to RPC
RMI servers use a naming service (rmiregistry) to
register remote objects
RMI servers use a special security policy
implemented by RMISecurityManager
The default RMI transport mechanism is via TCP
sockets – this is transparent to RMI code!
Any object transferred in an RMI call must
implement the Serializable interface
23
Netprog 2000 - Java Network
Programming
Java Naming & Directory Interface (JNDI)
JNDI provides a generic API that can be used to
interface with any naming system
JNDI uses SPIs (service provider interfaces) to
access many different types of naming & directory
services from the JNDI API
Sun supplies JNDI SPIs for LDAP, NIS, COS
(CORBA naming), RMI registry & local filesystem
24
Netprog 2000 - Java Network
Programming
Pengenalan Java
ARMIN LAWI
PROGRAM PASCASARAJAN UNHAS
Pengenalan java
2
Menerapkan compiler dan interpreter
program.java
javac program.java
public class myCetak {
public static void main(String args[])
{
System.out.println(“Hello World!”);
}
}
compiler
11010101
java program
interprete
r
program.class
-------------------------------------------------------------------------------------------------------------------------------------------------------
bytecode
Karakteristik Multi-platform
3
program.java
program.class
public class myCetak {
public static void main(String args[])
{
System.out.println(“Hello World!”);
}
}
-------------------------------------------------------------------------------------------------------------------------------------------------------
interpreter
compiler
interpreter
interpreter
interpreter
JVM
Windows
Linux
Solaris
MacOS
Software yang dibutuhkan
4
Java Standrd Edition (SE) Development Kit (JDK)
Dapat didownload gratis di
http://developers.sun.com/downloads/
JDK yang digunakan pada MK ini adalah versi terbaru
saat ini: JDK1.6.0 update 10
Text Editor: Notepad, Edit, dll
Java IDE:
Jcreator, Eclipse, NetBeans, dll
OOP dan Java
5
Java adalah bahasa pemrograman murni berbasis
object-oriented (OO)
OOP: Program bekerja atas interaksi atau
komunikasi antar obyek (object interprocess)
OO-program dapat dipandang sebagai sistem
tersebar (distributed system)
Apa itu obyek?
6
Segala sesuatu dapat dipandang sbg obyek
Karateristik obyek
Memiliki atribut sebagai status (state/variable)
Memiliki tingkah laku (behavior) atau method
variabel/
state
method/
behavior
Object model
Bagaimana membuat obyek
7
Obyek dikonstruksi/dirancang dari prototipe atau
blueprint yang telah ditetapkan (class)
Contoh:
resep class
kue obyek
Resep
Kue 1
Bahan:
1 kg gula
2 sdk mentega
dan sterusnya.
Cara Membuat:
Campur semua lalu
panaskan dan seterusnya
Kue 2
Contoh oop dalam java
8
class mhs {
private String nama;
private String nim;
private String ttl;
private String agama;
public mhs(String nama, String nim, String m, String agama) {
this.nama = nama;
this.nim = nim;
this.ttl = ttl;
this.agama = agama;
}
public String getNama() {
return this.nama;
}
public String getNim() {
return nim;
}
public static void main(String args[]) {
mhs m = new mhs(“Armin”, “132133693”, “19”, “Islam”);
System.out.println(“Nama =“ + m.getNama());
}
}
variabel/
state
konstruktor
method/
behavior
obyek m
Ciri-ciri oop
9
Abstraksi (abstraction)
Pengabstrakan atau penyembunyian kerumitan dari suatu proses
Pembungkusan (encapsulation)
Abstraksi dilakukan dengan cara pembungkusan (kapsulasi) semua
kode dan data kedalam satu entitas tunggal (obyek)
Pewarisan (inheritance)
Implementasi khusus dalam OOP yang dapat menurunkan prilaku ke
sub-class atau menerima prilaku dari super-class
Kebanyak-rupaan (polymorphism)
Kemampuan obyek mengungkap banyak hal melalui suatu cara yang
sama. Obyek dapat menjalankan prilaku-prilaku atau metode-metode
yang diturunkan dari beberapa superclassnya
Important Java Packages
java.net TCP/IP networking
java.io
I/O streams & utilities
java.rmi Remote Method Invocation
java.security Security policies
java.lang
10
Threading classes
Netprog 2000 - Java Network
Programming
Java Sockets Programming
Java uses BSD-style sockets to interface with TCP/IP
services (java.net package)
Java distinguishes between UDP, TCP server & TCP
client sockets
Behind-the-scenes classes do the actual work & can
be updated or swapped out transparently
11
Netprog 2000 - Java Network
Programming
IP Addresses & Hostnames
java.net.InetAddress class
Represents a single IP address
Factory class – no public constructor
Performs transparent DNS lookups or reverse
lookups
java.net.UnkownHostException thrown if
DNS system can’t find IP address for specific host
12
Netprog 2000 - Java Network
Programming
TCP Server Sockets
java.net.ServerSocket class
Binds to a local port to listen for initial connections
Can be bound to a local IP for multi-homed
machines
accept() method returns a java.net.Socket,
not an integer descriptor
13
Netprog 2000 - Java Network
Programming
TCP Client Sockets
java.net.Socket class
Combines socket with socket options (timeout,
linger, keep alive, no delay, etc)
Encapsulates a java.io.InputStream and a
java.io.OutputStream – can be retrieved for
use in a layered I/O system
14
Netprog 2000 - Java Network
Programming
UDP Sockets
java.net.DatagramSocket class
Java makes no distinction between client/server for
UDP sockets
Connected mode UDP supported in Java 2
Can be bound to both a local port & a local IP
address – multi-homed support
Supports some socket options (timeout, buffer size)
15
Netprog 2000 - Java Network
Programming
UDP Datagrams
java.net.DatagramPacket class
Expects a byte array of data
Address optional for connected-mode UDP
This class is final – can’t be extended!
java.net.DatagramSocket instances can only
send instances of java.net.DatagramPacket
16
Netprog 2000 - Java Network
Programming
Threading
Java doesn’t support the notion of forking
processes; how do we support concurrency?
– Java was designed to support multithreading!
– In server environments we can spawn new
threads to handle each client
– Thread groups allow for collective control
of many threads
17
Netprog 2000 - Java Network
Programming
Java Servlets
Servlets are the Java analog to CGI
Advantages of servlets: full access to other Java APIs,
persistence between invocations, guaranteed
portability
Servlets can be generic services or specific to HTTP
18
Netprog 2000 - Java Network
Programming
HTTP Servlets
javax.servlet.http.HttpServlet class
Uses HTTP to receive requests and generate
responses
Full support for all HTTP methods, cookies, sessions,
persistent connections
Servlets can be chained – example: de-blink servlet
19
Netprog 2000 - Java Network
Programming
Java Applets
Client-side Java programs that run in a browser
Applets have special security restrictions called the
applet sandbox
Only applets loaded over the network are subject to
the applet sandbox
The applet sandbox is controlled by a
java.lang.SecurityManager
20
Netprog 2000 - Java Network
Programming
Applet Sandbox
Can’t load libraries or define native methods
Can’t access local host filesystem
Can’t open sockets to hosts other than
originating host
Can’t use Runtime.exec()
Applet windows have a unique appearance
Restricted access to certain system properties
21
Netprog 2000 - Java Network
Programming
Escaping the Applet Sandbox
Browsers can define their own security policy via a
new security manager
Applets can be signed and executed as trusted
content
Security policies may vary from browser to browser,
even for signed applets
22
Netprog 2000 - Java Network
Programming
Remote Method Invocation (RMI)
RMI is the Java analog to RPC
RMI servers use a naming service (rmiregistry) to
register remote objects
RMI servers use a special security policy
implemented by RMISecurityManager
The default RMI transport mechanism is via TCP
sockets – this is transparent to RMI code!
Any object transferred in an RMI call must
implement the Serializable interface
23
Netprog 2000 - Java Network
Programming
Java Naming & Directory Interface (JNDI)
JNDI provides a generic API that can be used to
interface with any naming system
JNDI uses SPIs (service provider interfaces) to
access many different types of naming & directory
services from the JNDI API
Sun supplies JNDI SPIs for LDAP, NIS, COS
(CORBA naming), RMI registry & local filesystem
24
Netprog 2000 - Java Network
Programming