Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Задача 3. Задан двумерный массив A размера n×n



Задан двумерный массив A размера n×n. Требуется найти строку с максимальной суммой элементов и сообщить эту сумму.

Решение.

max:= 0

нцдля i от 1 до n

s:= 0

нцдля j от 1 до n

s:= s + A[i, j]

Кц

если s > max

то max:= s

Все

Кц

вывести max

Здесь важным является место, где необходимо присваивать начальное значение равное нулю переменной s. Поскольку эта переменная должна накапливать сумму элементов каждой отдельной строки, то обнулять ее требуется при переходе на каждую новую строку, т.е. между заголовками циклов. При обращении к двумерным массивам считается, что первый индекс задает номер строки, а второй – номер столбца.


ГЛАВА 11. ЛОКАЛЬНЫЕ И ГЛОБАЛЬНЫЕ СЕТИ

Интернет как инфраструктура объединил огромное число компьютеров и других устройств, расположенных по всему Земному шару, в единое целое. С его помощью люди могут общаться друг с другом, используя электронную почту, системы электронных досок объявлений и видеоконференции. Пользователи могут находить нужную информацию с помощью поисковых систем. Ученые получили возможность решать задачи, требующие огромных вычислительных ресурсов, объединив множество компьютеров энтузиастов в один гигантский суперкомпьютер с помощью grid-технологий. Важным направлением использования Интернет является электронная коммерция. По мере развития интернет-технологий возрастает число людей, занятых удаленной работой. Из этого далеко не полного перечня использования Интернета ясно, насколько важную роль он играет в современной жизни. Специалисты должны в достаточной мере владеть интернет-технологиями, в частности, веб-технологиями, включая создание веб-сайтов средствами HTML и CSS. Овладение этими технологиями помимо возможности размещения собственной информации в Интернете поможет на более высоком уровне использовать бесчисленные информационные ресурсы, расположенные во Всемирной паутине.

В этой главе рассматриваются следующие темы

1. Интернет и компьютерные сети как инфраструктура. Адресация в сети, стек протоколов TCP/IP.

2. Службы Интернета. Клиенты и сервера реализующие эти службы.

3. Служба веб. Язык разметки гипертекста. Основы создания веб сайтов.

Интернет и компьютерные сети

Интернет – всемирная система объединённых компьютерных сетей, построенная на использовании протокола IP и маршрутизации пакетов данных. Таким образом, по сути, Интернет – это сеть сетей, следовательно, изучение интернет-технологий естественно начать с рассмотрения основ компьютерных сетей.

Компьютерная сеть – это набор связанных между собой автономных компьютеров и/или компьютерного оборудования (провода, серверы, маршрутизаторы и другое оборудование).

Хотя в обиходе слово «Интернет» часто употребляют как синоним «Всемирной паутины» и доступной в ней информации (то есть службы веб и её ресурсов), специалист должен понимать принципиальную разницу. Интернет является инфраструктурой для служб Интернета, предоставляя последним средства передачи данных (например, провода и протоколы нижних уровней ответственных за надежную доставку данных). Следует сразу отметить, что веб не единственная служба Интернета; в Интернете существует достаточно большое количество сервисов, обеспечивающих работу со всем спектром ресурсов. Наиболее известными среди служб Интернета являются следующие.

1. World Wide Web (WWW, W3) или служба веб – гипертекстовая (гипермедиа) система, предназначенная для интеграции различных сетевых ресурсов в единое информационное пространство;

2. электронная почта (E-mail), обеспечивающая возможность обмена сообщениями одного человека с одним или несколькими абонентами;

3. телеконференции, или группы новостей (Usenet), обеспечивающие возможность коллективного обмена сообщениями;

4. сервис FTP – система файловых архивов, обеспечивающая хранение и пересылку файлов различных типов;

5. сервис Telnet, предназначенный для управления удаленными компьютерами в терминальном режиме;

6. сервис DNS, или система доменных имен, обеспечивающий возможность использования для адресации узлов сети мнемонических имен вместо числовых адресов;

7. сервис IRC, предназначенный для поддержки текстового общения в реальном времени (chat);

8. Потоковое мультимедиа.

