SASGIS

Веб-картография и навигация

Многопользовательский доступ на чтение/запись к меткам

программа для загрузки и просмотра спутниковых снимков Земли, Луны, Марса предоставленных сервисами Google Maps и Космоснимки. Возможность работы с GPS приёмником.

Модератор: Tolik

Объединение двух и более баз меток+полигонов в одну.

Сообщение Revonik » 08 апр 2011, 12:13

Приветствую, участники и разработчики. Для начала хочу выразить благодарность всем разработчикам и участвующим в развитии проекта! Только за 2 месяца Вы сэкономили лично мне не один десяток часов в командировках, уже окупили покупку ГПС приёмника, адаптера 12-220В. Надеюсь что программа и дальше будет приносить результаты и радовать своей практичностью.
По теме. Работаю в отделе сбыта. Специфика работы такая, что со всеми созвониться и договориться о встрече не выйдет и затрачено времени будет немерено, к тому-же телефон телефоном а когда общаешься с человеком с глазу на глаз - гораздо приятней и результативней. Приходится выезжать в никуда и ни к кому. Классика - ноутбук, гпс приёмник, инвертор, айпад на всякий случай и вперёд. Но вот в чём дело - нас несколько, будет ещё больше. Сейчас 3 команды, одна база ( у меня и коллеги). Она начинает расти, расширяться, приходится систематизировать, находить нормальный алгоритм добавления предприятий в базу и т.п. В планах есть купить аналогичное оборудование ребятам с нашего отдела, дабы облегчить жизнь и чтоб была общая систематизация+возможность быстрого принятия решений, планирования поездок и других мелочей..В связи с этим нужно найти механизм объединения баз меток и баз полигонов, с их описаниями и т.п. Полигоны удобны простотой - навёл - увидел описание. Метки - не уменьшаются при масштабировании и удобны в навигации.
Как две, три и более баз МЕТОК и ПОЛИГОНОВ объединить в одну? (*.sml файлы и другие) Спасибо за внимание и извините за длинное предисловие.

Добавлено спустя пару часов:) - Исходя из того что я слеп и не смог найти на форуме аналогичного вопроса, прочитав тему можно сделать вывод - реально работающего и простого ещё ничего нет... предлагаю нанять на всех секретутку на месяц-другой, дать задание "объединять" и пусть занимается. Убиваем двух зайцев - есть чем и кем заняться после рабочего дня (поделимся) и основное дело будет сделано. :D
Revonik
Новичок
 
Сообщения: 11
Зарегистрирован: 10 мар 2011, 16:33
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Многопользовательский доступ на чтение/запись к меткам

Сообщение seva100 » 12 май 2011, 16:46

Как вариант, который бы меня устроил. В SASPlanet.ini добавить параметр с путем к файлу Categorymarks.sml и marks.sml.
Идя такова. В SASPlanet.ini указывам хранение sml файлов в профиле пользователя через системные переменные (например:Categorymarks=%userprofile%\Categorymarks.sml)
На сервере я храню эталоны этих файлов. Программа запускается с сервера через скрипт или cmd, который перед запуском копирует с сервера эталоны файлов в профиль пользователя.
Таким образом я централизовано храню sml файлы не давая пользователю их поломать, в то же время давая пользователям работать с ними (включать выключать метки и группы).

Если ставится задача сбора данных, то перед копированием можно у пользователей эти файлы собирать и скармливать скрипту который будет объединять sml. Но эта задача требует отдельного продумывания реализации, ибо может наступить хаос. Мне такое пока не требуется.

Если это возможно, прошу разработчика реализовать управление размещением фалов sml через ini файл, в ближайшее время.

P.S.Не перестаю с восхищаться самой и программой и ее возможностями. Автору огромная благодарность и уважение за идею и реализацию.
seva100
Новичок
 
Сообщения: 11
Зарегистрирован: 23 дек 2008, 19:02
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.

Re: Объединение двух и более баз меток+полигонов в одну.

Сообщение Parasite » 12 май 2011, 19:19

Revonik писал(а):Как две, три и более баз МЕТОК и ПОЛИГОНОВ объединить в одну?

Воспользоваться поиском.

seva100 писал(а):прошу разработчика реализовать управление размещением фалов sml

Что мешает:
1) хранить в профиле всю папку с САСом (а кэш - вне профиля) - это всего лишь пара мегабайт, либо
2) хранить ЛЮБОЙ файл там где нравится, а в папке САСа - поставить линк FS на туда, где он действительно хранится?

