Софтуерна архитектура на ForexTrader – клиент-сървър приложение за извършване на търговия с forex-и



страница1/5
Дата14.02.2017
Размер0.52 Mb.
#14916
  1   2   3   4   5

Курсов проект по Софтуерни архитектури и разработка на софтуер

Софтуерна архитектура на ForexTrader –

клиент-сървър приложение за извършване на търговия с forex-и

Дата: 10 Април 2009 Изготвили:

Славина Руменова Собаджиева

Лъчезар Стоянов Янков



Съдържаниe



  1. Предназначение на документа

Целта на настоящия документ е да опише софтуерната архитектура на системата за извършване на сделки с forex-и, ForexTrader, интерфейсите на различните модули, на които е декомпизирана, връзките между тях и слоевете на изготвената софтуерна архитектурата. Документът следва да послужи за база в процеса на дизайн и разработката на ForexTrader.





  1. Използвани термини и символи


ForexTrader клиент-сървър приложение, предназначено за търговия на forex-и, включващо клиентски терминал и сървър, обработващ заявките, идващи от клиента, и поддържащ връзща с бекофис система на брокер, търгуващ с forex-и.
Forex The foreign exchange market (Forex) - междубанков пазар за размяна на националните валути на държавите. Това не е пазар в класическия смисъл на думата, тъй като не е концентриран на едно място, където да се търгува. Традиционните участници на международния валутен пазар са търговските и инвестиционни банки, фондове, финансови институции и индивидуални инвеститори.

Intrusion Detection System(IDS) тип секюрити система за компютри и мрежи. Тя събира и анализира информация за компютъра или мрежата с цел да идентифицира възможни проблеми в сигурността, който включват както атаки от външни лица така и грешна употреба (атаки от самата организация).