Таким образом, специалист должен понимать, что Всемирная паутина (WWW – World Wide Web) – распределенная система на базе Интернета.

Распределенная система – это такая система, в которой наличие многочисленных автономных компьютеров незаметно для пользователя. С его точки зрения, это единая система. Например, Всемирную паутину можно рассматривать как один большой сайт. Это обычно достигается с помощью специального программного обеспечения, надстраиваемого над операционной системой и называемого связующим программным обеспечением.

Компьютерная сеть не представляется пользователю чем-то единым. Она представляет собой набор связанных между собой автономных компьютеров. Пользователь имеет дело с конкретными компьютерами, ее составляющими, и если они имеют различное аппаратное и программное обеспечение, это не останется для него незамеченным. Так, чтобы запустить программу на удаленной машине пользователю необходимо явно на ней зарегистрироваться и потом дать команду на запуск.

При построении распределенных систем особая роль отводится программному обеспечению. «На самом деле распределенная система является программной системой, построенной на базе сети. Эта программная система обеспечивает высокую степень связности и прозрачности элементов. Таким образом, различие между компьютерной сетью и распределенной системой заключается в программном обеспечении (особенно в операционной системе) а не в аппаратуре» [ Таненбаум Э. Компьютерные сети. СПб: Питер, 2003., С. 23].

Принципы построения сетевых протоколов

Так как сети представляют собой сложные системы, структуры большинства сетей организуются иерархически и имеют несколько уровней или слоев. Число уровней, их название, содержание и назначение может различаться в разных сетях, но целью каждого нижележащего уровня является предоставление неких сервисов (или служб) для вышестоящих уровней.

Уровень n одной машины поддерживает связь с уровнем n другой, используя некоторые правила общения. Набор таких правил называется протоколом. Набор уровней и протоколов называется архитектурой сети (не путать с топологией сети). В действительности данные не пересылаются с уровня n одной машины на уровень n другой, а вместо этого каждый уровень передает данные и управление нижележащему уровню посредством междууровневого интерфейса. Так происходит до тех пор, пока не будет достигнут самый нижний уровень, являющийся физическим уровнем, по которому непосредственно осуществляется связь. Таким образом, между соответствующими уровнями, за исключением физического уровня, осуществляется лишь виртуальное общение.

Служба – это набор операций (или примитивов), которые данный уровень предоставляет более высокому уровню. Служба определяет операции, которые может выполнять данный уровень, но не определяет, как они будут реализованы. Таким образом, служба описывает интерфейс между уровнями.

Протокол – это набор правил, определяющих формат и назначение кадров, пакетов или сообщений, которыми обмениваются одноранговые сущности в пределах одного уровня. Стеком протоколов называется список используемых системой протоколов по одному на уровень.

Введем понятие сетевой модели. Сетевая модель – теоретическое описание принципов работы набора сетевых протоколов, взаимодействующих друг с другом. Модель обычно делится на уровни, так, чтобы протоколы вышестоящего уровня использовали бы протоколы нижестоящего уровня (точнее, данные протокола вышестоящего уровня бы передавались с помощью нижележащих протоколов – этот процесс называют инкапсуляцией, процесс извлечения данных вышестоящего уровня из данных нижестоящего – деинкапсуляцией). Модели бывают как практические (использующиеся в сетях, иногда запутанные и/или не полные, но решающие поставленные задачи), так и теоретические (показывающие принципы реализации сетевых моделей, приносящие в жертву наглядности производительность). Наиболее известные сетевые модели:

1. Модель OSI, она же Модель ВОС, Взаимосвязь открытых систем. Эталонная модель – теоретическая модель, описанная в международных стандартах и ГОСТах.

2. Модель TCP/IP (Модель DOD) – практически использующаяся модель, принятая для работы в Интернете.

Модель OSI включает семь уровней.

Прикладной уровень (уровень приложений; англ. application layer) – верхний уровень модели, обеспечивающий взаимодействие пользовательских приложений с сетью. Позволяет приложениям использовать сетевые службы (например, удалённый доступ к файлам и базам данных, пересылка электронной почты), отвечает за передачу служебной информации, предоставляет приложениям информацию об ошибках, формирует запросы к уровню представления. Примерами протоколов прикладного уровня являются HTTP, POP3, FTP, TELNET.

