АНАЛИЗ ВЫПОЛНЕННОЙ РАБОТЫ НА ПРОИЗВОДСТВЕННОЙ ПРАКТИКЕВ ходе производственной практики были изучены принципы построения приложений с использованием языка C#, система доставки сообщений RabbitMQ, настройка серверов Ubuntu Linux. Было спроектирована тестовая площадка для определения возможности внедрения ее для внутреннего использования для связи разных сервисов. Были изучены: a) Изучение основ написания программ на языке C# C# — объектно-ориентированный язык программирования для разработки приложений под платформой Microsoft.NET. C# относится к семье языков с С-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java. Язык имеет статическую типизацию, поддерживает полиморфизм, перегрузку операторов (в том числе операторов явного и неявного приведения типа), делегаты, атрибуты, события, свойства, обобщённые типы и методы, итераторы, анонимные функции с поддержкой замыканий, LINQ, исключения, комментарии в формате XML. .NET Framework – программная платформа, выпущенная компанией Microsoft в 2002 году. Основой платформы является общеязыковая среда исполнения Common Language Runtime (CLR), которая подходит для разных языков программирования..NET Framework состоит из множества библиотек и классов, которые можно использовать для создания собственных приложений. Программа для.NET Framework, написанная на любом поддерживаемом языке программирования, сначала переводится компилятором в единый для.NET промежуточный байт-код Common Intermediate Language (CIL) (ранее назывался Microsoft Intermediate Language, MSIL). В терминах.NET получается сборка. Затем код либо исполняется виртуальной машиной Common Language Runtime (CLR), либо транслируется утилитой NGen.exe в исполняемый код для конкретного целевого процессора. Использование виртуальной машины предпочтительно, так как избавляет разработчиков от необходимости заботиться об особенностях аппаратной части. В случае использования виртуальной машины CLR, встроенный в неё JIT-компилятор «на лету» (just in time) преобразует промежуточный байт-код в машинные коды нужного процессора. Современная технология динамической компиляции позволяет достигнуть высокого уровня быстродействия. Виртуальная машина CLR также сама заботится о базовой безопасности, управлении памятью и системе исключений, избавляя разработчика от части работы. b) RabbitMQ - платформа, реализующая систему обмена сообщениями между компонентами программной системы на основе стандарта AMQP (Advanced Message Queuing Protocol). RabbitMQ написан на языке Erlang и базируется на базе СУБД Mnesia которая также написана на Erlang. Mnesia – это распределённая СУБД реального времени, по своей сути используется для встраиваемых решений и этим похожа на Berkeley DB. Для подключения к RabbitMQ серверу необходимо знать IP, PORT, LOGIN, PASSWORD, VHOST. По умолчанию в RabbitMQ создаётся пользователь guest с паролем guest и виртуальный хост «/». Если провести аналогию между RabbitMQ и СУБД, то: · Виртуальный хост в RabbitMQ это как отдельные БД в СУБД · Каждая точка обмена – таблица · Каждое сообщение – строка в таблице Сначала происходит установка соединения по TCP/IP протоколу (IP, PORT). Дальше происходит аутентификация к конкретному виртуальному хосту. Одному и тому же логину может быть предоставлен доступ к разным виртуальным хостам с разными правами. После установки соединения с каким-то конкретным виртуальным хостом, мы можем создавать точки обмена, очереди сообщений и отправлять непосредственно сообщения в них. AMQP протокол имеет три базовых понятия: · Точка обмена (exchange) · Очередь (queue) · Связь, или маршрут (routing key) Точки обмена по своей природе предназначен для публикации сообщений, то Очереди предназначена для приема сообщений. Между Точкой обмена и Очередью устанавливается Связь (Bind - Привязка) через ключ Маршрутизации (routing_key). Обмен сообщениями осуществляется в пределах одной точки обмена (есть ещё цепное связывание, но об этом в другой раз), в котором определены связи, являющиеся своеобразными маршрутами, по которым идут сообщения, попавшие в эту точку обмена. Каждый маршрут связывает точку обмена с одной или несколькими очередями. Программное обеспечение, реализующее описанные действия, называют AMQP-сервером или брокером в нашем случае RabbitMQ. Узлы, помещающие сообщения в точку обмена и получающие их из очередей, называются AMQP-клиентами. Другими словами, AMQP-сервер предоставляет шину обмена данными, а AMQP-клиенты используют эту шину для обмена сообщениями между собой. Клиенты могут создавать новые точки обмена и очереди.
|