powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Нужен AppServer для среднего звена ...
25 сообщений из 53, страница 1 из 3
Нужен AppServer для среднего звена ...
    #35122324
мысль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
День добрый форумчане.

Мы рассматриваем вариант построения 3х звенки, как способ избавиться от зависимости от СУБД.
По крайней мере, это основной мотив. Buzz-words привносят свою лепту, но с этим можно бороться.
На данный момент мы фактически имеем две линии разработки - для SQL и для Oracle.
И если на клиенте (Delphi) мы боремся как можем (универсальные компоненты доступа к DB и пр.),
то на сервере - приходится просто писать одно и тоже два раза.

Какие существуют готовые решения для среднего звена на данный момент?
Доступ к серверу не обязательно из Delphi (.NET тоже подойдет - политика, в ногу со временем)
Интересуют в первую очередь НЕ Java решения (почему - отдельный вопрос, надеюсь выяснить позже),
хотя Java варианты тоже интересны для полноты картины и понимания того что имеется.

Заранее спасибо.
...
Рейтинг: 0 / 0
Нужен AppServer для среднего звена ...
    #35122505
Фотография Ggg_old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну если не Java, то окромя .Нет стоит взять в растчет: Corba, веб-сервисы или что-то специализированное RPC, как например в QT. Корба работает быстрее, но тяжелее в изучении и надо иметь ОРБ для вашего языка, вторая более избыточная по траффику , но проще юзается. Смотрите, выирайте сами.
...
Рейтинг: 0 / 0
Нужен AppServer для среднего звена ...
    #35122516
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мысль
а какие задачи Вы хотите возложить на AppServer? Уточните плз, можно в двух словах, в чем Вы видите избавление от конкретной СУБД... Что в СУБД хотите оставить, а что вынести на СП?
...
Рейтинг: 0 / 0
Нужен AppServer для среднего звена ...
    #35122544
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>мысль
> ...Мы рассматриваем вариант построения 3х звенки ...

Здесь дана информация по построению прототипа многоуровневых распределенных защищенных информационных систем. Первая статья - начало работы, постановка задачи и анализ результатов реализации проекта. Вторая содержит более детальное рассмотрение вопросов реализации.
Относительная независимость прототипа от сервера данных (сервер данных может и не быть базой данных) реализована так:
1. Клиетское приложение не оперирует в сообщении-запросе предожениями типа <SELECT, INSERT, UPDATE, DELETE и т.п.>, а использует в запросе функциональное представление - <индекс_класса+индекс_метода+параметры>.
2. Запрос сериализуется, сжимается, шифруется и проводится по функциональным уровням прототипа до пула серверов_приложений(СП).
3. Сообщение-запрос сервером приложений дешифруется, декомпресиссируется и десериализуется.
4. СП содержит функциональную компоненту - домен (может и не один). В домен загружаются классы собственно физической работы с носителем данных. Для доступа методов классов ядра СП к методам классов домена также используется функциональное представление запроса.
5. Классы сборки (термин .Net), загруженной в домен, преобразуют функциональное представление сообщения-запроса для домена в физические операторы работы с данными.
6. Данные результата обработки доменом сообщения-запроса сериализуются и возвращаются ядру СП (штатно) или код ошибки (не штатная ситуация).
7. Данные физического носителя обрабатываются классами бизнес-логики ядра СП.
8. Результат сериализуется, сжимается, шифруется и возвращается клиентскому приложению в форме сооющения-ответа.

С уважением, Владимир.
...
Рейтинг: 0 / 0
Нужен AppServer для среднего звена ...
    #35122561
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ggg_old пишет:
Корба
> работает быстрее, но тяжелее в изучении и надо иметь ОРБ для вашего

А по мне так CORBA достаточно простая. И в освоении, и в программировании.
Проще, чем COM уж во всяком случае. ORB-ов тоже достаточно много.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Нужен AppServer для среднего звена ...
    #35122881
мысль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Ggg_old: Что такое QT? А если Java то на какие готовые решения можно посмотреть?
2 iscrafm: Оставить за СУБД хранение данных, контроль за целостностью, иными словами необходимый минимум. На СП перенести бизнес логику. Например, проверка контракта/инвойса. Cейчас подобный функционал реализован на ХП и любое изменение делается в двух вариантах - SQL и Oracle.
Основная цель уменьшить трудозатраты на разработку и поддержку.
2 ВМоисеев: Спасибо за ссылочку. Статья интересная. Если будем писать свою систему - пригодится.

