An open API service indexing awesome lists of open source software.

https://github.com/syzranov/exchangeproject


https://github.com/syzranov/exchangeproject

finance highload multithreading sockets stockmarket

Last synced: 4 months ago
JSON representation

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.com

0.СОДЕРЖАНИЕ
---------------------------------
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 8Gb

OS: 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.51641

MICROSOFT 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.config

Cекция: 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
которе подключится и создаст БД

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