Къса позиция Клиентът изявява желание да продаде определено количество валута срещу друга
Дълга позиция Клиентът изявява желание да закупи определено количество валута срещу притежавана от него такава.
BO Back Office
EA IDE Expert Analysis Integrated Development Environment
EALI Expert Analysis Language Interpreter
EAL Expert Analysis Language – вграден език за дефиниране на експертни анализатори
SSL Secure Socket Layer
VPN Virtual Private Network
DB Database
UI User Interface
CT Client Terminal
IN Incident Notification


  1. Декомпозиция на модули




    1. Сървър

      1. Securityотговаря за всички дейности, свързани с осигуряването на 100%-на защита на системата и комуникацията с клиентските терминали и бекофис системата на брокера. Съдържа следните подмодули:




  • Firewall– ограничава достъпа до сървъра само до определени регистрирани адреси и портове с цел да се предодврати получаването на съобщения и заявки от непознати източници, които могат да представляват някаква форма на атака срещу системата.

  • Secure connection – отговаря, съвмесно с комуникационния модул, за изграждането на защитена връзка с клиентския терминал или бекофис системата на брокера чрез SSL

  • Cryptography – отговаря за генерирането на използваните публични и частни ключове при изграждането на SSL и за криптирането/хеширането на всички пароли и конфиденциални данни за потребителите, администраторите и бекофис системата.

  • Intrusion detection – сравнява мрежовия трафик с паттерни от предишни атаки, запазени в отделна база данни

    • Intrusion sensor – следи трафика и заявките, които се получават/обменят между клиента и сървъра/модулите на сървъра, сравнява ги с моделите от базата данни с известни атаки и при случай на съвпадение генерира секюрити събитие, което да бъде обработено от intrusion engine подмодула.

    • Intrusion engine – записва секюрити евентите от сензорите и използва система от правила, за да генерира инциденти от получените събития. В зависимост от приоритета на съответния инцидент комуникира с intrusion notification подмодула за да бъдат предприети съответните действия по уведомяването на администраторите на системата за настъпилия инцидент, които да започнат отстраняването му.

    • Intrusion notification – отговаря за изпращане на e-mail, sms или др към security administrator в зависимост от конфигурацията и степеннта на важност на alert-a. Например при високо ниво на приоритет се изпраща sms към дежурния администратор, който да започне незабавна работа по отстраняването на инцидента, при среден приоритет се изпраща e-mail и т.н. Позволява се конфигурирането на приоритетите и начините на уведомляване на администраторите за настъпили инциденти от модула за конфигурация.




      1. Communicator - отговаря за създаване на връзка с клиентските терминали и за примането и предаването на съобщения от и към тях




  • Transaction Gateway – Създава комуникационен канал с клиентските терминали като осигурява засекретеност на данните с помощта на Security модула. Всички съобщения от клиентския терминал постъпват първо в този модул и след валидация на формата на съобщението то се предава на Message Protocol Processor модула. Ако форматът на съобщението е невалиден се регистира настъпилият проблем в логовете на сървъра и се уведомява по подходящ начин съответната страна, изпратила съобщението.

  • Message Protocol Processor – отговаря за генерирането и разчитането на съобщения, идващи от клиентските терминали. При разчитане на съобщението модула изпраща команди до отговорните модули и след получаването на отговор от тях, генерира ново съобщение, което да се изпрати до клиентския терминал. При грешка или невалидност на съобщението се прави запис в Logger модула и се уведомява клиента.




      1. User authentication – отговаря за регистрирането на нови потребители и управлението на вече съществуващите такива, както и за автентикацията им при връзка на клиентския терминал със сървъра. Също така генерира нови пароли за потребители, забравили своята такава (след установяване на самоличносттта на потребителя по определена процедура), като и за блокирането на потребители, въвели определен брой пъти грешна парола, което се смята за опит за атака срещу системата.

  • User registration – реализира функционалността по регистрация на нови потребители и създаването на акаунти за системата със съответните права.

  • User management – отговаря за управлението на потребителските акаунти. Модулът реализира функционалностите по Login/Logout на потребителите от клиентските терминали, блокирането/заключване на акаунти при N пъти на брой въведена грешна парола, изтриване на потребители и генерирането на нова парола за потребител след определена автентикация от негова страна.

  • Sessions – отговаря за управелението на потребителските сесии и запазването на съответните настройки на потребителя. Освен това следи активността на потребителя и в случай че той не е предприемал никакви действия определено време затваря потребителската сесия.

      1. Data Storage – съдържа и предоставя интерфейси за достъп до и редакция на всички данни за позиции, сметкии, валутни курсове и пр.




  • Positions Repository - съдържа и предоставя интерфейси за достъп до и редакция на данните за позициите на потребителите.

  • Accounts Repository - съдържа и предоставя интерфейси за достъп до и редакция на данните за сметките на потребителите на системата.

  • Rates Repository - съдържа и предоставя интерфейси за достъп до и редакция на данните за валутните курсове, получени от бекофис системата.

  • Users Repository - съдържа и предоставя интерфейси за достъп до и редакция на данните за всички регистрирани потребители.

  • Statistics Repository - съдържа и предоставя интерфейси за достъп до и редакция на данните за статистиките, получени от бекофис системата

  • News Repository - съдържа и предоставя интерфейси за достъп до и редакция на данните новините, получени от бекофис системата

  • Logs Repository - съдържа и предоставя интерфейси за достъп до и редакция на системните логове.

  • Raised Security Events Repository - съдържа и предоставя интерфейси за достъп до и редакция на данните за засечените от IDS системата security събития. Всички секюрити събития, които се генерират от Intrusion sensor-а се записват в тази база данни с цел последващ анализ от секюрити администратора на сървъра и да бъде определена важността на събитието, както и предприети мерки за възстановяване след извършена атака.

  • Allowed IPs Repository - съдържа и предоставя интерфейси за достъп до и редакция на списъка с оторизираните за връзка със сървъра IP адреси.

  • Attack Patterns Repository - съдържа и предоставя интерфейси за достъп до и редакция на данните за моделите на атаки, използвани от IDS. Всички установени атаки към системата се записват в това repository с цел да може да се анализират и да се намерят начини за по-нататъшното им предодвратяване. Също така данните в нея служат и за сравняване на трафика и заявките с модели на предишни атаки и по този начин да бъдат засичани и навременно предодвратявани опити за атака срещу системата.




      1. Main Data Processorмодулът отговаря за достъпа до данни за всички отркити през клиентските терминали позиции, сметките на регистрираните потребители, курсовете купува/продава за всяка валута, новините, както и други съпътстващи данни, които Back Office ситемата изпраща. Останалите функционалости на модула са описани по-долу.




  • Position manager – отговаря за управлението на позициите (къси/дълги), отворени от потребителите на клиентските терминали. Модулът обработва получените заявки за отваряне/затваряне/конфигурация на позиции като проверява валидността на заявката (дали е възможно нейното изпълнение – например ако потребителят желае да отвори дълга позиция за закупуване на 1 лот евро, модулът проверява дали потребителят има нужната сума за маржин депозита по сметката си и ако това условие е удовлетворено, препраща заявката за оторизация към Back Office системата на брокера). Друга функционалност е изчисляването на текущата печалба/загуба за позиция във всеки момент. Position manager-ът обработва и заявките, идващи от Back Office системата, за промяна на позициите на потребителите – например преизчисляването на позицията по курса за следващия ден в 00.00 часа, автоматично затваряне на позиции при загуби за клиента.

  • Account manager – отговаря за управлението на данните за сметките на потребителите на системата и синхронизирането им с данните за сметката в сървъра с тези в Back Office системата на брокера.

  • Rates of exchange manager – модулът получава данни от бекофис системата на брокера за текущите курсове на различните валути, запазва ги в базата си данни и препраща курсовете към клиентските терминали в зависимост от конфигурацията им.

  • News and Statistics – съхранява новини и статистически данни, публикувани от Back Office системата, които в последстиве се предпращат до клиентите

  • Security Data manager – работи съвместно с подмодула на Security Intrusion Detection System като отговаря за достъпа до и редакцията на данните от Attack Patterns Repository и Raised Security Events Repository. Също така предоставя на Firewall модула данни за IP адресите, които са регистрирани в базата данни Allowed IPs




      1. Back office wrapper – модулът отговаря за комуникацията с бекофис системата на брокера. Услугите, които предлага са:




      • Отваряне на връзка с бекофиса, зависеща от конфигурираните параметри

      • Транслиране на всички съобщения идващи от клинетския терминал или генерирани от сървъра във вид, удобен за конкретната бекофис система, която използва брокера

