Monday, 5 February 2018

금융 거래 시스템 채권


무역 시스템.
bobsguide를 사용하면 요구 사항에 맞는 거래 시스템 소프트웨어를 쉽게 찾을 수 있습니다. 상품 및 주식에서부터 고정 수입 거래 시스템에 이르기까지 우리는 금융 부문에서 가장 최신의 최신 정보를 제공합니다.
파생 시스템.
bobsguide를 사용하면 파생 거래 시스템을 쉽게 찾을 수 있습니다. 툴킷에서 파생 상품 거래 소프트웨어에 이르기까지
일치하는 제품보기
소프트웨어는 금융, 상품, 파생 상품 및 교환 시장의 모든 측면과 관련이 있습니다.
일치하는 제품보기
필수품 - 특정 에너지.
에너지 제품의 모든 측면과 관련된 제품 및 서비스.
일치하는 제품보기
상품 솔루션.
에너지를 제외한 상품 거래의 모든 측면에 대한 소프트웨어 및 서비스.
일치하는 제품보기
전자 거래 네트워크.
소프트웨어 및 서비스는 하나 이상의 당사자를 전자 목적으로 함께 연결하는 데 중점을 둡니다.
일치하는 제품보기
주식 시스템.
지분 증권의 분석, 거래 및 집행에 중점을 둔 소프트웨어 및 서비스.
일치하는 제품보기
교환 / ECN.
선물, 옵션, 필수품을 포함한 모든 교환 및 전자 통신 네트워크.
일치하는 제품보기
고정 수입 시스템.
기업, 정부를 포함한 일부 또는 모든 고정 수입 증권에 중점을 둔 거래 시스템.
일치하는 제품보기
유동성 관리 시스템.
유동성 관리 시스템은 기업이 최상의 실행을 위해 유동성을 관리 할 수있게합니다.
일치하는 제품보기
유가 증권의 주문 집행을 용이하게하고 관리하는 데 중점을 둔 소프트웨어 및 서비스.
일치하는 제품보기
온라인 거래 및 중개 포털.
기업 및 개인을위한 거래 및 중개 옵션을 제공하는 온라인 서비스.
일치하는 제품보기
거래 실용 소프트웨어 구성 요소.
준수하는 동안 사용자가 계약 거래에 응답하여 인터페이스 할 수있는 다양한 소프트웨어.
일치하는 제품보기
교환 시스템.
가치를 모니터링하고 분석하기위한 금융 교환 시스템 및 거래 플랫폼.
일치하는 제품보기
관련 인사이트.
트렌드 : 마침내 블록 체인 시대가 여기 있습니까? | Fintech 요약 2017.
2017 년 12 월 12 일.
12 월 휘발성 시장을 가리키는 신호.
2017 년 12 월 12 일.
MiFID II 카운트 다운 : 1 월 3 일에 태어났나요?
2017 년 12 월 5 일.
Millennials는 자산 관리의 미래를 어떻게 형성 할 수 있을까요?
2017 년 11 월 16 일.
관련 회사 공지 사항.
베타 캐피탈, 부자 기술 및 운영을 자체 정리로 전환하는 변화를 가져올 브로드 리트 금융 솔루션 채택
2017 년 12 월 15 일.
CREALOGIX는 The Banking Technology Awards 2017에서 영예를 안았습니다.
2017 년 12 월 15 일.
CloudTrade는 긴 꼬리를 관리하기 위해 Cloud Capture를 실행합니다.
2017 년 12 월 14 일.
관련 리소스.
자본 시장에서 민첩성의 혜택을 누리십시오.
2017 년 12 월 14 일.
자산 관리의 파생 상품.
2017 년 10 월 24 일.
이적 - MiFID II 비용 및 요금 - 실용화.
2017 년 10 월 4 일.
관련 이벤트.
Finastra Universe 파리, 2018 년 1 월 23 일.
2018 년 1 월 23 일.
TradeTech FX USA.
2018 년 2 월 12 일.
EMEA 무역 회의 2018.
2018 년 3 월 15 일
관련 채용 정보.
웹 개발자.
2017 년 10 월 18 일
프로젝트 매니저.
2017 년 10 월 18 일
품질 보증 / 테스트 직원.
2017 년 10 월 18 일
자주 묻는 질문.
거래 시스템을 찾고 계십니까?
트랜잭션 속도가 밀리 초 단위로 측정되는 오늘날의 급변하는 디지털 세계에서 회사는 요구 사항에 맞게 빠르고 안정적이며 맞춤화 된 거래 소프트웨어가 필요합니다.
거래는 경쟁력있는 비즈니스이며 적합한 거래 소프트웨어를 찾아 내면 이점을 얻을 수 있습니다. 대부분의 경우 거래 시스템은 거래 프로세스를 단순화하고 자동화하여 신속하고 정확한 거래를 유도하고 종종 수익성을 향상시킵니다.
bobsguide는 주요 거래 시스템 공급 업체의 거래 시스템 소프트웨어 옵션 모음을 제공하여 고정 수입 증권에서부터 온라인 상품 및 주식 시스템에 이르기까지 회사에 가장 적합한 솔루션을 선택할 수 있도록합니다.
어떤 유형의 온라인 거래 소프트웨어가 있습니까?
우리는 각각 특수 기능을 제공하는 다양한 종류의 거래 소프트웨어를 보유하고 있습니다. 회사에 가장 적합한 옵션은 특정 요구 사항에 따라 다릅니다.
우리는 이용 가능한 거래 시스템을 여러 범주로 구분했다. 이렇게하면 귀하의 요구에 가장 적합한 옵션을 찾을 수 있습니다.
중개인을위한 거래 시스템은 일반적으로 금융, 상품, 파생 상품 및 외환 시장과 관련됩니다. 이들은 제 3자가 고객에게 최상의 선택을하도록 설계되었습니다.
상품 무역 시스템은 음식, 금속 및 에너지와 같은 제품이 교환되는 시장뿐만 아니라 기타 원재료 또는 주요 재료에 사용하도록 설계되었습니다.
전자 거래 네트워크는 지정된 가격으로 주문을 사고 팔 수있는 자동화 된 시스템입니다. 브로커는 일반적으로 빠른 보안 거래를 위해 다양한 당사자와의 연결을 설정하는 데 사용됩니다.
주식 시스템은 회사 주식의 매매를 처리하도록 설계되었습니다. 시스템에 따라 주요 증권 거래소 또는 장외 시장 거래에 적합 할 수 있습니다.
교환 / ECN 섹션에는 전자 통신 네트워크에서 작동하는 무역 시스템이 있습니다. 여기에는 선물, 옵션, 상품, 금융, 주식 및 증권 거래 시스템이 포함됩니다.
고정 수입 시스템은 정기적 인 수익을 제공하는 투자와 함께 작동하도록 설계되었습니다. 여기에는 법인, 정부, 모기지 및 자산 담보 증권이 포함됩니다.
주문 관리 시스템 및 실행 관리 시스템 (OMS 및 EMS 거래 시스템이라고도 함)은 일반적으로 FIX 프로토콜을 통해 증권을 원활하게 관리합니다.
온라인 거래 및 중개 포털은 회사와 개인 모두를위한 솔루션을 제공합니다. 또한 시장 정보 및 보고서의 좋은 출처이기도합니다.
딜링 룸에는 다양한 소프트웨어 구성 요소가있어 사용자가 계약 거래에 응답하고 규정 요구 사항을 준수하는지 확인할 수 있습니다.
증권 거래소 시스템은 상품, 주식, 채권 및 파생 상품의 가치 변동을 모니터링하고 분석하는 데 도움을 줄 것입니다.
왜 밥 가이드 야?
bobsguide에서 우리는 업계에서 존경받는 무역 시스템 공급 업체가 개발 한 광범위한 무역 시스템을 모았습니다. 각 시스템은 거래 현장의 일상적인 비즈니스 흐름을 향상시켜 가능한 한 효율성과 신뢰성을 보장 할 수있는 능력으로 선택되었습니다.
그러나 우리는 당신이 소스 시스템 소프트웨어를 거래하는 것을 돕기 위해 여기에 온 것은 아닙니다. 또한 최신 무역 시스템 뉴스 및 이벤트를 제공하여 업계에서 최신 상태를 유지할뿐만 아니라 업계에서 자신의 지위를 향상시킬 수있는 기회를 제공하기 위해 트레이딩 직무를 중심으로하는 여러 직업 기회를 제공합니다.
bobsguide가 제공하는 것을 최대한 활용하려면 오늘 등록하십시오. 무료이며 빠르고 간단하며 전체 수집 시스템, 서비스, 뉴스 및 이벤트 공지에 액세스 할 수 있습니다.
Insight는 매일받은 편지함으로 전달됩니다.
당사의 시장을 선도하는 뉴스 레터는 fintech 업계 소식, 통찰력 및 분석의 귀중한 출처입니다.
2017 년 12 월 11 일
2017 년 12 월 12 일
2017 년 2 월 10 일
2001 년 1 월 12 일.
2017 년 12 월 8 일.
전세계 금융 기술 구매자와 판매자를 연결합니다.
Contentive Group Ltd. 의 파트
전세계 금융 기술 구매자와 판매자를 연결합니다.
Contentive Group Ltd. 의 파트
전세계 금융 기술 구매자와 판매자를 연결합니다.
Contentive Group Ltd. 의 파트
회사 공지 사항.
예배 규칙서.
이벤트.
bobsguide는 전세계 금융 기술 구매자와 판매자를 연결합니다.
bobsguide는 매달 70,000 명이 넘는 fintech 구매자와 판매자를 매료시킵니다. 그들은 우리 플랫폼에서 얻은 최신 통찰력, 우리의 fintech 제품 디렉토리를 통해 최고의 공급 업체를 찾고, 새로운 흥미 진진한 직무를 찾거나 직무 목록을 통해 비즈니스를위한 디지털 인재를 발굴하고 핵심 라이브 및 디지털 이벤트에 대해 배우고, 백서 및 사례 연구와 같은 유용한 리소스를 다운로드 할 수 있습니다.

