CftClub.ru
Клуб специалистов ЦФТ-Банк

Интеграция
На страницу 1, 2, 3, 4, 5  След.
 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Интеграция с внешними подсистемами
Предыдущая тема :: Следующая тема  
Автор Сообщение
maslov
Участник со стажем


Вступление в Клуб: 19.05.2009
СообщениеВт Окт 06, 2009 11:24   Интеграция Ответить с цитатой
Полезность: Нет оценки
Добрый день!
Подскажите, пожалуйста, какие есть способы для связи с внешними системами в ЦФТ?
Например,
1. выгрузка через "linked server", посредством вызова удалённыx процедур;
2. выгрузка через файл обмена;
3. выгрузка по какому-нибудь http протоколу и т.п.

Смысл задачи в том, чтобы в автоматизированном режиме передавать информацию из ЦФТ в другую систему(хранилище на MsSql 2005).
IBSO
Профи


Вступление в Клуб: 20.08.2009
СообщениеВт Окт 06, 2009 11:51    Ответить с цитатой
Полезность: Нет оценки
Можно через файл (это типа on line то можно job настроить), можно через Интегратор (DB-link - триггер на событие) и т.д. все можно только надо проанализировать как легче и быстрее в зависимости от данных.
maslov
Участник со стажем


Вступление в Клуб: 19.05.2009
СообщениеВт Окт 06, 2009 11:55    Ответить с цитатой
Полезность: Нет оценки
IBSO пишет:
Можно через файл (это типа on line то можно job настроить), можно через Интегратор (DB-link - триггер на событие) и т.д. все можно только надо проанализировать как легче и быстрее в зависимости от данных.

Нужен следующий механизм:
1. Удалённое ПО вызывает процедуру, которая возвращает необходимый набор данных?
2. Некий Job перекачивает данные в некую таблицу на сервере хранилища;
и т.п.
В настоящий момент работает первый вариант. По вашему мнению, что лучше использовать сейчас?
r00st
Эксперт


Вступление в Клуб: 14.09.2007
СообщениеВт Окт 06, 2009 12:26    Ответить с цитатой
Полезность: Нет оценки
По логике, управлять импортом следует из хранилища.
IBSO не должно знать куда и зачем пересылаются данные. Его задача - предоставить выборку, а задача хранилища - ее обработать и разместить.
При таком подходе обработка и размещение данных будут универсальны для всех систем. Дифференцированным останется обращение к источникам. Опять же, можно предусмотреть единый набор настроек для управления процессом.

Это в общем случае. Если же иного импорта в перспективе нет - подойдет и второй вариант.

Суть в чем? Текущая реализация не устраивает скоростью?
IBSO
Профи


Вступление в Клуб: 20.08.2009
СообщениеВт Окт 06, 2009 12:27    Ответить с цитатой
Полезность: Нет оценки
maslov пишет:
Нужен следующий механизм:
1. Удалённое ПО вызывает процедуру, которая возвращает необходимый набор данных?
2. Некий Job перекачивает данные в некую таблицу на сервере хранилища;
и т.п.
В настоящий момент работает первый вариант. По вашему мнению, что лучше использовать сейчас?


Удаленное ПО где находится? ПО уже разработанно и его нельзя дорабатывать? ЦФТ будет складывать данные в таблицу, ПО забирать и передавать в MS SQL?
maslov
Участник со стажем


Вступление в Клуб: 19.05.2009
СообщениеВт Окт 06, 2009 12:37    Ответить с цитатой
Полезность: Нет оценки
r00st пишет:
По логике, управлять импортом следует из хранилища.
IBSO не должно знать куда и зачем пересылаются данные. Его задача - предоставить выборку, а задача хранилища - ее обработать и разместить.
При таком подходе обработка и размещение данных будут универсальны для всех систем. Дифференцированным останется обращение к источникам. Опять же, можно предусмотреть единый набор настроек для управления процессом.

Это в общем случае. Если же иного импорта в перспективе нет - подойдет и второй вариант.

Суть в чем? Текущая реализация не устраивает скоростью?


Так сейчас всё и происходит, но в нашей текущей АБС. Всё устраивает, но мы переходим на ЦФТ. Возможно ли реализовать такой же механизм в ЦФТ. Нужно писать процедуры на Oracle для обращения к данным минуя ЦФТ или можно средствами ЦФТ подготовить такие процедуры? Если да, то как вызывать из хранилища(оно на MsSQL)?
maslov
Участник со стажем