Представительский уровень (уровень представления; англ. presentation layer) обеспечивает преобразование протоколов и кодирование/ декодирование данных. Запросы приложений, полученные с прикладного уровня, на уровне представления преобразуются в формат для передачи по сети, а полученные из сети данные преобразуются в формат приложений. На этом уровне может осуществляться сжатие/распаковка или кодирование/ декодирование данных, а также перенаправление запросов другому сетевому ресурсу, если они не могут быть обработаны локально.

Уровень представлений обычно представляет собой промежуточный протокол для преобразования информации из соседних уровней. Это позволяет осуществлять обмен между приложениями на разнородных компьютерных системах прозрачным для приложений образом. Уровень представлений обеспечивает форматирование и преобразование кода. Форматирование кода используется для того, чтобы гарантировать приложению поступление информации для обработки, которая имела бы для него смысл. При необходимости этот уровень может выполнять перевод из одного формата данных в другой.

Уровень представлений имеет дело не только с форматами и представлением данных, он также занимается структурами данных, которые используются программами. Таким образом, уровень 6 обеспечивает организацию данных при их пересылке.

Сеансовый уровень (англ. session layer) модели обеспечивает поддержание сеанса связи, позволяя приложениям взаимодействовать между собой длительное время. Уровень управляет созданием/завершением сеанса, обменом информацией, синхронизацией задач, определением права на передачу данных и поддержанием сеанса в периоды неактивности приложений. Примерами протоколов сеансового уровня являются PPTP (Point-to-Point Tunneling Protocol), L2TP (Layer 2 Tunneling Protocol), NetBIOS (Network Basic Input Output System).

Транспортный уровень (англ. transport layer) модели предназначен для обеспечения надёжной передачи данных от отправителя к получателю. При этом уровень надёжности может варьироваться в широких пределах. Существует множество классов протоколов транспортного уровня, начиная от протоколов, предоставляющих только основные транспортные функции (например, функции передачи данных без подтверждения приема), и заканчивая протоколами, которые гарантируют доставку в пункт назначения нескольких пакетов данных в надлежащей последовательности, мультиплексируют несколько потоков данных, обеспечивают механизм управления потоками данных и гарантируют достоверность принятых данных. Например, UDP ограничивается контролем целостности данных в рамках одной дейтаграммы, и не исключает возможности потери пакета целиком, или дублирования пакетов, нарушение порядка получения пакетов данных. Напротив, протокол TCP обеспечивает надёжную непрерывную передачу данных, исключающую потерю данных или нарушение порядка их поступления или дублирования, может перераспределять данные, разбивая большие порции данных на фрагменты и наоборот склеивая фрагменты в один пакет. Примерами протоколов транспортного уровня являются SPX (Sequenced Packet Exchange), SST (Structured Stream Transport), TCP (Transmission Control Protocol), UDP (User Datagram Protocol).

Сетевой уровень (англ. network layer) модели предназначен для определения пути передачи данных. Отвечает за трансляцию логических адресов и имён в физические, определение кратчайших маршрутов, коммутацию и маршрутизацию, отслеживание неполадок и заторов в сети. Протоколы сетевого уровня маршрутизируют данные от источника к получателю. На этом уровне работают маршрутизаторы.

Примерами протоколов сетевого уровня являются IP/IPv4/IPv6 (Internet Protocol), IPX (Internetwork Packet Exchange, протокол межсетевого обмена), IPsec (Internet Protocol Security), ICMP (Internet Control Message Protocol), RIP (Routing Information Protocol), OSPF (Open Shortest Path First), ARP (Address Resolution Protocol).

Канальный уровень (англ. data link layer) предназначен для обеспечения взаимодействия сетей на физическом уровне и контроля ошибок, которые могут возникнуть. Полученные с физического уровня данные он упаковывает в кадры, проверяет на целостность, если нужно, исправляет ошибки (формирует повторный запрос поврежденного кадра) и отправляет на сетевой уровень. Канальный уровень может взаимодействовать с одним или несколькими физическими уровнями, контролируя и управляя этим взаимодействием. Спецификация IEEE 802 (Ethernet) разделяет этот уровень на два подуровня: MAC (англ. media access control) регулирует доступ к разделяемой физической среде, LLC (англ. logical link control) обеспечивает обслуживание сетевого уровня.