금융 교육을위한 트레이딩 시뮬레이션 및 모듈.
FTS는 쌍방향 거래 시뮬레이션 시스템, 가상 포트폴리오 시뮬레이션 시스템, 재무 제표 분석 모듈과 같은 모듈 교육 및 실험 연구를위한 플랫폼을 제공합니다.
수상 경력.
데모 요청.
메뉴 위 또는 인쇄 가능한 문서에서 FTS를 탐색하십시오.
모든 장치에서 실행됩니다.
강사는 스마트 폰을 포함한 모든 장치에서 시장을 시작하고 실행할 수 있습니다 학생은 모든 스마트 장치에서 연결할 수 있습니다 컴퓨터가 장착 된 교실 또는 거래실의 필요성 제거 온라인 및 하이브리드 교육 과정에 이상적 사용해보기 : 여기를 클릭하십시오 새 창에서 "Connect to Demo"를 클릭하십시오.
고급 기능.
실시간 Excel 링크 프로그램 트레이딩 기능 대체 시장 미세 구조 실험적인 시장 조사에 필요한 고급 사례 및 기능을 지원합니다.
어떻게.
모든 장치에서 실행됩니다.
모든 스마트 장치에서 언제 어디서나 거래 가능 분석 지원 기능 내장 성능 보고서.
고급 기능.
알고리즘 트레이딩 기능 전체 분석 스위트 거래 내역 및 성과에 대한 폭 넓은 분석 강사 보고서.
어떻게.
학생들은 모든 단계에서 즉각적이고 상세한 지침과 함께 대화 형 및 체계적인 학습 환경에서 실제 회사 문서로 작업합니다.
학생들이 정보를 추출하고 비율을 구성함에 따라 다른 회사에서 정보를보고하는 방법, 이 정보를 비율로 매핑하는 방법, 경험을 쌓을 때 측정을 해석하는 데 필요한 판단력을 개발하는 것과 같이 중요한 실제 정보를 흡수합니다.
비디오.
주식 및 포트폴리오 수익의 통계적 특성 역사적 데이터로부터 짧은 매출을 유무에 관계없이 효율적인 국경의 계산 및 플로팅 지침.
역사적인 수확량, 현물 비율 및 포워드 비율 플롯 장기간의 경향 및 평균 복귀에 대한 시각적 느낌을 얻기위한 곡선을 애니메이션합니다. 변동성 및 상관 관계 계산 주성분 분석 수행 다양한 예방 접종 전략의 효과를 이해하는 백 테러 지침.
옵션 지불금을 가르치는 입문 모듈 수익 및 지불금 다이어그램의 차이점 이해하기 일반적인 전략 플롯 자신의 데이터 지침을 가져올 수 있습니다.
옵션 가격 결정의 2 항 모델을 가르치기위한 입문 모듈 미국식 옵션과 유럽식 옵션의 차이점 이해 나무가 변동성 예측치에 어떻게 조정되는지 이해 기본 자산의 가격과 다른 경로의 옵션 값을 비교하십시오 지침.
Treasury Calculator 공시 된 재무부 가격과 수익률 간의 관계 이해 수익률 곡선 근사 및 보간법에 대한 이해 지속 시간 및 볼록률 지침 BDT (Black-Derman-Toy) 모듈 수익률 변동성 또는 지역 변동성을 사용하여 자신의 수익률 곡선 데이터에 대한 BDT 모델을 보정합니다. Excel에서 계산 된 격자는 이자율 파생 상품 가격 지침을 제공합니다. 지침 이항 모듈의 한도 이항 및 삼항 모형의 수렴 특성을 검정 - 숄즈 모형으로 검사합니다. 지침 이국성 옵션 이항 나무를 사용하여 다양한 이국적 옵션의 성과와 가치를 이해합니다 지침 옵션 계산기 옵션에 대한 값, 내재 변동성 및 헤지 매개 변수를 계산합니다. 미국 옵션에 대한 이항 및 삼항 모델을 계산합니다. Excel에 링크하여 많은 옵션 세트에 대해 계산합니다. 지침 본드 예방 접종 레슨 면역이 작동하는 방식을 이해하기위한 자체 포함 된 대화식 강의 이온 주요 구성 요소 학습 시각적 계산기를 사용하여 주성분 분석의 본질 이해 지침.
시장 실험 FTS 인터랙티브 마켓은 금융 시장 실험을 위해 사용하기 쉽고 포괄적 인 프레임 워크를 제공합니다. 정보 집계, 투기 거품 및 정보 과잉, 과도한 변동성 및 거래 등에 대한 실험을하는 것은 매우 간단합니다. 이 시스템은 또한 다양한 마이크로 구조 (콜 시장 및 연속적인 더블 경매, 견적 및 주문 주도 시장) 및 매우 일반적인 보수 구조를 허용하여 광범위한 인센티브를 실험 환경에서 구현할 수 있도록합니다. 전체 실험은 스프레드 시트에서 정의됩니다. 그 기능을보기위한 가장 쉬운 방법은 기존 사례 (예 : 1991 Journal Journal of Finance 기사에서 사용 된 RE2 사례)를 보는 것입니다. 그런 다음 사례를 정의하는 스프레드 시트를 살펴보십시오. 사례 RE2가 포함 된 통합 문서는이 링크에서 사용할 수 있습니다. 스프레드 시트의 여러 부분에 대한 설명이 여기에 나와 있습니다. 시장 실험을 수행하려면 Google에 문의하십시오. 실험 설정을 도와 드릴 수 있습니다.
FTS Experimental System 시장 외에도 경매, 게임 이론 실험, 행동 금융 실험 등 원하는 거의 모든 실험을 실행할 수있는 "일반적인"실험 시스템도 제공합니다. Excel 스프레드 시트에서 전체 실험을 지정합니다. FTS 실험 서버를 실행합니다. FTS 실험 클라이언트가 서버에 연결합니다. 서버가 스프레드 시트를 읽고 클라이언트에 정보를 보냅니다. 클라이언트는 실험을 위해 필요에 따라 결정합니다. 서버는 이러한 결정을 가져오고 다시 스프레드 시트에 추가 정보가이 문서에 있습니다.
설치.
Windows 사용자.
Windows 사용자는 FTS System Manager를 설치해야합니다. 시스템의 어느 부분을 실행하는 가장 간단한 방법입니다. SETUP. EXE 파일을 다운로드하려면 여기를 클릭하십시오. FTS System Manager 지침 FTS Real Time System에 액세스하려면 브라우저 기반 버전의 클라이언트를 사용할 수도 있습니다. HTML5와 호환되지 않는 구형 브라우저의 경우 rtfts로 이동하십시오. 최신 브라우저의 경우 ftsrealtime으로 이동하십시오. 웹 소켓 연결을 허용하지 않는 방화벽 뒤에있는 최신 브라우저의 경우 rtfts 지침 : 웹 기반 시스템 웹 기반 FTS Interactive 시장 강사는 ftswebmarket에서 시장을 운영합니다. 학생들은 ftswebtrader에서 웹 마켓을 운영하여 시장에 연결합니다.
모든 모듈에 대한 전체 액세스를 위해서는 Parallels VMWare와 같은 Windows 에뮬레이터를 사용하고 Windows 사용자를위한 지침을 따르십시오. FTS Real Time System에 액세스하려면 브라우저 기반 버전의 클라이언트를 사용할 수 있습니다. HTML5와 호환되지 않는 구형 브라우저의 경우 rtfts로 이동하십시오. 최신 브라우저의 경우 ftsrealtime으로 이동하십시오. 웹 소켓 연결을 허용하지 않는 방화벽 뒤에있는 최신 브라우저의 경우 rtfts 지침 : 웹 기반 시스템 웹 기반 FTS Interactive 시장 강사는 ftswebmarket에서 시장을 운영합니다. 학생들은 ftswebtrader에서 웹 마켓을 운영하여 시장에 연결합니다.
스마트 폰 및 태블릿 사용자.
FTS Real Time System에 액세스하려면 브라우저 기반 버전의 클라이언트를 사용할 수 있습니다. HTML5와 호환되지 않는 구형 브라우저의 경우 rtfts로 이동하십시오. 최신 브라우저의 경우 ftsrealtime으로 이동하십시오. 웹 소켓 연결을 허용하지 않는 방화벽 뒤에있는 최신 브라우저의 경우 rtfts 지침 : 웹 기반 시스템 웹 기반 FTS Interactive 시장 강사는 ftswebmarket에서 시장을 운영합니다. 학생들은 ftswebtrader에서 웹 마켓을 운영하여 시장에 연결합니다.
그것은 John O'Brien 교수와 Sanjay Srivastava 교수에 의해 설립되었습니다.
John O'Brien (University of Minnesota 1985)은 카네기 멜론 대학 (Carnegie Mellon University)의 회계 및 실험 경제학 부교수이자 카네기 멜론 대학 (Carnegie Mellon University)의 카타르 부교수입니다.
Sanjay Srivastava (PhD MIT 1982)는 Carnegie Mellon University의 경제 및 재무 교수였습니다. 그는 현재 Georgia State University의 Robinson College of Business에서 부교수로 재직 중입니다.