Вступление в Клуб: 19.05.2009
СообщениеВт Окт 06, 2009 12:38    Ответить с цитатой
Полезность: Нет оценки
IBSO пишет:
maslov пишет:
Нужен следующий механизм:
1. Удалённое ПО вызывает процедуру, которая возвращает необходимый набор данных?
2. Некий Job перекачивает данные в некую таблицу на сервере хранилища;
и т.п.
В настоящий момент работает первый вариант. По вашему мнению, что лучше использовать сейчас?


Удаленное ПО где находится? ПО уже разработанно и его нельзя дорабатывать? ЦФТ будет складывать данные в таблицу, ПО забирать и передавать в MS SQL?

У нас. Дорабатывать можно. Как вариант, но возможно есть более красивое решение?!
IBSO
Профи


Вступление в Клуб: 20.08.2009
СообщениеВт Окт 06, 2009 12:42    Ответить с цитатой
Полезность: Нет оценки
maslov пишет:
IBSO пишет:
maslov пишет:
Нужен следующий механизм:
1. Удалённое ПО вызывает процедуру, которая возвращает необходимый набор данных?
2. Некий Job перекачивает данные в некую таблицу на сервере хранилища;
и т.п.
В настоящий момент работает первый вариант. По вашему мнению, что лучше использовать сейчас?


Удаленное ПО где находится? ПО уже разработанно и его нельзя дорабатывать? ЦФТ будет складывать данные в таблицу, ПО забирать и передавать в MS SQL?

У нас. Дорабатывать можно. Как вариант, но возможно есть более красивое решение?!


Я думаю что надо без ПО, через Интегратор ЦФТ. Там хоть разработан механизм распределенных очередей AQ.
r00st
Эксперт


Вступление в Клуб: 14.09.2007
СообщениеВт Окт 06, 2009 12:50    Ответить с цитатой
Полезность: Нет оценки
Если данные не требуют предварительной обработки, их можно выудить с помощью представлений для отчетов. Это самый быстрый и простой способ.

Если же требуется предварительная обработка - в IBSO реализуется сооветствующий функционал в ввиде библиотечных операций с функциями/процедурами, вызов которых без проблем осуществляется из других систем. Результат обработки - в промежуточную таблицу. Из нее - представление.

Реализовывать свои наработки на pl/sql, непривязанные к IBSO, нет смысла. Есть только риск их потерять.
maslov
Участник со стажем


Вступление в Клуб: 19.05.2009
СообщениеВт Окт 06, 2009 14:28    Ответить с цитатой
Полезность: Нет оценки
r00st пишет:
Если же требуется предварительная обработка - в IBSO реализуется сооветствующий функционал в ввиде библиотечных операций с функциями/процедурами, вызов которых без проблем осуществляется из других систем.

А вот тут можно поподробнее про вызов?! Как это делается?
r00st
Эксперт


Вступление в Клуб: 14.09.2007
СообщениеВт Окт 06, 2009 15:33    Ответить с цитатой
Полезность: 1
maslov пишет:
Как это делается?

Операции в IBSO с точки зрения СУБД являются пакетами.
Вызов [AC_FIN]::[LIB].tmp_func (par1, par2) на pl/sql выглядит следующим образом:
Код:
z$ac_fin_lib.tmp_func(par1, par2)

В свое время у меня возникали сложности с вызовом Oracle-процедуры из MS/SQL (причин уже не помню), потому использовал именно функцию:
Код:
select * from openquery (DB_LINK_NAME, 'select z$ac_fin_lib.tmp_func (123, 456) from dual')

Обращение к представлению c выборкой:
Код:
select * from openquery (DB_LINK_NAME, 'select * from ibs.vw_rpt_view_name')

Разумеется, на указанные объекты должен быть доступ у пользователя, под которым организован DB_LINK
maslov
Участник со стажем


Вступление в Клуб: 19.05.2009
СообщениеВт Окт 06, 2009 15:35    Ответить с цитатой
Полезность: Нет оценки
r00st пишет:
maslov пишет:
Как это делается?

Операции в IBSO с точки зрения СУБД являются пакетами.
Вызов [AC_FIN]::[LIB].tmp_func (par1, par2) на pl/sql выглядит следующим образом:
Код:
z$ac_fin_lib.tmp_func(par1, par2)

