81081

Сетевое приложение разграничения медиафайлов аудиобиблиотеки

Дипломная

Архивоведение и делопроизводство

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

Русский

2015-02-19

2.92 MB

1 чел.

PAGE  15

Донецький національний університет

Фізико-технічний факультет

Кафедра комп‘ютерних технологій

Пояснювальна записка

до дипломної роботи

магістра

на тему «Мережевий додаток розмежування медіафайлів аудіобібліотеки»

Виконав:

студент 5 курсу

напряму підготовки    8. 050101 

спеціальності
«Системи штучного інтелекту»

  Туховський Павло Валерійович

Керівник:
к.т.н., ст. викладач Єпік М.О.

Рецензент:

 д.т.н., професор Каргін А.О.

м. Донецьк – 2013 рік



РЕФЕРАТ

Звіт про магістерську роботу: 57 с., 34 мал., 2 додатка, 12 джерел.

Об‘єкт дослідження – аудіофайли користувачів, передача информації та багатопоточне програвання файлів у мережі.

Мета дослідження - службова інформація, що міститься в тегах MP3 та алгоритм їх передавання у мережі з подальшим записом у файл.

Мета магістерської роботи – створення та адміністрування кліент-серверного додатка зі зручним інтерфейсом, який дозволяє зберігати та редагувати у базі даних информацію про профілі користувачів,  іх плейлисти та MP3-файли, що містяться у них, будувати графік, що забезпечує кількісну оцінку наявності пісень різноманітних жанрів, їх ознайомлювальне програвання, а також надання користувачу можливості ознайомитися з треками, які можуть йому сподобатись.

Методи дослідженняаналіз структури формату метаданих ID3V1 MP3, їх передачі через сокети TCP IP.

При розробці програмного продукту були використані: мова програмування Visual Basic.NET, середа програмування Microsoft Visual Studio 2008, СУБД Microsoft Access 2003.

Результатом магістерської роботи є клієнт-серверна програма, що працює в режимі діалогу з користувачем. Інтерфейс даної програми відображає набір меню, які дозволяють виконати різні дії. У меню «Користувач» можна зареєструвати нового користувача, або увійти в систему під наявним акаунтом. При необхідності можна додати в поточний список нові MP3-файли, наявні на сервері музики, або вибрати вже створені користувачем плейлисти і працювати з їх вмістом, маючи в подальшому можливість редагування тегів і збереження змін у базу даних і в сам MP3-файл, розташовані на сервері. Користувач має можливість візуально спостерігати зміну статистики про наявність пісень певних жанрів, так само прослуховувати вибраний файл. У програмі також реалізована система надавання користувачу можливості ознайомитися з піснями, які можуть йому сподобатись, на основі аналізу треків його плейлистів. Адміністрування інформаційної бази дає змогу просмотру та редагування даних усіх користувачів. Програма працює з форматом музичних файлів - MP3, який є досить складним за своєю внутрішньою структурою зберігання інформації. У даний момент передбачається використання програми у разі необхідності редагування тегів і прослуховування музики. Надалі програму можна модифікувати, розширивши функції читання і запису не тільки формату MP3 ID3V1, але і ID3V2.

MP3, ID3V1, ТЕГИ, СОКЕТ, СЕРВЕР, КЛІЕНТ, БАЗА ДАНИХ.


ABSTRACT

Report on the research paper: 57., 34 fig., 2 annexes, 12 sources.

The object of study – user’s audio, communication and multi-stream playback files on the network.

The purpose of the study - the service information contained in the tags and MP3 algorithm for transmission over the network and then writing to a file.

The aim of the thesis - the creation and administration of client-server application with a friendly interface that allows you to store and edit information in the database about user profiles, their playlists and MP3-files contained in them, to build a schedule that provides a quantitative assessment of the availability of songs of different genres, their intro play, as well as enabling the user to get acquainted with tracks that can please him.

Methods of research - analysis of the structure of the metadata format ID3V1 MP3, their transfer via sockets TCP IP.

In the development of the software have been used: the language of Visual Basic.NET, programming environment Microsoft Visual Studio 2008, Microsoft Access 2003 database.

The result of the thesis is a client-server program that runs in a dialogue with the user. The interface of this program reflects a set of menus that allow you to perform various actions. In the "User", you can register a new account, or log on to the existing account. If necessary, add to the current list of new MP3-music files on the server, or choose an existing user-created playlists and work with their contents, with a further opportunity to tag editing and saving changes to the database itself and MP3-file on the server. The user can visually observe a change in the availability of statistics on the songs of different genres, just listen to the selected file. The program also implemented a system allowing a user to see the songs that can please him, based on his analysis of the tracks playlists. Administration data base allows viewing and editing of all users. The program works with the format of music files - MP3, which is hard enough on its internal structure of information storage. At the moment, intend to use the program if necessary tag editing and listening to music. In the future, the program may be modified by extending the read and write functions, not only the format MP3 ID3V1, but ID3V2.

MP3, ID3V1, TAGS, SOCKET, SERVER, CLIENT, DATABASE.


РЕФЕРАТ

Отчет о магистерской работе: 57 с., 34 рис., 2 приложения, 12 источников.

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

Цель исследования - служебная информация, содержащаяся в тэгах MP3 и алгоритм их передачи по сети с последующей записью в файл.

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

Методы исследования - анализ структуры формата метаданных ID3V1 MP3, их передачи через сокеты TCP IP.

При разработке программного продукта были использованы: язык Visual Basic.NET, среда программирования Microsoft Visual Studio 2008, СУБД Microsoft Access 2003.

Результатом магистерской работы является клиент-серверная программа, работающая в режиме диалога с пользователем. Интерфейс данной программы отражает набор меню, позволяющие выполнить различные действия. В меню «Пользователь» можно зарегистрировать нового пользователя, или войти в систему под имеющимся аккаунтом. При необходимости можно добавить в текущий список новые MP3-файлы на сервере музыки, или выбрать уже созданные пользователем плейлисты и работать с их содержимым, имея в дальнейшем возможность редактирования тегов и сохранения изменений в базу данных и в сам MP3-файл, расположенные на сервере. Пользователь имеет возможность визуально наблюдать изменение статистики о наличии песен разных жанров, так же прослушивать выбранный файл. В программе также реализована система предоставления пользователю возможности ознакомиться с песнями, которые могут ему понравиться, на основе анализа треков его плейлистов. Администрирование информационной базы позволяет просмотра и редактирования данных всех пользователей. Программа работает с форматом музыкальных файлов - MP3, который является достаточно сложным по своей внутренней структуре хранения информации. В данный момент предполагается использование программы в случае необходимости редактирования тегов и прослушивания музыки. В дальнейшем программу можно модифицировать, расширив функции чтения и записи не только формата MP3 ID3V1, но и ID3V2.

MP3, ID3V1, ТЕГИ, СОКЕТ, СЕРВЕР, КЛИЕНТ, БАЗА ДАННЫХ.


Донецький національний університет

Інститут, факультет, відділення   фізико-технічний факультет 

Кафедра, циклова комісія кафедра «Комп’ютерні технології» 

Освітньо-кваліфікаційний рівень  магістр 

Напрям підготовки 8.050101 комп’ютерні науки

Спеціальність системи штучного інтелекту 

                            

                                                                                                 ЗАТВЕРДЖУЮ

                                                                              Завідувач кафедри комп‘ютерних технологій

                                                                                     _______________________________

                                                                                                    “____” _________________20___ року

З  А  В  Д  А  Н  Н  Я

НА ДИПЛОМНУ РОБОТУ СТУДЕНТУ

ТУХОВСЬКОМУ ПАВЛУ ВАЛЕРІЙОВИЧУ

1. Тема роботи Мережевий додаток розмежування медіафайлів аудіобібліотеки.

