Июль 2009

«Совместное использование одного пользователя приложения над расстоянием»

Определение доли

Многие условия работы требуют совместного написания и редактирования документов в различных форматах. В простых случаях является по существу один автор, который получает утверждения и комментарии от других. В других случаях документ действительно совместно созданный с использованием методов асинхронной или синхронной. Распространенный способ совместного редактирования документа, является обмен версий проекта между авторами по электронной почте. Этот метод вводит возможность конфликтующих изменений и пропущенных взносов, а также значительное бремя как все члены группы отвечают за управление версиями. Принцип трудность заключается в что можно внести независимые изменения различных версий, которые впоследствии должны быть согласованы вручную. Это также трудно определить, когда и почему было внесено изменение.

Эта статья знакомит TellTable, открытым исходным кодом система, предназначенная для одного пользователя программное обеспечение приложения осуществляется на совместной основе. Мы будем обсуждать современные модели сотрудничества, технические аспекты рамок программного обеспечения TellTable, вопросы безопасности в ее осуществлении и тесты производительности.

Модели сотрудничества

Хотя были предложены совместные написание и редактирование решений начиная с 1970-х, люди предпочитают использование одного пользователя приложений и распространение копий по электронной почте. В последнее время дизайнеры решили воспользоваться веб-популярность в надежде вытеснена электронной почты популярность. Мы видим три написания и редактирования моделей сотрудничества, предлагаемых в Интернете:

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

  2. Веб-родной модели: специальный редактор построен с нуля для работы через веб-браузер. Итоговый документ является часто в формате HTML. Существует множество примеров этого подхода, в том числе вики, SynchroEdit, WriteBoard, NumSum, gOffice и Google Docs и Spreadsheets.

  3. Гибридная модель: обычно одного пользователя приложения например OpenOffice адаптирована для работы через веб-браузер. Примеры этого включают TellTable, coWord, coPowerPoint и coStarOffice.

В гибридной модели использование веб-браузера для обеспечения отображения для приложения позволяет пользователям использовать знакомый интерфейс для доступа к документу и запуска функций приложений. Это возможно для использования программ, отличных от веб-обозревателя для отображения данных. Другие на основе веб совместного редактирования модели включают peer-to-peer и клиент серверной модели, такие как MoonEdit, SubEthaEdit и Groove сетей.

TellTable

С TellTable основной одного пользователя программного обеспечения, таких как OpenOffice, работает на сервере. Пользователи войти в сервер с браузером и представление и взаимодействовать с этой программой через подключаемый модуль браузера. Этот подход обеспечивает простой миграции путь для пользователей, знакомых с приложениями одного пользователя, обеспечивая при этом пользу сервера, который упаковывает приложения в среде совместной работы. Это согласуется с нашей философией, что принцип проблема разработки совместных систем является простота использования. Участники жесткого использования совместной системы, как правило, будет прибегать к отправке личных документов между друг с другом.

TellTable была начата в 2002 году как подход для аудита электронной таблицы. Запуск программного обеспечения электронной таблицы на сервере, могут захвачены все взаимодействия пользователя и в централизованном порядке. Впоследствии TellTable была расширена в рамки общей системы сотрудничества. Серверный компонент проекта был в марте 2004 года, под GNU Lesser General Public License и распространяется с Sourceforge. Мы в настоящее время занимаются различные усовершенствования его функциональность и активно заинтересованы в сотрудничестве с другими на его дальнейшем развитии.

Для пользователя TellTable функции, как веб-приложение. Пользователь вводит URL-адрес сервера в Интернет-браузер и представлен с страницы входа. После ввода комбинации имени пользователя и пароля, пользователю предоставляется экран, показывающий текущее состояние всех файлов, к которому они имеют доступ. На низком уровне привилегий пользователь будет показано имя файла, номер последней версии и имя пользователя и Дата/время последнего изменения файла. Если другой пользователь выбрал «Редактировать» файл, он будет помечен как «Заблокировано», если пользователь не выбрал для обмена сессии в этом случае он будет помечен как «Shared». Уровни привилегий пользователя могут быть установлены другие функции, такие как «Аудит» или разрешить доступ к истории версий файлов. На рисунке 1 показан вид экрана доступа к файлу.

