0% found this document useful (0 votes)
5 views14 pages

Unit 1 - Introduction

Network programming involves creating applications that operate across multiple devices connected via a network, focusing on client-server communication and data sharing. It has a broad scope, impacting various applications from email to online gaming, and is essential for modern developers. The document also discusses programming languages suitable for network programming, with a focus on Java, and explains the client-server model, server functionalities, and the roles of clients and servers in networking.

Uploaded by

salonishah550
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views14 pages

Unit 1 - Introduction

Network programming involves creating applications that operate across multiple devices connected via a network, focusing on client-server communication and data sharing. It has a broad scope, impacting various applications from email to online gaming, and is essential for modern developers. The document also discusses programming languages suitable for network programming, with a focus on Java, and explains the client-server model, server functionalities, and the roles of clients and servers in networking.

Uploaded by

salonishah550
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 14

Unit 1

Introduction to Network
Programming
What is Network programming?
• Writing programs that execute across multiple
devices in which the devices are connected to
each other using a network.
• Concepts of Client and Servers (Distributed
systems)
• How client and server communicate with each
other?
• How data is shared?
Network Programming Features and Scope

Features
• allows applications to connect and
communicate via network.
• Read files from the internet and post files to
the remote applications via internet.
• concerns about the reliability of the messages
• Deals with the implementation of protocols at
their corresponding layers.
Scope
• NP has become a core part of every developer since
most of the programs are network aware.
• Classic applications: email, web browsers and
remote login
• Current and Future Scope:
– Text editors- open and save files directly from FTP
servers
– IDEs- work with repositories like GitHub and Sourceforge
– Online Games- PUBG, Halo, Fight and Frag at real time
– Supermarkets, Music Players, Scheduling Applications
and many more
– Promising Field: Internet of Things (IoT)
Network programming Language, Tools and
Platforms
• Lot of programming languages exist can be used for networking field.
• But most are not networking specific languages.

• Some languages that can be used for network programming are:


– Python – general purpose language, great for beginners, extremely
readable
– Go – aka Golang, developed by Google for new engineers at Google,
strongly typed, powerful as a network programming language.
– Perl – used to be darling of system and network engineers, high amount of
modules are available, module reusability is advantage, not popular now
– Bash – language for Unix based system, very short and simple programs
– Java – OOP with rich sets of API, has a core library that includes classes for
communicating with the internet hosts, Java fills over 90% of most
network programmers needs

The course of network programming is based on Java.


client-server Model
• client-server Model: Model of a computer network
in which many clients (remote processors) request
and receive service from a centralized server (host
computer)
• The most basic type of client-server architecture
employs only two types of nodes: clients and
servers.
• This type of architecture is sometimes referred to
as two-tier.
• It allows devices to share files and resources.
Server-Based Networking
• Server
– A single computer that provides extensive
multiuser access to network resources
– Can handle hundreds of users at once
• Fast response
• Less network congestion when multiple workstations
access the same resource
What Servers do?
• Essentially, any server must serve a network —
either clients or other servers, or some combination
of the two.
• The term server also includes the actual server
operating system that makes the computer do its
job.
• Commercial server software products such as
Windows Server 2008 are designed to handle a
greater frequency and variety of tasks than are
typical in either the desktop or workstation
How it works

The client will follow this process:


1. Initiate a request: The client caller requests access to
some resource or information from the remote server.
2. Wait for a reply: A participating server issues a reply,
either permitting or forbidding the connection, which
may require authentication in some cases.
3. Connect and interact: If access is granted, the client
possibly authenticates and then begins interacting in
some fashion with the server.
How it works
• The server will do the following:
1. Listen for a request: Calling clients come and go as they
please, requesting to initiate and interact with hosted
services.
2. Process the request: Once received, the client request may
optionally require authentication.
3. Connect and interact: At this point, both client and server are
connected on a common channel and able to share resources
or information.
Examples: E-mail clients send and receive messages from e-mail
servers.
Web browser clients broker data connections to FTP and Web
servers.
Client/server roles
• Server provides the service
• Client is considered as the customer requesting the service
• The server service can be shared among a number of clients
• Clients must request or initiate the service
• The location of the server in the network is transparent to
clients
• Transaction between C/S is message-passing based
• C/S architecture is scalable
• horizontally (more clients can added)
• Vertically (more servers can be added)
• The server is centrally maintained where as clients are
independent of each other
Why do we use servers
• A server is designed and intended to provide
services and run server applications under
heavy workloads, left unattended and self-
managing most of the time.
• Larger amounts of memory (upwards of 8GB
or more), larger storage capacity (terabytes,
petabytes, and beyond), special storage
methods (mirroring, striping, and multiple disk
aggregation), redundant power supplies.
Systems with Client server model
• File servers
– File sharing and file processing
• Data base servers
– Passing file results
– Example: Query in DBMS server
– Typically one single request/reply
• Transaction servers
– Transaction server includes DBMS and transaction
monitoring
– Server has remote procedures run online by the client
• web servers
– Super-fat servers and clients
– Uses HTTP protocol
– Java was first to introduce interactive C/S forms

You might also like