Не, ну народ, а..... :!:
The only difference between me and a mad man is that I am not mad. /Salvador Dali/
Изображение
Аватара пользователя
Parasite
Администратор
 
Сообщения: 5646
Зарегистрирован: 23 окт 2008, 17:38
Благодарил (а): 124 раз.
Поблагодарили: 512 раз.

Re: Объединение двух и более баз меток+полигонов в одну.

Сообщение seva100 » 12 май 2011, 21:33

Parasite писал(а):Что мешает:
1) хранить в профиле всю папку с САСом (а кэш - вне профиля) - это всего лишь пара мегабайт, либо
2) хранить ЛЮБОЙ файл там где нравится, а в папке САСа - поставить линк FS на туда, где он действительно хранится?

Первый вариант вполне понятен. И на сегедня вижу как единственное решение.
А на счет воторого подробней можно? Делаю так. Файлы sml перекидываю в профиль пользователю. В папку SAS кладу Categorymarks.lnk и marks.lnk со ссылкой на файлы. Такой вариант не работает. Ибо SAS, как я понимаю, ищет в своей папке именно Categorymarks.sml marks.xml.
seva100
Новичок
 
Сообщения: 11
Зарегистрирован: 23 дек 2008, 19:02
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.

Re: Объединение двух и более баз меток+полигонов в одну.

Сообщение Parasite » 12 май 2011, 22:46

seva100 писал(а):
Parasite писал(а):линк FS

кладу Categorymarks.lnk и marks.lnk

Это вовсе не линки FS (они же симлинки в винде, они же софт\хардлинки в никсах).
http://en.wikipedia.org/wiki/NTFS_symbolic_link
The only difference between me and a mad man is that I am not mad. /Salvador Dali/
Изображение
Аватара пользователя
Parasite
Администратор
 
Сообщения: 5646
Зарегистрирован: 23 окт 2008, 17:38
Благодарил (а): 124 раз.
Поблагодарили: 512 раз.

Re: Объединение двух и более баз меток+полигонов в одну.

Сообщение seva100 » 13 май 2011, 18:28

Parasite писал(а):
seva100 писал(а):
Parasite писал(а):линк FS

кладу Categorymarks.lnk и marks.lnk

Это вовсе не линки FS (они же симлинки в винде, они же софт\хардлинки в никсах).
http://en.wikipedia.org/wiki/NTFS_symbolic_link

Спасибо за наводочку. Полезная вещь. Не доводилось использовать.
Однако работать как мне надо оно не будет.
Делаю так: кладу юзеру в папку %userprofile%\sas\Categorymarks.sml
На сервере, находясь в папке SAS даю команду mklink Categorymarks.sml %userprofile%\sas\Categorymarks.sml
При выполнении этой команды интерпретатор преобразует системную переменную %userprofile% в прямой путь. Т.е. создается символьная ссылка на файл лежащий только у данного юзера. Т.е. ни о каком многопользовательском режиме говорить не приходится.
Или поправьте меня или просьбу с внесением изменений в ini файл оставляю открытой.

По сути проблема многопользовательского доступа на чтение к меткам сводится к следующему. При работе с метками программа читает файлы, при внесении изменений записывает их потом перечитывает и отображает на карте. А вот если бы изменения она сперва держала в уме и отображала из ума, а при выходе, пыталась сохранить в файле последнее состояние, то проблем бы не было. Ибо исключение на запись поставить не проблема.
seva100
Новичок
 
Сообщения: 11
Зарегистрирован: 23 дек 2008, 19:02
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.

Re: Объединение двух и более баз меток+полигонов в одну.

Сообщение Parasite » 13 май 2011, 19:14

seva100 писал(а):Однако работать как мне надо оно не будет.

Симлинки никогда не подразумевали true-многопользовательского доступа - и это уже не к САСу, нек.образом.
Они подразумевали разделение точки физ.хранения файла - и точки доступа к нему, засим всё. Дальше - уже на усмотрение админа, т.е. Вас.
Хочется полной многопользовательности - придется смотреть куда-то в сторону баз данных и автогенераций нужного файла своими силами.

seva100 писал(а):Делаю так: кладу юзеру в папку %userprofile%\sas\Categorymarks.sml
На сервере, находясь в папке SAS даю команду mklink Categorymarks.sml %userprofile%\sas\Categorymarks.sml
При выполнении этой команды интерпретатор преобразует системную переменную %userprofile% в прямой путь. Т.е. создается символьная ссылка на файл лежащий только у данного юзера. Т.е. ни о каком многопользовательском режиме говорить не приходится.

