Вы находитесь на странице: 1из 18

ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ РЕСПУБЛИКИ МОЛДОВА

ФАКУЛЬТЕТ МАТЕМАТИКИ И ИНФОРМАТИКИ


ДЕПАРТАМЕНТ ИНФОРМАТИКИ

Можаровский Станислав

ОТЧЕТ ПО ПРАКТИКЕ ПО СПЕЦИАЛЬНОСТИ

Директор Департамента: ______________ Унгуряну Валериу, доцент, доктор

(подпись)

Научный руководитель: ______________ , лектор

(подпись)

Автор: ______________ Можаровский Станислав

(подпись)

КИШИНЕВ-2020
Введение 3

ДЕПАРТАМЕНТ И ОРГАНИЗАЦИЯ ПРОВЕДЕНИЯ ПРАКТИКИ 3

ПРИНЦИПЫ ПРОВЕДЕНИЯ ПРАКТИКИ. 4


Проведение практики подразумевает два этапа : 4
Календарный план практики 4
Формулировка задачи и требования 6
Внутренние курсы компании 6
Введение в основы компьютера 6
Знакомство с Linux 7
Основы Сетевого доступа, Ethernet
Сетевой уровень 7
Транспортный уровень, уровень приложений 8
Межсетевой экран 8
VPN туннели 8
Анализ пакетов с помощью вспомогательных программ 8
Основы баз данных 9
Интеграция в проект 10
Описание проекта BulkSMS 10
Основные понятия и технологии используемые в BulkSMS 10
Задача №1 14
Задача №2 16

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

ДЕПАРТАМЕНТ И ОРГАНИЗАЦИЯ
ПРОВЕДЕНИЯ ПРАКТИКИ
Практика проходила в молдавской интернациональной компании Unifun.
Unifun разрабатывает IT-продукты для Операторов Мобильной Связи

● Компания основана в 2005 году в Молдове


● Сегодня нашими клиентами являются 110 Операторов из 60 стран мира
● Переговоры о сотрудничестве ведутся с +200 новыми Операторами
● Unifun работает в странах СНГ, Африки, Азии и Латинской Америки
● Офисы Unifun открыты в 14 странах: Россия, Турция, ОАЭ, Китай и т.д.
● Общее количество сотрудников - 320 человек (175 в Кишиневе)

Я проходил практику в департаменте Balance+ Development, на проекте BulkSMS.


Под руководством шефа департамента Andrei Margineanu.
ПРИНЦИПЫ ПРОВЕДЕНИЯ ПРАКТИКИ.

Проведение практики подразумевает два этапа :


1. Прохождение внутренних курсов компании
2. Интеграция в проекте компании

Календарный план практики

Дата Тема Задания


Внутренние курсы компании
Chapter
29.11.201 12 (8 9 10
Введение в основы компьютера
9 11 12 14
15 16)
29.11.201 Chapter
Знакомство с Linux
9 22 (7 8)
Основы сетевого доступа
10.12.201
Протокол Ethernet Practice 1
9
Сетевой уровень
18.12.201 IP адрессация , разделение IP адресов на подсети
9
23.12.201 Транспортный уровень
9 Уровень приложений
29.01.202
0
Межсетевой экран
30.01.202
0

25.02.202 VPN туннели


0
26.02.202
0
Анализ работы пакетов в Packet Tracer
Анализ пакетов в WireShark
Анализ пакетов в WireShark
Основы баз данных
Интеграция в проект
27.02.202
Протокол SMPP
0
Bootstrap и JQuery
Java SWING
Spring framework
Hibernate
Формулировка задачи и требования

Внутренние курсы компании


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

Введение в основы компьютера

● Система ПК - узнал о том из каких компонентов состоит компьютер.


Узнал какие бываю блоки питания, и то как важно рассчитать правильную
мощность БП.
● Изучил Внутренние компоненты ПК и какую задачу выполняет каждый их
них.
● Изучил каких архитектур бывают процессоры, про то как оно влияет на
производительность.
● Виды памяти и их отличия.
Отличие ПЗУ и ОЗУ (ROM и RAM) памяти. Разновидности модулей памяти
● Предназначение плат адаптеров и слотов расширения материнской платы.
● Виды устройства хранения данных и их отличительные особенности.
● Способы объединения хранилищ данных в RAID массивы.
Значение характеристики IOPS для дисков.
● Базовые и комбинированные уровни RAID массивов.
● Внешние порты и кабели.
● Виды устройств ввода и вывода. Толстые и тонкие клиенты.
● Базовую систему ввода-вывода (BIOS). Ее значение и разновидности.
Систему POST. Виды звуковых сигналов и настройка BIOS.
● Разновидности серверных стоек, их устройство, монтаж оборудования,
разница между “Rack” и “Blade” форм факторов.
● Виртуализация, ее преимущества и виды. Гипервизоры 1 и 2 типа. Уровни
абстракции и контейнеры.

