inter-process communication: processler-arası İletişim network … · 2019-11-17 · 6...

23
1 Inter-Process Communication: Processler-Arası İletişim Network Programming using Java Sockets Java Soketleri kullanarak Ağ Programlama

Upload: others

Post on 30-Dec-2019

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Inter-Process Communication: Processler-Arası İletişim Network … · 2019-11-17 · 6 Networking Basics Ağ Temelleri Physical/Link Layer(Fiziksel Katman) Bir bilgisayardan diğerine

1

Inter-Process Communication:Processler-Arası İletişim

Network Programming using Java Sockets

Java Soketleri kullanarak Ağ Programlama

Page 2: Inter-Process Communication: Processler-Arası İletişim Network … · 2019-11-17 · 6 Networking Basics Ağ Temelleri Physical/Link Layer(Fiziksel Katman) Bir bilgisayardan diğerine

2

Konu Başlıkları

Giriş Ağ Kullanmanın Temelleri Portlar ve Soketlerin Anlaşılması Java Soketleri

Server Yazılımı Client Yazılımı

Örnekler Sonuçlar

Page 3: Inter-Process Communication: Processler-Arası İletişim Network … · 2019-11-17 · 6 Networking Basics Ağ Temelleri Physical/Link Layer(Fiziksel Katman) Bir bilgisayardan diğerine

3

Giriş

Internet ve WWW küresel iletişim ortamı haline gelerek bilim, mühendislik ve ticaret tutumumuzu değiştirdi.

Bununla beraber, öğrenme, yaşama, eğlenme, iletişim kurma, etkileşimde bulunma, vs, tarzımızı da değiştirdi.Görünüşe bakılırsa, modern hayat etkinlikleri bütün bütün Internet etrafında dönmeye başlıyor.

Page 4: Inter-Process Communication: Processler-Arası İletişim Network … · 2019-11-17 · 6 Networking Basics Ağ Temelleri Physical/Link Layer(Fiziksel Katman) Bir bilgisayardan diğerine

4

Yerel ve Uzak Kullanıcılara Hizmet Veren İnternet Uygulamaları

Internet Server

PC client

Local Area Network(Yerel Ağ)

PDA

Page 5: Inter-Process Communication: Processler-Arası İletişim Network … · 2019-11-17 · 6 Networking Basics Ağ Temelleri Physical/Link Layer(Fiziksel Katman) Bir bilgisayardan diğerine

5

Layers, interfaces, and protocols in the OSI model.

Layers, interfaces, and protocols in the OSI model.

Page 6: Inter-Process Communication: Processler-Arası İletişim Network … · 2019-11-17 · 6 Networking Basics Ağ Temelleri Physical/Link Layer(Fiziksel Katman) Bir bilgisayardan diğerine

6

Networking BasicsAğ Temelleri

Physical/Link Layer (Fiziksel Katman) Bir bilgisayardan diğerine veri akışını

gösteren sinyallerin iletimi için işlevsellik.

Internet/Network Katmanı IP (Internet Protocols) – uzaktaki bir

bilgisayara adreslenip teslim edilecek bir paket veri.

Transport Layer (Taşıma Katmanı) Uzak bir bilgisayardaki belirli bir

processe veri paketlerini teslim etmek için işlevsellikler.

TCP (Transmission Control Protocol) UDP (User Datagram Protocol) Programlama Arayüzü:

Soketler Applications Layer (Uygulama Katmanı)

Standart veya kullanıcı uygulamaları arasında veri değişimi:

HTTP, FTP, Telnet

TCP/IP Stack (Yığını)

Application(http,ftp,telnet,…)

Transport(TCP, UDP,..)

Internet/Network(IP,..)

Physical/Link(device driver,..)

Page 7: Inter-Process Communication: Processler-Arası İletişim Network … · 2019-11-17 · 6 Networking Basics Ağ Temelleri Physical/Link Layer(Fiziksel Katman) Bir bilgisayardan diğerine

7

A typical msg as seen on network

Figure 4-2. A typical message as it appears on the network.

Page 8: Inter-Process Communication: Processler-Arası İletişim Network … · 2019-11-17 · 6 Networking Basics Ağ Temelleri Physical/Link Layer(Fiziksel Katman) Bir bilgisayardan diğerine

8

Middleware Protocols:An adapted reference model

