Pemrograman Jaringan: Pengenalan Java - elista:.

advertisement
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
Download