Что мешает Вам положить каждому юзеру - по симлинку в профиль? :)
Ничто не мешает иметь тысячи симлинков в разных местах на один-единственный файл, и даже рекурсия часто доступна (хоть и относится к фичам, а не к опциям)...

seva100 писал(а):При работе с метками программа читает файлы, при внесении изменений записывает их потом перечитывает и отображает на карте. А вот если бы изменения она сперва держала в уме и отображала из ума, а при выходе, пыталась сохранить в файле последнее состояние, то проблем бы не было. Ибо исключение на запись поставить не проблема.

Это можно сделать элементарными функциями оси (например по закрытию САСа - копирование батником измененного sml назад в профиль, откуда он ссинхронизируется с сервером и без САСа).
The only difference between me and a mad man is that I am not mad. /Salvador Dali/
Изображение
Аватара пользователя
Parasite
Администратор
 
Сообщения: 5646
Зарегистрирован: 23 окт 2008, 17:38
Благодарил (а): 124 раз.
Поблагодарили: 512 раз.

Re: Многопользовательский доступ на чтение/запись к меткам

Сообщение vdemidov » 13 май 2011, 19:53

seva100 писал(а):По сути проблема многопользовательского доступа на чтение к меткам сводится к следующему. При работе с метками программа читает файлы, при внесении изменений записывает их потом перечитывает и отображает на карте. А вот если бы изменения она сперва держала в уме и отображала из ума, а при выходе, пыталась сохранить в файле последнее состояние, то проблем бы не было. Ибо исключение на запись поставить не проблема

Ну программа сейчас так и действует. Правда сохраняет после каждого существенного изменения, но не перечитывает. Поэтому если два экземпляра будут работать с одной базой меток и одновременно править ее, то получим что сохраняться только изменений того экземпляра, что закрыли последним :)
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Аватара пользователя
vdemidov
Гуру
 
Сообщения: 1687
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз.
Поблагодарили: 157 раз.

Re: Объединение двух и более баз меток+полигонов в одну.

Сообщение seva100 » 14 май 2011, 00:10

Что то не так. Усматриваю недопонимание. Возможно моя задача не в полной мере соответсвует названию темы.
Моя задача проста. Программа SAS лежит на шаре сервера. Доступ к ней происходит через запуск ярлыка с корпоративного сайта.
Файлами sml управляю только я. По умолчанию все пычки с групп меток сняты. Юзер запускает SAS и выбирает нужную группу для отображения. Режим включи, посмотрел, выключил. Прав редактировать группы и метки у юзеров нет.
Проблема в том что когда юзер включат пычку группы и нажимает "применить" (или "ОК") программа рапортует об ошибке доступа к файлу sml и ни чего не отображает.

Parasite писал(а):Симлинки никогда не подразумевали true-многопользовательского доступа - и это уже не к САСу, нек.образом.
Они подразумевали разделение точки физ.хранения файла - и точки доступа к нему, засим всё. Дальше - уже на усмотрение админа, т.е. Вас.
Хочется полной многопользовательности - придется смотреть куда-то в сторону баз данных и автогенераций нужного файла своими силами.

Сим линки не я предложил.

Parasite писал(а):
seva100 писал(а):Делаю так: кладу юзеру в папку %userprofile%\sas\Categorymarks.sml
На сервере, находясь в папке SAS даю команду mklink Categorymarks.sml %userprofile%\sas\Categorymarks.sml
При выполнении этой команды интерпретатор преобразует системную переменную %userprofile% в прямой путь. Т.е. создается символьная ссылка на файл лежащий только у данного юзера. Т.е. ни о каком многопользовательском режиме говорить не приходится.

Что мешает Вам положить каждому юзеру - по симлинку в профиль? :)
Ничто не мешает иметь тысячи симлинков в разных местах на один-единственный файл, и даже рекурсия часто доступна (хоть и относится к фичам, а не к опциям)...

Не пойму куда Вы клоните. Не смотря на то что сим линки Xp (клиентские ОС) не поддерживает, по моему разумению юзеру в профиль нужно класть не линки, а сами файлы sml, а в папку SAS класть сим линк на файлы в профиле пользователей. Но как я сказал выше сим линки это прямые ссылки, которые не умеют интерпретировать системные переменные.

Parasite писал(а):
seva100 писал(а):При работе с метками программа читает файлы, при внесении изменений записывает их потом перечитывает и отображает на карте. А вот если бы изменения она сперва держала в уме и отображала из ума, а при выходе, пыталась сохранить в файле последнее состояние, то проблем бы не было. Ибо исключение на запись поставить не проблема.

