Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
Кафедра 304
Курсовая работа
по дисциплине:
«Технологии Cisco»
На тему «Проектирование клиент-серверного приложения»
Выполнила:
студентка группы 30-409Б
Третьякова Д.С.
Принял:
К.т.н., доцент каф. 304 Чугаев Б.Н.
подпись преподавателя
Москва 2019
Московский авиационный институт
(национальный исследовательский университет)
«МАИ»
Факультет №3
Кафедра 304
Студентка
гр.3О-409Б: Третьякова Д.С. дата ________ подпись ________
Руководитель
курсовой работы: Чугаев Б.Н. дата ________ подпись ________
Введение
Коммутаторы уровня доступа, 100 Мб/с: серия Cisco Catalyst 2960 Plus
Коммутаторы уровня доступа/агрегации, 1 Гб/с: серия Cisco Catalyst
2690-X, 2960-XR.
Компактные коммутаторы уровня доступа: серия Cisco Catalyst
Compact.
Коммутаторы уровня агрегации, 1 Гб/с: серии Cisco Catalyst 3750, Cisco
Catalyst 3650, Cisco Catalyst 3850.
Коммутатор уровня ядра, 1/10 Гб/с: Cisco Catalyst 4500-X.
Модульные коммутаторы уровня агрегации и ядра, 1/10 Гб/с: серия
Cisco Catalyst 4500E.
- прикладной компонент;
- компонент управления ресурсом.
Трехуровневая модель
С середины 90-х годов прошлого века признание специалистов получила
трехзвенная архитектура «Клиент – сервер», которая разделила
информационную систему по функциональным возможностям на три
отдельных компонента: логика представления, бизнес-логика и логика
доступа к данным. В отличие от двухзвенной архитектуры в трехзвенной
появляется дополнительное звено - сервер приложений, который
предназначен для осуществления бизнес-логики, при этом полностью
разгружается клиент, который направляет запросы промежуточному
программному обеспечению, и максимально используются все
возможности серверов.
В трехуровневой архитектуре клиент обычно не перегружен функциями
обработки данных, а выполняет свою основную роль системы
представления информации, поступающей с сервера приложений. Такой
интерфейс можно реализовать с помощью стандартных средств Web-
технологии - браузера, CGI и Java. Это уменьшает объем данных,
передаваемых между клиентом и сервером приложений, что позволяет
подключать клиентские компьютеры даже по медленным линиям типа
телефонных каналов. Кроме того, клиентская часть может быть настолько
простой, что в большинстве случаев ее реализуют с помощью
универсального браузера. Но если менять ее все-таки придется, то эту
процедуру можно осуществить быстро и безболезненно.
3. NetBeans
NetBeans является бесплатной интегрированной средой разработки с открытым
исходным кодом. Данная среда поставляет все необходимые средства для создания
как мобильных приложений, так и приложений для персональных компьютеров.
Поддерживает множество языков программирования, например, Java, C/C++, PHP,
Ruby и т.д. К плюсам данной среды разработки можно отнести:
Требования к оборудованию:
После запуска среды разработки появляется начальное окно, которое дает возможность
создать новый проект или открыть уже существующий, а также содержит сведения об
обновлениях и новых возможностях Visual Studio.
Рисунок 9. – Начальное окно Visual Studio
Для того, чтобы создать новый проект необходимо на начальном экране выбрать «New
Project».
После этого откроется диалоговое окно «New Project», в котором необходимо выбрать
язык программирования и тип приложения, которое необходимо создать, а также дать имя
проекту и указать его место расположения на диске.
using System;
using System;
using System.Text;
using System.Net;
using System.Net.Sockets;
namespace SocketTcpServer
{
class Program
{
static int port = 8005; // порт для приема входящих
запросов
static void Main(string[] args)
{
// получаем адреса для запуска сокета
IPEndPoint ipPoint = new
IPEndPoint(IPAddress.Parse("127.0.0.1"), port);
// создаем сокет
Socket listenSocket = new
Socket(AddressFamily.InterNetwork, SocketType.Stream,
ProtocolType.Tcp);
try
{
// связываем сокет с локальной точкой, по
которой будем принимать данные
listenSocket.Bind(ipPoint);
// начинаем прослушивание
listenSocket.Listen(10);
while (true)
{
Socket handler = listenSocket.Accept();
// получаем сообщение
StringBuilder builder = new StringBuilder();
int bytes = 0; // количество полученных
байтов
byte[] data = new byte[256]; // буфер для
получаемых данных
do
{
bytes = handler.Receive(data);
builder.Append(Encoding.Unicode.GetString(data, 0, bytes));
}
while (handler.Available > 0);
// отправляем ответ
string message = "ваше сообщение
доставлено";
data = Encoding.Unicode.GetBytes(message);
handler.Send(data);
// закрываем сокет
handler.Shutdown(SocketShutdown.Both);
handler.Close();
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}
Вначале после создания сокета связываем его с локальной точкой методом Bind:
listenSocket.Bind(ipPoint);
Сокет будет прослушивать подключения по 8005 порту на локальном адресе 127.0.0.1. То
есть клиент должен будет подключаться к локальному адресу и порту 8005.
Для обработки запроса сначала в цикле do..while получаем данные с помощью метода
Receive:
do
{
bytes = handler.Receive(data);
builder.Append(Encoding.Unicode.GetString(data, 0, bytes));
}
while (handler.Available > 0);
Метод Receive в качестве параметра принимает массив байтов, в который считываются
полученные данные, и возвращает количество полученных байтов.
Если отсутствуют данные, доступные для чтения, метод Receive блокирует вызывающий
поток до тех пор, пока не станут доступны данные, если не было установлено значение
тайм-аута путем использования объекта Socket.ReceiveTimeout. Если значение тайм-аута
было превышено, объект Receive выдаст исключение SocketException. Чтобы отследить
наличие данных в потоке, используется свойство Available.
Теперь добавим проект для клиента. Общая схема работы клиента на сокетах будет
немного отличаться:
namespace SocketTcpClient
{
class Program
{
// адрес и порт сервера, к которому будем подключаться
static int port = 8005; // порт сервера
static string address = "127.0.0.1"; // адрес сервера
static void Main(string[] args)
{
try
{
IPEndPoint ipPoint = new
IPEndPoint(IPAddress.Parse(address), port);
// получаем ответ
data = new byte[256]; // буфер для ответа
StringBuilder builder = new StringBuilder();
int bytes = 0; // количество полученных байт
do
{
bytes = socket.Receive(data, data.Length,
0);
builder.Append(Encoding.Unicode.GetString(data, 0, bytes));
}
while (socket.Available > 0);
Console.WriteLine("ответ сервера: " +
builder.ToString());
// закрываем сокет
socket.Shutdown(SocketShutdown.Both);
socket.Close();
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.Read();
}
}
}
Для клиента характерно все то же самое, только теперь после создания сокета вызывается
метод Connect(), в который передается адрес сервера:
Консоль сервера:
Вывод
Наиболее бурно развивающимся направлением в области информационных технологий в
последние годы стала разработка программного обеспечения на основе архитектуры
клиент-сервер, связанного с сетью Internet и системами Intranet, опирающегося на Web-
технологию и язык Java. Объектные, распределенные технологии консорциумов OMG и
ODMG интегрируются в общие тенденции, расширяя и обобщая их. Примечательно, что
все ведущие производители систем Internet/Intranet, включая Sun, IBM, Netscape,
Microsoft, встраивают в свои продукты поддержку КС совместимых протоколов.
Технология клиент-сервер развивается уже давно. За это время она прошела путь от
академических исследований до промышленных, стандартизованных решений,
позволяющих создавать по-настоящему большие, распределенные корпоративные
системы, способные эволюционировать экономически эффективным образом. Можно
предположить, что консолидация современных сетевых, реляционных и объектно-
ориентированных технологий позволит выйти на еще более высокий уровень интеграции
и качества информационных систем.