Your SlideShare is downloading. ×
Jeni slides j2 me-06-networking
Jeni slides j2 me-06-networking
Jeni slides j2 me-06-networking
Jeni slides j2 me-06-networking
Jeni slides j2 me-06-networking
Jeni slides j2 me-06-networking
Jeni slides j2 me-06-networking
Jeni slides j2 me-06-networking
Jeni slides j2 me-06-networking
Jeni slides j2 me-06-networking
Jeni slides j2 me-06-networking
Jeni slides j2 me-06-networking
Jeni slides j2 me-06-networking
Jeni slides j2 me-06-networking
Jeni slides j2 me-06-networking
Jeni slides j2 me-06-networking
Jeni slides j2 me-06-networking
Jeni slides j2 me-06-networking
Jeni slides j2 me-06-networking
Jeni slides j2 me-06-networking
Jeni slides j2 me-06-networking
Jeni slides j2 me-06-networking
Jeni slides j2 me-06-networking
Jeni slides j2 me-06-networking
Jeni slides j2 me-06-networking
Jeni slides j2 me-06-networking
Jeni slides j2 me-06-networking
Jeni slides j2 me-06-networking
Jeni slides j2 me-06-networking
Jeni slides j2 me-06-networking
Jeni slides j2 me-06-networking
Jeni slides j2 me-06-networking
Jeni slides j2 me-06-networking
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Jeni slides j2 me-06-networking

447

Published on