На этом уровне работают коммутаторы, мосты и другие устройства. Говорят, что эти устройства используют адресацию второго уровня (по номеру уровня в модели OSI).

Примерами протоколов сетевого уровня являются Ethernet, Spanning tree protocol, Token ring

Физический уровень (англ. physical layer) – нижний уровень модели, предназначенный непосредственно для передачи потока данных. Осуществляет передачу электрических или оптических сигналов в кабель или в радиоэфир и, соответственно, их приём и преобразование в биты данных в соответствии с методами кодирования цифровых сигналов. Другими словами, осуществляет интерфейс между сетевым носителем и сетевым устройством. На этом уровне также работают концентраторы, повторители сигнала и медиаконвертеры.

Функции физического уровня реализуются на всех устройствах, подключенных к сети. Со стороны компьютера функции физического уровня выполняются сетевым адаптером или последовательным портом. К физическому уровню относятся физические, электрические и механические интерфейсы между двумя системами. Физический уровень определяет такие виды среды передачи данных как оптоволокно, витая пара, коаксиальный кабель, спутниковый канал передач данных и т. п. Примерами протоколов физического уровня являются: IEEE 802.15 (Bluetooth), DSL, ISDN, 802.11 Wi-Fi.

Основным стеком протоколов Интернет является стек TCP/IP, реализующий модель с коммутацией пакетов. Стек содержит четыре уровня: прикладной, транспортный, межсетевой и уровень доступа к среде.

Прикладной уровень содержит все протоколы высокого уровня, такие как TELNET, FTP, HTTP, SMTP, DNS.

Транспортный уровень обеспечивает связь одноранговых сущностей на приемных и передающих хостах. Здесь существуют два сквозных протокола: TCP (Transmission Control Protocol – протокол управления передачей) и UDP (User Data Protocol – пользовательский протокол данных).

TCP является надежным протоколом с установлением соединений и позволяет без ошибок доставлять байтовый поток с одной машины на другую. Он разбивает входной поток байтов на отдельные сообщения и передает их межсетевому уровню. В пункте назначения получающий TCP-процесс собирает из полученных сообщений выходной поток. Кроме того, в функцию TCP входит управление потоком, чтобы быстрый отправитель не завалил информацией медленного получателя.

UDP является ненадежным протоколом без установления соединения. Он широко используется в одновременных клиент-серверных запросах и в приложениях, в которых оперативность важнее точности, например при передаче речи и видео.

Интернет-уровень или межсетевой уровень (IP) является основой для всей архитектуры. Его задачей является обеспечение возможности каждому хосту посылать в любую сеть пакеты, которые будут независимо передвигаться к пункту назначения. Они могут прибывать не в том порядке, в котором были отправлены, поэтому если требуется соблюдение порядка следования пакетов, то этим занимаются более высокие уровни.

Уровень доступа к среде описывает среду передачи данных (будь то коаксиальный кабель, витая пара, оптическое волокно или радиоканал), физические характеристики такой среды и принцип передачи данных (разделение каналов, модуляцию, амплитуду сигналов, частоту сигналов, способ синхронизации передачи, время ожидания ответа и максимальное расстояние). Кроме того, уровень описывает, каким образом передаются пакеты данных через физический уровень, включая кодирование (то есть специальные последовательности бит, определяющих начало и конец пакета данных). Стандарт Ethernet, например, в полях заголовка пакета содержит указание того, какой машине или машинам в сети предназначен этот пакет.

Адресация в компьютерных сетях

Для передачи информации между компьютерами в сети необходимо однозначно их идентифицировать. Для этого применяют уникальные адреса. IP-адрес (от англ. Internet Protocol Address) – уникальный сетевой адрес узла в компьютерной сети, построенной на основе TCP/IP. В сети Интернет требуется глобальная уникальность адреса; в случае работы в локальной сети требуется уникальность адреса в пределах сети.