__________________________________________________________________________       

__________________________________________________________________________

керівник роботи старший викладач, кандидат технічних наук Єпік М.О.,

затверджені наказом вищого навчального закладу від “___”__________20__року №___

2. Строк подання студентом роботи ________________________________________

3. Вихідні дані до роботи Додаток, який реєструю користувачів, їх плейлисти та редагує інформацію у MP3-тегах._____________________________________________

______________________________________________________________________________________________________________________________________________________________________________________________________________________________4. Зміст розрахунково-пояснювальної записки (перелік питань, які потрібно розробити)  Зберігання та редагування в базі даних інформації про MP3 файли, плейлистів індивідуально для кожного зареєстрованого користувача, забезпечення адміністрування інформаційної бази, передання даних клієнтській программі через мережу, забезпечення ознайомлювального програвання музичних файлів та побудова графіку за наявністю жанрів.          

__________________________________________________________________________

5. Перелік графічного матеріалу

________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________


6. Консультанти розділів роботи

Розділ

Прізвище, ініціали та посада

консультанта

Підпис, дата

завдання видав

завдання

прийняв

7. Дата видачі завдання___________________________________________________

КАЛЕНДАРНИЙ ПЛАН

з/п

Назва етапів дипломної

роботи

Строк  виконання етапів  роботи

Примітка

1

Визначення алгоритму та етапів розробки проекту

10.02.2013

виконано

2

Створення модуля для роботи з MP3-тегами

28.02.2013

виконано

3

Розробка серверних функцій обробки MP3

20.03.2013

виконано

4

Створення кліентного інтерфейса програми

16.04.2013

виконано

5

Тестування програми у роботі з різними MP3 файлами

30.04.2013

виконано

6

Написання пояснювальної записки з виконаної роботи

15.05.2013

виконано

                                                                                     Студент          _____________  ______________________

                                                                                                      ( підпис )                               (прізвище та ініціали)

Керівник роботи   _____________  ______________________

                                                                                                      ( підпис )                             (прізвище та ініціали)



СОДЕРЖАНИЕ

[1] РЕФЕРАТ

[2] ABSTRACT

[3] РЕФЕРАТ

[4] СОДЕРЖАНИЕ

[5] 1 Постановка задачи

[5.1] 1.1 Актуальность нововведения системы «Smart Library»

[5.2] 1.2 Обоснование выбранной модели

[5.3] 1.3 Анализ решения поставленной задачи

[6] 2 Описание предметной области

[6.1] 2.1 Обзор существующего программного обеспечения

[6.2] 2.2 Структура формата MP3

[6.3] 2.3 Ethernet

[6.4] 2.4 Сокеты TCP/IP, клиент-сервер

[6.5] 2.5 Краткий вывод

[7] 3 Описание и обоснование выбора программных средств для реализации поставленной задачи

[7.1] 3.1 Язык программирования Visual Basic.NET в среде разработки Visual Studio 2008

[7.2] 3.2 СУБД Microsoft Access

[8] 4 Разработка сетевого приложения «MP3_Catalogizator»

[8.1] 4.1 Описание данных (входные, промежуточные, выходные)

[8.2] 4.2 Топология сети

[8.3] 4.3 Функционал серверного приложения

[8.4] 4.4 Функционал клиентского приложения

[8.5] 4.5 Администрирование приложения

[8.6] 4.6 Схема взаимодействия приложений

[8.7] 4.7 Обмен данными

[8.8] 4.8 База данных

[8.9] 4.9 Сетевые компоненты

[8.10] 4.10 Системные требования

[8.11] 4.11 Программирование сервера

[8.12] 4.12 Программирование интерфейса клиента

[8.13] 4.13 Устранение возможных ошибок программы

[8.14] 4.14 Контрольный пример

[9] Руководство пользователя

[10] Выводы

[11] Список ссылок

[12] Приложение А Модуль “MP3_Tags.vb”

[13] Приложение Б Интерфейс программы

Введение

На сегодняшний день проблема засорённости компьютеров аудиофайлами полностью исчерпана, благодаря наличию виртуальных фонотек. Они позволяют удобно и быстро, индивидуально для каждого пользователя, упорядочить и хранить музыкальные файлы у себя на компьютере, не тратя время на ручную сортировку по каталогам. Одними из самых распространённых программ данного типа являются MediaMonkey, WINAMP, FOOBAR и др. Эти приложения позволяют пользователю редактировать информационные данные своих песен, сортировать их по определённым тегам, присваивать рейтинг, вести статистику по прослушиванию того или иного трека, а также множество других функций.

Заданием на магистерскую работу является разработка клиент-серверного приложения разграничения медиафайлов для хранения и редактирования файлов аудиоформата MP3.

MP3 (более точно, англ. MPEG-1/2/2.5 Layer 3; но не MPEG-3 [12]) — третий слой формата кодирования звуковой дорожки MPEG, лицензируемый формат файла для хранения аудиоинформации. MP3 является одним из самых распространённых и популярных форматов цифрового кодирования звуковой информации с потерями. Он широко используется в файлообменных сетях для оценочной передачи музыкальных произведений. Формат может проигрываться практически во всех популярных операционных системах, на большинстве портативных аудиоплееров, а также поддерживается всеми современными моделями музыкальных центров и DVD-плееров.

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


1 Постановка задачи

Заданием данной магистерской работы является разработка проекта «Cетевое приложение разграничения медиафайлов аудиобиблиотеки», который должен максимально отвечать требованиям современного пользователя, предоставляя удобный интерфейс и параллельно с ним многофункциональность.

Для написания программы процесс разработки был разделён на следующие этапы:

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

2. Разработка серверной части, которая будет принимать запросы от клиента, оперировать напрямую с базой данных и MP3-файлами и отсылать соответствующие ответы пользователю.

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

4. Получение информации из файла MP3 будет основываться на считывании сервером тегов метаданных ID3V1, которые в дальнейшем будут предоставлены клиенту для дальнейшего просмотра, редактирования и сохранения в базу сервера.

5. Введение показателя рейтинга по трекам, и хранение на сервере числа прослушиваний песен для каждого пользователя в отдельности.

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

7. Ведение текстового лога, содержащего историю работы клиент-серверного приложения.

8. Внедрение в работу программы интеллектуальной системы «Smart Library», позволяющей предоставить пользователю треки, которые могут его заинтересовать на основе анализа имеющихся песен в его плейлистах.

Проанализировав приведённые этапы проектирования, программу можно представить в виде схемы (см. рис. 1.1).

Рисунок 1.1 Общая схема проекта

1.1 Актуальность нововведения системы «Smart Library»

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

Одним из ярких примеров такой системы является известный большинству онлайн-сервис видео «Youtube». На основе просматриваемого пользователем контента, эта система предоставляет ему дополнительный список роликов, формируемый согласно предпочтениям клиента по определённым тегам, включая область, жанр, название, ключевые слова, дату, тематику и т.д. В результате это облегчает поиск необходимой информации, а также делает сам сервис более гибким и интеллектуальным.

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

1.2 Обоснование выбранной модели

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

Для реализации системы «Smart Library» в дипломном проекте был выбран следующий подход. При авторизации пользователя система автоматически определяет жанр тех песен, которые доминируют в плейлистах клиента. После этого она предоставляет к его ознакомлению песни с сервера, относящиеся к тому же жанру. В результате пользователь имеет возможность добавить новые песни в свой плейлист для дальнейшего прослушивания и редактирования. Основной целью данной системы является уменьшение времени, затраченного на  поиск треков, актуальных для текущего пользователя.

1.3 Анализ решения поставленной задачи

Реализация механизма «Smart Library» делится на следующие этапы:

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

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


2 Описание предметной области

2.1 Обзор существующего программного обеспечения