금융 거래 시스템 채권
(조나단 사이먼)
대규모 패턴 모음이나 패턴 언어에서 벗어나기 쉽습니다. 패턴은 아이디어를 재사용 가능한 형태로 추상화 한 것입니다. 흔히 패턴을 매우 유용하게 만드는 매우 일반적인 패턴은 이해하기 어렵게 만듭니다. 때때로 패턴을 이해하는 데 도움이되는 가장 좋은 방법은 실생활의 예입니다. 일어날 수있는 일에 대한 인위적 시나리오가 아닙니다. 그러나 실제로 일어나는 것과 일어날 일은 무엇인가.
이 장에서는 발견 프로세스를 사용하여 문제점을 해결하는 패턴을 적용합니다. 우리가 논의 할 시스템은 초기 설계부터 생산까지 2 년 동안 함께 일한 채권 거래 시스템입니다. 우리는 마주 치게되었던 시나리오와 문제와 패턴으로 그것을 해결하는 방법을 조사 할 것입니다. 여기에는 패턴을 선택하는 결정 프로세스뿐만 아니라 시스템 요구에 맞게 패턴을 결합하고 조정하는 방법이 포함됩니다. 또한 비즈니스 요구 사항, 고객 결정, 아키텍처 및 기술 요구 사항, 레거시 시스템 통합 등 실제 시스템에서 발생하는 세력을 고려하여이 모든 작업을 수행합니다. 이 접근법의 의도는 실용적인 응용을 통해 패턴 그 자체에 대한 명확한 이해를 제공하는 것입니다.
시스템 구축.
주요 월스트리트 투자 은행은 채권 매매 데스크의 업무 흐름을 간소화하기 위해 채권 가격 책정 시스템을 구축하기 시작했습니다. 현재 채권 거래자들은 다수의 채권 가격을 몇 개의 다른 거래 장소에 보내야하며 각 거래 장소에는 자체 사용자 인터페이스가 있습니다. 이 시스템의 목표는 단일 캡슐화 된 사용자 인터페이스에서 채권 시장에 특화된 고급 분석 기능과 함께 모든 채권 가격 책정의 세부 사항을 최소화하는 것입니다. 이는 다양한 통신 프로토콜을 통한 여러 구성 요소와의 통합 및 통신을 의미합니다. 시스템의 높은 수준의 흐름은 다음과 같습니다.
높은 수준의 흐름.
첫째, 시장 데이터가 시스템에 제공됩니다. 시장 데이터는 사람들이 자유 시장에서 채권을 사거나 팔고 자하는 것을 나타내는 채권의 가격 및 기타 자산과 관련된 데이터입니다. 시장 데이터는 즉시 데이터를 변경하는 분석 엔진으로 전송됩니다. 애널리틱스는 채권의 가격 및 기타 속성을 변경하는 금융 애플리케이션을위한 수학 함수를 말합니다. 이들은 입력 변수를 사용하여 함수의 결과를 특정 본드에 맞추는 일반 함수입니다. 각 상장 데스크톱에서 실행되는 클라이언트 응용 프로그램은 상인 당 가격 책정마다 채권에 대한 분석의 특성을 제어하여 상거래 기준으로 분석 엔진을 구성합니다. 분석이 시장 데이터에 적용되면 수정 된 데이터가 다른 회사의 상인이 채권을 매매 할 수있는 다양한 거래 장소로 보내집니다.
패턴이있는 아키텍처.
시스템의 워크 플로우에 대한이 개요를 통해 설계 프로세스 중에 발생하는 일부 건축 문제에 접근 할 수 있습니다. Let†™ s는 우리가 지금까지 알고있는 것을 보았습니다. 거래자는 Windows NT 및 Solaris 워크 스테이션 모두에서 응답이 빠른 응용 프로그램이 필요합니다. 따라서 우리는 플랫폼 독립성과 사용자 입력 및 시장 데이터에 신속하게 응답 할 수 있기 때문에 클라이언트 애플리케이션을 Java 씩 클라이언트로 구현하기로 결정했습니다. 서버 측에서는 시스템에서 활용할 레거시 C ++ 구성 요소를 상속합니다. 시장 데이터 구성 요소는 TIBCO 정보 버스 (TIB) 메시징 인프라와 통신합니다.
우리는 다음 구성 요소를 상속 받고 있습니다.
시장 데이터 가격 공급 서버 : 들어오는 시장 데이터를 TIB에 게시합니다. 분석 엔진 : 들어오는 시장 데이터에 대한 분석을 수행하고 수정 된 시장 데이터를 TIB에 브로드 캐스트합니다. Contribution Server : 거래 장소와의 모든 통신을 수행합니다. 거래 장소는 은행이 통제하지 않는 제 3 자 구성 요소입니다.
기존 시장 데이터 하위 시스템.
유산 기여 하위 시스템.
개별 하위 시스템 (Java 씩 클라이언트, 시장 데이터 및 컨트 리뷰 션)이 통신하는 방법을 결정해야합니다. 두꺼운 클라이언트가 기존 서버와 직접 통신 할 수는 있지만 클라이언트에서 너무 많은 비즈니스 논리가 필요합니다. 대신, we†™ ll는 legacy servers†"시장 자료를위한 가격 설정 출입구에 무역 장소에 가격을 보내기를위한 기여금 출입구와 교통하기 위하여 자바 출입구 한 쌍을 건설합니다. 이렇게하면 이러한 영역과 관련된 비즈니스 논리를 멋지게 캡슐화 할 수 있습니다. 시스템의 현재 구성 요소는 다음과 같습니다. †marked로 표시된 연결. ”는 우리가 구성 요소의 일부가 어떻게 통신하는지 아직도 확신 할 수 없다는 것을 나타냅니다.
시스템과 그 구성 요소.
첫 번째 통신 질문은 데이터를 교환하기 위해 Java 씩 (thick) 클라이언트와 두 개의 Java 서버 구성 요소를 통합하는 방법입니다. Let†™ s는이 책에서 제안 된 네 가지 통합 스타일 인 파일 전송, 공유 데이터베이스, 원격 프로 시저 호출 및 메시징을 살펴 봅니다. 우리는 클라이언트와 데이터베이스 사이의 추상화 계층을 만들고 don†™ t가 클라이언트에 데이터베이스 액세스 코드를 갖고 싶어하므로 공유 데이터베이스를 즉시 제외 할 수 있습니다. 파일 전송은 현재 가격이 거래 장소로 보내지는 것을 보장하기 위해 최소한의 대기 시간이 필요하기 때문에 마찬가지로 배제 될 수 있습니다. 이로 인해 원격 프로 시저 호출 또는 메시징 중 하나가 선택됩니다.
Java 플랫폼은 원격 프로 시저 호출 및 메시징에 대한 기본 제공 지원을 제공합니다. RPC 스타일 통합은 RMI (Remote Method Invocation), CORBA 또는 EJB (Enterprise Java Beans)를 사용하여 수행 할 수 있습니다. Java Messaging Service (JMS)는 메시징 스타일 통합을위한 공통 API입니다. 따라서 두 가지 통합 스타일은 Java로 구현하기 쉽습니다.
따라서이 프로젝트, 원격 프로 시저 호출 또는 메시징에서 더 잘 작동합니까? There†™ s 가격 설정 출입구의 단지 1 개의 사례 및 체계에있는 기여금 출입구의 1 개의 인스턴스, 그러나 보통 많은 두꺼운 클라이언트는 동시에이 서비스 (특정 시간에 로그인되는 우연히 일어나는 각 채권 거래자를위한 하나)에 연결합니다. 또한이 은행은 다른 애플리케이션에서 활용할 수있는 일반적인 가격 책정 시스템을 원합니다. 따라서 알 수없는 수의 Think Client 외에도 게이트웨이에서 나오는 가격 데이터를 사용하는 다른 애플리케이션이 알려지지 않은 경우도 있습니다.
씩 클라이언트 (또는 가격 데이터를 사용하는 다른 응용 프로그램)는 RPC를 사용하여 게이트웨이에 전화를 걸면 가격 데이터를 받고 처리를 호출 할 수 있습니다. 그러나 가격 데이터는 지속적으로 게시되며 일부 고객은 특정 데이터에만 관심이 있으므로 적시에 적절한 고객에게 관련 데이터를 제공하는 것이 어려울 수 있습니다. 클라이언트는 게이트웨이를 폴링 할 수 있지만 많은 오버 헤드가 발생합니다. 게이 트웨이는 데이터를 사용할 수있게되는 즉시 클라이언트에서 데이터를 사용할 수 있도록하는 것이 좋습니다. 그러나 이것은 각 게이트웨이가 현재 어떤 클라이언트가 활성 상태이고 어떤 특정 데이터가 필요한지 추적해야합니다. 그런 다음 새 데이터 조각이 사용 가능 해지면 (초당 수없이 발생) 게이트웨이는 각 관심 클라이언트에게 클라이언트에 데이터를 전달하는 RPC를 만들어야합니다. 이상적으로 모든 클라이언트는 동시에 통보되어야하므로 각 RPC는 자체 스레드로 만들어야합니다. 이 작업은 가능하지만 매우 빠르게 복잡해지고 있습니다.
메시징은이 문제를 크게 단순화합니다. 메시징을 통해 다양한 유형의 가격 데이터에 대해 별도의 채널을 정의 할 수 있습니다. 그런 다음 게이트웨이가 새 데이터를 가져 오면 해당 데이터 유형에 대한 게시 - 구독 채널에 해당 데이터가 포함 된 메시지를 추가합니다. 한편 특정 유형의 데이터에 관심이있는 모든 고객은 해당 유형의 채널에서 수신 대기합니다. 이러한 방식으로, 게이트웨이는 청취자 애플리케이션이 얼마나 많은지 또는 그들이 무엇인지 알 필요없이 원하는 누구에게나 새로운 데이터를 쉽게 전송할 수 있습니다.
클라이언트는 여전히 게이트웨이에서 동작을 호출 할 수 있어야합니다. 두 개의 게이트웨이 만 있기 때문에 클라이언트가 메소드를 동 기적으로 호출하는 동안 차단할 수 있으므로 클라이언트 - 게이트웨이 호출은 RPC를 사용하여 쉽게 구현할 수 있습니다. 그러나 이미 게이트웨이 간 통신을 위해 메시징을 사용하고 있으므로 메시지는 클라이언트와 게이트웨이 간의 통신을 구현하는 데에도 유용합니다.
따라서 게이트웨이와 클라이언트 간의 모든 통신은 메시징을 통해 수행됩니다. 모든 구성 요소가 Java로 작성 되었기 때문에 JMS는 메시징 시스템으로 쉽게 선택할 수 있습니다. 이는 메시징 인프라를 거의 변경하지 않고 현재 시스템과 통합 할 수있는 메시지 버스 또는 아키텍처를 효과적으로 만듭니다. 이렇게하면 응용 프로그램의 비즈니스 기능을 은행이 개발하는 다른 응용 프로그램에서 쉽게 사용할 수 있습니다.
JMS와 통신하는 Java 구성 요소.
JMS는 단순히 사양이며 JMS 호환 메시징 시스템을 결정해야합니다. 우리는 IBM MQSeries JMS를 사용하기로 결정했습니다. 은행이 ibmIBM 상점이기 때문입니다. WebSphere 응용 프로그램 서버와 다른 많은 IBM 제품을 사용하기 때문입니다. 결과적으로 MQSeries는 이미 지원 인프라와 제품의 사이트 라이센스가 있으므로 사용하게됩니다.
다음 질문은 MQSeries 메시징 시스템을 독립형 C ++ Contribution 서버 및 TIBCO 기반 Market Data and Analytics Engine 서버와 연결하는 방법입니다. MQSeries 사용자가 TIB 메시지에 액세스 할 수있는 방법이 필요합니다. 그러나 어떻게? 아마도 Message Translator 패턴을 사용하여 TIB 메시지를 MQSeries 메시지로 변환 할 수 있습니다. MQSeries 용 C ++ 클라이언트는 Message Translator 역할을하지만 JMS Translator를 사용하면 JMS 서버 독립성이 희생됩니다. TIBCO에는 Java API가 있지만 고객 아키텍트와 관리자는이를 거부했습니다. 결과적으로 Message Translator 접근 방식을 포기해야합니다.
TIB 서 v에서 MQSeries 서 v 로의 브릿지는 C ++과 Java 간의 통신이 필요합니다. 우리는 CORBA를 사용할 수 있지만 메시징은 무엇입니까? Message Translator 패턴을 면밀히 살펴보면 통신 프로토콜 사용시 채널 어댑터와 관련이 있음을 알 수 있습니다. 채널 어댑터의 핵심은 비 메시징 시스템을 메시징 시스템에 연결하는 것입니다. 두 메시징 시스템을 연결하는 한 쌍의 채널 어댑터가 메시징 브릿지입니다.
메시징 브리지의 목적은 한 메시징 시스템에서 다른 메시징 시스템으로 메시지를 전송하는 것입니다. 이는 언어 내 Java to C ++ 통신의 복잡성이 추가됨에 따라 수행하고있는 작업입니다. 채널 어댑터와 CORBA의 조합을 사용하여 교차 언어 메시징 브리지를 구현할 수 있습니다. TIB와의 통신을 관리하는 C ++ 및 JMS와의 통신을 관리하는 Java에서 하나씩 두 개의 경량 채널 어댑터 서버를 구축 할 것입니다. 메시지 엔드 포인트 인이 두 채널 어댑터는 CORBA를 통해 서로 통신합니다. MQSeries에 대한 우리의 선택처럼 JNI가 회사 표준이기 때문에 CORBA를 사용합니다. 메시징 브리지는 겉으로는 호환되지 않는 메시징 시스템과 다른 언어 사이에서 시뮬레이션 된 메시지 번역을 효과적으로 구현합니다.
채널 어댑터를 사용하는 메시지 변환기.
다음 다이어그램은 게이트웨이 및 기타 구성 요소를 포함한 현재 시스템 설계를 보여줍니다. 이것은 패턴 적용의 좋은 예입니다. Message Translator 패턴을 구현하기 위해 두 개의 Channel Adapter를 비 메시징 프로토콜과 결합하여 하나의 패턴을 효과적으로 사용하여 다른 패턴을 구현했습니다. 또한 메시징 시스템을 비 메시징 시스템에 연결하는 대신 두 개의 메시징 시스템을 비 메시징 교차 언어 변환 프로토콜로 연결하도록 채널 어댑터의 컨텍스트를 변경했습니다.
채널 어댑터가있는 현재 시스템입니다.
채널 구성.
패턴 작업의 핵심은 언제 어떤 패턴을 사용할 것인지뿐만 아니라 가장 효과적으로 사용하는 방법을 아는 것입니다. 각 패턴 구현은 다른 설계 기준뿐만 아니라 기술 플랫폼의 특성을 고려해야합니다. 이 섹션에서는 분석 엔진과 통신하는 시장 데이터 서버의 컨텍스트에서 게시 - 구독 채널을 가장 효율적으로 사용하기 위해 동일한 검색 프로세스를 적용합니다.
실시간 시장 데이터는 TIB에서 시장 데이터를 브로드 캐스팅하는 C ++ 서버 인 시장 데이터 피드에서 시작됩니다. 시장 데이터 피드는 가격을 게시 할 각 채권에 대해 별도의 게시 - 구독 채널을 사용합니다. 새로운 채권마다 새로운 채널이 필요하기 때문에 약간 극단적으로 보일 수 있습니다. 하지만 실제로 TIBCO에서 채널을 만들 필요가 없기 때문에 그렇게 심각하지 않습니다. 오히려 채널은 주제라는 계층 적 이름 집합으로 참조됩니다. 그런 다음 TIBCO 서버는 주제별로 단일 메시지 흐름을 필터링하여 각 고유 주제를 단일 가상 채널로 보냅니다. 결과는 매우 가벼운 메시지 채널입니다.
몇 가지 채널을 통해 게시하는 시스템을 만들 수 있으며 구독자는 관심있는 가격에 대해서만 청취 할 수 있습니다. 구독자는 메시지 필터 또는 선택 소비자를 사용하여 관심있는 채권 가격에 대한 전체 데이터 흐름을 필터링하고 각 메시지 받은대로 처리해야합니다. 시장 데이터가 본드 전용 채널에 게시되면 구독자는 일련의 채권에 대한 업데이트를 등록 할 수 있습니다. 이를 통해 가입자는 채널을 선택적으로 구독하고 메시지 수신 후 결정하는 것이 아니라 관심있는 업데이트 만 수신함으로써 효과적으로 "필터링"할 수 있습니다. 필터링을 피하기 위해 여러 채널을 사용하는 것이 비표준 메시징 채널 사용이라는 점에 유의해야합니다. 그러나 TIBCO 기술의 맥락에서 필터를 구현하거나 소유 할 것인지 또는 너무 많은 채널을 사용할지 여부보다는 TIBCO에 내장 된 채널 필터링을 실제로 사용할지 결정합니다.
우리가 설계해야하는 다음 요소는 분석 엔진, 시장 데이터를 수정하고이를 TIB에 재방송하는 또 다른 C ++ / TIB 서버입니다. Java / JMS 개발 범위를 벗어나지 만 분석 엔진의 기본 '고객'이기 때문에 C ++ 팀과 긴밀하게 협력하여 설계하고 있습니다. 현재 문제는 새로 수정 된 시장 데이터를 가장 효율적으로 재방송하는 채널 구조를 찾는 것입니다.
시장 데이터 가격 피드로부터 상속 된 채권마다 하나의 전용 메시지 채널이 이미 있으므로 시장 데이터를 수정하고 수정 된 시장 데이터를 채권 전용 메시지 채널에 재방송하는 것이 논리적 일 것입니다. 그러나 채권 가격을 수정하는 분석은 거래 상 구체적이기 때문에 이는 효과가 없습니다. 본드 메시지 채널에서 수정 된 데이터를 재방송하는 경우 일반 시장 데이터를 거래자 특정 데이터로 대체하여 데이터 무결성을 파괴합니다. 반면에 우리는 동일한 채널에 게시하는 상인 특정 시장 데이터에 대해 다른 메시지 유형을 사용할 수 있습니다. 구독자는 데이터 무결성을 손상시키지 않으려는 메시지를 결정할 수 있습니다. 그러나 고객은 다른 거래자를위한 메시지를 분리하기 위해 자체 필터를 구현해야합니다. 또한 가입자가받는 메시지가 상당히 증가하여 불필요한 부담이됩니다.
두 가지 옵션이 있습니다.
상인 당 하나의 채널 : 각 상인은 수정 된 시장 데이터에 대해 지정된 채널을 가지고 있습니다. 이렇게하면 원래의 시장 데이터가 그대로 유지되고 각 상인 애플리케이션은 수정 된 가격 업데이트를 위해 특정 상인 메시지 채널을 청취 할 수 있습니다. 본드 당 상인 당 하나의 채널 : 해당 채권의 수정 된 시장 데이터에 대해서만 개별 채권마다 하나의 메시지 채널을 만듭니다. 예를 들어, 채권 ABC에 대한 시장 데이터는 채널 "본드 ABC"에 게시되고, 트레이더 A에 대한 수정 된 시장 데이터는 메시지 채널 "상인 A, 채권 ABC"에 게시되고, 상인 B에 대한 시장 데이터는 "상인 B , 본드 ABC "등등.
상인 당 하나의 채널.
상인 당 채권마다 하나의 채널.
각 방법에는 장단점이 있습니다. 예를 들어, 채권당 접근 방식은 훨씬 많은 메시지 채널을 사용합니다. 최악의 경우 시나리오에서 메시지 채널 수는 총 채권 수와 거래자 수를 곱한 값이됩니다. 우리는 약 20 명의 상인 만 있다는 것을 알기 때문에 만들어지는 채널 수에 상한선을 둘 수 있습니다. 이로 인해 상한값이 10,000 범위 이하로 떨어지며 이는 시장 데이터 가격 피드가 사용하는 약 100,000 개의 메시지 채널에 비해 너무 이색 적이 지 않습니다. 또한, 우리가 TIB와 메시지 채널을 사용하고 있기 때문에 상당히 저렴하므로 메시지 채널의 수가 심각한 문제는 아닙니다. 반면에 메시지 채널의 수는 관리 관점에서 문제가 될 수 있습니다. 채권이 추가 될 때마다 각 상인을위한 채널을 유지해야합니다. 이는 매우 역동적 인 시스템에서 심각 할 수 있습니다. 그러나 우리 시스템은 본질적으로 정적입니다. 또한 메시지 채널을 자동으로 관리하기위한 인프라도 있습니다. 이것은 유사한 접근 방식을 사용하는 레거시 구성 요소의 상속 된 아키텍처와 결합하여 단점을 최소화합니다. 이것은 불필요하게 과도한 수의 메시지 채널을 만들어야한다는 것을 의미하지는 않습니다. 오히려 이유가있을 때 많은 수의 메시지 채널을 사용하는 아키텍처 접근 방식을 구현할 수 있습니다.
그리고이 경우에 논리의 위치로 오는 이유가 있습니다. 트레이더 당 접근 방식을 구현하는 경우 애널리틱스 엔진에 입력 및 출력 채널을 그룹화하는 논리가 필요합니다. 애널리틱스 엔진의 입력 채널이 본드당이고 출력 메시지 채널이 상거래 당, 애널리틱스 엔진이 특정 거래자에 대한 여러 채권의 모든 분석 입력을 거래자 특정 출력 메시지 채널로 라우팅하도록 요구하기 때문입니다. 이를 통해 분석 엔진을 콘텐츠 기반 라우터로 전환하여 애플리케이션에 맞춤 라우팅 논리를 구현할 수 있습니다.
애널리틱스 엔진은 메시지 버스 구조 다음에있는 여러 다른 시스템에서 사용할 수있는 일반 서버입니다. 그래서 우리 don†™ t는 시스템 특정 기능으로 그것을 흐리게하고 싶습니다. 반면 채권 가격의 분석 결과를 소유 한 상인의 아이디어는 회사가 인정한 관행이므로 채권당 접근법이 효과적입니다. 채권 접근법은 시장 데이터 피드의 메시지 채널 분리를 그대로 유지하면서 여러 메시지 채널을 추가합니다. 우리는 클라이언트에 도달하기 전에 Content-Based Router가 이러한 여러 채널을 관리 가능한 채널 수로 결합하기를 원합니다. 우리 don†™ t는 수천 또는 메시지 채널 s의 수천을 경청하기 위하여 trader†™ s 2 바탕 화면에 달리는 클라이언트 신청을 원한다. 이제 질문은 Content-Based Router를 어디에 둘 것인지를 결정합니다. 우리는 단순히 C ++ / TIB 채널 어댑터가 모든 메시지를 단일 메시지 채널의 가격 게이트웨이로 전달하도록 할 수 있습니다. 이것은 두 가지 이유로 나쁘다. 우리는 C ++과 Java 사이의 비즈니스 로직을 분리 할 것이고, 우리는 나중에 데이터 흐름에서 필터링을 피할 수 있도록 TIB 쪽에서 개별 메시지 채널의 이점을 잃을 것입니다. Java 구성 요소를 살펴보면 Pricing Gateway에 배치하거나 Pricing Gateway와 클라이언트 사이에 중간 구성 요소를 만들 수 있습니다.
이론적으로, 채권 기반의 메시지 채널 분리를 클라이언트 에까지 지속한다면 가격 결정 게이트웨이는 가격 결정 게이트웨이 및 분석 엔진과 동일한 채널 구조로 가격 정보를 재방송합니다. 이것은 JMS의 모든 본드 전용 TIB 채널의 복제를 의미합니다. Pricing Gateway와 클라이언트간에 중간 구성 요소를 만들지 만 Pricing Gateway는 여전히 JMS의 모든 채널을 복제해야합니다. 반면에 가격 결정 게이트웨이에 로직을 직접 구현하면 JMS вЂ에서 많은 수의 채널을 복제하지 않아도되므로 상인 당 하나의 순서로 훨씬 적은 수의 채널을 생성 할 수 있습니다. Pricing Gateway는 C ++ / TIB Channel Adapter를 통해 시스템의 모든 거래자의 각 채권에 대한 소비자로 등록됩니다. 그런 다음 가격 게이트웨이는 각 특정 클라이언트를 해당 특정 상인과 관련된 메시지 만 전달합니다. 이렇게하면 JMS 끝에서 적은 수의 메시지 채널 만 사용하면서 TIB 끝에서 분리의 이점을 극대화합니다.
클라이언트에 대한 완벽한 마켓 데이터 흐름.
메시지 채널 레이아웃 토론은 패턴 통합이 중요한 이유의 좋은 예입니다. 여기서 목표는 메시지 채널을 효과적으로 사용하는 방법을 파악하는 것이 었습니다. 당신은 isn†™ t를 충분히 사용한다고 말합니다. 가장 좋은 방법을 구현하고 현재의 문제를 해결하기 위해 시스템에 통합하는 방법을 찾아야합니다. 또한, 이 예는 실제 비즈니스 활동을 보여줍니다. 우리가 어떤 구성 요소에서 비즈니스 로직을 구현할 수 있다면, 우리는 상인 당 접근 방식을 따라갈 수 있었고, 더 적은 채널로 전체적으로보다 단순한 접근 방식을 구현할 수있었습니다.
메시지 채널 선택?
Java / JMS 구성 요소와 C ++ / TIBCO 구성 요소 사이의 통신 메커니즘을 알았으므로 Message Channel 구조화를 살펴 보았으므로 Java 구성 요소가 통신에 사용해야하는 JMS 메시지 채널의 유형을 결정해야합니다. JMS에서 사용 가능한 다른 메시지 채널 중에서 선택할 수 있기 전에 let†™는 시스템의 상위 메시지 흐름을 살펴 봅니다. 우리는 클라이언트와 통신하는 두 개의 게이트웨이 (가격 책정 및 컨트 리뷰 션)를 가지고 있습니다. 시장 데이터는 Pricing Gateway에서 클라이언트로 전달되며, Pricing Gateway는이를 Contribution Gateway로 보냅니다. 클라이언트 응용 프로그램은 가격 책정 게이트웨이에 메시지를 보내 각 본드에 적용되는 분석을 변경합니다. 또한 Contribution Gateway는 다른 거래 장소로 가격 갱신 상태를 전달하는 메시지를 클라이언트 애플리케이션에 전송합니다.
시스템 메시지 흐름.
JMS 사양은 지점 간 채널 (JMS 대기열)과 게시 - 구독 채널 (JMS 주제)의 두 가지 메시지 채널 유형을 설명합니다. 발행 - 구독을 사용하는 경우 관심있는 모든 소비자가 메시지를 수신 할 수 있도록하는 반면, 포인트 투 포인트를 사용하는 경우 하나의 자격있는 소비자 만 특정 메시지를 수신하도록하는 것이 좋습니다.
많은 시스템은 단순히 모든 클라이언트 응용 프로그램에 메시지를 브로드 캐스팅하여 각 개별 클라이언트 응용 프로그램이 특정 메시지를 처리할지 여부를 자체적으로 결정하도록합니다. 각 클라이언트 응용 프로그램으로 보내지는 마켓 데이터 메시지가 많기 때문에이 응용 프로그램에는 사용할 수 없습니다. 우리가 관심없는 상인에게 시장 데이터 업데이트를 방송하면 시장 데이터 업데이트를 처리할지 여부를 결정하는 클라이언트 프로세서 사이클을 불필요하게 낭비하게됩니다.
지점 간 채널은 클라이언트가 고유 한 서버로 메시지를 보내고 그 반대의 경우도 있으므로 처음에는 좋은 선택으로 들립니다. 그러나 상인이 동시에 여러 기계에 로그인 할 수있는 비즈니스 요구 사항이었습니다. 두 대의 워크 스테이션에 동시에 로그인 한 상인이 있고 지점 간 가격 업데이트가 전송되면 두 클라이언트 응용 프로그램 중 하나에서만 메시지가 수신됩니다. 이는 포인트 - 투 - 포인트 채널의 한 소비자 만 특정 메시지를 수신 할 수 있기 때문입니다. 상인의 클라이언트 응용 프로그램의 각 그룹 중 첫 번째 그룹 만 메시지를 수신합니다.
가격 업데이트를위한 지점 간 메시징.
수신자 목록 패턴을 사용하여이를 해결할 수 있습니다. 수신자 목록 패턴은 수신자 목록에 메시지를 게시하여 수신자 목록의 클라이언트 만 메시지를 수신하도록합니다. 이 패턴을 사용하면 시스템은 각 상인과 관련된 모든 클라이언트 응용 프로그램 인스턴스로받는 사람 목록을 만들 수 있습니다. 특정 거래자와 관련된 메시지를 보내면받는 사람 목록의 각 응용 프로그램으로 메시지를 보냅니다. 이렇게하면 특정 상인과 관련된 모든 클라이언트 응용 프로그램 인스턴스가 메시지를 수신하게됩니다. 이 접근 방식의 단점은받는 사람을 관리하고 메시지를 전달하는 데 상당히 많은 구현 논리가 필요하다는 것입니다.
가격 업데이트에 대한 수신자 목록.
포인트 투 포인트 (point-to-point)가 작동하도록 만들어 졌을지라도, let†™는 더 좋은 방법이 있는지 알아 봅니다. 게시 - 구독 채널을 사용하여 시스템은 클라이언트 응용 프로그램 특정 채널이 아닌 상인 특정 채널에서 메시지를 브로드 캐스팅 할 수있었습니다. 이렇게하면 단일 상인에 대한 메시지를 처리하는 모든 클라이언트 응용 프로그램이 메시지를 수신하고 처리합니다.
가격 업데이트를위한 게시 - 구독 메시징.
게시 - 구독 채널 사용의 단점은 서버 구성 요소에서 고유 한 메시지 처리가 보장되지 않는다는 것입니다. 서버 구성 요소의 여러 인스턴스가 인스턴스화되고 각 인스턴스가 동일한 메시지를 처리하여 잘못된 가격을 보낼 가능성이 있습니다.
시스템 메시지 흐름을 상기하면, 각 메시지 채널에 대해 단일 통신 방향 만 만족 스럽다. 게시 - 가입과의 서버 - 클라이언트 통신은 만족 스럽지만 클라이언트 - 서버 통신은 만족스럽지 않고 서버 - 클라이언트가 아닌 지점 간 클라이언트 - 서버 통신은 만족 스럽습니다. 양방향으로 동일한 메시지 채널을 사용할 필요가 없기 때문에 각 메시지 채널을 한 방향으로 만 사용할 수 있습니다. 클라이언트 대 서버 통신은 지점 간 (point-to-point)으로 구현되며 서버 간 통신은 게시 - 가입으로 구현됩니다. 이러한 메시지 채널 조합을 사용하면 단점도없이 지점 간 메시징과 게시 - 가입의 멀티 캐스트 성격을 사용하여 서버 구성 요소와 직접 통신 할 수 있습니다.
채널 유형을 사용한 메시지 흐름.
패턴으로 문제 해결.
패턴은 도구이며 패턴의 모음은 도구 상자입니다. 문제 해결에 도움이됩니다. 어떤 사람들은 패턴이 디자인 중에 만 유용하다고 생각합니다. 도구 상자 비유에 따르면 도구를 사용하여 집을 짓고 도구를 고칠 때 유용한 도구가 아니라는 것을 알 수 있습니다. 사실은 패턴이 잘 적용될 때 프로젝트 전체에서 유용한 도구라는 것입니다. 다음 섹션에서는 이전 섹션에서 사용한 것과 동일한 패턴 탐색 프로세스를 사용하여 현재 작업중인 시스템의 문제를 해결합니다.
시장 데이터 업데이트를 깜박입니다.
거래자는 채권에 대한 새로운 시장 데이터가 수신되면 표 셀이 깜박 거리면서 변경 사항을 명확하게 나타 내기를 원합니다. Java 클라이언트는 클라이언트 데이터 캐시 업데이트를 트리거하고 결국 테이블에서 깜박이는 새 데이터로 메시지를 수신합니다. 문제는 업데이트가 자주 발생한다는 것입니다. GUI 스레드 스택은 과부하 상태가되어 결국 사용자 상호 작용에 응답 할 수 없으므로 결국 클라이언트가 고정됩니다. 깜박이는 것이 최적화되고 업데이트 프로세스를 통해 메시지의 데이터 흐름에 집중한다고 가정합니다. 성능 데이터를 살펴보면 클라이언트 응용 프로그램이 몇 초 동안 여러 가지 업데이트를 수신하고 있음을 확인할 수 있습니다. 일부 업데이트는 밀리 초 미만으로 발생했습니다. 메시지 흐름을 느리게하는 데 도움이 될 수있는 두 가지 패턴은 수집기 및 메시지 필터입니다.
첫 번째 생각은 참조 메시지 다음에 작은 시간 동안 수신 된 업데이트를 제거하여 메시지 흐름의 속도를 제어하는 ​​메시지 필터를 구현하는 것입니다. 예를 들어, 서로 5 밀리 초 이내에 메시지를 무시한다고 가정 해 보겠습니다. 메시지 필터는 마지막으로 허용되는 메시지의 시간을 캐싱하고 다음 5 밀리 초 내에 수신 된 모든 것을 버릴 수 있습니다. 다른 응용 프로그램이 데이터 손실을 견딜 수 없을 수도 있지만 가격 업데이트의 빈도로 인해 시스템에서 완벽하게 수용 할 수 있습니다.
시간 기반 메시지 필터.
이 접근 방식의 문제점은 모든 데이터 필드가 동시에 업데이트되지 않는다는 것입니다. 각 채권은 가격을 포함하여 약 50 개의 데이터 필드가 사용자에게 표시됩니다. 모든 필드가 모든 메시지에서 업데이트되는 것은 아닙니다. 시스템이 연속적인 메시지를 무시하면 중요한 데이터가 빠져 나갈 수 있습니다.
관심있는 다른 패턴은 Aggregator입니다. Aggregator는 여러 개의 관련 메시지를 단일 메시지로 조정하여 잠재적으로 메시지 흐름을 관리하는 데 사용됩니다. Aggregator는 첫 번째 집계 메시지의 본드 데이터 사본을 보관 한 다음 새 필드 또는 변경된 필드의 연속 메시지 만 업데이트 할 수 있습니다. 결국 집계 된 채권 데이터는 고객에게 메시지로 전달됩니다. 지금은 Aggregator가 메시지 필터와 같이 5 밀리 초마다 메시지를 전송한다고 가정합니다. 나중에 다른 대안을 찾아 보겠습니다.
부분적인 연속 업데이트가있는 Aggregator.
Aggregator는 다른 패턴과 마찬가지로은 총알이 아닙니다. 그것은 그것의 pluses과 빼기가 탐구 될 필요가있다. 한 가지 잠재적 인 단점은 애그리 게이터를 구현하면 같은 본드에 대해 비교적 짧은 시간 내에 많은 메시지가 들어올 경우에만 우리의 경우 메시지 트래픽을 크게 줄일 수 있다는 것입니다. 반면에 Java 클라이언트가 모든 거래자 채권에서 한 필드에 대한 업데이트 만받는 경우에는 아무 것도 수행하지 않습니다. 예를 들어 관심있는 채권 4 개를 사용하여 지정된 기간에 1000 개의 메시지를받는 경우 해당 기간 동안 메시지 흐름을 1000에서 4로 줄입니다. 또는 관심있는 채권이 750 개인 동일한 시간대에 1000 개의 메시지를받는 경우 메시지 흐름을 1000에서 750 개의 메시지로 줄입니다. 노력의 양이 상대적으로 적다. 메시지 업데이트를 빠르게 분석하면 Java 클라이언트가 동일한 본드의 필드를 업데이트하는 많은 메시지를 수신하므로 관련 메시지를 알 수 있습니다. 따라서 Aggregator는 실제로 좋은 결정입니다.
남아있는 것은 집계 한 메시지를 보낼시기를 Aggregator가 어떻게 알 수 있는지 결정하는 것입니다. 패턴은 Aggregator가 메시지를 보낼시기를 알 수있는 몇 가지 알고리즘을 설명합니다. 여기에는 일정 시간이 경과 한 후, 데이터 세트의 모든 필수 필드가 완료된 후 애그리 게이터가 내용을 보내도록하는 알고리즘이 포함됩니다. 이러한 모든 접근법의 문제점은 애그리 게이터가 클라이언트가 아닌 메시지 흐름을 제어한다는 것입니다. 그리고 클라이언트는 메시지 흐름이 아니라이 경우의 주요 병목입니다.
Aggregator가 제거 된 메시지 (이 경우 클라이언트 응용 프로그램)의 소비자가 Event-Driven Consumer이거나 외부 소스의 이벤트에 의존하는 소비자라고 가정하기 때문입니다. 클라이언트를 Polling Consumer 나 메시지를 지속적으로 확인하는 소비자로 바꿔서 클라이언트 애플리케이션이 메시지 흐름을 제어 할 수 있도록해야합니다. 채권과 업데이트 집합을 계속 순환하고 마지막 반복 이후 발생한 모든 변경 사항을 깜박이는 백그라운드 스레드를 만들어이 작업을 수행 할 수 있습니다. 이 방법은 클라이언트가 메시지를 수신 할 때 제어하여 결과적으로 높은 업데이트 기간 동안 메시지로 인해 과부하가 발생하지 않도록합니다. We can easily implement this by sending a Command Message to the Aggregator initiating an update. The Aggregator will respond with a Document Message containing the set of updated fields that the client will process.
The choice of Aggregator over Message Filter is clearly a decision based solely on the business requirements of our system. Each could help us solve our performance problems, but using the Message Filter would solve the problem at cost of the system data integrity.
Major Production Crash.
With the performance of the flashing fixed, we are now in production. One day the entire system goes down. MQSeries crashes, bringing several components down with it. We struggle with the problem for a while and finally trace it back to the MQSeries dead letter queue (an implementation of the Dead Letter Channel ). The queue grows so large that it brings down the entire server. After exploring the messages in the dead letter queue we find they are all expired market data messages. This is caused by “slow consumers, ” or consumers that do not process messages fast enough. While messages are waiting to be processed, they time out (see the Message Expiration pattern) and are sent to the Dead Letter Channel . The excessive number of expired market data messages in the dead letter queue is a clear indication that the message flow is too great – messages expire before the target application can consume them. We need to fix the message flow and we turn to patterns for help slowing down the message flow.
A reasonable first step is to explore solving this problem with the Aggregator as we recently used this pattern to solve the similar flashing market data control rate problem. The system design relies on the client application to immediately forward market data update messages to the trading venues. This means the system cannot wait to collect messages and aggregate them. So the Aggregator must be abandoned.
There are two other patterns that deal with the problem of consuming messages concurrently: Competing Consumers and Message Dispatcher . Starting with Competing Consumers , the benefit of this pattern is the parallel processing of incoming messages. This is accomplished using several consumers on the same channel. Only one consumer processes each incoming message leaving the others to process successive messages. Competing Consumers , however, will not work for us since we are using Publish-Subscribe Channel s in server-to-client communication. Competing Consumers on a Publish-Subscribe Channel channel means that all consumers process the same incoming message. This results in more work without any gain and completely misses the goal of the pattern. This approach also has to be abandoned.
On the other hand, the Message Dispatcher describes an approach whereby you add several consumers to a вЂ˜pool’. Each consumer can run its own execution thread. One main Message Consumer listens to the Channel and delegates the message on to an unoccupied Message Consumer in the pool and immediately returns to listening on the Message Channel . This achieves the parallel processing benefit of Competing Consumers , but works on Publish-Subscribe Channel s.
The Message Dispatcher in context.
Implementing this in our system is simple. We create a single JMSListener called the Dispatcher, which contains a collection of other JMSListener s called Performers. When the onMessage method of the Dispatcher is called, it in turn picks a Performer out of the collection to actually process the message. The result of which is a Message Listener (the Dispatcher) that always returns immediately. This guarantees a steady flow of message processing regardless of the message flow rate. Additionally, this works equally well on a Publish-Subscribe Channel s as it does on a Point-to-Point Channel s. With this infrastructure, messages can be received by the client application at almost any rate. If the client application is still slow to process the message after receiving them, the client application can deal with the delayed processing and potentially outdated market data rather than the messages expiring in the JMS Message Channel .
The crash discussed in this section and the fix using the Message Dispatcher is an excellent example of the limits of applying patterns. We encountered a performance problem based on a design flaw not allowing the client to process messages in parallel. This greatly improved the problem, but did not completely fix it. This is because the real problem was the client becoming a bottleneck. This couldn’t be fixed with a thousand patterns. We later addressed this problem by refactoring the message flow architecture to route messages directly from the Pricing Gateway to the Contribution Gateway. So patterns can help design and maintain a system, but don’t necessarily make up for poor upfront design.
Throughout this chapter, we have applied patterns to several different aspects of a bond trading system including solving initial upfront design problems and fixing a nearly job threatening production crash with patterns. We also saw these patterns as they already exist in third party product, legacy components, and our JMS and TIBCO messaging systems. Most importantly, these are real problems with the same types of architectural, technical and business problems we experience as we design and maintain our own systems. Hopefully reading about applying patterns to this system helps give you a better understanding of the patterns as well as how to apply them to your own systems.
Gregor Hohpe and Bobby Woolf.
From Enterprise Integration to Enterprise Transformation:
My new book describes how architects can play a critical role in IT transformation by applying their technical, communication, and organizational skills with 37 episodes from large-scale enterprise IT.