В свое время у меня возникали сложности с вызовом Oracle-процедуры из MS/SQL (причин уже не помню), потому использовал именно функцию:
Код:
select * from openquery (DB_LINK_NAME, 'select z$ac_fin_lib.tmp_func (123, 456) from dual')

Обращение к представлению c выборкой:
Код:
select * from openquery (DB_LINK_NAME, 'select * from ibs.vw_rpt_view_name')

Разумеется, на указанные объекты должен быть доступ у пользователя, под которым организован DB_LINK


Спасибо Smile
А есть какие-либо особенности при настройке DB_LINK_NAME?
_________________
Maslov Andrey Aleksandrovich
Senior Architect of Department of the system architecture OJSC «Nordea Bank»
r00st
Эксперт


Вступление в Клуб: 14.09.2007
СообщениеВт Окт 06, 2009 15:55    Ответить с цитатой
Полезность: Нет оценки
Цитата:
А есть какие-либо особенности при настройке DB_LINK_NAME?

Не силен.
Организуйте для начала под IBS. Как импорт заработает - можно и об ограничении доступа подумать.
korobenkov
Участник


Вступление в Клуб: 29.09.2009
СообщениеСр Окт 07, 2009 04:18    Ответить с цитатой
Полезность: Нет оценки
maslov пишет:
А есть какие-либо особенности при настройке DB_LINK_NAME?

Нет никаких особенностей
Устанавливаете Oracle-client на сервере с MSSQL
Настраиваете linked server

По теме могу высказать следующюю точку зрения:
Наименее трудозатратный, имхо, способ достижения поставленной задачи, как в плане реализации, так и в плане последующего сопровождения - это:
1) Реализация одного/нескольких представлений в ЦФТ, возвращающих draft-данные.
2) Импорт этих представлений посредством OpenQuery(). Это самый быстрый/надежный способ получения данных.
3) Дальнейшая обработка полученного в MSSQL

Программирование операций в ЦФТ, подготавливающих данные для экспорта - тоже хороший вариант, но менее надежный, по сравнению с п. 1., поскольку пакетам свойственно иногда вываливаться в невалидонсть при накате обновлений - нужен суровый контроль. Контролировать представления в этом отношении проще.
Файловый обмен, вместо п. 2., тоже имеет право на жизнь, но поверьте - на очень тяжелую жизнь Smile Ибо тогда в процесс обмена вмешиваются скачки напряжения, ширина канала, дисковые квоты, кривые наманикюренные ручонки специалиста, глюки брэндмауэра и операциооной системы... Да много чего еще Smile
maslov
Участник со стажем


Вступление в Клуб: 19.05.2009
СообщениеСр Окт 07, 2009 10:42    Ответить с цитатой
Полезность: Нет оценки
korobenkov пишет:
maslov пишет:
А есть какие-либо особенности при настройке DB_LINK_NAME?

Нет никаких особенностей
Устанавливаете Oracle-client на сервере с MSSQL
Настраиваете linked server

По теме могу высказать следующюю точку зрения:
Наименее трудозатратный, имхо, способ достижения поставленной задачи, как в плане реализации, так и в плане последующего сопровождения - это:
1) Реализация одного/нескольких представлений в ЦФТ, возвращающих draft-данные.
2) Импорт этих представлений посредством OpenQuery(). Это самый быстрый/надежный способ получения данных.
3) Дальнейшая обработка полученного в MSSQL

Программирование операций в ЦФТ, подготавливающих данные для экспорта - тоже хороший вариант, но менее надежный, по сравнению с п. 1., поскольку пакетам свойственно иногда вываливаться в невалидонсть при накате обновлений - нужен суровый контроль. Контролировать представления в этом отношении проще.
Файловый обмен, вместо п. 2., тоже имеет право на жизнь, но поверьте - на очень тяжелую жизнь Smile Ибо тогда в процесс обмена вмешиваются скачки напряжения, ширина канала, дисковые квоты, кривые наманикюренные ручонки специалиста, глюки брэндмауэра и операциооной системы... Да много чего еще Smile


Понятно. Спасибо. А есть ли ещё какие-либо варианты?
_________________
Maslov Andrey Aleksandrovich
Senior Architect of Department of the system architecture OJSC «Nordea Bank»
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Интеграция с внешними подсистемами Часовой пояс: GMT + 3
На страницу 1, 2, 3, 4, 5  След.
Страница 1 из 5

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru