powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / GT.M Storage Backend решение
18 сообщений из 18, страница 1 из 1
GT.M Storage Backend решение
    #38030422
SergeyLee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Необходимо принять решение о том, как работать с базой данных (СУБД) GT.M и так как я новичок в этом, то прошу указать ошибки мышления или выбора :)

Есть так называемый (мной) Storage Backend (классная информация кстати: http://highscalability.com/blog/2012/6/5/thesis-concurrent-programming-for-scalable-web-architectures.html).
Storage Backend предназначен для делегирования функций по работе с базой данных. Что то подобное (или точно такое) - M/DB или MiniM.

Немного поработав с GT.M посредством вызовов C++ Call-Ins ( http://tinco.pair.com/bhaskar/gtm/doc/books/pg/UNIX_manual/ch11s05.html) и слегка копируя идею GlobalsDB Java API я начал разработку своего GT.M C++ Wrapper. Это первый вариант работы с базой данных в Storage Backend.
Второй вариант это Client/Server, например M/Wire. Это вариант я как раз собираюсь опробовать в ближайшее время в полной мере. Но необходимо понять какой вариант лучше для моего Storage Backend.

Я могу размещать Storage Backend на одном физическом сервере с базой данных и значит будет работать мой GT.M C++ Wrapper. Конечно я могу сделать (как в GlobalsDB Java API) создание соединений (опять же каких? TCP? и как я буду выполнять Call-Ins для базы данных, с которой соединился?).
Но я могу реализовать второй вариант, больше бизнес-логики реализовав на стороне базы данных (СУБД) в виде M рутин.

Что выбрать и где я ошибаюсь? Вот в чем вопрос...
PS: никак не могу выделить время на чтение книг-текстов по MUMPS...
Модератор: подправил название темы
...
Рейтинг: 0 / 0
GT.M Storage Backend решение
    #38030622
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но я могу реализовать второй вариант, больше бизнес-логики реализовав на стороне базы данных (СУБД) в виде M рутин.
Будет Вам скорость(самая большая, это прямой доступ) и гибкость обработки БД.
Можно попробовать и первый вариант и в конце сравнить варианты. Вот тогда и все прояснится... :)
...
Рейтинг: 0 / 0
GT.M Storage Backend решение
    #38030680
Фотография DirksDR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeyLee,

По соседству есть два форума "Проектирование БД" и "Разработка информационных систем".
Там на такие посты ответ короткий - ТЗ в студию!
Какие данные, какая обработка, сколько пользователей, какие запросы - не имея представления об этом невозможно что-то рекомендовать.

Код: sql
1.
2.
3.
Я могу размещать Storage Backend на одном физическом сервере с базой данных и значит будет работать мой GT.M C++ Wrapper. 
Конечно я могу сделать (как в GlobalsDB Java API) создание соединений (опять же каких? TCP? 
и как я буду выполнять Call-Ins для базы данных, с которой соединился?).


Вариант 1. Ставите на каждый сервер свой Wrapper, которые взаимодействуют с GT.M через Ваш любимый Call-Ins, а по TCP взаимодействуют с Супер-Wrapper, к которому подключаются пользователи.

Вариант 2. Плюньте на Call-Ins, подключайтесь к серверам GT.M через TCP. Возьмите за основу M/Wire,
посмотрите http://karataev.nm.ru/cache/mdapi.html , здесь есть примеры клиентских программ.
Упор сделайте не на мампсовские SET и KILL, а на XECUTE и DO, т.е. на вызов прикладных программ и функций.

P.S.Так и не пойму, для чего Вам нужен C++ Wrapper.
...
Рейтинг: 0 / 0
GT.M Storage Backend решение
    #38030717
SergeyLee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DirksDRSergeyLee,

По соседству есть два форума "Проектирование БД" и "Разработка информационных систем".
Там на такие посты ответ короткий - ТЗ в студию!
Какие данные, какая обработка, сколько пользователей, какие запросы - не имея представления об этом невозможно что-то рекомендовать.

Код: sql
1.
2.
3.
Я могу размещать Storage Backend на одном физическом сервере с базой данных и значит будет работать мой GT.M C++ Wrapper. 
Конечно я могу сделать (как в GlobalsDB Java API) создание соединений (опять же каких? TCP? 
и как я буду выполнять Call-Ins для базы данных, с которой соединился?).


Вариант 1. Ставите на каждый сервер свой Wrapper, которые взаимодействуют с GT.M через Ваш любимый Call-Ins, а по TCP взаимодействуют с Супер-Wrapper, к которому подключаются пользователи.

Вариант 2. Плюньте на Call-Ins, подключайтесь к серверам GT.M через TCP. Возьмите за основу M/Wire,
посмотрите http://karataev.nm.ru/cache/mdapi.html , здесь есть примеры клиентских программ.
Упор сделайте не на мампсовские SET и KILL, а на XECUTE и DO, т.е. на вызов прикладных программ и функций.

P.S.Так и не пойму, для чего Вам нужен C++ Wrapper.

Спасибо :)
Ну я так и предполагал :) Но интуиция это такое... А почему C++ Wrapper? Да просто это первое, что я сделал ручками и получилось :) Буду теперь смотреть M/Wire 100% уверенным, что иду в правильном направлении...
Такс) А по поводу ТЗ и другого форума... Я тут уже как бы устроился как дома))) а там еще не был)))
Проектирование БД - это проектирование данных) Информационные системы как бы уже продумано все) она не очень и сложная как по архитектуре, мне как раз нужен был механизм работы с базой данных.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
GT.M Storage Backend решение
    #38773580
SergeyLee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DirksDR,