Знакомство с Linux

● История Linux. Причины ее появления и отличие от Unix.


● Строение ядра Linux. Ее отличительные черты от ядра Windows.
● Основные части системы : каталоги Linux, типы файлов Linux.
● Интерфейс командной строки. Базовые команды, способы их совмещения
друг с другом.
● Bash – командная оболочка Linux. Принцип ее работы, дополнительные
параметры команд (ключи). Перенаправление стандартного ввода-вывода.
● Абсолютная и относительная адресация. Команда cd для смены каталогов.
● Копирование, перемещение, создание и удаление файлов и каталогов
● Создание ссылок в Linux , отличие жестких и символьные ссылок.
● Права доступа.Команда chmod – изменение прав доступа
● Шаблоны имен файлов
● Команда sudo – администрирование системы
● Пакетный менеджер APT

Основы Сетевого доступа, Ethernet


Сетевой уровень

● Протоколы физического уровня. Подключение физического уровня,типы


подключений
● Сетевые интерфейсные платы
● Назначение физического уровня, основные принципы физического уровня,
средства подключения и стандарты физического уровня
● Характеристики физического уровня, его функции, физические компоненты.
Принцип и способ кодирования, передачи сигналов.
Вычисление пропускной способности и производительности.
● Сетевые средства подключения .
Медный кабель, его основные характеристики и типы.
Отличие неэкранированных, экранированных и коаксиальных кабелей.
● Свойства кабелей и их стандарты, разъемы и типы и принципы их
конструкции.
● Назначение канального уровня,подуровни канального уровня.
Управление доступом к среде (Media Access Control), предоставление
доступа к среде.
● Топологии, физическая и логическая топологии.
Топологии глобальных и локальных сетей.
● Протоколы сетевого уровня, их основные характеристики. Преобразование
двоичных значений в десятичные. Публичные и статические IPv4 адреса.

Транспортный уровень, уровень приложений

● Протоколы транспортного уровня и их функции


● Функции протокола TCP и UDP, заголовки протоколов, отличительные
особенности передачи данных. Преимущества и недостатки каждого из
протоколов.
● Протоколы уровня приложений. Модель «клиент-сервер» и Peer-to-Peer.
Протоколы HTTP, SMTP, FTP.
● Служба доменных имен DNS, ее основные функции.

Межсетевой экран

● Фильтрация трафика,реализации межсетевого экрана


● Iptables - межсетевой экран Linux. Принцип работы, механизм состояний.
Управление правилами и параметрами сетевых пакетов в iptables.

VPN туннели

● Основы сетей VPN, основные преимущества VPN


● Разновидности сетей VPN.Сети VPN типа «узел-узел»,VPN для удаленного
доступа.
Анализ пакетов с помощью вспомогательных программ

● Анализ работы и моделирование ситуаций передачи пакетов в Packet


Tracer.
● Анализ пакетов с WireShark.

Основы баз данных

● Модель реляционных баз данных. Первичный и внешний ключ.


Виды связей таблиц, один к одному, один ко многим, многие ко многим.
● Синтаксис языка SQL. Извлечение данных из таблиц , принципы написания
запросов.
● Объединения нескольких таблиц, подзапросы.
● Представления, индексы.
Интеграция в проект

Описание проекта BulkSMS

Компанией я был направлен в проект BulkSMS, основная функция которого


заключается в массовой рассылки SMS сообщений списку адресатов, используя
протокол SMPP.

Основные понятия и технологии используемые в BulkSMS

SMPP - Short Message Peer to Peer, одноранговый протокол передачи SMS


сообщений.

Spring framework - фреймворков для создания веб-приложений на Java.


Основанный на JavaBeans и технологии Dependency Injection.

Hibernate - библиотека для языка программирования Java, предназначенная для


решения задач объектно-реляционного отображения (ORM), самая популярная
реализация спецификации JPA.

SWING - библиотека для создания графического интерфейса для программ на