Page 9: Inter-Process Communication: Processler-Arası İletişim Network … · 2019-11-17 · 6 Networking Basics Ağ Temelleri Physical/Link Layer(Fiziksel Katman) Bir bilgisayardan diğerine

9

Internet uygulamalarına olan talep artışı

Internet tarafından sunulan imkanlardan faydalanmak için, iş sahipleri devamlı olarak, servislerini Internet üzerinden sunmak için, yeni ve yenilikçi yol ve yöntemler arıyorlar.

Bu da, yeni Internet-uyumlu uygulamalar oluşturmaveya var olan uygulamaları Internet ortamına taşıma yeteneğine sahip yazılım mühendisleri içinbüyük bir talep meydana getirdi.

Object-oriented Java teknolojileri—Soketler, threadler, RMI, clustering (kümeleme), Web servisleri– taşınabilir, verimli, bakımı yapılabilen, büyük ve karmaşık Internet uygulamalarının yapımı için önde gelen çözümler olarak ortaya çıktı.

Page 10: Inter-Process Communication: Processler-Arası İletişim Network … · 2019-11-17 · 6 Networking Basics Ağ Temelleri Physical/Link Layer(Fiziksel Katman) Bir bilgisayardan diğerine

10

A networked application with its own protocol.

Client Machine: Provide means for users to interact with remote servers. App-to-app

Page 11: Inter-Process Communication: Processler-Arası İletişim Network … · 2019-11-17 · 6 Networking Basics Ağ Temelleri Physical/Link Layer(Fiziksel Katman) Bir bilgisayardan diğerine

11

A general solution to allow access to remote applications.

Provide direct access to remote services by ofering convenient interface

Client:terminal no need for local storage

Page 12: Inter-Process Communication: Processler-Arası İletişim Network … · 2019-11-17 · 6 Networking Basics Ağ Temelleri Physical/Link Layer(Fiziksel Katman) Bir bilgisayardan diğerine

12

Network

client (istemci), server (sunucu), ve network (ağ)

ClientServer

Client machine Server machine

C-S Computing Elemanları

Processler katılımcılar tarafından gözlemlenmesi gereken kuralları tanımlayan bir protokol izlerler: Veri değişimi nasıl kodlanır? Olaylar (gönderme, alma) nasıl eşitlenir (sıralanır) ki, katılımcılar koordine bir şekilde gönderip alabilsin?

Yüz-yüze iletişim; insanlar, göz teması, vücut dili, yüz ifadesi temelli konuşulmayan protokol izlerler.

Page 13: Inter-Process Communication: Processler-Arası İletişim Network … · 2019-11-17 · 6 Networking Basics Ağ Temelleri Physical/Link Layer(Fiziksel Katman) Bir bilgisayardan diğerine

13

Networking BasicsAğ Temelleri

TCP (Transmission Control Protocol) iki bilgisayar arasında güvenli veri akışını sağlayan connection-oriented (bağlantılı) iletişim protokolü.

Örnek uygulamalar: HTTP FTP Telnet

TCP/IP Stack

Application(http,ftp,telnet,…)

Transport(TCP, UDP,..)

Internet/Network(IP,..)

Physical/Link(device driver,..)

Page 14: Inter-Process Communication: Processler-Arası İletişim Network … · 2019-11-17 · 6 Networking Basics Ağ Temelleri Physical/Link Layer(Fiziksel Katman) Bir bilgisayardan diğerine

14

Networking BasicsAğ Temelleri

UDP (User Datagram Protocol) bir bilgisayardan diğerine, ulaşma veya ulaşma sırası garantisi olmadan, datagram denilen bağımsız paketleri gönderen (bağlantısız iletişim) protokolüdür.

Bir mektubu, birden fazla posta ile parça parça göndermeye benzer.

Örnek uygulamalar: Clock server (Saat sunucusu) Ping

TCP/IP Stack

Application(http,ftp,telnet,…)

Transport(TCP, UDP,..)

Network(IP,..)Link

(device driver,..)

Page 15: Inter-Process Communication: Processler-Arası İletişim Network … · 2019-11-17 · 6 Networking Basics Ağ Temelleri Physical/Link Layer(Fiziksel Katman) Bir bilgisayardan diğerine

15

TCP - UDP İletişimi Karşılaştırması

A B

A B

Connection-Oriented (Bağlantılı) İletişim

Connectionless (Bağlantısız) İletişim

Page 16: Inter-Process Communication: Processler-Arası İletişim Network … · 2019-11-17 · 6 Networking Basics Ağ Temelleri Physical/Link Layer(Fiziksel Katman) Bir bilgisayardan diğerine

