соответственно.
3.2. Модуль « АРМ оператора банка»
Модуль «АРМ оператора клиринговой палаты» устанавливается на рабочих
станциях банков-участников системы взаимозачета и обеспечивает следующие
функции: подключение банка к текущему клиринговому сеансу, выход от сеанса,
отсылку платежных сообщений, а также подсчет и просмотр окончательной
чистой позиции банка. Работой модуля также управляет один человек –
оператор банка.
Главное окно модуля «АРМ оператора клиринговой палаты» выглядит
следующим образом:
Рис. 3.5. Главное окно модуля «АРМ оператора банка».
Данное окно содержит два основных пункта меню «Клиринговый сеанс» и
«Сообщения». Первый из них имеет два подпункта для входа в клиринговый
сеанс и выхода из него соответственно. Наиболее важным является пункт меню
«Сообщения». Он имеет подпункты «Отправить сообщение» и «Показать
сообщения». При выборе подпункта «Отправить сообщение» на экран выводится
диалоговое окно для ввода параметров сообщения. Его вид показан на Рис.
3.6.
Рис. 3.6. Диалоговое окно отправки платежного сообщения.
Выбор подпункта «Показать сообщения» приводит к выводу на экран
диалогового окна со списком сообщений, которые относятся к банку-владельцу
запущенной копии модуля. Можно выбрать для показа входящие платежи,
исходящие платежи или оба типа одновременно. Показываются лишь те
сообщения, которые были подтверждены клиринговой палатой в модуле «АРМ
оператора клиринговой палаты». Вид этого окна приведен на Рис. 3.7.
Рис 3.7. Окно со списком подтвержденных сообщений.
ЗАКЛЮЧЕНИЕ
В данном дипломном проекте освещены проблемы межбанковского клиринга
и методы их решения, приведены реальные модели клиринговых систем. Кроме
того, поставлена, математически сформулирована и решена проблема
оптимизации важнейшего параметра клирингового цикла – лага клиринга. На
основе реальных статистических данных получена статистическая оценка
искомого параметра. Также приводится математическая модель обобщения
полученных результатов для максимизации прибыли каждого из участников
клиринговой системы.
Существенной частью работы в дипломном проекте является разработка
пакета программных продуктов «Система межбанковского клиринга». Этот
программный продукт является попыткой комплексной автоматизации
клирингового процесса. Пакет полностью готов для тестового использования и
сбора статистической информации, планируется его доработка в областях
сохранности целостности данных, управления доступом и оптимизации
производительности до уровня реальной системы.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. Березина М.П., Крупнов Ю.С. Межбанковские расчеты. – М.: АО
“Финстатинформ”, 1993.-142с.
2. Тосунян Г.А. Клиринг и межбанковские финансовые операции: основные
понятия и финансовые инструменты. – М.: “Дело”, 1994.-56с.
3. Тосунян Г.А. Операционные технологии межбанковского финансового рынка. –
М.: “Дело”, 1994.-122с.
4. Усоскин В.М. Современный коммерческий банк: управление и операции. – М.:
ИПЦ “Вазар-Ферро”, 1994.-320с.
5. Каллаур П.В. Осуществление межбанковских расчетов по прочим платежам //
Банкаўскі веснік – 1998. №1.
6. Жуков В.В. Модернизация платежной системы Беларуси // Банкаўскі веснік –
1997. №9. – С.3-6.
ПРИЛОЖЕНИЕ 1.
SQL-КОД ППП «СИСТЕМА МЕЖБАНКОВСКОГО КЛИРИНГА»
----------------------------------------------------
-- Модуль Banks
-- Содержимое :
-- 1. Sequence BankID_Seq
-- 2. Table Banks
PROMPT Creating sequence BankID_Seq...
-- Последовательность уникальных идентификаторов для банков-участников
CREATE SEQUENCE BankID_Seq
INCREMENT BY 1
START WITH 1
MAXVALUE 99999999
MINVALUE 1
NOCACHE
CYCLE;
PROMPT Creating table Banks...
-- Таблица банков, зарегистрированных в клиринговой палате
CREATE TABLE Banks
(
BankID Number(8) -- Индентификационный № банка
CONSTRAINT bankno_pk PRIMARY KEY,
BankName VARCHAR2(100) NOT NULL -- Наименование банка
CONSTRAINT bankname UNIQUE,
UserName VARCHAR(20) NOT NULL -- Имя пользователя для входа
CONSTRAINT username UNIQUE
);
-----------------------------------------------
-- Модуль BankState
-- Таблица состояния банков-участников в текущем сеансе
PROMPT Creating table BankState...
CREATE TABLE BankState
BankID NUMBER(8) -- Идентификатор банка
CONSTRAINT sessionbankid_fk REFERENCES Banks ON DELETE CASCADE,
BankStatus NUMBER(3) NOT NULL -- Статус банка в текущем сеансе
-- Пакет ClientUtils
-- Интерфейс модуля "АРМ оператора банка"
PROMPT Creating package ClientUtils...
CREATE OR REPLACE PACKAGE ClientUtils
AS
-- Возвращает флаг состояния текущей сессии
FUNCTION GetSessionStatus RETURN INT;
-- Процедура начала клирингового сеанса для банка-участника
FUNCTION StartBankSession(aBankID IN INT) RETURN INT;
-- Процедура завершения клирингового сеанса для банка-участника
PROCEDURE StopBankSession(aBankID IN INT);
-- Возвращает уникальный номер вызвавшего банка
FUNCTION GetOurID RETURN INT;
-- Возвращает окончательног сальдо банка
FUNCTION GetFinalSaldo(aBankID IN INT) RETURN INT;
-- Процедура отсылки в клиринговую палату платежа в "электронном" виде
PROCEDURE SendMessage(aSourceBankID IN INT,
aDebitBankID IN INT,
aCreditBankID IN INT,
aAmount IN INT);
END ClientUtils;
/
SHOW ERROR;
-- Пакет процедур для работы банков-клиентов клиринговой палаты
PROMPT Creating package body ClientUtils...
CREATE OR REPLACE PACKAGE BODY ClientUtils
-- Функция возвращает флаг состояния текущей сессии
FUNCTION GetSessionStatus RETURN INT
IS
BEGIN
RETURN ServerUtils.SessionState;
END GetSessionStatus;
-- Процедура подключения банка к очередной сессии клиринговой палаты
-- Выполняется каждый рабочий день в определенное время после выполнения
-- на сервере КП процедуры инициализации клирингового сеанса
FUNCTION StartBankSession(aBankID IN INT) RETURN INT
IF ServerUtils.SessionState = GlobalConst.cSessionActive THEN
UPDATE BankState
SET BankStatus = GlobalConst.cBankWork
WHERE BankID = aBankID;
END IF;
END StartBankSession;
-- Процедура выхода банка из текущего клирингового сеанса
-- Выполняется кажый день в определенное время до закрытия сеанса
-- на сервере КП
PROCEDURE StopBankSession(aBankID IN INT)
SET BankStatus = GlobalConst.cBankStopWork
WHERE BankId = aBankID;
END StopBankSession;
-- Функция возвращает уникальный номер вызывающего банка
FUNCTION GetOurID RETURN INT
Res INT;
SELECT BankID INTO Res FROM Banks
WHERE UserName = USER;
END GetOurID;
-- Функция возвращает чистую позицию банка по окончанию сеанса
FUNCTION GetFinalSaldo(aBankID IN INT) RETURN INT
aSaldo INT;
SELECT DebitPos-CreditPos INTO aSaldo FROM Results
EXCEPTION
WHEN No_Data_Found THEN aSaldo := NULL;
END;
RETURN aSaldo;
END GetFinalSaldo;
-- Процедура отсылки на сервер КП "электронного" платежа
aAmount IN INT)
aMsgID INT;
SELECT Msg_Seq.NextVal INTO aMsgID FROM Dual;
INSERT INTO Messages
VALUES (aMsgID, aSourceBankID, aDebitBankID,
aCreditBankID, aAmount, GlobalConst.cMsgNotProcessed);
END SendMessage;
-- Пакет CommonUtils
-- Интерфейс общих подпрограмм
PROMPT Creating package CommonUtils...
CREATE OR REPLACE PACKAGE CommonUtils
-- Возвращает уникальный номер банка по его имени
FUNCTION GetBankID(aBankName IN VARCHAR2) RETURN INT;
-- Возвращает текущее дебетовое сальдо
FUNCTION GetCurrentDebitSaldo(aBankID IN INT) RETURN INT;
-- Возвращает текущее кредитовое сальдо
FUNCTION GetCurrentCreditSaldo(aBankID IN INT) RETURN INT;
END CommonUtils;
-- Процедуры и функции общего пользования
CREATE OR REPLACE PACKAGE BODY CommonUtils
-- Возвращает уникальный идентификатор банка-участника по его имени
FUNCTION GetBankID(aBankName IN VARCHAR2) RETURN INT
WHERE BankName = aBankName;
WHEN No_Data_Found THEN Res := NULL;
RETURN Res;
END GetBankID;
-- Возвращает текущее дебетовое сальдо банка-участника
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9