языке Java. Он содержит ряд графических компонентов, таких как кнопки, поля
ввода, таблицы и т. д.

SMS - (Short Message Service), технология приема и передачи сообщений с


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

Рассылка - подразумевает специальная услуга позволяющая пользователю


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

SMSC - SMS-центр, сервер отвечающий за коммутацию и отправку SMS на


сотовые телефоны. В его функции входит хранение, конвертация и передача
сообщений.

PDU - Protocol Data Unit, блок данных протокола.


Взаимодействие с пользователем

BulkSMS - поддерживает несколько способов взаимодействия с пользователем,


для возможность пользоваться его услугами.

Веб интерфейс
Платформа BulkSMS имеет пользовательский веб интерфейс для созданий
рассылки сообщений и отправки их конечным адресатам.

Веб интерфейс управляется администратором и имеет гибкую иерархию ролей


пользователей, которая позволяет гибко настроить права и ограничения
определенного пользователя.
Есть возможность создавать и редактировать группы SMS префиксов,
устанавливая им тарифы, SMSC аккаунты и пользователей.

Поддерживается возможность создавать и применять списки исключающих


номеров (blacklist).

Есть возможность устанавливать различный способ оплаты услуг.


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

Реализована возможность генерации отчетов по рассылкам пользователей.


Возможность группировать и фильтровать статусы рассылок, сообщений ,
пользователей.

SMPP
Платформа BulkSMS может выступать в роли SMSC, для получения сообщений по
протоколу SMPP от других пользователей.
В таком случае BulkSMS выступает в качестве SMSС(SMS gateway) для клиентов,
он анализирует сообщения, производит все требуемые проверки и отправляет
сообщение на соответствующий ему SMSC.

HTTP
BulkSMS может принимать сообщения используя HTTP API.
После чего сообщения будут упакованы в соответствующие PDU и переданы
SMPP серверу.
Иначе говоря сообщения полученные по HTTP будут преобразованы и переданы
SMPP обработчику сообщений.
Задача №1

Перед мной была поставлена задача обновить веб интерфейс проекта BulkSMS,
по причине того, что он устарел и не соответствует современным нормам.
Данную задачу , нужно решить с помощью использования графического
фреймворка Bootstrap и библиотеки JQuery.

Bootstrap - свободный набор инструментов для создания сайтов и веб-


приложений. Включает в себя HTML- и CSS-шаблоны оформления для
типографики, веб-форм, кнопок, меток, блоков навигации и прочих компонентов
веб-интерфейса, включая JavaScript-расширения.

JQuery - набор функций JavaScript, фокусирующийся на взаимодействии


JavaScript и HTML. Библиотека jQuery помогает легко получать доступ к любому
элементу DOM, обращаться к атрибутам и содержимому элементов DOM,
манипулировать ими. Также библиотека jQuery предоставляет удобный API для
работы с AJAX.

В ходе решения данной задачи, я изучил предложенные мне инструменты и


укрепил свои знания в HTML, CSS и Javascript.
Изучил способы декорации страниц с помощью стилей библиотеки Bootstrap.
Научился формировать и отправлять AJAX запросы. Научился динамически
изменять структуру и перехватывать стандартные события
Научился разбивать страницу на компоненты и декорировать их.
Результаты :
Старый дизайн:

Новый дизайн:
Задача №2

Требуется написать приложение для осуществления рассылок по HTTP и замеры


скорости отправки пакетов, для выявления причин переполнения памяти
приложения.

Для реализации графической части приложения была выбрана стандартная


графическая библиотека Java - SWING.

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

Visual VM - стандартный инструмент для анализа heap памяти java приложения в


реальном времени.
Использование данного приложения, позволило мне найти проблемный момент,
который заключался в не оптимизированном запросе к БД.

Для оптимизации запроса, мною была изучена библиотека Hibernate.


Данная библиотека, является основной библиотекой проекта, для формирования
запросов к Базе Данных.
Изучение данной технологии помогло мне понять модель ORM (Object Relational
Mapping) и оптимизировать неправильный запрос, который приводил к утечке
памяти.

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


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

Основным, по моему мнению, вкладом практики, является то, что она позволила
мне дать оценку своим знаниям на рынке труда и выявить свои сильные и слабые
стороны

Библиография и ссылки:
https://younglinux.info/
https://proselyte.net/
https://ru.wikipedia.org/
https://getbootstrap.com/

Вам также может понравиться