Сейчас, в первую очередь хочется посмотреть на готовые решения.
Можно и на Java решения посмотреть, но клиент будет не на Java это точно.
Кинте ссылочки плиз на готовые промышленные решения?
...
Рейтинг: 0 / 0
Нужен AppServer для среднего звена ...
    #35122965
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев>мысль
> ...Мы рассматриваем вариант построения 3х звенки ...

Здесь дана информация по построению прототипа многоуровневых распределенных защищенных информационных систем. Первая статья - начало работы, постановка задачи и анализ результатов реализации проекта. Вторая содержит более детальное рассмотрение вопросов реализации.
Относительная независимость прототипа от сервера данных (сервер данных может и не быть базой данных) реализована так:
1. Клиетское приложение не оперирует в сообщении-запросе предожениями типа <SELECT, INSERT, UPDATE, DELETE и т.п.>, а использует в запросе функциональное представление - <индекс_класса+индекс_метода+параметры>.
2. Запрос сериализуется, сжимается, шифруется и проводится по функциональным уровням прототипа до пула серверов_приложений(СП).
3. Сообщение-запрос сервером приложений дешифруется, декомпресиссируется и десериализуется.
4. СП содержит функциональную компоненту - домен (может и не один). В домен загружаются классы собственно физической работы с носителем данных. Для доступа методов классов ядра СП к методам классов домена также используется функциональное представление запроса.
5. Классы сборки (термин .Net), загруженной в домен, преобразуют функциональное представление сообщения-запроса для домена в физические операторы работы с данными.
6. Данные результата обработки доменом сообщения-запроса сериализуются и возвращаются ядру СП (штатно) или код ошибки (не штатная ситуация).
7. Данные физического носителя обрабатываются классами бизнес-логики ядра СП.
8. Результат сериализуется, сжимается, шифруется и возвращается клиентскому приложению в форме сооющения-ответа.

С уважением, Владимир.и вот это всё вот реально проще в реализации, чем переписать 2 раза логику на 2х СУБД? есть сомнения...
...
Рейтинг: 0 / 0
Нужен AppServer для среднего звена ...
    #35123058
apapacy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сервер приложения - ПМВПМ - необходим для иных целей, чем реализация доступа к
различным вендорам БД. И на сервере и на клиенте кросс-вендорность
будет реализовываться похожими средствами.
...
Рейтинг: 0 / 0
Нужен AppServer для среднего звена ...
    #35123186
мысль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В принципе я понимаю, что никто не будет делать AppServer только для обеспечения независимости от вендора. Решаются совсем другие задачи. Но, как только бизнес-логика переносится на AppServer, то с большой вероятностью возникает потребность в языке запросов/языке бизнес логики, и независимость от вендора СУБД. Что собственно и требуется в данном случае.
...
Рейтинг: 0 / 0
Нужен AppServer для среднего звена ...
    #35123390
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>egorych
>... есть сомнения...
У меня также. Как то softwarer этот момент точно подметил.
Если городить огород только для реализации инвариантности и для простых задач - овчинка выделки не стоит. Разве что университетская дипломная.
Как показывает небольшой личный опыт - доменная сборка под другой сервер данных переписывается практически полностью, причем видимо это должен делать профессионал, детально знающий специфику и возможности данного сервера базы данных (себя к оным не причисляю).
К примеру, достаточно распространенная операция - paging, реализуется в средах MSSQL и Oracle по-разному. Да и доступ к хранимым процедурам не совсем идентично (а сервер данных может и не поддерживать ХР).
Но если бизнес-логика достаточно наворочена, и в ней выделены и описаны точки взаимодействия с физическими серверами данных, то как знать. Здесь очень многое определяется задачей.

С уважением, Владимир.
...
Рейтинг: 0 / 0
Нужен AppServer для среднего звена ...
    #35123401
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мысльОсновная цель уменьшить трудозатраты на разработку и поддержку.Вначале вы решали совсем другую задачу: "способ избавиться от зависимости от СУБД"
И решение придумали сразу: "построение 3х звенки".

