Pemrograman Jaringan: Pengenalan Java
-
Upload
independent -
Category
Documents
-
view
1 -
download
0
Transcript of Pemrograman Jaringan: Pengenalan Java
A R M I N L A W I
P R O G R A M P A S C A S A R A J A N U N H A S
Pemrograman Jaringan:Pengenalan Java
Pengenalan java
Menerapkan compiler dan interpreter
public class myCetak {public static void main(String args[])
{System.out.println(“Hello World!”);
}}
compiler
-------------------------------------------------------------------------------------------------------------------------------------------------------------
interpreter
program.java program.classjavac program.java
java program11010101
2
bytecode
Karakteristik Multi-platform
public class myCetak {public static void main(String args[])
{System.out.println(“Hello World!”);
}}
compiler
program.java program.class
Windows Linux Solaris MacOS
JVM
-------------------------------------------------------------------------------------------------------------------------------------------------------------
interpreterinterpreterinterpreter
3
interpreter
Software yang dibutuhkan
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
4
Java IDE:Jcreator, Eclipse, NetBeans, dll
OOP dan Java
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)
5
Apa itu obyek?
Segala sesuatu dapat dipandang sbg obyek
Karateristik obyek Memiliki atribut sebagai status (state/variable)
Memiliki tingkah laku (behavior) atau method
variabel/
statemethod/
behavior
Object model
6
Bagaimana membuat obyek
Obyek dikonstruksi/dirancang dari prototipe atau blueprint yang telah ditetapkan (class)
Contoh: resep classkue obyek
Bahan:1 kg gula2 sdk mentegadan sterusnya.
Cara Membuat:Campur semua lalupanaskan dan seterusnya
Resep Kue 1
Kue 2
7
Contoh oop dalam java
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
8
Ciri-ciri oop
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
9
Netprog 2000 - Java Network Programming
10
Important Java Packages
java.net TCP/IP networking
java.io I/O streams & utilities
java.rmi Remote Method Invocation
java.securitySecurity policies
java.lang Threading classes
Netprog 2000 - Java Network Programming
11
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
Netprog 2000 - Java Network Programming
12
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
Netprog 2000 - Java Network Programming
13
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
Netprog 2000 - Java Network Programming
14
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
Netprog 2000 - Java Network Programming
15
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)
Netprog 2000 - Java Network Programming
16
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
Netprog 2000 - Java Network Programming
17
Threading
Java doesn’t support the notion of forking processes; how do we support concurrency?
– Java was designed to support multi-
threading!
– In server environments we can spawn new
threads to handle each client
– Thread groups allow for collective control
of many threads
Netprog 2000 - Java Network Programming
18
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
Netprog 2000 - Java Network Programming
19
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
Netprog 2000 - Java Network Programming
20
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
Netprog 2000 - Java Network Programming
21
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
Netprog 2000 - Java Network Programming
22
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
Netprog 2000 - Java Network Programming
23
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
Netprog 2000 - Java Network Programming
24
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