1.Introduction to telecommunication network software design

Download Report

Transcript 1.Introduction to telecommunication network software design

TASHKENT UNIVERSITY OF INFORMATION
TECHNOLOGIES
THE DEPARTMENT OF
DATA COMMUNICATION NETWORKS AND SYSTEMS
Lecture №1
Introduction to Telecommunication network
software design
Lector: Aliyev H.U.
Telecommunication network software
design
• Aims and objectives
• To introduce master students to programming fundamentals and TCP/IP
based telecommunication network programming. This is a course of
study which provides a suitable basis for later networking units that require
.NET-based skills.
•
•
•
•
•
•
•
• Learning Outcomes
After successfully completing this course, students should be able to:
- understand fundamental program structures;
- understand the concepts of system and protocol analysis;
- explain fundamental object-oriented concepts;
- write small programs in C# that use TCP/IP sockets;
- design, write and debug small programs in C# with text input/output, data
sending, file and multimedia exchanges;
- write small programs in C# that use simple GUI for network monitoring,
packet analysis and network security applications.
Driving Forces for Evolution to all-IP
Convergence of communication networks
Fixed–mobile convergencewith IMS
IMS enables convergence of
services
Next Generation of Networks
• NGN
IMS
SDN
• SDN-SOFTWARE DEFINED NETWORKS
Network programming-?
• Communication network programming is one of the core tasks of
enterprise-level development - the need for disparate computers
and network devices to communicate efficiently and securely,
whether within the same building, or across the world, remains
fundamental to the success of many systems.
• Network software design course covers everything you need to
know about network programming, from basic get-started
information, to a huge selection of advanced networking
technologies that may have seemed like science fiction—until
now.
• On the lectures we will learn Windows OS based network
programming. Nowadays network programming with Windows is
popular. With the .NET Framework comes a new set of classes for
tackling networking tasks on the Windows network programming.
• The current set of protocols supported by .NET classes is limited to
the transport-level protocols TCP and UDP, and the applicationlevel protocols HTTP, FTP, SNMP and SMTP.
Network programming• learn network programming for communication
(with focus on implementation of networking
• concepts)
Network programming model for
communication
TCP/IP model
Transport
Internet
Network access
Data
encryption
Other
services
DPI
DB app
P2P appl
SNMP
Telnet
Multimedia
Email
FTP
HTTP
Application
Network programming model
Socket programming level for TCP/IP
networking
Device driver programs for different network
access technologies
Integrated development environment
(IDE) for programming
• An integrated development environment (IDE) or interactive
development environment is a software application that
provides comprehensive facilities to computer programmers for
software development. An IDE normally consists of a source
code editor, build automation tools and a debugger. Most
modern IDEs offer Intelligent code completion features.
• Some IDEs contain a compiler, interpreter, or both, such as Net
Beans and Eclipse; others do not, such as SharpDevelop and
Lazarus. The boundary between an integrated development
environment and other parts of the broader software
development environment is not well-defined. Sometimes a
version control system and various tools are integrated to
simplify the construction of a GUI. Many modern IDEs also have
a class browser, an object browser, and a class hierarchy
diagram, for use in object-oriented software development.
Integrated development environment
(IDE) for programming
•
•
•
•
•
Unix programmers can combine command-line POSIX tools into a complete development
environment, capable of developing large programs such as the Linux kernel and its environment.
The free software GNU tools (GNU Compiler Collection (GCC), GNU Debugger (gdb), GNU make) are
available on many platforms, including Windows.[4] Developers who favor command-line oriented
tools can use editors with support for many of the standard Unix and GNU build 1 tools, building an
IDE with programs like Emacs or Vim. Data Display Debugger is intended to be an advanced graphical
front-end for many text-based debugger standard tools. Some programmers prefer managing
makefiles and their derivatives to the similar code building tools included in a full IDE. For example,
most contributors to the PostgreSQL database use make and gdb directly to develop new features.[8]
Even when building PostgreSQL for Microsoft Windows using Visual C++, Perl scripts are used as a
replacement for make rather than relying on any IDE features.[9] Some Linux IDEs such as Geany
attempt to provide a graphical front end to traditional build operations.
On the various Microsoft Windows platforms, command-line tools for development are seldom used.
Accordingly, there are many commercial and non-commercial products. However, each has a different
design commonly creating incompatibilities. Most major compiler vendors for Windows still provide
free copies of their command-line tools, including Microsoft (Visual C++, Platform SDK, .NET
Framework SDK, nmake utility), Embarcadero Technologies (bcc32 compiler, make utility).
IDEs have always been popular on the Apple Macintosh's Mac OS, dating back to Macintosh
Programmer's Workshop, Turbo Pascal, THINK Pascal and THINK C environments of the mid-1980s.
Currently Mac OS X programmers can choose between native IDEs like Xcode and open-source tools
such as Eclipse and Netbeans. ActiveState Komodo is a proprietary multilanguage IDE supported on
the Mac OS.
With the advent of cloud computing, some IDEs are available online and run within web browsers;
examples of this are Online Javascript IDE, Codenvy, Cloud9 IDE, Firebug and Koding.
Integrated development
environments
• Universal
Anjuta • Visual Studio • NetBeans • Eclipse • KDevelop • Xcode•
Geany • MonoDevelop • Aptana Studio • Open Watcom •
Komodo • Kylix
• C/C++
Borland C++ • C++ Builder • Code::Blocks • CodeLite • wxDevC++ • Pelles C • Oracle Solaris Studio • QDevelop • Qt Creator •
Ultimate++ • Microsoft QuickC
• Basic
• Java
PowerBASIC • Turbo Basic • Visual Basic • QBasic • QuickBASIC •
PureBasic
• Paskal
Delphi • Lazarus • MSE • PascalABC.NET • MIDletPascal •
PocketStudio • Morfik • Turbo Pascal • QuickPascal • Visible
Pascal
WebLogic • BlueJ • DrJava • Greenfoot • JCreator • JDeveloper •
IntelliJ IDEA • JBuilder • JGRASP
Integrated development
environments
• PHP
• Python
• Ruby
Aptana Studio with PHP plugin • Delphi for PHP (RadPHP) •
Eclipse PDT • Zend Studio • NuSphere PhpED • PHP Expert
Editor • phpStorm • Dreamweaver
Boa Constructor • Eclipse+PyDev • Eric • IDLE • Komodo •
PyCharm • PyScripter • SPE • Wing IDE
RubyMine
Integrated development
environments
• C /C++ and C#
Anjuta
Code::Blocks
CodeLite
Dev-C++
Eclipse
GNAT Programming Studio
KDevelop
Kuzya
MonoDevelop
NetBeans
QDevelop
Qt Creator
wxDev-C++
Ultimate++
Pelles C
Sun Studio
Xcode
C++Builder
CodeWarrior
IBM VisualAge
Visual Studio Express
Integrated development
environments
• Java
Current
Android Studio
BlueJ
Eclipse
JetBrains IntelliJ IDEA
Greenfoot
KDevelop
JBuilder
JCreator
JDeveloper
jGRASP
MyEclipse
NetBeans
IBM Rational Application Developer for WebSphere
Discontinued
Metrowerks CodeWarrior Pro for Java
Kalimantan
Sun Java Studio Creator (superseded by NetBeans)
Visual Age (superseded by Eclipse)
Visual Café (aka Espresso, superseded by JBuilder)
Visual J++
Xelfi (became NetBeans)
.NET based Integrated
development environments
• .NET
MonoDevelop
SharpDevelop
Visual Studio
Xamarin Studio
Visual Studio
Xamarin Studio
Xamarin Studio
Xamarin for
Visual Studio
Xamarin.iOS
Xamarin Studio
Xamarin.Android
Xamarin Test Cloud
Xamarin.Mac
Component Store
.NET Mobility Scanner
MonoDevelop for Linux
Network Programming in the .NET
Framework
• The Microsoft .NET Framework provides a layered,
extensible, and managed implementation of Internet
services that can be quickly and easily integrated into your
applications. Your network applications can build on
pluggable protocols to automatically take advantage of new
Internet protocols, or they can use a managed
implementation of the Windows socket interface to work
with the network on the socket level.
• Network programming samples that use classes in the
System.Net, System.Net.Cache, System.Net.Configuration,
System.Net.Mail,
System.Net.Mime,
System.Net
.NetworkInformation, System.Net.PeerToPeer, System.Net.
Security, System.Net.Sockets namespaces.
Communication network
Programming in the .NET Framework
• System.Net Provides a simple programming interface for many of the
protocols used on networks today. The System.Net.WebRequest and
System.Net.WebResponse classes in this namespace are the basis for
pluggable protocols.
• System.Net.Cache Defines the types and enumerations used to define
cache policies for resources obtained using the System.Net.WebRequest
and System.Net.HttpWebRequest classes.
• System.Net.Configuration Classes that applications use to
programmatically access and update configuration settings for the
System.Net namespaces.
• System.Net.Http Classes that provides a programming interface for
modern HTTP applications.
• System.Net.Http.Headers Provides support for collections of HTTP headers
used by the System.Net.Http namespace
• System.Net.Mail Classes to compose and send mail using the SMTP
protocol.
• System.Net.Mime Defines types that are used to represent Multipurpose
Internet Mail Exchange (MIME) headers used by classes in the
System.Net.Mail namespace.
Communication network
Programming in the .NET Framework
•
•
•
•
•
•
•
•
•
System.Net.NetworkInformation Classes to programmatically gather information
about network events, changes, statistics, and properties.
System.Net.PeerToPeer Provides a managed implementation of the Peer Name
Resolution Protocol (PNRP) for developers.
System.Net.PeerToPeer.Collaboration Provides a managed implementation of the
Peer-to-Peer Collaboration interface for developers.
System.Net.Security Classes to provide network streams for secure
communications between hosts.
System.Net.Sockets Provides a managed implementation of the Windows Sockets
(Winsock) interface for developers who need to help control access to the
network.
System.Net.WebSockets Provides a managed implementation of the WebSocket
interface for developers.
System.Uri Provides an object representation of a uniform resource identifier (URI)
and easy access to the parts of the URI.
System.Security.Authentication.ExtendedProtection Provides support for
authentication using extended protection for applications.
System.Security.Authentication.ExtendedProtection.Configuration Provides
support for configuration of authentication using extended protection for
applications.
Q&A?