За целите на системата ще бъдат разработени варианти на модула, които да отговарят на изискванията на стандартните бекофис системи, използвани при брокерите. В зависимост от параметрите указани в конфиргурационния модул ще бъде използвана подходяща инстанция на модула за работа с бекофис системата. Backoffice wrapper-ът представлява реализация на adapter pattern за усъществяване на връзка между сървъра и различни бекофис системи.



Подмодулите на Back office wrapper са:

  • Back office communicator – създава комуникационен канал, който да служи за обмен на съобщения между Back Office системата и сървъра. За по-голяма надеждност и защита връзщата е криптирана и мрежатата е от тип VPN. При разпадане на сесията комуникаторът се опитва да създаде нова такава и при определен брой неуспешни опити изпраща съобщение към Logger модула, който записва грешката и към Message Protocol Processor модула, който изпраща съобщение за грешка към клиентския терминал (в случай че се очаква отговор на заявка, изпратена от него).

  • Back office message translator – генерира съобщения за Back Office системата в подходящ формат въз основа на изпълнението на команди от Main Data Processor модула. Тези команди могат да са продиктувани както от клиентските терминал така и от самия сървър (например поискване на информация за курса на дадени валути на всеки 10 секунди). Разчита постъпващи съобщения от Back Office системата и изпраща команди до отговорните модули. Приемането/предаването на всички съобщения се осъществява от Back Office Message Translator непосредствено след Back office communicator модула.




      1. Configuration – отговаря за настройките на сървъра, нужни за коректната му работа.




  • Back office systems parameters – обединяват настройките за тип на използваната от Back Office-а на брокера система, използвания протокол на работа и формат на съобщенията, които приема тя, и комуникационните параметри за връзка с тази система.

  • Incident notification parameters – това са настройките на Intrusion Detection подмодула на Security. Те определят приоритетите на различните инциденти и начина на уведомяване за настъпил инцидент.

  • Client Terminals Configuration – пази настройките на клиентските терминали като например какви валутни курсове иска да получава потребителят и ги предоставя на Rates of exchange manager-а, който да изпрати желаните от клиента валутни курсове към терминала.




      1. Configuration Dataсъдържа файловете с всички настойки на сървъра, използвани от Configuration модула.




    • BO configuration filesсъдържа данните за бекофис системата на брокера и параметрите за връзка с нея.

    • Incident Notification Configuration filesсъдржа дефинираните приоритети на секюрити събитията и начините за уведомяване на администраторите на системата.

    • Client terminals Configuration Repository съдържа данните за получените от клиентските теминали тяхни настройки.




      1. Logger – модулът отговаря за запазването на системни логове за получени невалидни заявки, логове за действията на потребителите и за получените от бекофиса данни.




    1. Клиентски терминал




      1. Communicator – модулът отговаря за обмена на съобщенията със сървъра и за обработката на протокола на заявките.




  • Message protocol processor – отговаря за обработката на получените заявки от сървъра и разпределянето им за обработка и извикването на интерфейса на съответните модули, които следва да ги обработят. Освен това обработва заявките идващи от останалите модули за изпращане на заявка към сървъра, пакетира ги в съобщение в съответния формат, което предава на Message Gateway-я за изпращане към сървъра.

  • Message Gateway – отговаря за получаването и изпращането на заявки от/към сървъра и изграждането на сигурна връзка с него.




      1. Data storage – модулът съхранява получените от сървъра данни за позициите, сметките, отложениете поръчки на клиента, новините и валутите, указани в конфигурационния му файл. Позволява четенето и синхронизирането им с тези в сървъра при получена информация от него. Данните, съхранени в data storage-а, се използват при симулацията на дефинираните от потребителя експертни анализатори и за генерирането на справки и графики. През определен период извършва backup на данните, получени от сървъра, в History Data Storage с цел запазването на данните от предишни пероиоди, които също могат да бъдат използвани при симулацията на експертни анализатори. Съдържа следните подмодули:




  • Rates Repositoryсъдържа данните за валутните курсове.

  • Accounts Repositoryсъдържа данните за сметките на клиента при брокера

  • News Repositoryсъдържа новините, получени от бекофис системата на брокера

  • Positions Repositoryсъдържа данните за позициите на клиента.




      1. History Data Storageмодулът съхранява данните, получени от сървъра данни за позициите, сметките, отложениете поръчки на клиента и валутите, указани в конфигурационния му файл. Това се прави с цел реализацията на симулация на експертни анализатори, технически анализ и генерирането на справки и графики на базата на данни от изминали пероиди. Например изготвянето на справка и графика за движението на курса на USD/EUR за период последния месец.




  • History Rates Repositoryсъдържа данните за валутните курсове от изминали периоди.

  • History Accounts Repositoryсъдържа данните за сметките на клиента при брокера от изминали периоди

  • History Positions Repositoryсъдържа данните за позициите на клиента от изминали периоди.




      1. Main Data Processorмодулът комуникира с Data Storage и History Data Storage и извлича необходимите от там данни за сметките на клиента при брокера, позициите му и получените от сървъра валутни курсове.




  • Account Managerотговаря за управлението на сметките на клиента и за извличането на данните за тях и синхронизацията им със сървъра и бекофиса.

  • Positions Managerотговаря за управлението на създадените от потребителя, за извличането на данни за тях от Data Storage и синхронизацията на данните за тях със сървъра и съответно бекофис системата на брокера.

  • Rates of Exchange Managerотговаря за управлението на получените от сървъра курсове купува/продава на валутите, за които потребителя се е абонирал и синхронизацията на данните за тях със сървъра и съответно бекофис системата на брокера.

  • News Manager отговаря за управлението на получените от сървъра новини и извличането и запаметяването им в Data Storage-a.




      1. Analysis – модула отговаря за функционалностите по дефиниране на експертни и технически анализатори.




  • Expert analysis – Този подмодул реализира дефинирането, изпълнението и тестването на експертни анализатори и отложени поръчки. В случай че експертния анализатор не е дефиниран като отложена поръчка изпълнението му се извършва единствено върху клиентския терминал и се показва резултата от него.




    • Expert Analysis IDE (Integrated Development Environment) – реализира функционалностите по дефинирането, променянето, конфигурирането, изтриването, тестването, дебъгването и изпълнението експертни анализатори с използването на данни от предишни финансови периоди, запазени в History Data Storage.




      • Expert Analysis Simulator – отговаря за изпълнението на вече дефиниран експертен анализатор на базата на данни за предишни периоди, запазени в History Data Storage и показва резултата от изпълнението и настъпилите промени върху позициите и сметките на потребителя. В случай че експертния анализатор не е дефиниран като отложена поръчка изпълнението му се извършва единствено върху клиентския терминал и се показва резултата от него.

      • Expert Analysis Debugger – позволява постъпковото изпълнение на вече дефиниран експертен анализатор и проверка на стойностите на променливите му, параметрите за сметките и позициите на клиента с цел потребителя да установи, че логиката, която е заложил в експертния анализатор е правилна от негова гледна точка и отговаря на изискванията му .

      • Expert Analysis Language Interpreter - представлява интерпретатор за вградения в клиентския терминал език за дефиниране на експертни анализатори. Основната му цел е да интерпретира езика, на който се дефинират експертните анализатори, до код, който може да бъде изпълнен от клиентския терминал – съответно от Expert Analysis Debugger или Expert Analysis Execution.

      • Queries Manager - модулът отговаря за изпълнението на експертните анализатори дефинирани от потребителя. За целта съдържа подмодул Market Observer, следящ състоянието на пазара и настъпващите промени в него. В случай че бъде удовлетворено условието за изпълнение на някой от изпратените за изпълнение експертни анализатори (отложени поръчки), се изпраща заявка към сървъра за изпълнение на съответния експертен анализатор, той се изпълнява, статусът му се променя на изпълнен и се изпраща e-mail уведомление до потребтиля за настъпилите промени. Изпълнението на анализатора става чрез изпращането на заявка за изпълнение на съответната пазарна поръчка към Position Manager-a и/или Account Manager-a от Main Data Processor модула.



Сподели с приятели:
  1   2   3   4   5




©obuch.info 2024
отнасят до администрацията

    Начална страница