Sistem Terdistribusi

32
ARMIN LAWI S2 TEKNIK INFORMATIKA UNHAS Sistem Terdistribusi Sistem Terdistribusi - 10/2/2010 S2-Teknik Informatika UNHAS

description

Sistem Terdistribusi. ARMIN LAWI S2 TEKNIK INFORMATIKA UNHAS. Outline Materi. Pengantar Pemrograman Jaringan dalam Java Paket java.net, multithreading , Vektor dan Serialisasi Berkas Invokasi dan Modifikasi Obyek Terdistribusi Remote Method Invocation (RMI) - PowerPoint PPT Presentation

Transcript of Sistem Terdistribusi

Page 1: Sistem Terdistribusi

ARMIN LAWIS2 TEKNIK INFORMATIKA UNHAS

Sistem Terdistribusi

Sistem Terdistribusi - 10/2/2010S2-Teknik Informatika UNHAS

Page 2: Sistem Terdistribusi

Outline Materi

Pengantar Pemrograman Jaringan dalam Java Paket java.net, multithreading, Vektor dan Serialisasi Berkas

Invokasi dan Modifikasi Obyek Terdistribusi Remote Method Invocation (RMI) Common Object Request Broker Architecture (CORBA) Modifikasi Database via Java Method

Servlet, JavaServer Pages (JSP) dan JavaBeans Servlet dan JavaServer Pages (JSP) JavaBeans dan Enterprise JavaBeans (EJB)

Web Services eXtended Markup Language (XML) Simple Object Access Protocol (SOAP) Web Services Description Language (WSDL) Universal Description Discovery and Integration (UDDI)

Sistem Terdistribusi - 10/2/2010S2-Teknik Informatika UNHAS

Page 3: Sistem Terdistribusi

Referensi Utama

Jan Graba (2007), An Introduction to Network Programming, 2nd Ed., Springer Science. Jan Graba (2003), An Introduction to Network

Programming, Addison-Wesley.

Steve Graham, et. al. (2005), Building Web Services with Java: Making Sense of XML, SOAP, WSDL and UDDI, 2nd Ed., Sams Publishing.

Sistem Terdistribusi - 10/2/2010S2-Teknik Informatika UNHAS

Page 4: Sistem Terdistribusi

Pengenalan Java

Sistem Terdistribusi - 10/2/2010S2-Teknik Informatika UNHAS

Page 5: Sistem Terdistribusi

Apa itu Java?

Menerapkan compiler dan interpreter

public class myCetak { public static void main(String args[]) { System.out.println(“Hello World!”); }}

public class myCetak { public static void main(String args[]) { System.out.println(“Hello World!”); }}

compiler

-------------------------------------------------------------------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------------------------------------------------------------

interpreter

program.java program.classjavac program.java

java program11010101… bytecodebytecode

Sistem Terdistribusi - 10/2/2010S2-Teknik Informatika UNHAS

Page 6: Sistem Terdistribusi

Karakteristik Multi-platform

public class myCetak { public static void main(String args[]) { System.out.println(“Hello World!”); }}

public class myCetak { public static void main(String args[]) { System.out.println(“Hello World!”); }}

compiler

program.java program.class

Windows Linux Solaris MacOS

JVM

-------------------------------------------------------------------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------------------------------------------------------------

interpreter

interpreter

interpreter

interpreter

Sistem Terdistribusi - 10/2/2010S2-Teknik Informatika UNHAS

Page 7: Sistem Terdistribusi

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 10Text Editor: Notepad, Edit, dll

Java IDE:Jcreator, Eclipse, NetBeans, dll

Sistem Terdistribusi - 10/2/2010S2-Teknik Informatika UNHAS

Page 8: Sistem Terdistribusi

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)

Sistem Terdistribusi - 10/2/2010S2-Teknik Informatika UNHAS

Page 9: Sistem Terdistribusi

Apa itu obyek?