Published in: Education, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
447
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Networking Versi 0.1 Pembangunan Aplikasi Mobile
  • 2. Tujuan
    • Pada akhir pembelajaran ini, siswa diharapkan berkemampuan untuk :
    • Menjelaskan tentang Generic Connection Framework dan penggunaannya dalam dukungan terhadap metode koneksi yang berbeda-beda
    • Menjelaskan parameter koneksi dalam format pengalamatan GCF
    • Membuat koneksi HTTP / HTTPS connections
    • Membuat MIDlet yang mengimplementasikan socket TCP dan datagram UDP
  • 3. Networking
    • Generic Connection Framework
    • HTTP Connection
    • HTTPS Connection
    • TCP Socket Connection
    • Server Socket Connection
    • Datagram Connection
  • 4. Generic Connection Framework
    • Generic Connection Framework mendukung koneksi berbasis paket (Sockets) dan berbasis streaming (Datagrams)‏
    • GCF menyediakan API dasar untuk koneksi dalam CLDC. Framework ini menyediakan konektivitas umum seperti HTTP, Sockets dan Datagrams.
    • GCF menyediakan rangkaian API yang mengabstraksikan seluruh tipe koneksi.
    • Perlu diperhatikan bahwa tidak seluruh tipe koneksi diperlukan untuk diimplementasikan dalam perangkat MIDP.
  • 5. Hirarkhi GCF Interface
  • 6. GCF
    • scheme://username: [email_address] :port/path;parameters
    • scheme://[username[:password]@]host[:port]/path[;parameters]
    • scheme adalah protokol ataupun metode koneksi. Contoh scheme : http, ftp, https
    • Username bersifat opsional, namun jika disertakan, @ akan menyatakan parameter host
    • password juga bersifat opsional dan hanya diperlukan bila username digunakan. Password dipisahkan dari username menggunakan sebuah tanda colon (:)‏
  • 7. GCF
    • scheme://username: [email_address] :port/path;parameters
    • scheme://[username[:password]@]host[:port]/path[;parameters]
    • host – parameter ini diperlukan. Dapat berupa hostname, FQDN ataupun alamat IP tujuan
    • Port – parameter ini bersifat opsional. Jika tidak terdefinisi, maka port default dalam metode koneksi terpilih akan digunakan.
    • Path
    • parameters – bersifat opsional, dipisahkan oleh semi-colon bila digunakan.
  • 8. Networking
    • Generic Connection Framework
    • HTTP Connection
    • HTTPS Connection
    • TCP Socket Connection
    • Server Socket Connection
    • Datagram Connection
  • 9. HTTP Connection
    • HTTP singkatan dari HyperText Transfer Protocol.
    • Adalah sebuah protokol yang digunakan untuk mentransmisikan halaman web dari web server menuju web browster.
    • Client (web browser) melakukan request sebuah halaman web dengan menspesifikasikan path dengan menggunakan perintah “GET” ataupun “POST”.
  • 10. HTTP
    • Dalam metode “GET”, parameter dispesifikasikan dan tergabung dalam URL. Sebagai contoh, untuk melewatkan variabel dengan nama “id” bernilai 100 kepada “index.jsp”, URL tertulis sebagai berikut : “http://hostname/index.jsp?id=100”. Parameter tambahan dipisahkan dengan tanda (&) "http://hostname/index.jsp?id=100&page=2".
    • Bilamana method "POST" digunakan, parameter tidak menjadi bagian dalam URL namun akan dikirimkan dalam baris yang berbeda setelah perintah POST.
  • 11. HTTP Connection
    • Anda dapat membuka sebuah koneksi HTTP dengan menggunakan Connector.open() dan melakukan casting terhadapnya menggunakan salah satu interface : StreamConnection, ContentConnection dan HTTPConnection.
    • Namun, dengan menggunakan StreamConnection dan ContentConnection, anda tidak dapat menentukan parameter spesifik HTTP .
    • Pada saat anda menggunakan StreamConnection, panjang balasan yang akan diterima tidak dapat ditentukan sebelumnya.
  • 12. HTTP Connection
    • import javax.microedition.io.*;
    • HttpConnection connection = null;
    • InputStream iStream = null;
    • byte[] data = null;
    • try {
    • connection = (HttpConnection)
    • Connector.open("http://www.sun.com/");
  • 13. HTTP Connection
    • int code = connection.getResponseCode();
    • switch (code){
    • case HttpConnection.HTTP_OK:
    • iStream = connection.openInputStream();
    • int length = (int) connection.getLength();
    • if (length > 0){
    • data = new byte[length];
  • 14. HTTP Connection
    • int totalBytes = 0;
    • int bytesRead = 0;
    • while ((totalBytes < length) && (bytesRead > 0)) {
    • bytesRead = iStream.read(
    • data, totalBytes, length - totalBytes);
    • if (bytesRead > 0){
    • totalBytes += bytesRead;
    • }
    • }
  • 15. HTTP Redirects
    • int code = connection.getResponseCode();
    • switch(code){
    • case HttpConnection.HTTP_MOVED_PERM:
    • case HttpConnection.HTTP_MOVED_TEMP:
    • case HttpConnection.HTTP_SEE_OTHER:
    • case HttpConnection.HTTP_TEMP_REDIRECT:
    • String newUrl = conn.getHeaderField(&quot;Location&quot;);
    • ...
  • 16. Networking
    • Generic Connection Framework
    • HTTP Connection
    • HTTPS Connection
    • TCP Socket Connection
    • Server Socket Connection
    • Datagram Connection
  • 17. HTTPS Connection
    • HTTPS adalah HTTP dalam koneksi dengan tingkat keamanan tinggi..
    • Membuka sebuah koneksi HTTPS mirip dengan membuka koneksi HTTP.
    • Satu – satunya perbedaan adalah URL yang diberikan pada Connector.open() dan meng-castingnya sebagai HttpsConnection class variable.
    • Sebuah CertificateException akan terjadi bila terdapat kegagalan dalam verifikasi terhadap certificate
  • 18. HTTPS
    • import javax.microedition.io.*;
    • HttpsConnection connection = null;
    • InputStream iStream = null;
    • byte[] data = null;
    • try {
    • connection = (HttpsConnection)‏
    • Connector.open(&quot;https://www.sun.com/&quot;);
    • int code = connection.getResponseCode();
    • ...
    • } catch (CertificateException ce){
    • switch (ce.getReason()){
    • case CertificateException.EXPIRED:
    • ...
  • 19. Networking
    • Generic Connection Framework
    • HTTP Connection
    • HTTPS Connection
    • TCP Socket Connection
    • Server Socket Connection
    • Datagram Connection
  • 20. TCP Sockets
    • Layer TCP menjamin seluruh paket yang dikirimkan telah diterima dalam urutan yang sama pada saat pengiriman.
    • Jika sebuah paket gagal diterima, maka akan dikirimkan kembali.
    • Layer TCP menangani pengurutan dan pengiriman ulang paket secara transparan.
    • Sehingga, protokol HTTP tidak perlu mengatur tentang penguraian dan pengurutan paket karena hal ini akan tangani oleh layer TCP.
  • 21. TCP Connection
    • SocketConnection conn = (SocketConnection)
    • Connector.open(&quot;socket://www.sun.com:80&quot;);
    • client.setSocketOption(DELAY, 0);
    • InputStream iStream = conn.openInputStream();
    • OutputStream oStream = conn.openOutputStream();
    • os.write(&quot;GET / HTTP/1.0nn&quot;.getBytes());
  • 22. TCP Connection
    • int c = 0;
    • while((c = is.read()) != -1) {
    • // mengolah data yang diterima
    • ...
    • }
    • iStream.close();
    • oStream.close();
    • conn.close();
  • 23. Networking
    • Generic Connection Framework
    • HTTP Connection
    • HTTPS Connection
    • TCP Socket Connection
    • Server Socket Connection
    • Datagram Connection
  • 24. Server Sockets
    • Dalam kasus Client-Server, server secara berkesinambungan menunggu koneksi dari client melalui port yang digunakan.
    • Kita juga dapat menggunakan method Connector.open method untuk membuat server socket.
    • URL yang diberikan pada open() adalah berformat sama dengan yang digunakan pada socket TCP, dengan hostname yang dibiarkan kosong (mis: socket://:8899).
  • 25. Server Sockets
    • ServerSocketConnection conn = (ServerSocketConnection)
    • Connector.open(&quot;socket://:8889&quot;);
    • // menunggu koneksi dari Client
    • SocketConnection client = (SocketConnection) conn.acceptAndOpen();
    • client.setSocketOption(DELAY, 0);
  • 26. Server Sockets
    • InputStream iStream = client.openInputStream();
    • OutputStream oStream = client.openOutputStream();
    • // membaca/menulis pada input/output streams
    • ...
    • is.close();
    • os.close();
    • client.close();
    • server.close();
  • 27. Networking
    • Generic Connection Framework
    • HTTP Connection
    • HTTPS Connection
    • TCP Socket Connection
    • Server Socket Connection
    • Datagram Connection
  • 28. Datagrams
    • Distribusi paket UDP packets tidak dijamin. Tidak terdapat jaminan bahwa paket uang dikirimkan menggunakan koneksi Datagram akan diterima.
    • Urutan dari paket yang diterima juga tidak dapat dipastikan. Urutan dari paket yang dikirimkan bisa jadi tidak sama dengan urutan paket yang akan diterima.
    • Datagram atau packet digunakan pada saat aplikasi tetap dapat beroperasi meskipun paket yang dikirimkan hilang ataupun tidak sesuai urutan.
  • 29. Datagrams
    • String url;
    • try {
    • if (isServer){
    • // sebagai server, menunggu port 8888
    • url = &quot;datagram://:8888&quot;;
    • } else {
    • // sebagai client, koneksi ke port 8888
    • // dengan host &quot;localhost&quot;
    • url = &quot;datagram://localhost:8888&quot;;
    • }
    • dc = (DatagramConnection) Connector.open(url);
  • 30. Datagrams
    • while (true) {
    • Datagram dgram = dc.newDatagram(128);
    • dc.receive(dgram);
    • if (isServer){
    • // sebagai server
    • // mengambil alamat koneksi
    • // dalam proses pengiriman pesan
    • url = dgram.getAddress();
    • }
  • 31. Datagrams
    • if (dgram.getLength() > 0){
    • String mesg = new String(
    • dgram.getData(),
    • 0,
    • dgram.getLength()));
    • }
    • }
    • }
    • catch (IOException ioe) {}
    • catch (Exception e) {}
  • 32. Datagrams
    • private void sendMesg(String line){
    • try {
    • byte[] bytes = line.getBytes();
    • Datagram dgram = null;
    • dgram =
    • dc.newDatagram(bytes, bytes.length, url);
    • dc.send(dgram);
    • } catch (Exception ioe) {}
    • }
  • 33. Kesimpulan
    • Generic Connection Framework
    • HTTP Connection
    • HTTPS Connection
    • TCP Socket Connection
    • Server Socket Connection
    • Datagram Connection

×