https://github.com/syzranov/exchangeproject
https://github.com/syzranov/exchangeproject
finance highload multithreading sockets stockmarket
Last synced: 4 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/syzranov/exchangeproject
- Owner: syzranov
- Created: 2017-10-18T04:55:17.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2017-10-18T05:08:29.000Z (almost 8 years ago)
- Last Synced: 2025-02-25T08:18:33.455Z (8 months ago)
- Topics: finance, highload, multithreading, sockets, stockmarket
- Language: C#
- Size: 46.9 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Exchange
Проект Exchange - это пример работы рынка валют.
Project Exchange - is an example of the market rates.Видео описание доступно тут:
Yo can view video description here:http://youtu.be/kjc22Gw1C88
КОМПЛЕКС EXCHANGE
2015
Андрей Сызранов,
syzranov@gmail.com0.СОДЕРЖАНИЕ
---------------------------------
1.ОПИСАНИЕ
2.НЕОБХОДИМОЕ ОКРУЖЕНИЕ
3.УСТАНОВКА И НАСТРОЙКА
4.ЗАПУСК И ОСТАНОВКА
5.УДАЛЕНИЕ1.ОПИСАНИЕ
---------------------------------
Комплекс Exchange реализует бизнес процесс оформления сделок по курсу валюты
используя клиент-сервреную архитектру. Полный текст описания бизнес процесса находится
в файле task.txt.Комплес Exchange реализован на языке C#, с использованием технологий сокетов,
потоков, EF, БД MSSQL Server. Приложение создано по схеме архитектуры code-first.
Для реализации использовался LINQ to SQL в резульате которого получился
файл: Exchange\Exchange.Dal\Exchange.dbml.Поставленная задача была реализована с помощью трёх основных приложений:
1.Клиент
2.Сервер
3.МониторДалее, подробное описание всех проектов комплекса.
Комплекс Exchange, состоит из проектов:
Exchange.Client - библиотека, реализует работу приложения Клиент
Exchange.Client.Cmd - приложение командной строки, отображает события
работы клиента.
Exchange.Common - библиотека, содержит общие с клиентом и сервером
и классы-контейнеры
Exchange.DAL - библиотека, содержит структуру БД в файле
Exchange.dbml и обеспечивает доступ к БД.
Exchange.Extentions - библиотека, содержит методы расширения,
общие для клиента и сервера
Exchange.Monitor - библиотека, реализует работу приложения Монитор
Exchange.Monitor.Cmd - приложение командной строки, отображает события
работы Монитора, является интерфейсом где
отображается статискиа работы комплекса Exchange.
Exchange.Server - библиотека, реализует работу приложения Сервер
Exchange.Server.Cmd - приложение командной строки, отображает события
приложения Сервер
Exchange.UnitTests - библиотека, реализующая unit-тесты, на весь
основной функционал комплекса Exchange
Exchange.Utils - библиотека, содержит общие методы, используемые
во всех проектах комплекса
Exchange.Utils.DB.Create.Cmd - приложение командной строки, создаёт БД
Exchange.Utils.DB.Drop.Cmd - приложение командной строки, удаляет БДДополнительная информация по работе комплекса.
Диапазон курса валют составляет от 0 до 100000.
Диапазон сделки составляет от 0 до 100000.
Курс валюты меняется автоматически сервером каждые 30 секунд.Список валют - фиксированный, включает в себя 9 валют:
RUB = 643 - Российский рубль,
USD = 840 - Американский доллар,
EUR = 978 - Евро,
CHF = 756 - Швейцарский франк,
JPY = 392 - Японская йена,
GBP = 826 - Британский фунт,
CAD = 124 - Канадский доллар,
CNY = 156 - Китайская йена,
BRL = 986 - Бразильский реалВсе курсы, сделки хранятся в БД.
Частота обновления статистики монитора, по умолчанию составлет 5 секунд
и его можно поменять в файле конфигурации проекта Монитора.
Частота обновления статистики монитора указывается в милисекундах.Частота обращения клиента к серверу - огрничена, по умолчанию
она составляет 300 милисекунд, этот параметр хранится в конфигурации клиента,
где его можно поменять.Сервер ни как не огрничен по скорости.
Логирование не ведётся.2.НЕОБХОДИМОЕ ОКРУЖЕНИЕ
---------------------------------
Для корректной работы комплекса Exchange требуется следующее окружение и инструменты:HARDWARE:
Intel Core i3-5 CPU M 560 2.67Ghz
или схожий по характеристикамRAM 4Gb
и большеОС: Microsoft Windows 7 - 8.1,
или Microsoft Windows Server 2014СЕРВЕР БД:
MSSQL Server 2005 - 2013
с кодировкойДля компиляции библиотек потребуется
Visual Studio 2012-13Доступный порт 11000
Проверка доступности порта:
http://zone-pc.ru/index.php/praktikum/kak-proverit-otkryt-li-port/Права администратора
Отключёный ОАКНиже, список идеальных условий,
поскольку разработка и отладка комплекса Exchange
производилась используя окружение и инструменты:HARDWARE:
Intel Core i5 CPU M 560 2.67Ghz
RAM 8GbOS: Windows 8.1 Pro, 64-bit OS
VISUAL STUDIO:
Microsoft Visual Studio Ultimate 2013
Version 12.0.31101.00 Update 4
Microsoft .NET Framework
Version 4.5.51641MICROSOFT SQL SERVER:
Microsoft SQL Server 2012 - 11.0.2218.0 (X64)
Jun 12 2012 13:05:25
Copyright (c) Microsoft Corporation
Express Edition (64-bit) on Windows NT 6.2 (Build 9200: ) (Hypervisor)3.УСТАНОВКА И НАСТРОЙКА
---------------------------------1.Конфигурирование подключения к БД и создание БД
Для корректной работы нобходимо создать БД.
Для создания БД, необходимо прописать строку соединения к MSSQL Server
в файлах:/Exchange/Exchange.Client.Cmd/App.config
/Exchange/Exchange.Server.Cmd/App.config
/Exchange/Exchange.Monitor.Cmd/App.config
/Exchange/Exchange.Utils.DB.Create.Cmd/App.config
/Exchange/Exchange.Utils.DB.Drop.Cmd/App.configCекция: configuration\appSettings\add[@key="connection-string"]
После завершения прописывания строк подключения,
необходимо собрать проект в студии.2.Подключение к БД
Создание БД производится запуском файла db-create.cmd
это файл запустит вызов приложения:
/Exchange/Exchange.Utils.DB.Create.Cmd\bin\Debug\Exchange.Utils.DB.Create.Cmd.exe
которе подключится и создаст БД4.ЗАПУСК И ОСТАНОВКА
---------------------------------
Комплекс Exchange состоит из Сервера, 30-ти Клиентов и Монитора.Запуск комплекса Exchange, производится файлом start.cmd
Остановка комплекса Exchange, производится файлом stop.cmdПри запуске, будет запущен экземпляр сервера, 30 экземпляров клиента и Монитор.
При остановке, будет произведена остановка процессов 30 экземпляров Клиента,
Сервера и Монитора.5.УДАЛЕНИЕ
---------------------------------
Удаление БД производится запуском файла db-delete.cmdэто файл запустит вызов приложения:
/Exchange/Exchange.Utils.DB.Create.Cmd\bin\Debug\Exchange.Utils.DB.Create.Cmd.exe
которе подключится и создаст БДУдаление комплекса - так же как удаляется обычная папка. Перед удалением,
необходимо убедится, что система не запущена и не удерживает папки.