Но для уменьшения трудозатрат на разработку и поддержку совсем не однозначно требуется именно это.

Использование для программирования логики типичной бизнес-системы (работающей с данными) языков, не предназначенных для этого, не увеличит производительность программистов.

Перенос запросов к БД в код сервера приложений не упростит поддержку, сопровождение и модификацию этих запросов.

И, наконец, не так просто привести все запросы к общему знаменателю, поддерживаемому обоими СУБД, так что придётся некоторые запросы писать в двух вариантах.

Так что подумайте, прежде чем разносить бизнес логику проверки контракта/инвойса из двух мест в несколько - основная на апп-сервере и дополнительная в нескольких общих и нескольких платформо-зависимых запросах к БД.
...
Рейтинг: 0 / 0
Нужен AppServer для среднего звена ...
    #35125344
apapacy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мысль

Какие существуют готовые решения для среднего звена на данный момент?
Доступ к серверу не обязательно из Delphi (.NET тоже подойдет - политика, в ногу со временем)
Интересуют в первую очередь НЕ Java решения (почему - отдельный вопрос, надеюсь выяснить позже),
хотя Java варианты тоже интересны для полноты картины и понимания того что имеется.

Заранее спасибо.

Ну Java - имеет просто очень много решений. Спецификация JDBC задумывалась как преодоление
зависимости от конкретной БД. Но тем не менее эта независимость не была полной.
Поэтому возникли спецификация JDO и ее реализации, а так же Apache/JDO, которая
не реализует спецификацию JDO. Наконец Hibernate дала в руки программеров
удобное средство на каждый день.

PHP5 имеет новый объект доступа к данным независимый от БД.

В Perl независимый интерфейс работы с БД существует иже лет 10.

Если нужно конкретно под .Net - я думаю Microsoft - не та фирма, которая поощряет работу
с чем-либо кроме MSSQL. Можно не париться.
...
Рейтинг: 0 / 0
Нужен AppServer для среднего звена ...
    #35125355
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сервера приложений с полной или частичной поддержкой JavaEE : тынц
...
Рейтинг: 0 / 0
Нужен AppServer для среднего звена ...
    #35125406
Фотография shelsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Несколько проектов были выполнены, когда в качестве сервера приложений выступал Web-сервер
1) Тот же самый Delphi поддерживает взаимодействие с Web-сервером и вы можете построить достаточно развитый GUI-интерфейс + кеширование "тяжелых" данных (в нашем случае картографическая информация)
2) все премущества Web-сервера (асинхронка, контроль доступа, написание расширений, возможность абстрагироваться от СУБД, скрипты и т.п.)
3) Если затачиваетесь на "ослика" IE то возможность создания "почти тонкого" клиента при использовании интерфейса external



______________________________________________________
Задолбали вихри яростных атак ...
...
Рейтинг: 0 / 0
Нужен AppServer для среднего звена ...
    #35125429
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
apapacy
Если нужно конкретно под .Net - я думаю Microsoft - не та фирма, которая поощряет работу
с чем-либо кроме MSSQL. Можно не париться.
На каком основании?
...
Рейтинг: 0 / 0
Нужен AppServer для среднего звена ...
    #35125453
apapacy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил apapacy
Если нужно конкретно под .Net - я думаю Microsoft - не та фирма, которая поощряет работу
с чем-либо кроме MSSQL. Можно не париться.
На каком основании?

Автор топика прости список готовых решений. Список в студию.
...
Рейтинг: 0 / 0
Нужен AppServer для среднего звена ...
    #35125977
belugin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
apapacy Изопропил apapacy
Если нужно конкретно под .Net - я думаю Microsoft - не та фирма, которая поощряет работу
с чем-либо кроме MSSQL. Можно не париться.
На каком основании?

Автор топика прости список готовых решений. Список в студию.

Ask TheServerSide: Which .NET ORM is best?

Например:
hibernate.org - Databases supported by NHibernate

Microsoft SQL Server 2000
Oracle
Microsoft Access
Firebird
PostgreSQL
DB2 UDB
MySQL
SQLite