В современной сети Интернет используется IP четвёртой версии, также известный как IPv4. В протоколе IP этой версии каждому узлу сети ставится в соответствие IP-адрес длиной 4 октета (4 байта). При этом компьютеры в подсетях объединяются общими начальными битами адреса. Количество этих бит, общее для данной подсети, называется маской подсети (ранее использовалось деление пространства адресов по классам – A, B, C; класс сети определялся диапазоном значений старшего октета и определял число адресуемых узлов в данной сети, сейчас используется бесклассовая адресация).

В настоящее время вводится в эксплуатацию шестая версия протокола – IPv6, которая позволяет адресовать значительно большее количество узлов, чем IPv4. Эта версия отличается повышенной разрядностью адреса, встроенной возможностью шифрования и некоторыми другими особенностями. Переход с IPv4 на IPv6 связан с трудоёмкой работой операторов связи и производителей программного обеспечения и не может быть выполнен одномоментно.

Службы Интернета

Сервисы Интернет – сервисы, предоставляемые в сети Интернет пользователям, программам, системам. В сети Интернет сервисы предоставляют сетевые службы, то есть прикладные программы, которые обеспечивают связь прикладных процессов, расположенных в различных абонентских системах сети, в частности,
- взаимодействуют в сети с клиентами, серверами и данными;
- управляют процедурами распределенной обработки данных;

- информируют пользователей о происходящих в сети изменениях.

Для реализации служб Интернета широкое применение нашёл принцип доступа к ресурсам под названием «клиент-сервер». Архитектура клиент-сервер – архитектура распределенной вычислительной системы, в которой приложение делится на клиентский и серверный процессы. Клиент – это аппаратный или программный компонент вычислительной системы, посылающий запросы серверу. Сервер – это аппаратный или программный компонент вычислительной системы, выполняющий сервисные (обслуживающие) функции по запросу клиента, предоставляя ему доступ к определённым ресурсам или услугам.

Программа, являющаяся клиентом, взаимодействует с сервером, используя определённый протокол. Она может запрашивать с сервера какие-либо данные, манипулировать данными непосредственно на сервере, запускать на сервере новые процессы и т. п. Полученные от сервера данные клиентская программа может предоставлять пользователю или использовать как-либо иначе, в зависимости от назначения программы.

Для взаимодействия с клиентом (или клиентами, если поддерживается одновременная работа с несколькими клиентами) сервер выделяет необходимые ресурсы межпроцессного взаимодействия (разделяемая память, сокет, и т. п.) и ожидает запросы на открытие соединения (или, собственно, запросы на предоставляемый сервис). В зависимости от типа такого ресурса, сервер может обслуживать процессы в пределах одной компьютерной системы или процессы на других машинах через каналы передачи данных (например, COM-порт) или сетевые соединения.

У слова «сервер», также есть второе значение – компьютер (аппаратное обеспечение), на котором выполняется программа-сервер (при этом ясно, что без этой программы аппаратное обеспечение не может ничего предоставлять). Важно понимать что сервер, в том значении как его должно понимать в контексте «клиент-сервер» всегда является программой (или программным модулем), выполняющейся на каком-то аппаратном обеспечении. Теоретически, на одной единице аппаратного обеспечения, может одновременно выполняться произвольное количество серверов (за исключением серверов конфликтующих между собой по ресурсам или их количеству), они будут делить между собой аппаратные ресурсы.

Программа-клиент и программа-сервер могут работать как на одном и том же компьютере, так и на разных. Во втором случае для обмена информацией между ними используется сетевое соединение.

Отметим, что понятия «клиент» и «сервер» описывают распределение ролей при выполнении конкретной задачи, а не вычислительные мощности. На одном и том же компьютере могут одновременно работать программы, выполняющие как клиентские, так и серверные функции. Например, веб-сервер может выступать в роли клиента, получая данные для формирования веб-страниц от SQL-сервера. И в то же время веб-сервер выступает в роли настоящего "сервера" для веб-браузера.

Облачные вычисления.