спустя 2 года таки пришли к выводу, что надо писать логику работы с данными на стороне М (GT.M)
и промежуточный слой (TCP) буду разрабатывать на основе ZeroMQ
на стороне фронтенда будет логика работы с интерфейсом и выполнение логики на стороне М в виде сообщений, содержащих соответствующие функции

неизвестно правда когда эта вторая версия тронется с места полным ходом, нужно столько работы для определения технического задания, что даже не знаю когда все свершится :)
с моей стороны будет медленное "познание" ZeroMQ, написание промежуточного слоя, и затем простейшего примера с его использованием - пример бекенда и пример фронтенда... но это все 8 часов в неделю...
...
Рейтинг: 0 / 0
GT.M Storage Backend решение
    #38773591
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeyLee,
спустя 2 года таки пришли к выводу, что надо писать логику работы с данными на стороне М (GT.M)
Я постоянно об этом говорил.
Хочешь скорость-используй прямой доступ к глобалям.
...
Рейтинг: 0 / 0
GT.M Storage Backend решение
    #38775026
SergeyLee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Valeriu,

А я передавал своим коллегам эту мысль, но они не внимали ей, пока не возникло несколько ситуаций, после которых начальник отдела (он же основной разработчик фронтенда на PHP) начал решительно ломать систему в сторону "пишем всем на М", что тоже несовсем правильно (наверное).
Я хочу писать на М только логику работы с данными, а формирование страниц по крайней мере на первых порах - на PHP, JavaScript.
Можно конечно формировать страницы (HTML+JavaScript) и на М, но на это надо потратить время - спроектировать каркас, возможность формирования страниц по шаблону (шаблонизатор на М) и прочее.
...
Рейтинг: 0 / 0
GT.M Storage Backend решение
    #38775039
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeyLee,
Я хочу писать на М только логику работы с данными, а формирование страниц по крайней мере на первых порах - на PHP, JavaScript
Я думаю, что это правильный подход.
...
Рейтинг: 0 / 0
GT.M Storage Backend решение
    #38775114
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValeriuЯ думаю, что это правильный подход.
Какой смысл привлекать еще один язык если ГТ.М поддерживает работу с вэбом?
...
Рейтинг: 0 / 0
GT.M Storage Backend решение
    #38775299
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa,
Много об этом говорят, но на чистом М если честно,
я приложений мало видел.
Например Роб Твид (EWD.js) предлагает
вообще отказаться от М на стороне клиента и все писать
на JS, а М использовать чисто как хранилище.
Выше есть пост DataBallet, где автор предлагает писать
на М, но примеров мало совсем.
Помню на МСМ-е была попытка на PDQweb, но тоже не взлетело.
...
Рейтинг: 0 / 0
GT.M Storage Backend решение
    #38775308
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну не на чистом M но только на Cache, много приложений я думаю, ну а по поводу клиента на чем же еще его писать.
...
Рейтинг: 0 / 0
GT.M Storage Backend решение
    #38775326
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValeriuМного об этом говорят, но на чистом М если честно,
я приложений мало видел.
Так где найти тот хостинг с Кащеем! Кабы он был... И был бесплатным... Я бы всю траву примял!!!

ValeriuНапример Роб Твид (EWD.js) предлагает
вообще отказаться от М на стороне клиента и все писать
на JS, а М использовать чисто как хранилище.
Так М - серверный язык. Как его на клиенте использовать?

Я лишь писал про формирование страниц...
Зачем это делать на ПХП, цепляясь к М? Если можно гененрть самим М.
...
Рейтинг: 0 / 0
GT.M Storage Backend решение
    #38775344
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa,
Конечно на серверной стороне. Очепятка. :)
...
Рейтинг: 0 / 0
GT.M Storage Backend решение
    #38775350
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это будет примерно на одних Write Write "<!DOCTYPE html>",! 
 Write ! 
 Write "<html>",! 
 Write "<head>",! 
 Write "  <title>Index</title>",! 
 ......
...
Рейтинг: 0 / 0
GT.M Storage Backend решение
    #38775363
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValeriuЭто будет примерно на одних Write
И в чем криминал?
...
Рейтинг: 0 / 0
GT.M Storage Backend решение
    #38775367
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для удобства конечного разработчика делается набор из процедур и функций... С их помощью все и строится...
...
Рейтинг: 0 / 0
GT.M Storage Backend решение
    #38775369
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValeriuЭто будет примерно на одних Write Write "<!DOCTYPE html>",! 
 Write ! 
 Write "<html>",! 
 Write "<head>",! 
 Write "  <title>Index</title>",! 
 ......Ну при большом желании, можно написать нормальный фрейморк на M, и тогда можно например по $text, вытаскивать шаблон, из своей же рутины, и вставлять нужные поля.
а сейчас нормальное приложение должно возвращать в большинстве случаев только например JSON.
а HTML На основе шаблонов генерируется на стороне браузера.
...
Рейтинг: 0 / 0
GT.M Storage Backend решение
    #38775612
SergeyLee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DAiMorНу при большом желании, можно написать нормальный фрейморк на M, и тогда можно например по $text, вытаскивать шаблон, из своей же рутины, и вставлять нужные поля.
а сейчас нормальное приложение должно возвращать в большинстве случаев только например JSON.
а HTML На основе шаблонов генерируется на стороне браузера.

а я об этом и писал
SergeyLeeно на это надо потратить время - спроектировать каркас, возможность формирования страниц по шаблону (шаблонизатор на М) и прочее.

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

сейчас правда я частично перевожу документацию и пишу некоторое описание GT.M и MUMPS для своих же коллег, для того, чтобы их быстро обучить этому, а дальше уже все пойдет-поедет, но это все планы :)
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / GT.M Storage Backend решение
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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