Pemrograman Jaringan: Pengenalan Java

24
ARMIN LAWI PROGRAM PASCASARAJAN UNHAS Pemrograman Jaringan: Pengenalan Java

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