Segala sesuatu dapat dipandang sbg obyekKarateristik obyek

Memiliki atribut sebagai status (state/variable) Memiliki tingkah laku (behavior) atau method

variabel/ state

method/ behavior

Object model

Sistem Terdistribusi - 10/2/2010S2-Teknik Informatika UNHAS

Page 10: Sistem Terdistribusi

Bagaimana membuat obyek

Obyek dikonstruksi/dirancang dari prototipe atau blueprint yang telah ditetapkan (class)

Contoh: resep class kue obyek

Bahan:1 kg gula2 sdk mentegadan sterusnya.

Cara Membuat:Campur semua lalu panaskan dan seterusnya

Bahan:1 kg gula2 sdk mentegadan sterusnya.

Cara Membuat:Campur semua lalu panaskan dan seterusnya

Resep Kue 1

Kue 2

Sistem Terdistribusi - 10/2/2010S2-Teknik Informatika UNHAS

Page 11: Sistem Terdistribusi

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/statevariabel/state

konstruktorkonstruktor

method/behaviormethod/behavior

obyek mobyek m

Sistem Terdistribusi - 10/2/2010S2-Teknik Informatika UNHAS

Page 12: Sistem Terdistribusi

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

Sistem Terdistribusi - 10/2/2010S2-Teknik Informatika UNHAS

Page 13: Sistem Terdistribusi

Pemrograman Jaringan

Sistem Terdistribusi - 10/2/2010S2-Teknik Informatika UNHAS

Page 14: Sistem Terdistribusi

Paket java.net

Paket utama java.net memuat berbagai kelas yang berguna bagi programmer dalam mengimplementasi pemrograman berbasis jaringan dengan mudah

Sistem Terdistribusi - 10/2/2010S2-Teknik Informatika UNHAS

Page 15: Sistem Terdistribusi

InetAddress class

• Salah satu kelas java.net yang menangani alamat Internet (Internet address) baik sebagai host name atau IP Address.

• Static method getByName dari kelas ini menggunakan DNS untuk mengembalikan alamat internet dari sebuah host name tertentu sebagai obyek InetAddress.

• getByName membuang hasil pengecekan exception UnknownHostException jika host name tidak ditemukan harus ditangani dengan pernyataan catch.

Sistem Terdistribusi - 10/2/2010S2-Teknik Informatika UNHAS

Page 16: Sistem Terdistribusi

Contoh-1: IPFinder

import java.net.*;import java.io.*;public class IPFinder { public static void main(String[] args) throws IOException { String host; BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); System.out.print("\n\nEnter host name: "); host = input.readLine(); try { InetAddress address = InetAddress.getByName(host); System.out.println("IP address: "+ address); } catch (UnknownHostException e) { System.out.println("Could not find " +host);} } }

import java.net.*;import java.io.*;public class IPFinder { public static void main(String[] args) throws IOException { String host; BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); System.out.print("\n\nEnter host name: "); host = input.readLine(); try { InetAddress address = InetAddress.getByName(host); System.out.println("IP address: "+ address); } catch (UnknownHostException e) { System.out.println("Could not find " +host);} } }

Sistem Terdistribusi - 10/2/2010S2-Teknik Informatika UNHAS

core package

class method

exception

Page 17: Sistem Terdistribusi

Hasil Eksekusi Contoh-1

Sistem Terdistribusi - 10/2/2010S2-Teknik Informatika UNHAS

Page 18: Sistem Terdistribusi

Contoh-2: MyLocalIPAddress