채권 거래 시스템.
채권 거래 시스템의 작동 방식.
채권 매매 비즈니스 입문서.
전자 시스템을 사용하는 채권 거래를 전자 거래라고합니다. 이를 위해서는 상당량의 IT 인프라가 필요합니다. 정보 기술을 탐구하기 전에 채권 매매 비즈니스의 기본을 이해해야합니다. This article describes the processes of bond trading. 이것은 매우 광범위하고 깊은 주제입니다. in this article we will only skim the surface and gain just enough understanding to proceed with exploring the information technology in the next articles.
채권 사업.
채권 사업은 많은 활동을하고 있으며, 단순화를 위해 4 가지 핵심 운영 그룹 중 하나로 분류 할 수 있습니다. All these operations are supported by information technology and each group is focused on a specific aspect of bond trading.
본드 라이프 사이클 기본 사항.
채권은 법적 조직이 부채를 발행하여 자본을 조달하는 수단입니다. 법률 조직은 정부, 기업, 국가 기관 및 기타 기관입니다. 채권은 채권 보유자가되는 투자자가 구매합니다. 채권 보유자는 일정에 의해 정의 된 기간에 채권 발행 기관으로부터이자 지급을받습니다. 채권에는 만기가 설정된 용어 (만기일)가 있고 그 기간이 끝날 때마다 채권의 원래 가치가 채권자에게 지급됩니다. 원래 값은 액면 값이라고도합니다.
아래 다이어그램은이를 설명하는 데 도움이됩니다.
채권에 대한이자 지급은 쿠폰 지급이라고합니다. 이 기간은 채권자가 실제로이자 지불을 받기 위해 채권 발행인에게 제시해야하는 티어 오프 쿠폰을 실제로 가지고있는 경우 역사적입니다.
기본값.
채권 발행자가 채권 매수인에게 만기에이자 지급의 일부 또는 전부를 지불 할 수 없게 될 위험이 있습니다. 이를 신용 위험이라고합니다. 채권 발행자가 채권 일정을 지키지 못하면 채권 발행자는 채권에 채무 불이행을합니다.
채권 발행자가 채무 불이행 (예 : 파산 선고) 한 채권자 인 경우 채권자가 선순위 채권으로 분류되면 채권자는 액면가 액의 일정 비율을받을 수 있습니다. 그것이 종속 부채라면 선금이 만기가 된 후에 만 ​​지불금이 발생합니다.
Primary Market.
Bonds are issued on the primary market; this is where the bond issuer receives the capital from the bond buyers in exchange for the bond ownership. 채권 매입자는 채권을 만기까지 보유 할 수 있으며 만기일에 액면가를 받고 평생 동안이자 지불을받을 수 있습니다.
2 차 시장.
채권 보유자는 채권을 다른 금융 투자로 전환 할 수 있습니다. 이것은 중매 시장에서 채권을 거래함으로써 쉽게 수행됩니다. 2 차 시장은 채권을 상품으로 사고 팔 수있는 곳입니다.
일반적으로 "채권 매매"라는 용어는 중개 시장에서의 매매를 의미합니다. 아래 다이어그램은 시장 단계에서의 채권 거래 및 채권의 수명을 요약 한 것입니다.
2 차 채권 시장.
시장에는 고객과 상인이 있으며, 고객은 현금으로 물건을 얻기 위해 시장으로갑니다. 상인은 수익을 위해 물건을 팔려고 시장에갑니다. 이 점에서 중매도 시장은 다르지 않습니다. 투자 은행은 가맹점이며 연금이나 자산 관리 펀드를 관리하는 투자 회사가 고객입니다. 이것은 시장 참여자의 일반화이지만 진행을 위해 필요한 것만 큼 좋습니다. 2 차 시장에서, 판매 측, 마켓 메이커, 상인 또는 상인이라는 용어는 상인을 식별합니다. 고객은 구매자, 시장 점유자, 고객 또는 고객이라는 용어로 식별됩니다. 이 기사에서는 딜러 / 상인 및 고객이라는 용어를 사용합니다.
Prices are expressed as a percentage of par . Par는 액면가의 또 다른 용어입니다. 따라서 100.00의 가격은 채권의 액면가의 100.00 %입니다. The diagram below shows example situations for customers buying and selling with dealers. 딜러는 고객이 거래 할 수있는 가격을 책정합니다. 일반적으로 딜러는 낮은 가격에 팔리고 높은 가격으로 판매됩니다. 예제에서 딜러는 99.5에서 구매하고 100.5에서 팔려고합니다. 이것은 본질적으로 채권의 액면가가 100 달러라면 딜러는 99.50 달러에 사게되고 100.50 달러에 팔릴 것을 의미합니다. 딜러가 구매하는 가격은 입찰 가격이며 딜러가 판매하는 가격은 묻는 가격입니다. 묻는 가격은 제안 가격이라고도합니다.
입찰가와 가격의 차이를 입찰가 스프레드 (입찰가 스프레드)라고합니다. 스프레드가 넓을수록 디스트리뷰터가 더 좋으며 스프레드가 좁을수록 고객에게 유리하지만 입찰 가격은 항상 묻는 가격보다 낮습니다. Dealers will always want wider spreads whilst customers will always want narrower spreads.
일반적으로 딜러는 만기까지 채권을 보유하는 것에 관심이 없으며 수익을 낮게 책정하고 높은 가격으로 판매하는 데 관심이 있습니다. 이와 대조적으로 고객은 채권을 만기까지 보유하거나 적어도 채권에서이자를 수령하고 일반적으로 채권을 재투자하는 것에 관심이 있습니다.
2 차 시장에 대한 채권 가격 책정.
How much a bond is worth can be calculated as its face value plus the remainder of the coupon payments, discounted against the time to maturity of the bond. 이는 만기 수익률이라고도하며 채권이 만기가 될 때까지 보유 할 경우 얻을 수있는 수익률을 나타냅니다.
그러나 만기 별 수익은 채권 발행자의 신용 위험을 고려하지 않습니다 (즉 채무 불이행 가능성). It also does not factor in risk due to interest rate changes; 일반적으로 이자율이 상승하고 채권 가격이 하락하고 그 반대의 경우도 마찬가지입니다. 즉, 만기 수익률은 일반적으로 2 차 시장 가격을 계산할 때 사용되지 않습니다.
실제로, 중매 시장에서 채권 가격을 책정하는 데 사용되는 다양한 기법이 있습니다. 우리는이 소개 수준에서 적절하지 않기 때문에 이러한 기술을 논의하지 않을 것입니다. 그러나 모든 가격 책정 기법에 공통적 인 하나의 기본 개념이 있습니다. 한 채권을 다른 채권 가격으로 책정합니다. 아래 다이어그램은이를 설명하는 데 도움이됩니다. 이것은 회사채 가격이 벤치 마크 채권의 변화에 ​​의해 좌우되는 전형적인 예를 보여줍니다. 일반적으로 벤치 마크 채권은 국채입니다.
일반적으로 회사채 가격은 벤치 마크에서 고정 된 스프레드를 가지고 있습니다. 벤치 마크 가격이 바뀌면 회사 채권 가격도 변하게됩니다. 고급 가격 책정 기법은 여러 벤치 마크의 혼합 가격 또는 채권을 사용하여 채권 가격에 도달 할 수 있습니다. 현재로서는 채권 가격이 다른 채권 가격을 끌어 올릴 수 있다는 인식을 가지고 있으면 충분합니다. 이것은 거래를위한 채권 가격 책정의 중요한 개념입니다. 이와 같은 가격 관계는 대부분의 채권 가격 책정 시스템의 기초입니다.
2 차 시장 유동성.
정부는 정부 부채를 채우기 위해 채권을 발행합니다. To ensure that the value of the bonds holds up and that the debt is not viewed as junk , governments place obligations that dealers keep the bond prices liquid on the secondary market by continually quoting 2-way prices . A 2-way price is another term for buy and sell prices. 이는 시장에 대한 정부 채권 가격이 정확한지 확인하기 위해 큰 책임과 가능한 재정적 위험을 상인에게 제기합니다. 이 가격은 이자율 변동에 매우 민감하게 반응하며 그 반대도 마찬가지입니다. 이러한 의무는 정부 채권 가격이 항상 유동적이어서 2 차 채권 거래를 실행 가능하고 안정적으로 유지하도록 보장합니다. 이러한 의무를지는 딜러에게는 정부 부채의 1 차 시장 경매에 참여할 수 있다는 이점이 있습니다. 이 경매에 참여하는 것은 상인에게 재정적 및 평판 이익을 제공합니다.
액체 정부 채권 가격의 중요성.
일반적으로 채권은 정부 채무 또는 기업 채무로 분류됩니다. 국채는 일반적으로 정부가 파산하지 않기 때문에 정부가 발행하고 부도 위험이 낮습니다. 낮은 위험으로 인해, 그들은 또한 낮은 쿠폰 지불합니다. 이것은 낮은 위험, 낮은 보상이라는 개념을 따른다.
반대로 회사채는 채무 불이행 위험이 높습니다. 따라서 쿠폰은 동등한 정부 채권보다 높습니다. The pricing of the corporate bonds is generally done by pricing over government bonds. 단일 국채로 인해 여러 회사 채권 가격이 상승 할 수 있습니다. 국채 가격이 변동함에 따라 회사채 가격에 연쇄적인 영향이 있습니다. 유동성있는 정부 가격에 대해 회사채를 가격 책정함으로써 회사채는 본질적으로 유동성을 갖는다.
정부 부채 가격의 유동성 또한 경제 성장에 중요한 요소입니다. 유동성은 정부와 금융 안정에 대한 자신감의 신호입니다.
2 차 시장에서의 수익 창출.
Whilst a dealer may be able to make profit from buying low and selling high, this is not typically available to the customer as the buy and sell prices are set by the dealers. 일부 거래 기관은 딜러 가격을 조정하려고 시도하지만 이는 일반적으로 매우 어려우므로 어느 정도 결정할 수없는 투자 수익률 (return-on-investment)로 집중적 인 정보 기술 투자가 필요합니다.
채권 매매 스타일.
2 차 시장 거래의 두 가지 스타일이 있습니다. 고객과 거래하는 딜러는 D2C (Deal-To-Customer) 또는 B2C (B2B) 거래라고합니다. 이 형태의 거래는 일반적으로 채권 매매에서 발생하며, 거래가 합의되기 전에 고객이 가격을 합의한 가격으로 양측이 가격을 조정합니다.
딜러는 다른 딜러와 직접 거래 할 수도 있습니다. 이를 D2D (Deal-to-dealer), B2B (B2B) 또는 IDB (inter-dealer-broker) 거래라고합니다. 이 거래 형태는 고속이며 무자비하며 무역 가격에 동의하는 인간의 상호 작용이 없습니다. 딜러가 제시 한 가격은 다른 딜러가 즉시 교환 할 수 있습니다. 이러한 이유로 D2D 인용은 경쟁 업체와 계속해서 이어져야합니다. 느린 가격은 딜러가 시장에서 거래되고 손실을 의미 할 수 있습니다.
Typically the electronic markets are divided into either D2D or D2C categories. 딜러는 두 가지 거래 패러다임을 처리하기 위해 서로 다른 시스템 설계가 필요합니다. D2C 거래는 고객이 정확한 가격을 제공 할 수 있도록 고객을 파악하는 데 더 중요합니다. D2D 거래는 딜러의 거래 시스템의 원시 마력에 관한 것입니다.
참고로, 정부의 채무 의무는 D2D 시장에만 있습니다.
전자 채권 거래는 고객과 딜러가 거래 할 수있게합니다. 그러나 양측은 한 데 모일 필요가있다. 판매원이 들어오는 곳입니다. 그들은 고객이 딜러와 협상하도록하는 작업을 수행합니다. 무역 업무 흐름의 상당 부분이 전자 방식으로 수행 되더라도 간단한 인간 역학에 의존하는 요소가 여전히 존재합니다. Getting customers into the “shop” is one of these.
Sales people receive commission on a per-trade basis for the customers they represent that execute trades with the dealer.
전자 시장.
전자 채권 거래는 ECN (Electronic Communication Networks)이라고하는 전자 시장 제공자가 주최합니다. 이들은 또한 교류라고합니다. D2D 또는 D2C 거래 전문 ECN이 있습니다. 딜러와 고객은 ECN에 직접 연결하고 ECN을 통해 거래 활동을 실행합니다. Dealers typically connect to an ECN via an API. API를 통해 판매자는 ECN에서 사용 가능한 시장 데이터를 수신하거나, 주문 (D2D 시장)을 제출하거나 고객 협상 (D2C 시장)에 응답 할 수 있습니다. 고객은 일반적으로 ECN에서 제공하는 소프트웨어 응용 프로그램을 사용하여 ECN의 현재 가격을보고 협상을 시작합니다. In general, ECNs take a small commission per trade executed. 일반적으로 딜러는 가능한 한 많은 전자 상거래가 가능하도록 여러 ECN에 연결합니다. This is common sense as the more venues a dealer has access to increases the chances of trading.
이들은 오늘날 존재하는 ECN 중 일부입니다. 결코 포괄적 인 것은 아닙니다.
정착.
ECN은 거래가 합의 된 곳이지만 채권에 대한 실제 현금 인도 또는 결제 기관에서 발생하는 결제입니다. 결제는 거래가 실행 된 후 표준 시간대에 수행됩니다. 시간 프레임은 본드에 대한 규칙입니다 (예 : 유로 국채는 T + 2 기준으로 정산됩니다 (즉, 거래가 합의 된 후 2 일). 일부 채권은 현금으로 결제되며 이는 동일한 날 (T + 0)에 거래되고 정산된다는 것을 의미합니다.
거래소는 거래 상대방의 위험을 감수합니다. 본질적으로 무역 (구매자와 판매자)의 각 협동자는 서로 직접적으로 정보 센터와 정착한다. 어느 쪽이든 지불하지 않거나 전달하지 않으면, 거래소의 다른 쪽이 만기가되는 것을 결제소가 보증합니다. 이는 거래 정산 중 각 거래 상대방을 불이행으로부터 보호합니다. The clearing house protects itself by requiring collateral payments from each counterparty so that there is some coverage of any debts that may arise.
닫는 중 & # 8230;
이 기사에서는 채권 거래 사업에서 사용되는 기본 프로세스와 개념에 대해 설명했습니다. 이 기본적인 이해로 정보 기술을 탐구 할 수 있고 전자 거래 기술의 각 부분이 어떤 비즈니스 프로세스를 지원하는지 이해할 수 있습니다.

No comments:

Post a Comment