Это можно сделать элементарными функциями оси (например по закрытию САСа - копирование батником измененного sml назад в профиль, откуда он ссинхронизируется с сервером и без САСа).

Все таки не могу понять какую реализацию моей проблемы Вы подразумеваете.
Если подразумевается отдать юзеру на запись файлы sml, а по выходу из программы восстановить файлы, то это не вариант. (далее информация не проверенная эксперементально) Т.к. все юзера будут натыкивать разные группы меток. И пока один включает группу "1" другие включат другие группы. Выходит кто последний нажмет "ОК", того информация и отобразится.
seva100
Новичок
 
Сообщения: 11
Зарегистрирован: 23 дек 2008, 19:02
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.

Re: Объединение двух и более баз меток+полигонов в одну.

Сообщение Parasite » 14 май 2011, 08:18

seva100 писал(а):Возможно моя задача не в полной мере соответсвует названию темы.

Возможно, Вы просто не можете описать - что и как конкретно Вам нужно.

seva100 писал(а):Программа SAS лежит на шаре сервера. Доступ к ней происходит через запуск ярлыка с корпоративного сайта.
Файлами sml управляю только я. По умолчанию все пычки с групп меток сняты. Юзер запускает SAS и выбирает нужную группу для отображения. Режим включи, посмотрел, выключил. Прав редактировать группы и метки у юзеров нет.
Проблема в том что когда юзер включат пычку группы и нажимает "применить" (или "ОК") программа рапортует об ошибке доступа к файлу sml и ни чего не отображает.

1. Доступ к файлу на запись (пермишны) у данного юзера - есть?
2. При запуске одной копии программы - не лочит ли эта запущенная копия данные файлы монопольно под себя? Скорее всего - лочит, но не проверял за ненадобностью.

seva100 писал(а):Сим линки не я предложил.

Симлинки были предложены в свете Ваших верхних слов: "скрипт или cmd, который перед запуском копирует с сервера эталоны файлов в профиль пользователя." То есть файлы sync'аются через профили и становятся локальными и отдельными у каждого пользователя, линкуй куда угодно в пределах его локальной системы - не хочу. Разумеется, САС при этом тоже должен быть локальным (для обеспечения монопольного доступа на запись к этим двум файлам) - т.е. у каждого свой. Вот оттуда, где САС лежит - и можно было залинковать на файлы, копируемые\приходящие через профиль, то есть в пределах одной локальной системы все будет работать, и изменения будут уходить на сервер через профиль.
Теперь же оказывается, что и вся программа пускается с сервера: "Программа SAS лежит на шаре сервера. Доступ к ней происходит через запуск ярлыка с корпоративного сайта". То есть, программа по сути одна, она не локальна, и файлы по сути одни - а к ним пытаются взять мультидоступ из программы, не подразумевающей таковой фичи. Ну-ну, блажен кто верует...

Либо я вообще не понимаю, что и как там у Вас. Скрипты "запуска с сервера через скрипт или cmd", конфигурации всего вопроса - в студию.

seva100 писал(а):сим линки Xp (клиентские ОС) не поддерживает

Во-первых упоминания XP выше нигде не было - а читать мысли я могу с трудом, а во-вторых - проблемы ХП уже не ко мне, не к этому форуму, и не к сасу. Вы б в Гугль походили б для начала, что ли...
http://habrahabr.ru/blogs/windows/50878/

seva100 писал(а):Если подразумевается отдать юзеру на запись файлы sml, а по выходу из программы восстановить файлы, то это не вариант. (далее информация не проверенная эксперементально) Т.к. все юзера будут натыкивать разные группы меток. И пока один включает группу "1" другие включат другие группы. Выходит кто последний нажмет "ОК", того информация и отобразится.

Я знаю. Именно поэтому выше и были слова "Симлинки никогда не подразумевали true-многопользовательского доступа" (на чтение они поработают отлично - а вот на запись будет как раз именно та картина которую Вы и описали, и это не к симлинкам а к системе как таковой), и "Хочется полной многопользовательности - придется смотреть куда-то в сторону баз данных и автогенераций нужного файла своими силами" (ключевое слово - "полной").
The only difference between me and a mad man is that I am not mad. /Salvador Dali/
Изображение
Аватара пользователя
Parasite
Администратор
 
Сообщения: 5646
Зарегистрирован: 23 окт 2008, 17:38
Благодарил (а): 124 раз.
Поблагодарили: 512 раз.

Пред.След.

Вернуться в SAS.Планета

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 43