На сегодняшний день существует множество программных приложений, позволяющих работать с мультимедийными файлами. К самым распространённым относятся следующие:

MediaMonkey — цифровой мультимедийный медиапроигрыватель, органайзер библиотеки музыки, разработанный Ventis Media Inc [12] для организации и воспроизведения звука в Microsoft Windows. С помощью плагинов он может использоваться для обработки видео.

Winamp — универсальный проигрыватель от компании Nullsoft [12] (ныне подразделение компании AOL) для воспроизведения файлов мультимедиа и потоковой передачи в среде Microsoft Windows. Имеет развитую библиотеку мультимедиа и зрительные образы. Также Winamp поддерживает внедрение подключаемых модулей, обложек и работу со списками воспроизведения.

Foobar2000 — аудиоплеер, разработанный Питером Павловски, бывшим свободным разработчиком компании Nullsoft. Обладает минималистичным интерфейсом с возможностью расширения и включает в себя множество функций для поддержки метаданных и высококачественного воспроизведения аудио. Теоретический максимум частоты семплирования и битовой ширины аудиовыхода превосходят возможности профессионального аудиооборудования. Для качественного воспроизведения аудио он производит формовку шума и дизеринг. Существуют как официальные компоненты, так и компоненты сторонних разработчиков с большим ассортиментом дополнительных функций.

Также можно выделить мировых серверных мультимедиа-гигантов, таких как:

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

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

На основе анализа статистики прослушиваний пользователям сайта индивидуально каждому подбираются и демонстрируются:

  •  рекомендуемые сайтом к прослушиванию музыкальные треки, популярные у схожих по вкусам слушателей (степень «похожести» при подборе можно регулировать);
  •  персональные страницы участников с похожими вкусами (подобные пользователи считаются «соседями» друг для друга);
  •  записи о часто прослушиваемой пользователем музыке в форуме или персональных блогах, ведущихся непосредственно на сайте Last.fm;
  •  анонсы ближайших концертов; при подборе учитываются как музыкальные пристрастия, так и географическое положение слушателя.

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

2.2 Структура формата MP3

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

Рисунок 2.1 Структура формата MP3

Блок данных MP3-файла содержит сжатую аудио информацию в виде частот и амплитуд. Заголовок MP3 состоит из маркера, который служит для нахождения верного MP3-фрагмента. За ним следует бит, показывающий, что используется стандарт MPEG и два бита, показывающие использование layer 3; другими словами, это определяет MPEG-1 Audio Layer 3 или MP3 (см. рис. 2.1). Последующие значения могут варьироваться в зависимости от типа MP3-файла. Стандарт ISO/IEC 11172-3 [12] определяет диапазон значений для каждой секции заголовка, вместе с общей его спецификацией. Большинство MP3 файлов в настоящий момент содержат ID3-метаданные, которые предшествуют или следуют за MP3-фрагментом.

Теги [12] (от англ. tag — ярлык, метка, бирка) — метки в границах MP3-файла (в начале и/или в конце). В них может быть записана информация об авторстве, альбоме, годе выпуска и прочая информация о треке. В более поздних версиях тегов возможно хранение обложек альбомов и тексты песни. Существуют различные версии тегов. Тот, который используется при написании программы, представлен следующим пунктом.

ID3 [12] (от англ. Identify an MP3) — формат метаданных, наиболее часто используемый в звуковых файлах в формате MP3. ID3 подпись содержит данные о названии трека, альбома, имени исполнителя и т. д., которые используются мультимедиапроигрывателями и другими программами, а также аппаратными проигрывателями, для отображения информации о файле и автоматического упорядочивания аудиоколлекции.

После создания MP3 формата появилась проблема с хранением данных о музыкальном файле. В MP3 это никак не предусматривалось. В 1996 Эрику Кэмпу [12] пришла идея добавить участок памяти в файл, чтобы решить эту проблему.

Первая версия ID3-тегов занимала всего 128 байтов, начинающихся со строки TAG (см. рис. 2.2). Тег помещался в конец файла для поддержания совместимости с ранними проигрывателями. Некоторые из них издавали небольшой шум, когда пытались прочесть тег, но большинство игнорировали его. Современные проигрыватели корректно воспринимают эту информацию.

Рисунок 2.2 Структура формата ID3V1

Поскольку для данных отводилось немного места, в таких тегах можно было хранить только базовые сведения о песне: название, альбом, исполнитель, комментарий, по 30 байт на каждое поле, 4 байта для хранения года и одного байта под жанр, который можно было выбрать из заранее определённого списка из 80 значений (позднее Winamp расширил список своими 68 значениями). Если названия песен или альбомов содержали более тридцати символов, они обрезались. Конечно, из-за ограничений по размеру ни о каких расширенных возможностях хранения метаданных не могло быть и речи.

Единственное усовершенствование, которое было представлено в версии 1.1, было предложено Майклом Мутшлером (Michael Mutschler) в 1997: так как поле под комментарий всё равно слишком мало для хранения чего-либо полезного, было решено сократить его на два байта, чтобы использовать их для хранения номера трека.

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

ID3v1 также не хватало интернационализации. Он утверждал, что все строки должны храниться в ISO 8859-1 [12], но на практике пользователи часто используют национальную кодировку, поэтому нередко им приходилось видеть непонятные символы.

2.3 Ethernet

Ethernet - пакетная технология передачи данных преимущественно локальных компьютерных сетей.

Стандарты Ethernet определяют проводные соединения и электрические сигналы на физическом уровне, формат кадров и протоколы управления доступом к среде — на канальном уровне модели OSI. Ethernet в основном описывается стандартами IEEE группы 802.3. Ethernet стал самой распространённой технологией ЛВС в середине 90-х годов прошлого века, вытеснив такие устаревшие технологии, как Arcnet, FDDI и Token ring.

В стандарте первых версий (Ethernet v1.0 и Ethernet v2.0) указано, что в качестве передающей среды используется коаксиальный кабель, в дальнейшем появилась возможность использовать витую пару и оптический кабель.

Преимущества использования витой пары по сравнению с коаксиальным кабелем:

  •  возможность работы в дуплексном режиме;
  •  низкая стоимость кабеля «витой пары»;
  •  более высокая надёжность сетей при неисправности в кабеле (соединение точка-точка: обрыв кабеля лишает связи два узла. В коаксиале используется топология "шина", обрыв кабеля лишает связи весь сегмент);
  •  минимально допустимый радиус изгиба меньше;
  •  большая помехозащищенность из-за использования дифференциального сигнала;
  •  возможность питания по кабелю маломощных узлов, например IP-телефонов (стандарт Power over Ethernet, POE);
  •  гальваническая развязка трансформаторного типа. При использовании коаксиального кабеля в российских условиях, где, как правило, отсутствует заземление компьютеров, применение коаксиального кабеля часто сопровождалось пробоем сетевых карт и иногда даже полным «выгоранием» системного блока.

Причиной перехода на оптический кабель была необходимость увеличить длину сегмента без повторителей.

Метод управления доступом (для сети на коаксиальном кабеле) — множественный доступ с контролем несущей и обнаружением коллизий (CSMA/CD, Carrier Sense Multiple Access with Collision Detection), скорость передачи данных 10 Мбит/с, размер пакета от 72 до 1526 байт, описаны методы кодирования данных. Режим работы полудуплексный, то есть узел не может одновременно передавать и принимать информацию. Количество узлов в одном разделяемом сегменте сети ограничено предельным значением в 1024 рабочих станции (спецификации физического уровня могут устанавливать более жёсткие ограничения, например, к сегменту тонкого коаксиала может подключаться не более 30 рабочих станций, а к сегменту толстого коаксиала — не более 100). Однако сеть, построенная на одном разделяемом сегменте, становится неэффективной задолго до достижения предельного значения количества узлов, в основном по причине полудуплексного режима работы.