PS. Если бы вы погуглили 5 минут перед тем как отвечать пользы всем было бы больше
...
Рейтинг: 0 / 0
Нужен AppServer для среднего звена ...
    #35126194
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>belugin
>Например:
Извините, я видимо что-то не допонимаю. Поддерживает - это в смысле, имеется в наличии провайдер данных для соответствующей базы данных?
Но сами то запросы формируются по-разному. Их текст разный и при обращении и в хранимых процедурах. В одних базах данных нужную операцию можно и нужно реализовать в ХП, в других просто нет таких возможностей или не имеет смысла.

С уважением, Владимир.
...
Рейтинг: 0 / 0
Нужен AppServer для среднего звена ...
    #35126498
belugin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В NHibernate собственный язык запросов. Он транслируется в запросы БД. Если надо хранимые процедуры - их можно вызвать, но писать надо на языке БДю
...
Рейтинг: 0 / 0
Нужен AppServer для среднего звена ...
    #35128263
apapacy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
belugin
PS. Если бы вы погуглили 5 минут перед тем как отвечать пользы всем было бы больше


Сорри. Сылку на NHubernate на сайте Hibernate видел, но выпустил из памяти.
Но вот погуглив, отзывы об использовании N Hibernate пока сдержанные.
(В частности по производительности)
В то время как (J)Hibernate - промышленная технология.

