Sistem Terdistribusi
description
Transcript of Sistem Terdistribusi
ARMIN LAWIS2 TEKNIK INFORMATIKA UNHAS
Sistem Terdistribusi
Sistem Terdistribusi - 10/2/2010S2-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) 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
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
Pengenalan Java
Sistem Terdistribusi - 10/2/2010S2-Teknik Informatika UNHAS
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
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
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
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
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
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
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
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
Pemrograman Jaringan
Sistem Terdistribusi - 10/2/2010S2-Teknik Informatika UNHAS
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
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
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
Hasil Eksekusi Contoh-1
Sistem Terdistribusi - 10/2/2010S2-Teknik Informatika UNHAS
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
Hasil Eksekusi Contoh-2
Sistem Terdistribusi - 10/2/2010S2-Teknik Informatika UNHAS
S2-Teknik Informatika UNHAS Sistem Terdistribusi - 10/2/2010
Paket, Kelas dan Method yang Penting Diketahui
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
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
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
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
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
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
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
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
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
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
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
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