В 1995 году принят стандарт IEEE 802.3u Fast Ethernet со скоростью 100 Мбит/с и появилась возможность работы в режиме полный дуплекс. В 1997 году был принят стандарт IEEE 802.3z Gigabit Ethernet со скоростью 1000 Мбит/с для передачи по оптическому волокну и ещё через два года для передачи по витой паре.

2.4 Сокеты TCP/IP, клиент-сервер

Стеком протоколов TCP/IP называют набор сетевых протоколов, используемых в интернет. В этом стеке различают несколько уровней, и протоколы высокого уровня всегда базируются на протоколах более низких уровней.

В самом низу находятся физический уровень и канальный уровень. Пример протокола — Ethernet, описывающий передачу данных по коаксиальному кабелю или витой паре. Протоколы этих уровней обычно реализуются на уровне железа, например в сетевой карте компьютера. Выше идёт сетевой уровень, где находится протокол IP, описывающий структуру сети и доставку пакетов. Ещё выше — транспортный уровень, где находится протокол TCP, использующийся для передачи данных. Эти протоколы обычно реализуются на уровне операционной системы. На самом верху находится множество протоколов прикладного уровня, выполняющих конкретные прикладные задачи. Обычно они программируются в отдельных приложениях.

Сетевой порт — условное число от 1 до 65535, указывающее, какому приложению предназначается пакет. Согласно IP, в каждом пакете присутствуют IP адрес узла-источника и IP адрес узла-назначения. В TCP пакетах дополнительно указываются порт источника и порт назначения.

Узел назначения, получив пакет, смотрит на порт назначения и передает пакет соответствующему у себя приложению.

Использование портов позволяет независимо использовать TCP протокол сразу многим приложениям на одном и том же компьютере.

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

Сервер при запуске сообщает операционной системе, что хотел бы «занять» определенный порт (или несколько портов). После этого все пакеты, приходящие на компьютер к этому порту, ОС будет передавать этому серверу. Говорят, что сервер «слушает» этот порт.

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

Таким образом, сервер:

  •  слушает на определённом порту, заранее известном клиенту;
  •  занимает этот порт всё время, пока не завершит работу;
  •  об IP адресе и номере порта клиента узнаёт из приглашения, посланного клиентом.

Клиент:

  •  заранее знает IP адрес и порт сервера;
  •  выбирает у себя произвольный порт, который освобождает после окончания соединения;
  •  посылает приглашение к соединению.

2.5 Краткий вывод

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


3 Описание и обоснование выбора программных средств для реализации поставленной задачи

Для реализации поставленной задачи были такие средства разработки как Microsoft Visual Studio 2008, язык программирования Visual Basic.NET, СУБД Access.

Microsoft Visual Studio — линейка продуктов компании Майкрософт, включающих интегрированную среду разработки программного обеспечения и ряд других инструментальных средств. Данные продукты позволяют разрабатывать как консольные приложения, так и приложения с графическим интерфейсом, в том числе с поддержкой технологии Windows Forms, а также веб-сайты, веб-приложения, веб-службы как в родном, так и в управляемом кодах для всех платформ, поддерживаемых Microsoft Windows, Windows Mobile, Windows CE, .NET Framework, .NET Compact Framework и Microsoft Silverlight.

Visual Basic.NET (VB.NET) - это объектно-ориентированный язык программирования, который можно рассматривать как очередной виток эволюции Visual Basic (VB), реализованный на платформе Microsoft.NET. VB.NET не имеет обратной совместимости с более ранней версией (Visual Basic 6.0). Развитие проектов старых версий (*.vbp) возможно только после предварительной конвертации их в формат VB.NET специальным мастером (Migration Wizard); однако, как правило, после конвертации требуется существенная ручная доработка текстов.

Microsoft Office Access или просто Microsoft Access - реляционная СУБД корпорации Microsoft. Имеет широкий спектр функций, включая связанные запросы, связь с внешними таблицами и базами данных. Благодаря встроенному языку VBA, в самом Access можно писать приложения, работающие с базами данных.

3.1 Язык программирования Visual Basic.NET в среде разработки Visual Studio 2008

Для реализации поставленного задания была установлена среда разработки программного обеспечения Microsoft Visual Studio 2008. Для установки необходимо:

  •  запустить установщик дистрибутива Visual Studio 2008 Russian;
  •  выбрать необходимый набор инструментов среды, для выполнения магистерской работы был выбран пакет по-умолчанию;
  •  выбрать директорию для установки;
  •  проверить наличие установленной на компьютере программной платформы NET Framework версии 3.5;
  •  по окончанию установки программной среды выбрать предпочитаемый режим разработки для языка программирования Visual Basic.NET.

3.2 СУБД Microsoft Access

Среда разработки Microsoft Visual Studio 2008, включающая в себя Visual Basic.NET, уже установлена и готова к использованию. Следующим шагом является установка СУБД Microsoft Access.

Microsoft Access входит в пакет программного обеспечения Microsoft Office. Для его установки выполняются следующие действия:

  •  запустить инсталлятор программного обеспечения Microsoft Office 2003;
  •  среди компонентов для установки выбрать СУБД Microsoft Access;
  •  выбрать директорию для установки;
  •  по окончанию установки пакет Access будет доступен для работы среди других компонентов офиса.

Таким образом, всё необходимое программное обеспечение установлено и готово к использованию для выполнения дипломного проекта.


4 Разработка сетевого приложения «MP3_Catalogizator»

4.1 Описание данных (входные, промежуточные, выходные)

Входными данными проекта «Сетевое приложение разграничения медиафайлов аудиобиблиотеки» являются МP3-файл и его теги, к которым пользователь имеет доступ для чтения, воспроизведения, редактирования и удаления из личного профиля. В ходе выполнения вышеуказанных операций промежуточными данными является  информация об учётных записях, плейлистах и треках, передаваемая через сокеты TCP/IP между клиентом и сервером. Все файлы физически хранятся на сервере, доступ к которому пользователи получают через программу-клиент. На выходе приложение имеет созданные профили клиентов,  списки воспроизведения, а также отредактированную информацию MP3-тегов.

4.2 Топология сети

Самая распространенная на сегодняшний день топология это звезда. Звезда — базовая топология компьютерной сети, в которой все компьютеры сети присоединены к центральному узлу, образуя физический сегмент сети. Подобный сегмент сети может функционировать как отдельно, так и в составе сложной сетевой топологии такой как «дерево». Весь обмен информацией идет исключительно через центральный компьютер, на который таким способом возлагается очень большая нагрузка, поэтому ничем другим, кроме сети, он заниматься не может. Как правило, именно центральный компьютер является самым мощным, и именно на него возлагаются все функции по управлению обменом. Никакие конфликты в сети с топологией звезда в принципе не возможны, потому что управление полностью централизовано.

Достоинства:

  •  выход из строя одной рабочей станции не отражается на работе всей сети в целом;
  •  хорошая масштабируемость сети;
  •  лёгкий поиск неисправностей и обрывов в сети;
  •  высокая производительность сети;
  •  гибкие возможности администрирования.

Недостатки:

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

4.3 Функционал серверного приложения

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

4.4 Функционал клиентского приложения

Клиентская часть осуществляет связь с сервером приложения «MP3_Catalogizator». Она формирует запросы авторизации и регистрации пользователей, предоставляет для просмотра и редактирования информацию об аккаунтах, плейлистах и музыке, полученную от сервера, включает в себя функцию воспроизведения MP3-файлов. Также программой-клиентом предусмотрен вывод жанровой статистики по серверным данным. Под учётной записью администратора осуществляется управление главным списком песен на сервере.

4.5 Администрирование приложения

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

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

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

4.6 Схема взаимодействия приложений