import java.net.*;public class MyLocalIPAddress { public static void main(String[] args) { try { InetAddress address = InetAddress.getLocalHost(); System.out.println(address); } catch (UnknownHostException e) { System.out.println("could not find local address!"); } }

Sistem Terdistribusi - 10/2/2010S2-Teknik Informatika UNHAS

method

Page 19: Sistem Terdistribusi

Hasil Eksekusi Contoh-2

Sistem Terdistribusi - 10/2/2010S2-Teknik Informatika UNHAS

Page 20: Sistem Terdistribusi

S2-Teknik Informatika UNHAS Sistem Terdistribusi - 10/2/2010

Paket, Kelas dan Method yang Penting Diketahui

Page 21: Sistem Terdistribusi

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 Threading classes

Sistem Terdistribusi - 10/2/2010S2-Teknik Informatika UNHAS

Page 22: Sistem Terdistribusi

Java Sockets Programming

Java menggunakan BSD-style sockets untuk antarmuka dengan layanan TCP/IP (paket java.net)

Java membedakan socket-socket UDP, TCP server & TCP client

Behind-the-scenes classes do the actual work & can be updated or swapped out transparently

Sistem Terdistribusi - 10/2/2010S2-Teknik Informatika UNHAS

Page 23: Sistem Terdistribusi

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

Sistem Terdistribusi - 10/2/2010S2-Teknik Informatika UNHAS

Page 24: Sistem Terdistribusi

TCP Server Sockets

java.net.ServerSocket classBinds to a local port to listen for initial

connectionsCan be bound to a local IP for multi-homed

machinesaccept() method returns a java.net.Socket

, not an integer descriptor

Sistem Terdistribusi - 10/2/2010S2-Teknik Informatika UNHAS

Page 25: Sistem Terdistribusi

TCP Client Sockets

java.net.Socket classCombines 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

Sistem Terdistribusi - 10/2/2010S2-Teknik Informatika UNHAS

Page 26: Sistem Terdistribusi

UDP Sockets

java.net.DatagramSocket classJava makes no distinction between

client/server for UDP socketsConnected mode UDP supported in Java 2Can be bound to both a local port & a local IP

address – multi-homed supportSupports some socket options (timeout,

buffer size)

Sistem Terdistribusi - 10/2/2010S2-Teknik Informatika UNHAS

Page 27: Sistem Terdistribusi

UDP Datagrams

java.net.DatagramPacket classExpects a byte array of dataAddress optional for connected-mode UDPThis class is final – can’t be extended!java.net.DatagramSocket instances can

only send instances of java.net.DatagramPacket

Sistem Terdistribusi - 10/2/2010S2-Teknik Informatika UNHAS

Page 28: Sistem Terdistribusi

Threading

Java doesn’t support the notion of forking processes; how do we support concurrency?

– Java was designed to support multi-Java was designed to support multi-threading!threading!

– In server environments we can spawn new In server environments we can spawn new threads to handle each client to handle each client

– Thread groups allow for collective control allow for collective control of many threadsof many threads

Sistem Terdistribusi - 10/2/2010S2-Teknik Informatika UNHAS

Page 29: Sistem Terdistribusi

Java Servlets

Servlets are the Java analog to CGIAdvantages of servlets: full access to other

Java APIs, persistence between invocations, guaranteed portability

Servlets can be generic services or specific to HTTP

Sistem Terdistribusi - 10/2/2010S2-Teknik Informatika UNHAS

Page 30: Sistem Terdistribusi

HTTP Servlets

javax.servlet.http.HttpServlet classUses HTTP to receive requests and generate

responsesFull support for all HTTP methods, cookies,

sessions, persistent connectionsServlets can be chained – example: de-blink

servlet

Sistem Terdistribusi - 10/2/2010S2-Teknik Informatika UNHAS

Page 31: Sistem Terdistribusi

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

Sistem Terdistribusi - 10/2/2010S2-Teknik Informatika UNHAS

Page 32: Sistem Terdistribusi

Remote Method Invocation (RMI)

RMI is the Java analog to RPCRMI servers use a naming service

(rmiregistry) to register remote objectsRMI servers use a special security policy

implemented by RMISecurityManagerThe 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

Sistem Terdistribusi - 10/2/2010S2-Teknik Informatika UNHAS