Вы можете, положа руку на сердце рекомендовать NHibernate для реального проекта?
...
Рейтинг: 0 / 0
Нужен AppServer для среднего звена ...
    #35128308
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>belugin
>В NHibernate собственный язык запросов...
Вот конкретная реализации по-станичной передачи выборки клиенту
- первое возвращаемое подмножество представлено значением объема полной выборки
- второе возвращаемое подмножество есть табличное представление страницы выборки

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
//-- код хранимой процедуры
ALTER PROCEDURE au_Сообщения_Sel
@Sel_0 ntext,
@Sel_1 ntext
AS
-- Получим объём выборки
EXECUTE(@Sel_0)
-- очистим таблицу #gdTmp
TRUNCATE TABLE  #gdTmp
-- Запись отсортированных ключей в #gdPage
EXECUTE(@Sel_1)
-- Вот эти данные уходят на клиента
SELECT s.гдСообщение, s.стСообщение, s.тсСообщение, s.флОБ
FROM спкСообщения AS s INNER JOIN [#gdTmp] AS g ON s.гдСообщение = g.GUID
ORDER BY g.RowNum	
-- очистим таблицу #gdTmp
TRUNCATE TABLE  #gdTmp
RETURN
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
//-- Обращение к ХП за получением страницы
...
string Sel_0 = "SELECT COUNT(*) FROM спкСообщения"+stWHERE;
string Sel_1 = 
  "INSERT INTO #gdTmp(GUID) SELECT гдСообщение as GUID"+
  " FROM (SELECT TOP " + iTop.ToString() + " гдСообщение," +
  " ROW_NUMBER() OVER (ORDER BY стСообщение) as nRow FROM спкСообщения " + stWHERE + ") s"+
  " WHERE (s.nRow > " + iRecords.ToString()+")";
        
//-- Строим двойную выборку
idxCatch =  1 ; //-- Возможна ошибка задания параметров
гп.cmm.Parameters.Clear();
гп.cmm.Parameters.Add("@Sel_0", SqlDbType.NText).Value = Sel_0;
гп.cmm.Parameters.Add("@Sel_1", SqlDbType.NText).Value = Sel_1;
гп.cmm.CommandText = "au_Сообщения_Sel";
гп.cmm.CommandType = CommandType.StoredProcedure;
...
Что сгенерирует NHibernate ?
Специалисты по Oracle могут написать свою версию ХП и обращения к ней. Знакомые с DBF - свою.
Или мы имеем дело с примитивными конструкциями?
Если нет, то наверное будет резкое снижение скорострельности.

С уважением, Владимир.
...
Рейтинг: 0 / 0
Нужен AppServer для среднего звена ...
    #35128311
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>belugin
>В NHibernate собственный язык запросов...
Вот конкретная реализации по-станичной передачи выборки клиенту
- первое возвращаемое подмножество представлено значением объема полной выборки
- второе возвращаемое подмножество есть табличное представление страницы выборки

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
//-- код хранимой процедуры
ALTER PROCEDURE au_Сообщения_Sel
@Sel_0 ntext,
@Sel_1 ntext
AS
-- Получим объём выборки
EXECUTE(@Sel_0)
-- очистим таблицу #gdTmp
TRUNCATE TABLE  #gdTmp
-- Запись отсортированных ключей в #gdPage
EXECUTE(@Sel_1)
-- Вот эти данные уходят на клиента
SELECT s.гдСообщение, s.стСообщение, s.тсСообщение, s.флОБ
FROM спкСообщения AS s INNER JOIN [#gdTmp] AS g ON s.гдСообщение = g.GUID
ORDER BY g.RowNum	
-- очистим таблицу #gdTmp
TRUNCATE TABLE  #gdTmp
RETURN
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
//-- Обращение к ХП за получением страницы
...
string Sel_0 = "SELECT COUNT(*) FROM спкСообщения"+stWHERE;
string Sel_1 = 
  "INSERT INTO #gdTmp(GUID) SELECT гдСообщение as GUID"+
  " FROM (SELECT TOP " + iTop.ToString() + " гдСообщение," +
  " ROW_NUMBER() OVER (ORDER BY стСообщение) as nRow FROM спкСообщения " + stWHERE + ") s"+
  " WHERE (s.nRow > " + iRecords.ToString()+")";
        
//-- Строим двойную выборку
idxCatch =  1 ; //-- Возможна ошибка задания параметров
гп.cmm.Parameters.Clear();
гп.cmm.Parameters.Add("@Sel_0", SqlDbType.NText).Value = Sel_0;
гп.cmm.Parameters.Add("@Sel_1", SqlDbType.NText).Value = Sel_1;
гп.cmm.CommandText = "au_Сообщения_Sel";
гп.cmm.CommandType = CommandType.StoredProcedure;
...
Что сгенерирует NHibernate ?
Специалисты по Oracle могут написать свою версию ХП и обращения к ней. Знакомые с DBF - свою.
Или мы имеем дело с примитивными конструкциями?
Если нет, то наверное будет резкое снижение скорострельности.

С уважением, Владимир.
...
Рейтинг: 0 / 0
Нужен AppServer для среднего звена ...
    #35129068
belugin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
Что сгенерирует NHibernate ?
Специалисты по Oracle могут написать свою версию ХП и обращения к ней. Знакомые с DBF - свою.
Или мы имеем дело с примитивными конструкциями?
Если нет, то наверное будет резкое снижение скорострельности.


Я практически с этим не работал, но думаю, тут поступают как в свое время с ассемблерными вставками на ЯВУ: то, что тиормозит пишут на ХП, остальное - стандартно.
...
Рейтинг: 0 / 0
Нужен AppServer для среднего звена ...
    #35152913
мысль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В целом выбран следующий подход:
- App Server-ом будет IIS.
- Бизнес логика пишется на шарпе.
- клиент - браузер
- для Desktop клиента (WinForms, Delphi) доступ через WebServices
- компоненты доступа к базе на сервере например эти http://www.datadirect.com/
(хотя не обязательно - у них агрессивная ценовая политика)

Спасибо всем за участие.

Насчет NHibernate замечание интересное.
Кто-нибудь может посоветовать O/R mapper (.NET) ?
Поискал - нашел примерно 20 разных - проверять все сил нет.
...
Рейтинг: 0 / 0
Нужен AppServer для среднего звена ...
    #35152928
!мысль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мысльВ целом выбран следующий подход:
А рассказал бы ты, как же это ты выбор делал. Критерии какие использовал, методики оценки.

---

Короче, вижу что. Очередной вчерашний студент, попав в скучающую контору с устоявшимися
подходами и продуктами - получил задание от руководства - выбрать глобальную стратегию
глобального развития на следующие пять лет.

При этом конечно не станем говорить, что у студента - ни опыта, ни знаний, вообще нифига.
Только умение ходить по всяким интернетам. Спрашивать разное.

P.S. А вообще оборжаться. Право. Писать два раза, независимость от базы данных.
Ну прямо детский сад. Хотел бы я посмотреть на продукт, в котором - действительно, актуальна
независимость от базы данных. Ну хоть краем глаза.


Название не озвучишь?
...
Рейтинг: 0 / 0
25 сообщений из 53, страница 1 из 3
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Нужен AppServer для среднего звена ...
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]