Всю работу приложения по сети логически можно разбить на следующие основные функции:

  •  подключение клиента к серверу;
  •  вход пользователя (авторизация, регистрация);
  •  работа с плейлистами и песнями текущего пользователя (выбор, редактирование, добавление, удаление);
  •  воспроизведение MP3-файла;
  •  просмотр жанровой статистики;

Первый этап - подключение клиента к серверу (см. рис. 4.1). В окне клиента в поле IP Server вводится адрес сервера, значение порта «8888», по нажатию клавиши «Connect» происходит подключение, сервер автоматически передаёт клиенту список всех имеющихся песен, а также данные для режима «гость».

Рисунок 4.1 Схема подключения клиента к серверу

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

- шифрование введённого пользователем пароля по алгоритму MD5;

- передача серверу клиентом логина и пароля;

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

Рисунок 4.2 Схема авторизации

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

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

- Сервер осуществляет поиск в базе данных и если такой логин уже существует, то уведомляет об этом клиента.

Рисунок 4.3 Схема регистрации

Воспроизведение MP3-файла осуществляется по принципу передачи от клиента серверу полного пути целевого файла, сервер делит его по байтам и посылает клиенту частями по одному килобайту (см. рис. 4.4), а сам клиент записывает полученные данные во временный файл «kurso.mp3», который затем воспроизводится.

Рисунок 4.4 Схема передачи MP3-файла

При отправке клиентом запроса на просмотр жанровой статистики, сервер заполняет массив данными, имеющимися в базе. Каждый элемент – это число песен определённого жанра из общего серверного списка. Массив передаётся клиенту (см. рис. 4.5), который использует полученную информацию в качестве координат для построения графика (см. приложение Б3).

Рисунок 4.5 Передача массива данных по жанрам

4.7 Обмен данными

Общение клиента с сервером осуществляется при помощи передачи строковых команд. При компоновке запроса программа-клиент записывает в начало такой строки слово-идентификатор, служащий для вызова на сервере соответствующей функции оперирования с MP3 либо БД. В основную часть строки записываются данные, предназначенные для обработки сервером, разделяются они символом «$», конец строки обозначается символом «%». Например, когда клиент отправляет запрос серверу на получение списка плейлистов текущего пользователя, строка будет выглядеть следующим образом: «i_want_user_playlists$<Имя пользователя>$<Пароль>$%», где подстрока «i_want_user_playlists» служит идентификатором одноимённой функции на сервере, которая в свою очередь приступает к компоновке строки-ответа клиенту, оперируя данными из серверной базы. Структура этой строки выглядит следующим образом: «take_user_playlists$Id пользователя$<Список плейлистов, разделённых знаком доллара>$%"». Клиент примет эти данные, и выведет полученную информацию для просмотра пользователем. Таким образом, каждая функция серверного приложения имеет своё уникальное название,  соответствующее определённому запросу клиента. Сам клиент, в свою очередь также реагирует на полученный ответ действием, определяемым идентификатором в начале строки-ответа, полученной от сервера.

4.8 База данных

Для реализации поставленной задачи в проектируемую БД необходимо включить следующие разделы:

  1.  информация об имеющихся пользователях;
  2.  информация о плейлистах каждого из пользователей;
  3.  информация о песнях каждого из плейлистов;
  4.  информация о музыкальных жанрах;

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

В общем случае можно считать, что реляционная БД включает одну или несколько таблиц, объединенных смысловым содержанием, а также процедурами контроля целостности и обработки информации в интересах решения некоторой прикладной задачи. Например, при использовании СУБД Microsoft Access в файле БД наряду с таблицами хранятся и другие объекты базы: запросы, отчеты, формы, макросы и модули.

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

Основными недостатками реляционной модели являются следующие: отсутствие стандартных средств идентификации отдельных записей и сложность описания иерархических и сетевых связей.

На рисунке 4.6 изображена функциональная зависимость между таблицами в базе данных.

Рисунок 4.6 Функциональные зависимости между таблицами

Реализованная база данных включает пять таблиц, проектирование которых основывается на полученных сущностях:

Сущность «Пользователь» представлена в виде таблицы «Users» (см. рис. 4.7).

Рисунок 4.7 Представление сущности «Пользователь» в виде таблицы «Users»

В данной таблице поле «Id_User» ключевое типа счётчик, поле «Name_User» содержит логин пользователя и имеет тип данных текстовый (255). Поле «Password_User» содержит пароль пользователя и имеет тип текстовый (255).

Сущность «Плейлист» представлена в виде таблицы «Playlists» (см. рис. 4.8).

Рисунок 4.8 Представление сущности «Плейлист» в виде таблицы «Playlists»

В таблице «Playlists» поле «Id_Playlist» ключевое типа счётчик, поле «Id_User» служит для связи с таблицей «Users», имеет тип числовой, поле «Name_Playlist» содержит название плейлиста и имеет тип текстовый (255).

Сущность «Песня» представлена в виде таблицы «Songs» (см. рис. 4.9).

Рисунок 4.9 Представление сущности «Песня» в виде таблицы «Songs»

В таблице «Songs» поле «Id_Song» является ключевым типа счётчик, поле «Title_Song» содержит название песни и имеет тип текстовый (30), поле «Artist_Song» содержит исполнителя и  имеет тип текстовый (30), поле «Album_Song» содержит название альбома песни и имеет тип текстовый (30), поле «Year_Song» содержит информацию о годе песни (альбома) и имеет тип числовой, поле «Id_Genre» обозначает жанр песни и служит полем для связи с таблицей «Genres», тип числовой, поле «Comment_Song» содержит комментарий к песне и имеет тип текстовый (30), поле «Track_Song» содержит номер трека и имеет тип числовой, поле «Path_Song» содержит полный путь к песне и имеет тип текстовый (255).

Сущность «ПесняПлейлист» представлена в виде таблицы «SongPlaylist» (см. рис. 4.10).

Рисунок 4.10 Представление сущности «ПесняПлейлист» в виде таблицы «SongPlaylist»

В таблице «SongPlaylist» поле «Id_Song» обозначает номер песни и служит полем для связи с таблицей «Songs», поле «Id_Playlist» обозначает номер плейлиста и служит полем для связи с таблицей «Playlists», поле «PlayTimes» содержит число прослушиваний песни и имеет тип числовой, поле «Rating» содержит рейтинг песни и имеет тип текстовый (5).

Сущность «Жанр» представлена в виде таблицы «Genres» (см. рис. 4.11).

Рисунок 4.11 Представление сущности «Жанр» в виде таблицы «Genres»

В таблице «Genres» поле Id_Genre является ключевым типа счётчик, поле «Text_Genre» содержит название жанра.

Общая схема отношений для логического уровня проектирования БД (см. рис. 4.12) может выглядит следующим образом:

Рисунок 4.12 Логическая модель проекта БД «MP3_Catalogizator»

4.9 Сетевые компоненты

В программе для передачи данных по сети был использован компонент System.Net.Sockets. Класс Socket обеспечивает широкий набор методов и свойств для сетевых взаимодействий, и может быть использован для создания приложений клиента и сервера.

Принцип формирования соединения состоит  в следующем. Сервер устанавливает порт с которым приложение будет работать, и начинает его "слушать":

Dim serverSocket As New TcpListener(8888)

   serverSocket.Start()

Программа-клиент инициирует соединение отправляя запрос на подключение серверу:

Dim clientSocket As New System.Net.Sockets.TcpClient()

   clientSocket.Connect(ip_server, 8888)

Получая такой запрос сервер создает соединение:

   clientSocket = serverSocket.AcceptTcpClient()

После этого клиент и сервер могут обмениваться данными.

Отправение данных:

Dim serverStream As NetworkStream = clientSocket.GetStream()

     Dim outStream As Byte() = serverStream.Write(outStream, 0, outStream.Length)

   serverStream.Flush()

Получение данных:

Dim networkStream As NetworkStream = clientSocket.GetStream()

     Dim bytesFrom(10024) As Byte        

   networkStream.Read(bytesFrom, 0, CInt(clientSocket.ReceiveBufferSize))

4.10 Системные требования

Приложение не нуждается в высоких системных требованиях.

Системные требования для корректной работы серверной части:

Процессор 300 MHz, оперативная память 512 Мб, VGA (800 x 600), сетевая карта.

Системные требования для корректной работы клиентской части:

Процессор 300 MHz, оперативная память 128 Мб, VGA (800 x 600), сетевая карта.

4.11 Программирование сервера

Программа «MP3_Catalogizator_Server» является консольным приложением и включает в себя следующие компоненты:

  •  Модуль Module_MP3_Tags для чтения и редактирования тегов  MP3-файла.
  •  Подключаемая к проекту база данных db.mdb.

После подробного изучения структуры формата ID3V1 MP3 было принято решение о создании модуля “MP3_Tags.vb”.  В нём реализованы два метода для работы с данными MP3 (см. приложение А):

Функция Refresh() – служит для считывания данных из ID3V1 (см. приложение А1).

Функция Update() – для записи данных в файл MP3 (см. приложение А2).

4.12 Программирование интерфейса клиента

Программа «MP3_Catalogizator_Client» включает в себя следующие компоненты:

  •  Главная форма Form_MP3_Catalogizator_Client (см. приложение Б1).
  •  Форма Form_Admin (см. приложение Б4) для управления информационной базой данных.
  •  Форма Form_Genre (см. приложение Б2) для вывода диаграммы по статистике жанров [8].
  •  Модуль Module_Forms для объявления общих используемых объектов двух форм [4].

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

Для организации разделения списка плейлистов и прослушиваемых треков, была введена система профилей пользователей [5]. При входе либо регистрации пользователя, в базу данных на сервере посылается соответствующий запрос на выборку либо на добавление в таблицу «Users».

В программе также доступна сортировка песен в списке по каждому тегу, которая осуществляется выбором названия необходимого поля в элементе управления ComboBox_Sort. При выделении строки в ListView_Music информация из таблицы становиться доступной для просмотра и редактирования в нижней части формы в области GroupBox_Tag. По нажатию кнопки «Save» текущие данные элементов управления этой области передаются серверу и записываются в файл MP3 [3], и, если песня содержится в базе, то и в соответствующие таблицы: «Songs», если это информация ID3V1, и в «SongPlaylist», если это рейтинг.

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

Для работы с плейлистами существует область элементов управления GroupBox_Playlist, в которой виден текущий плейлист, и доступны функции создания нового плейлиста с помощью запроса на добавление, либо удаления выбранного при помощи запроса на удаление из базы. Для удобства работы со списком песен, к элементу управления ListView_Music подключено контекстное меню [3], которое содержит пункты добавления трека в текущий плейлист, в новый плейлист, либо его удаление из списка и плейлиста. При нажатии на кнопку «Genre Stats» открывается вторая форма Form_Genre, на которой строится диаграмма [11] по наличию песен того или иного жанра в базе данных на сервере.

4.13 Устранение возможных ошибок программы

В процессе выполнения работы были предусмотрены следующие возможные ошибки и способы их избежания:

1. При попытке перезаписать теги файла, который в данный момент прослушивается, программа выдаёт пользователю сообщение об ошибке (см. рис. 4.13).

Рисунок 4.13 Сообщение об ошибке при сохранении тегов

2. При попытке добавить файл из списка в текущий плейлист, если в данный момент никакой из плейлистов неактивен, программа выдаёт пользователю сообщение об ошибке (см. рис. 4.14).

Рисунок 4.14 Сообщение об ошибке при неактивном плейлисте

3. При попытке добавить в новый создаваемый плейлист один и тот же файл дважды, программа выдаёт пользователю сообщение об ошибке (см. рис. 4.15).

Рисунок 4.15 Сообщение об ошибке при повторе файла в новом плейлисте

4. При неправильном вводе пользователем логина либо пароля, выводятся соответствующие сообщения об ошибках (см. рис. 4.16, 4.17).

Рисунок 4.16 Сообщение об ошибке при неверном вводе логина

Рисунок 4.17 Сообщение об ошибке при неверном вводе пароля

5. В случае регистрации нового профиля, если пользователь с таким логином уже существует, выводится сообщение об ошибке (см. рис. 4.18).

Рисунок 4.18 Сообщение об ошибке при совпадении логинов в базе

6. В случае, если при создании нового плейлиста имя такого уже имеется в базе у пользователя, либо оно некорректно, то выводится сообщение об ошибке (см. рис. 4.19, 4.20) .

Рисунок 4.19 Сообщение об ошибке при одинаковых именах плейлистов

Рисунок 4.20 Сообщение об ошибке при некорректном имени плейлиста

7. Если при создании нового плейлиста, пользователь пытается сохранить его без единой песни, выводится сообщение об ошибке (см. рис. 4.21)

Рисунок 4.21 Сообщение об ошибке при сохранении пустого плейлиста

8. При попытке добавления песни в плейлист, в котором она уже есть, выводится сообщение об ошибке (см. рис. 4.22)

Рисунок 4.22 Сообщение об ошибке при добавлении существующей в плейлисте песни

4.14 Контрольный пример

Рассмотрим работу программы «Виртуальная фонотека» на примере.

При запуске сервера появляется консольное окно (см. рис. 4.23)

Рисунок 4.23Стартовое окно сервера

При запуске клиента появляется главное окно (см. приложение Б1). Клиент подключается к серверу с адресом 127.0.0.1, затем производится регистрация нового пользователя Tuhovsky с паролем d3b5s7, для этого поля логин и пароль заполняются необходимой информацией, которая отправляется на сервер по нажатию «Register» (см. рис. 4.24).

Рисунок 4.24Регистрация нового пользователя

После нажатия кнопки происходит автоматический вход под новым зарегистрированным профилем, слева доступен список всех песен, хранящихся на сервере (см. рис. 4.25).

Рисунок 4.25Вход под профилем «Tuhovsky»

Теперь создаётся новый плейлист с именем «Musplay», в него добавлены в песни с сервера при помощи контекстного меню. Для этого происходит нажатие кнопки «New Playlist», затем правой кнопкой по треку – Add to new playlist. После выполненных действий треклист сохраняется в базу данных нажатием клавиши «Save Playlist». В результате в комбобоксе плейлистов уже находится новый с именем «Musplay»(см. рис. 4.26).

Рисунок 4.26Создание нового плейлиста

По нажатию кнопки «Проиграть» вопроизводится выделенный трек Linkin ParkBurn It Down, параллельно с этим есть возможность изменить информацию в тегах любого другого файла, для этого выделяется трек Hadouken! – Rebirth, в соответствующие поля вводится необходимая информация, после чего происходит нажатие на клавишу «Save» для сохранения изменений (см. рис. 4.27).

Рисунок 4.27Воспроизведение песни, изменение тегов

Теперь происходит удаление трека Julien-KFlashpoint Riot из плейлиста, при помощи контекстного меню – Delete. В результате песня удалится из списка плейлиста и из базы данных (см. рис. 4.28).

Рисунок 4.28 – Удаление файла из плейлиста

Измение рейтинга файла Linkin ParkLost in the Echo на значение «***»осуществляется выделением этого трека в списке и выбором в комбобоксе рейтинга нужного значения, после этого происходит сортировка файлов по рейтингу (см. рис. 4.29).

Рисунок 4.29 – Изменение рейтинга песни, сортировка треков