Рисунок 1: Экран доступа к файлу TellTable в


 

Параметр «Загрузка» вызовет браузер для загрузки выбранного файла на локальный компьютер, чтобы его можно манипулировать локально. Эти изменения происходят вне рамок TellTable и не могут быть повторно вставлены в журнал версий файла без административных привилегий. Параметры «Правка» и «Просмотр» использовать апплет Java VNC viewer для подключения к VNC-серверу под управлением соответствующего программного обеспечения. Сервер реализует выбранную функцию, взаимодействует с входом пользователя и обновляет вывод на экран.

По умолчанию пользователь, редактирующий файл имеет эксклюзивный доступ для записи к файлу, который соответствует асинхронный рабочий процесс. Для того, чтобы разрешить синхронное изменение, пользователь, редактирующий файл необходимо нажать кнопку «Share File». Это позволит другим пользователям с разрешениями для изменения или просмотра файла, возможность одновременно доступ к документу. Поскольку базовые приложения одного пользователя, все TellTable пользователи будут видеть же представление документа и будет иметь их взаимодействия клавиатуры и мыши в сочетании к приложению. Это означает, что есть только один курсор, и люди должны принимать по очереди ввода данных. Во время синхронного редактирования с общим входом может показаться источником конфликта, наш опыт показывает, что такое редактирование обычно делается в связи с Конференц-связь между участниками. Группа, как правило, назначать одного пользователя, чтобы внести изменения, в то время как другие часы и комментарий. Наш опыт показывает, что когда пользователи конкурируют за контроль клавиатуры и мыши, пользователь опыт может стать хаотической, но программное обеспечение остается стабильной.

Из-за ограничений модели безопасности Java апплет, некоторые операции функции по-разному от своих коллег на клиентской рабочей станции. Во-первых пользователь должен выйти из программного обеспечения office и окна браузера. Если пользователь закрывает только окно браузера, приложение остается под управлением, и пользователь может получить доступ к приложение, войдя в. С точки зрения дизайна брошенных сессий должны быть обнаружены с помощью тайм-аута и автоматически закрывается. Во-вторых copy-paste требует, чтобы мы обойти безопасность Java апплет, который мешает апплеты взаимодействовать непосредственно с буфером обмена клиентской машины. Наш дизайн использует поля ввода HTML для получения входных данных из трех источников данных: текст из буфера обмена, локальные файлы и файлы сервера. В каждом случае новые данные копируются только для чтения файл на сервере и открыт как под окном документа OpenOffice. Это позволяет пользователю выбрать текст из загруженного документа и вставьте его в рабочий документ при необходимости.

Компоненты с открытым исходным кодом

Блок-схема сообщающимися компонентов сервера и клиентского компьютера показан на рисунке 2.

Рисунок 2: TellTable компоненты


 

 

TellTable разработан, чтобы предложить кросс-платформа поддержки для Windows 98/2000/XP, Linux и Mac OS X, используя Internet Explorer 5.0 +, Mozilla 1.4 +, Firefox и опера браузеров. Клиентский компьютер должен иметь графический интернет-браузер с поддержкой протокола HTTPS и Java-апплеты. Размер апплета VNC настраивается во время установки с размером по умолчанию 900 × 550 пикселей. Это хорошо работает с разрешения экрана 1024 × 768 или выше, но может быть немного неудобно ниже параметры разрешения экрана.

Ядро сервера TellTable является пул процессов сервера VNC, которые могут быть распределены на нескольких физических серверах. Во время загрузки системы пользовательская программа Perl выполняет инициализацию среды TellTable и инициализирует сервер TellTable для принятия и обработки команд.

TellTable сервер работает под Apache на Linux. Компоненты веб-сервера являются главным образом CGI скриптов, написанных на Perl. Шифрование SSL используется для защиты информации входа в систему. TellTable поддерживает базу данных активности системы, с использованием формата BerkeleyDB. Блокировка базы данных между несколькими вызовами CGI скрипта реализуется с помощью Perl-модуль DB_File::Lock.

Версии файлов хранятся с использованием параллельных версий системы (CVS), которая позволяет ветвление, слияние и разностных файлов. TellTable's простой последовательный прогрессирование номера версий использует CVS, чтобы разрешить извлечение старых версий и поддерживать описательный текст журналы с каждой версией. Поскольку TellTable управляет конфликты с использованием блокировок, CVS возможности для ветвления и слияния не являются обязательными. Хотя файл разностный будет иметь большую пользу для пользователей, CVS была разработана для простых текстовых файлов во время мультимедиа и другие файлы программного обеспечения office обычно двоичные. Это означает, что «diff» функции CVS не работают как ожидалось. Полезная презентация документа различия необходимо будет определяться на уровне приложения и некоторые программного обеспечения office предоставляют эту функцию, но мы не работаем на интерфейс для этой возможности в настоящее время.

Проектирование безопасности

Совместная работа представляет проблемы безопасности, которые не существуют для индивидуального автора. Мы классифицировать их как уязвимости сервера, клиентского компьютера уязвимости, контроля доступа и уровня контроля доступа.

Уязвимость сервера: совместные системы требуют сетевого сервера, который, как минимум, поддерживает хранилище версий файлов. Такие сетевые серверы потенциально уязвимы для взлома через приложения, запущенные на сервере. В более сложных приложений сервер требуется для выполнения более сложных операций, подвергая его к большему числу возможных атак.

Уязвимости клиента: совместное редактирование, не без риска для клиентского компьютера, даже при обмене версий проекта по электронной почте. Самые современные офисные пакеты поддерживают макро языков, которые являются популярным средством для передачи компьютерных вирусов. Поскольку TellTable запускает такие приложения на сервере, важно защитить его от вирусов.

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

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

TellTable сервер имеет брандмауэр настроен таким образом, что только порты протокола HTTPS и VNC могут быть доступны из Интернета и клиентских машин. Брандмауэр полностью блокирует исходящий доступ к сети с TellTable серверов, что означает, что пользователи и злоумышленники не будут иметь доступ к программному обеспечению сервера, работающие на серверах TellTable.

При инициализации сервера каждый процесс TellTable имеет уникальный случайный код строки, встроенные в нее и хранятся в базе данных Web сервера. При выдаче команды, TellTable сервер вычисляет SHA1 код проверки подлинности сообщения на основе текста команды и сохраненные код. Команды с кодом недопустимого проверки подлинности, игнорируются с ошибкой. Этот код также служит одноразовый пароль для подключения к серверу VNC. Этот механизм гарантирует, что пользователь предыдущей сессии VNC не может подслушивать на одной из будущих сессий, поскольку данные проверки подлинности не будет действительным.

Пожалуй наиболее уязвимым аспектом TellTable является обеспокоенность тем, что пользователи могут иметь возможность запускать произвольные программы как userid, используемые серверами TellTable. Это предоставляет следующие уязвимости: i) пользователи могут snoop на других TellTable пользователей; II) пользователи могут попытаться взломать сервер; или iii) программное обеспечение может получить доступ к Интернет атаковать другие машины или выступать в качестве прокси-сервера или по почте ретрансляции. Для того, чтобы защититься от такой деятельности, TellTable осуществила три слоя обороны. Во-первых мы стараемся предотвратить такой доступ путем тщательной настройки одного пользователя программного обеспечения, работающего на TellTable. Например параметры для просмотра файловой системы и запускать макросы отключены. Во-вторых для предотвращения доступа к произвольной файловой системе, каждый процесс выполняется в UNIX chroot, который служит для изоляции каждого процесса и исполняемых программ, которые он может выполняться от остальной части файловой системы TellTable. Это помогает предотвратить snooping TellTable сервера и других пользователей TellTable. В-третьих брандмауэр настроен для блокировки всех исходящих Интернет-активности и только разрешать входящие действия на VNC и HTTPS порты. Это помогает предотвратить использование TellTable для вредоносных интернет-активности.

Когда CVS-репозиторий находится на том же компьютере, что веб-сервер, версии файлов хранятся в идентификатор пользователя веб-сервера. Если CVS-репозиторий находится на отдельной машине, команды CVS перевозятся через SSH шифрования. SSH учетные данные проверки подлинности хранятся с использованием механизма ssh-agent при запуске сервера Web, поэтому данные проверки подлинности недоступна для веб-сервера.

Производительность

TellTable был использован несколькими работниками в университете Оттавы, коммуникации исследовательский центр Канады, Венского университета и двух независимых групп, связывающих Оттаве и Кардифф и Оттаве и Торонто. Приложения включают совместные разработки научных презентаций, статей, мультимедийные учебные материалы и техническое обслуживание конечно знаков и документации.

В осени 2003 года мы провели наш первый экспериментальное исследование TellTable для управления файлов электронных таблиц, используемых для записи курса знаков. Результаты показали, что пользователи appreciatived функции системы, особенно способность знать своих изменений не будет потеряно. В целом удобство было хорошо. Одно опасение, что реагирование будет страдать на медленных Интернет-соединения с большой задержкой. Мы были приятно удивлены найти, что даже по медленному каналу связи, TellTable был довольно годн к употреблению.

Некоторые ошибки программного обеспечения были вызваны шаблоны использования пилотных пользователей. Например Hotmail открывает ссылки в набор фреймов, который использует javascript для перезаписи HTML для предотвращения выхода из кадра Hotmail. Как правило перезаписи Hotmail неправильно будет переписать VNC апплет кадр, делает его нефункциональные. Решение было требовать входа в TellTable из нового окна браузера. В этом примере также подчеркивается обеспокоенность тем, что такой метод может использоваться для захвата пароли и другие сведения о безопасности.

С точки зрения масштабируемости, наши тесты показывают, что требования к памяти сервера являются относительно небольшими по сравнению с требуемой операционной системы и самих данных электронной таблицы. Производительность была рассчитана путем выполнения вычислений одновременно сложных электронных таблиц. Результаты показывают, что сервер TellTable равномерно распределяет имеющиеся вычислительные ресурсы с очень мало накладных расходов. Эти результаты показывают, что среднего размера сервера с 1 ГБ памяти должны быть в состоянии поддерживать 10−20 TellTable сеансов, в зависимости от требований пользователей. Поскольку большинство использования офисных приложений делают спорадические использование вычислительной мощности, может быть более эффективно использовать мощный сервер для TellTable с менее мощных клиентских компьютеров, чем отдельных мощных клиентских машин.

Обсуждение

TellTable работает на Linux-сервере и поддерживает клиенты, использующие наиболее популярных операционных систем и Интернет-браузеров. Мы считаем, что сервер TellTable является портативным для других платформ UNIX, хотя у нас нет планов, чтобы сделать это. Порт сервера Microsoft Windows потребует значительного переписывания, поскольку Windows не позволяет легко несколько графических сеансов для выполнения различных userids, как это требуется TellTable. Однако это возможно, используя CodeWeavers кроссовер Office, для запуска программного обеспечения Microsoft Office на Linux. В предварительных испытаниях мы смогли удаленно запустить Microsoft Powerpoint с TellTable. Однако неясно, разрешено ли такое использование по лицензии программного обеспечения.

Мы рассматривали используя быстрее для динамического веб-содержимого, чем CGI, например, mod_perl. Однако наши текущие тесты показывают, что для разумных нагрузок до десяти одновременных пользователей, скорость веб-сервера не ухудшать значительно. Большинство задержек в веб-сервере проводятся, взаимодействующих с другими инструментами системы, например, CVS или VNC серверов. Возможно раздражение с нашим дизайном является выявление реальных изменений в файлах. Например в Microsoft Word, открытие документа, прокрутка через и сохранения его, может привести в измененном файле. Система управления версиями, такие как TellTable, будет сохранять эти версии, если программное обеспечение было написано для обнаружения таких без изменений файлов. На данный момент мы решили подождать и посмотреть, если это проблематично.

Первоначально, мы рассматривали, динамически создавая новую сессию VNC при запросе пользователем. Этот подход оказался неосуществимым, поскольку VNC серверов требуется около 5 секунд, чтобы начать, результате дополнительной задержки для пользователя. Хуже когда VNC-сервер завершает работу, TCP/IP подключение остается в состоянии TIME_WAIT и не может перезапустить до двух минут. Подход, основанный на динамически начал VNC сессий необходимо обойти такие соображения, касающиеся сроков. Кроме того инициирует сеансы VNC для других userids требует повышенных привилегий для веб-сервера, который может вызвать проблемы безопасности.

Другой возможной подход считается заключается в том, чтобы сохранить сессию VNC для каждого пользователя системы, что делает анализ безопасности легче. К сожалению такой подход потребует больших объемов памяти и процессора возможностями для поддержки большого числа пользователей. Кроме того поскольку каждый VNC-сервер требует порт TCP, потребуется много открытых портов. Как в настоящее время реализована VNC-сервер ограничен 99 открытых сеансов (TCP порт 5901-5999). Балансировку нагрузки с несколькими серверами является еще одна трудность. Если все зарегистрированных пользователей будет выделено на том же компьютере сервера VNC, другие машины не сможет помочь в поддержке вычислительной нагрузки.

Наша Будущая техническая работа с TellTable включает в себя улучшение удобства использования и безопасности улучшений, а некоторые процессы. Одна цель заключается в том, чтобы расширить набор приложений, мы можем начать и использовать с инфраструктурой. Мы также изучаем пути интеграции возможностей рабочего процесса в файл выбора экрана, поскольку Автоматизация потока файлов и информации следует повысить полезность инфраструктуры. Как проект с открытым кодом явные выгоды от наличия идей и кода, но требует затрат времени и ресурсов от тех, кто предпочтет присоединиться к проекту.

В заключение TellTable это реальные рамки, позволяя приложениям одного пользователя, которые будут использоваться совместно. Эта структура является открытым исходным кодом и работает на недорогих аппаратных средств. TellTable подход выгоды от значительных усилий положить в развитие удобными функциями в больших программных пакетов. Его значение заключается в его относительно легко сделать такие функции программного обеспечения на основе сотрудничества. Экспериментальные результаты показывают, что пользователи обычно могут использовать их знакомство с такими пакетами программного обеспечения для легко и эффективно работать с TellTable.

Эта статья основана на TellTable: Открытым исходным кодом совместного редактирования системы которая доступна для скачивания. Оригинальная статья обеспечивает более глубокое освещение технического дизайна TellTable в.

Рекомендуемые ресурсы

Зная, что было сделано: Использование файла журнала электронной таблицы

Оценка и реализация системы совместного управления документами

Компьютер поддерживает совместное написание

 

Доля этой статьи:

Цитируете эту статью:

Оцените содержание: 
Нет голосов были поданы еще. Скажи свое слово!

Добавить новый комментарий

Обычный текст

  • Теги HTML не разрешены.
  • Адреса электронной почты и адреса страниц включите в ссылки автоматически.
  • Строки и параграфы переносятся автоматически.