16

Portları Anlamak

TCP ve UDP protokolleri, gelen veriyi bir bilgisayar üzerinde çalışan belirli bir processe eşlemek için portlarıkullanırlar.

server

Port

ClientTCP

TCP or UDP

port port port port

app app app app

port# dataDataPacket

Page 17: Inter-Process Communication: Processler-Arası İletişim Network … · 2019-11-17 · 6 Networking Basics Ağ Temelleri Physical/Link Layer(Fiziksel Katman) Bir bilgisayardan diğerine

17

Portları Anlamak

Port, (16-bit) pozitif bir tamsayı ile ifade edilir Bazı portlar yaygın/bilinen servisleri

desteklemek için ayrılmıştır (reserved): ftp 21/tcp telnet 23/tcp smtp 25/tcp login 513/tcp

Kullanıcı düzeyindeki processler ve servisler genellikle 1024 ve daha büyük olan portnumaralarını kullanırlar

Page 18: Inter-Process Communication: Processler-Arası İletişim Network … · 2019-11-17 · 6 Networking Basics Ağ Temelleri Physical/Link Layer(Fiziksel Katman) Bir bilgisayardan diğerine

18

Soketler

Soketler taşıma katmanındaki (transport layer) programlama ağları için bir ara-yüz sunar.

Soket kullanarak ağ iletişimi kurmak, dosya okuma yazmaya (I/O) oldukça benzerdir Aslında, soket tutucu, dosya tutucu (file handle) gibi işlenir. Dosya I/O işleminde kullanılan akışlar soket-tabanlı I/O’ya da

uygulanabilir. Soket-tabanlı iletişim, programlama dilinden

bağımsızdır. Yani, Java dilinde yazılmış bir soket programı, hem Java’da

hem de diğer dillerde yazılmış bir soket programıyla anlaşabilir.

Page 19: Inter-Process Communication: Processler-Arası İletişim Network … · 2019-11-17 · 6 Networking Basics Ağ Temelleri Physical/Link Layer(Fiziksel Katman) Bir bilgisayardan diğerine

19

Soket İletişimi

Bir sunucu (programı) belirli bir bilgisayar üzerinde çalışır ve belirli bir porta bağlanmış bir soketi vardır. Server, bir clientın bağlantı isteğinde bulunmasını beklerken soketi dinler.

server ClientConnection requestBağlantı isteği

port

Page 20: Inter-Process Communication: Processler-Arası İletişim Network … · 2019-11-17 · 6 Networking Basics Ağ Temelleri Physical/Link Layer(Fiziksel Katman) Bir bilgisayardan diğerine

20

Soket İletişimi

İşler yolunda giderse, server bağlantıyı kabul eder. Bunun üzerine server, farklı bir porta bağlı yeni bir soket alır. Yeni bir sokete (bununla birlikte farklı bir portnumarasına) ihtiyaç duyar ki, bağlanan cliente servis verirken aynı zamanda ilk soketten bağlantı isteklerini dinleyebilsin.

server

Client

port

port port

Page 21: Inter-Process Communication: Processler-Arası İletişim Network … · 2019-11-17 · 6 Networking Basics Ağ Temelleri Physical/Link Layer(Fiziksel Katman) Bir bilgisayardan diğerine

21

Berkeley Sockets: The socket primitives in C for TCP/IP

Figure 4-14. The socket primitives for TCP/IP.

Page 22: Inter-Process Communication: Processler-Arası İletişim Network … · 2019-11-17 · 6 Networking Basics Ağ Temelleri Physical/Link Layer(Fiziksel Katman) Bir bilgisayardan diğerine

22

Connection-oriented communication pattern using sockets

Page 23: Inter-Process Communication: Processler-Arası İletişim Network … · 2019-11-17 · 6 Networking Basics Ağ Temelleri Physical/Link Layer(Fiziksel Katman) Bir bilgisayardan diğerine

23

Soketler ve Java Soket Classları

Soket, ağ üzerinde çalışan iki program arasındaki iki yönlü iletişim bağının ucudur.

Soket, bir port numarasına bağlıdır. Bu, TCP katmanının, verinin gönderileceği uygulamayı tanıyabilmesi içindir.

Java’nın .net paketi iki sınıf temin eder: Socket –client tanımlamak için ServerSocket –server tanımlamak için