Для просмотра жанровой статистики по песням необходимо нажать на кнопку «Genre Stats» (см. рис. 4.30).

Рисунок 4.30 – Диаграмма жанровой статистики


Руководство пользователя

При старте программы появляется окно главной формы, пользователь должен прописать адрес сервера в соответствующем окне и нажать кнопку «Connect», после чего он присоединится к серверу в режиме гостя, при желании можно зарегистрировать нового пользователя, введя логин и пароль в соответствующие поля TextBox и нажав кнопку «Register», либо войти уже под имеющимся профилем, нажав клавишу «Enter». Если ранее пользователем создавались плейлисты, они отобразятся в комбобоксе плейлистов, появиться возможность выбрать каждый из них, при этом песни, входящие в выбранный плейлист автоматически заполнят список формы. Также можно создать новый плейлист, нажав на кнопку «New playlist», и затем, добавив необходимые файлы из списка через контекстное меню, нажать «Save playlist». Вверху формы есть комбобокс, позволяющий отсортировать текущие треки в списке по любым тегам. Выделив какой-либо файл в списке можно отредактировать его информацию, которая высветиться внизу в области данных о треке, для этого необходимо нажать кнопку «Save». Также есть возможность воспроизвести выделенный файл, панель управления проигрыванием расположена внизу формы. При нажатии кнопки «Delete Playlist» будет удалён текущий плейлист. Если активирован режим администратора, то по нажатию кнопки «Open Files» можно добавить на сервер новые файлы MP3, при нажатии «Administration» открыть панель управления всей информационной базы, просмотреть и отредактировать её данные. При выборе файла в списке и правом клике по нему можно добавить его в текущий плейлист либо удалить. Для просмотра диаграммы жанровой статистики по песням, нужно нажать кнопку «Genre Stats».


Выводы

В процессе разработки дипломного проекта «Сетевое приложение разграничения медиафайлов аудиобиблиотеки» был реализован следующий набор функций:

  •  Чтение и обработка информации MP3-файлов.
  •  Передача информации по сети через сокеты TCP/IP.
  •  Хранение и изменение данных в базе на удалённом сервере.
  •  Администрирование информационной базы аудиобиблиотеки.
  •  Воспроизведение песен.
  •  Статистическая жанровая оценка по песням.
  •  Ведение рейтинга числа прослушиваний по песням.
  •  Интеллектуальная система «Smart Library».

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

Недостатком программы является возможность работать только с форматом метаданных ID3V1, так как на сегодняшний день более широко распространены теги ID3V2, которые имеют больший объём хранимой в них информации.

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

В дальнейшем предполагается расширить возможности программы, а именно, дать ей возможность работать не только с форматом метаданных ID3V1 MP3, но и с более продвинутым ID3V2.


Список ссылок

  1.  Король, Владимир Иванович. Visual Basic.NET, Visual Basic for Applications 6.0 : Язык программирования : Справ. с прим. / В.И. Король. - М. : Кудиц-Образ, 2000. - 446 с.
  2.  Стивенс, Род. Visual Basic : Тестирование и отладка программ : [Пер. с англ.] / Род Стивенс. - М. : ДМК, 2004. - 378 с.
  3.  Браун, Стив. Visual Basic.NET : Учеб. курс / С. Браун. - М. и др. : Питер, 2005. - 574 с.
  4.  Visual Basic.NET : [Наиболее полное рук. для проф. работы в среде Visual Basic.NET] / Пер. с англ. А. Маторосова. - СПб. :БХВ-Петербург, 2003. - 956 с.
  5.  Лисков, Барбара. Использование абстракций и спецификаций при разработке программ / Лисков, Б. Гатэг Д. ; Пер. с англ. С. А. Жигалкина и др. - М. : Мир, 1989. - 424 с.
  6.  Блехман, Михаил Самойлович. Базы данных. Учебник для вузов : Ок. 17000 терминов. - Харьков, 1993. - 208 с.
  7.  Кнут, Дональд Э. Основы баз данных: [В 7 т.] : Пер. с англ. - М. : Мир, 1977. - Т. 2 : Базы данных / Пер. с англ. Г. П. Бабенко и др. ; Под
  8.  Грайс, Дэвид. Графические средства персонального компьютера / Пер. с англ. С. П. Забродина и А. В. Шалашова. - М. : Мир, 1989. - 379 с.
  9.  Светозарова, Галина Ивановна. Базы данных: модели, разработка, реализация / Г. И. Светозарова, А. В. Козловский, Е. В. Сигитов ; Под ред. С. В.
  10.  Коберниченко, Алексей. Visual Studio 6. : Базы данных. Локальные базы данных / Алексей Коберниченко. - М. : Нолидж, 1999. - 255 с.
  11.  http://ru.wikipedia.org/wiki/Last.fm.
  12.  http://ru.wikipedia.org/wiki/YouTube.


Приложение А Модуль “MP3_Tags.vb

' Refresh (gets all tags from the specified file)

       Public Sub Refresh()

           ' Declarations

           Dim strTag As New String(" ", 3)

           Dim strTitle As New String(" ", 30)

           Dim strArtist As New String(" ", 30)

           Dim strAlbum As New String(" ", 30)

           Dim strYear As New String(" ", 4)

           Dim strComment As New String(" ", 28)

           Dim bytDummy As Byte

           Dim bytTrack As Byte

           Dim bytGenre As Byte

           ' Open the file

           Dim intFile As Integer = FreeFile()

           FileOpen(intFile, mstrFilename, OpenMode.Binary, OpenAccess.Read, OpenShare.LockWrite)

           ' Gets length of file

           Dim lngLOF As Long = LOF(intFile)

           If (lngLOF > 128) Then

               ' Check for the ID3v1 tag

               FileGet(intFile, strTag, lngLOF - 127, True)

               If (strTag.ToUpper <> "TAG") Then

                   ' No ID3v1 tag found

                   mblnTagExists = False

                   mobjFrame(0) = ""

                   mobjFrame(1) = ""

                   mobjFrame(2) = ""

                   mobjFrame(3) = ""

                   mobjFrame(4) = ""

                   mobjFrame(5) = ""

                   mobjFrame(6) = ""

               Else

                   ' ID3v1 tag found

                   mblnTagExists = True

                   ' Read all frames from the file

                   FileGet(intFile, strTitle)

                   FileGet(intFile, strArtist)

                   FileGet(intFile, strAlbum)

                   FileGet(intFile, strYear)

                   FileGet(intFile, strComment)

                   FileGet(intFile, bytDummy)

                   FileGet(intFile, bytTrack)

                   FileGet(intFile, bytGenre)

                   ' Assign the frame content to the properties

                   mobjFrame(0) = strTitle

                   mobjFrame(1) = strArtist

                   mobjFrame(2) = strAlbum

                   mobjFrame(3) = strYear

                   mobjFrame(4) = bytTrack

                   mobjFrame(5) = strComment

                   mobjFrame(6) = bytGenre

               End If

           End If

           ' Close the file

           FileClose(intFile)

       End Sub

Рисунок А.1 – Функция считывания данных из ID3V1