Начиная с 2008 года, внимание специалистов привлекает технология, называемая облачными вычислениями. Облачные вычисления (англ. cloud computing) – это модель обеспечения повсеместного и удобного сетевого доступа по требованию к общему пулу конфигурируемых вычислительных ресурсов (например сетям передачи данных, серверам, устройствам хранения данных, приложениям и сервисам), которые могут быть оперативно предоставлены и освобождены с минимальными эксплуатационными затратами и/или обращениями к провайдеру.

С точки зрения бизнеса, облачные вычисления могут принести следующие выгоды: значительное уменьшение расходов на ИТ инфраструктуру (в краткосрочном и среднесрочном планах) и возможность компании гибко реагировать на изменения рыночных спроса и предложения.

Американским институтом по стандартам (NIST) были разработаны следующие обязательные характеристики облачных вычислений:

1. Самообслуживание по требованию (англ. self service on demand), потребитель самостоятельно определяет и изменяет вычислительные потребности, такие как серверное время, скорости доступа и обработки данных, объём хранимых данных без взаимодействия с представителем поставщика услуг;

2. Универсальный доступ по сети, услуги доступны потребителям по сети передачи данных вне зависимости от используемого терминального устройства

3. Объединение ресурсов (англ. resource pooling), поставщик услуг объединяет ресурсы для обслуживания большого числа потребителей в единый пул для динамического перераспределения мощностей между потребителями в условиях постоянного изменения спроса на мощности; при этом потребители контролируют только основные параметры услуги (например, объём данных, скорость доступа), но фактическое распределение ресурсов, предоставляемых потребителю, осуществляет поставщик (в некоторых случаях потребители всё-таки могут управлять некоторыми физическими параметрами перераспределения, например, указывать желаемый центр обработки данных из соображений географической близости);

4. Эластичность, услуги могут быть предоставлены, расширены, сужены в любой момент времени, без дополнительных издержек на взаимодействие с поставщиком, как правило, в автоматическом режиме;

5. Учёт потребления, поставщик услуг автоматически исчисляет потреблённые ресурсы на определённом уровне абстракции (например, объём хранимых данных, пропускная способность, количество пользователей, количество транзакций), и на основе этих данных оценивает объём предоставленных потребителям услуг.

С точки зрения поставщика, благодаря объединению ресурсов и непостоянному характеру потребления со стороны потребителей, облачные вычисления позволяют экономить на масштабах, используя меньшие аппаратные ресурсы, чем требовались бы при выделенных аппаратных мощностях для каждого потребителя, а за счёт автоматизации процедур модификации выделения ресурсов существенно снижаются затраты на абонентское обслуживание.

С точки зрения потребителя, эти характеристики позволяют получить услуги с высоким уровнем доступности и низкими рисками неработоспособности, обеспечить быстрое масштабирование вычислительной системы благодаря эластичности без необходимости создания, обслуживания и модернизации собственной аппаратной инфраструктуры.

Язык разметки гипертекста. Основы создания сайтов.

HTML (от англ. HyperText Markup Language – «язык разметки гипертекста») – стандартный язык разметки документов во Всемирной паутине. Большинство веб-страниц создаются при помощи языка HTML (или XHTML). Язык HTML интерпретируется браузерами и отображается в виде документа, в удобной для человека форме.

HTML – теговый язык разметки документов. Любой документ на языке HTML представляет собой набор элементов, причём начало и конец каждого элемента обозначается специальными пометками – тегами. Элементы могут быть пустыми, то есть не содержащими никакого текста и других данных (например, тег перевода строки <br>). В этом случае обычно не указывается закрывающий тег. Кроме того, элементы могут иметь атрибуты, определяющие какие-либо их свойства (например, размер шрифта для элемента font). Атрибуты указываются в открывающем теге. Вот примеры фрагментов HTML-документа:

<strong>Текст между двумя тегами.</strong>

<a href="http://www.example.com">Здесь элемент содержит атрибут href.</a>

Пример пустого элемента: <br />

Регистр, в котором набрано имя элемента и имена атрибутов, в HTML значения не имеет (в отличие от XHTML). Элементы могут быть вложенными. Например, следующий код:

<b>
Этот текст будет полужирным,
<i>а этот - ещё и курсивным</i>
</b>

даст такой результат:





Дата публикования: 2014-11-03; Прочитано: 720 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.014 с)...