JAVA Network Programming Apa itu JAVA? ● Bahasa pemrograman berorientasi objek yang dikembangkan oleh Sun Microsystems sejak tahun 1991. ● Dikembangkan dengan model yang mirip dengan bahasa C++ dan Smalltalk, namun dirancang agar lebih mudah dipakai dan platform independent, yaitu dapat dijalankan di berbagai jenis sistem operasi dan arsitektur komputer. ● Dirancang untuk pemrograman di Internet sehingga dirancang agar aman dan portabel. Fitur JAVA • • • • • • • • • • Applet Java Networking Java Database Connectivity (JDBC) Java Security Java Swing Java RMI Java 2D/3D Java Server Pages JNI (Java Native Interface) Java Sound • • • Java IDL + CORBA Java Card JTAPI (Java Telephony API) JAVA Network Programming • • Socket o Suatu abtraksi yang mana aplikasi dapat mengirim dan menerima data seperti sama halnya dengan membuka suatu file untuk dibaca dan ditulis pada tempat penyimpanan file. o Memungkinkan untuk masuk kedalam jaringan dan berkomunikasi dengan aplikasi lain yang juga masuk kedalam jaringan yang sama. o Dilengkapi dengan alamat, yang terdiri atas IP address tujuan dan nomor port. Port o Layanan yang disediakan oleh server o Nomor-nomor di bawah angka 1024 merupakan port yang umum digunakan dan ditetapkan oleh IANA (Internet Assigned Number Authority) Ilustrasi penggunaan socket Operasi pada Socket • • • • • • • Koneksi ke remote machine Mengirim data Menerima data Menutup koneksi Menghubungkan port Listening data yang masuk Menerima koneksi dari remote machine yang terhubung Penggunaan Socket dalam JAVA • Java.net.socket client socket try { Socket NamaSocket = new Socket(HostName, NomorPort); } catch (UnknownHostException ex) { System.err.println(ex); } catch (IOException ex) { System.err.println(ex); } Penggunaan Socket dalam JAVA (Lanjutan) • Java.net.serversocket server socket try{ theServer = new ServerSocket(NomorPort); theServer.Close() } catch (IOException e){ System.out.println("There is a server on port " + NomorPort + "."); } TCP Socket • Transmission Control Protocol (TCP) adalah suatu protokol yang berada di lapisan transport yang berorientasi sambungan (connection-oriented) dan dapat diandalkan (reliable). • Karakteristik • • • • • • Berorientasi sambungan (connection-oriented) Full-duplex Dapat diandalkan (reliable) Byte stream Memiliki layanan flow control Mengirimkan paket secara "one-to-one" UDP Socket • User Datagram Protocol (UDP), adalah salah satu protokol lapisan transpor TCP/IP yang mendukung komunikasi yang tidak andal (unreliable), tanpa koneksi (connectionless) antara host-host dalam jaringan yang menggunakan TCP/IP. • Karakteristik UDP • Connectionless (tanpa koneksi) • Unreliable (tidak andal) • UDP menyediakan mekanisme untuk mengirim pesan-pesan ke sebuah protokol lapisan aplikasi atau proses tertentu di dalam sebuah host dalam jaringan yang menggunakan TCP/IP. • UDP menyediakan penghitungan checksum berukuran 16-bit terhadap keseluruhan pesan UDP. Perbedaan UDP dan TCP • Header message UDP lebih sederhana dibandingkan TCP. Sebagaimana terlihat pada gambar . Field padding dapat ditambahkan ke datagram untuk memastikan bahwa message terdiri atas multiple 16-bit. RMI (Remote Method Invocation) • Bagian dari J2SE yang digunakan untuk membangun aplikasi terdistribusi menggunakan bahasa Java. • Kumpulan kelas dalam Java yang digunakan untuk menangani pemanggilan (invocation) method secara jarak jauh (remote) dalam suatu jaringan atau Internet. • Memisahkan obyek-obyek secara terdistribusi dalam mesin-mesin yang berbeda. • Menggunakan prinsip pemrograman berorientasi obyek dimana obyek satu dapat saling berkomunikasi dengan obyek lainnya. • Membutuhkan Interface. • Terdiri dari client dan server. Arsitektur RMI Keterbatasan RMI • • • • Java-only Menggunakan TCP bukan UDP Minimal 2 soket untuk setiap koneksi Belum dites untuk load yang cukup banyak