' Update

       Public Sub Update()

           ' Declarations

           Dim strTag As New String(" ", 3)

           Dim strTitle As New String(" ", 30)

           Dim strArtist As New String(" ", 30)

           Dim strAlbum As New String(" ", 30)

           Dim strYear As New String(" ", 4)

           Dim strComment As New String(" ", 28)

           Dim bytDummy As Byte

           Dim bytTrack As Byte

           Dim bytGenre As Byte

           ' Open the file

           Dim intFile As Integer = FreeFile()

           FileOpen(intFile, mstrFilename, OpenMode.Binary, OpenAccess.ReadWrite, OpenShare.LockWrite)

           ' Gets length of file

           Dim lngLOF As Long = LOF(intFile)

           If (lngLOF > 0) Then

               If (lngLOF > 128) Then

                   ' Check for an existing ID3v1 tag

                   FileGet(intFile, strTag, lngLOF - 127)

                   If (strTag.ToUpper <> "TAG") Then

                       ' No ID3v1 tag found, so just add one

                       Seek(intFile, lngLOF)

                       strTag = "TAG"

                       FilePut(intFile, strTag)

                   End If

                   ' Fix the length of the frames

                   strTitle = LSet(mobjFrame(0), Len(strTitle))

                   strArtist = LSet(mobjFrame(1), Len(strArtist))

                   strAlbum = LSet(mobjFrame(2), Len(strAlbum))

                   strYear = LSet(mobjFrame(3), Len(strYear))

                   bytTrack = mobjFrame(4)

                   strComment = LSet(mobjFrame(5), Len(strComment))

                   bytGenre = mobjFrame(6)

                   ' Write the frames to the file

                   FilePut(intFile, strTitle)

                   FilePut(intFile, strArtist)

                   FilePut(intFile, strAlbum)

                   FilePut(intFile, strYear)

                   FilePut(intFile, strComment)

                   FilePut(intFile, bytDummy)

                   FilePut(intFile, bytTrack)

                   FilePut(intFile, bytGenre)

               End If

           End If

           ' Close the file

           FileClose(intFile)

       End Sub

Рисунок А.2 – Функция записи данных ID3V1


Приложение Б Интерфейс программы

Рисунок Б.1 – Сервер

Рисунок Б.2 – Главное окно клиента

Рисунок Б.3 – Диаграмма жанровой статистики

Рисунок Б.4 – Панель администрирования


Клиент

Сервер

редактирование

чтение

редактирование

чтение

ответ

апрос

   MP3

  

       Сервер

        

    Клиент

      База данных

ПесняПлейлист

Номер песни

Номер плейлиста

Рейтинг песни

Число прослушиваний песни

Песня

Номер песни

Название песни

Исполнитель песни

Альбом песни

Год песни

Комментарий песни

Номер трека

Путь песни

Жанр

Номер жанра

Название жанра

Плейлист

Номер плейлиста

Название плейлиста

Пользователь

Номер пользователя

Логин пользователя

Пароль пользователя

редактирование

чтение

        

Администрирование

Запрос на подключение по IP (xxx.xxx.xxx.xxx.:8888)

Список песен на сервере, список плейлистов для режима «гость»

Подключение

Сервер

Клиент

Пересылка логина и зашифрованного пароля

Возврат списка плейлистов пользователя

Авторизация

Пользователь не найден

Неверный пароль

Сообщение клиенту об ошибке

Сообщение клиенту об ошибке

Сервер

Клиент

Отправка логина и пароля

Логин занят

Логин свободен, регистрация

Регистрация

Сообщение клиенту об ошибке

Число повторений блока равно размеру файла в килобайтах

Отправка массива данных по жанрам

Жанровая статистика

Запрос данных по жанрам

Клиент

Отправка файла по киллобайту

Передача файла

Сервер

Полный путь MP3-файла на сервере

Клиент

Сервер


 

А также другие работы, которые могут Вас заинтересовать

34381. Трудовые ресурсы (ТС), их состав. Рынок труда. Проблема занятости 50.5 KB
  Критериями для выделения из общей численности населения трудовых ресурсов являются границы трудоспособного возраста которые устанавливаются государством и зависят от общественного строя продолжительности жизни людей других социальноэкономических факторов и принятых в связи с этим официальных государственных актов. В состав трудовых ресурсов включаются: трудоспособное население в трудоспособном возрасте; работающие подростки до 16 лет; население старше рабочего возраста принимающее участие в общественном производстве. В зависимости от...
34382. Прогнозирование ТС и их использования. Сводный баланс ТС, его содержание и методика разработки 73.5 KB
  Сводный баланс ТС его содержание и методика разработки Прогнозирование трудовых ресурсов является составной частью процесса разработки демографических прогнозов служащих для решения следующих задач: определение перспективной численности населения и его половозрастной структуры; оценка численности населения трудоспособного возраста основного источника трудовых ресурсов; обоснование перспектив социальноэкономического развития; разработка концепции демографического развития согласованной с концепцией...
34383. Социальная политика. Показатели, характеризующие уровень жизни населения 77.5 KB
  Показатели характеризующие уровень жизни населения Социальная политика государства это комплекс организационных экономических и других мероприятий по улучшению материального благосостояния духовному и физическому развитию населения оказанию поддержки инвалидам и малообеспеченным членам общества. Учитывая комплексный характер определения социальная политика ее обычно расчленяют на следующие составные части: политика доходов населения; социальная защита граждан; развитие системы здравоохранения образования культуры...
34384. Социальные нормы и нормативы. Минимальный потребительский бюджет и минимальная заработная плата 61.5 KB
  Минимальный потребительский бюджет и минимальная заработная плата Переход к рыночной модели хозяйствования неизбежно привносит в жизнь общества хронические болезни капиталистической системы: безработицу резкое имущественное расслоение бедность многочисленных слоев населения. Необходимость проведения активной социальной политики направленной на поддержание уровня жизни населения и обеспечение социальной защиты наиболее нуждающихся граждан обусловливает широкое использование в прогнозировании и планировании социальных нормативов. Это...
34385. Баланс денежных доходов и расходов населения, его роль и методика разработки 72 KB
  Политика доходов была направлена на сохранение в условиях инфляции определенного уровня заработной платы низкооплачиваемым слоям населения и реальной стоимости социальных выплат путем их периодических централизованных повышений или индексаций. Их успешная реализация стала важным этапом в обеспечении устойчивого экономического роста и повышении уровня жизни населения. Реальные денежные доходы населения повысились на 72 их рост по отношению к 1990 г.
34386. Прогнозирование и планирование оплаты труда 66 KB
  Основная цель оплаты труда обеспечить объективно необходимое воспроизводство рабочей силы в соответствии с ее стоимостью и повысить уровень мотивации исполнителей к эффективному труду. Фонд оплаты труда по народному хозяйству – это сумма денежных средств предназначенных для распределения между рабочими и служащими в зависимости от количества и качества затраченного труда. Источниками фонда оплаты труда является национальный доход который распределяется на фонд потребления и фонд накопления.
34387. Реальные доходы населения. Методы их прогнозирования 55 KB
  Методы их прогнозирования Важнейшим обобщающим показателем социального развития и уровня жизни населения являются реальные доходы. Основным источником формирования реальных денежных доходов и стимулирования трудовой деятельности являются зарплата повышение производительности труда и эффективности хозяйствования во всех звеньях экономики рост инвестиционного потенциала населения снижение налоговой нагрузки на фонд зарплаты субъектов хозяйствования всех форм собственности что будет способствовать созданию новых рабочих мест...
34388. Потребительский рынок (ПР). Прогнозирование спроса на товары народного потребления 33.5 KB
  Рынок – сфера товарноденежного обращения охватывает совокупность конкретных отношений и связей между производителями и потребителями товаров. Структура ПР: международный рынок рынок государств содружества рынок РБ рынок региональных областей рынок конкретных товарных групппродовольственных. Рынок: 1.
34389. Прогнозирование и планирование покупательных фондов и товарных ресурсов 37.5 KB
  Рассчитанный таким образом покупательный фонд определяет необходимый объем продажи товаров населению в денежном выражении. К этой величине прибавляется оборот по продаже товаров организациям и учреждениям в порядке мелкооптовой торговли и в результате определяется необходимый объем товарооборота. Дело в том что потребительские ожидания относительно таких факторов как будущие цены на товары наличие товаров и будущий доход способны изменить спрос. Для увязки совокупного спроса на товары народного потребления с товарными ресурсами наряду с...