RU2469385C2 - Среда разработки программного обеспечения для "тонкого" клиента - Google Patents

Среда разработки программного обеспечения для "тонкого" клиента Download PDF

Info

Publication number
RU2469385C2
RU2469385C2 RU2009115662/08A RU2009115662A RU2469385C2 RU 2469385 C2 RU2469385 C2 RU 2469385C2 RU 2009115662/08 A RU2009115662/08 A RU 2009115662/08A RU 2009115662 A RU2009115662 A RU 2009115662A RU 2469385 C2 RU2469385 C2 RU 2469385C2
Authority
RU
Russia
Prior art keywords
software development
server
application
project
client computer
Prior art date
Application number
RU2009115662/08A
Other languages
English (en)
Other versions
RU2009115662A (ru
Inventor
Ларс А. БЕРГСТРОМ
Виджайе Г. РАДЖИ
Original Assignee
Майкрософт Корпорейшн
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Майкрософт Корпорейшн filed Critical Майкрософт Корпорейшн
Publication of RU2009115662A publication Critical patent/RU2009115662A/ru
Application granted granted Critical
Publication of RU2469385C2 publication Critical patent/RU2469385C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Stored Programmes (AREA)

Abstract

Изобретение относится к области сред разработки программного обеспечения. Техническим результатом является предоставление "тонкому" клиенту среды разработки программного обеспечения. Предоставляется серверное приложение разработки программного обеспечения, которое выполнено с возможностью отображения в пользовательском интерфейсе "тонкого" клиента на клиентском компьютере. Серверное приложение разработки имеет серверный компилятор. От клиентского компьютера принимаются входные данные для взаимодействия с проектом разработки программного обеспечения с помощью серверного приложения разработки программного обеспечения. Проект разработки программного обеспечения сохраняется в местоположении, доступном из приложения разработки программного обеспечения. Выбор компиляции принимается от клиентского компьютера, чтобы скомпилировать проект разработки программного обеспечения с помощью серверного приложения разработки программного обеспечения. Скомпилированное приложение формируется с помощью серверного приложения разработки программного обеспечения и предоставляется клиентскому компьютеру. Функциональные возможности для совместного использования позволяют осуществлять доступ к проекту разработки программного обеспечения множеству пользователей с различных клиентских компьютеров. 2 н. и 13 з.п. ф-лы, 7 ил.

Description

Уровень техники
Среды разработки программного обеспечения настоящего времени, такие как MICROSOFT® Visual Studio, Eclipse и т.д., основаны на принципах "толстого" клиента. В таких средах общим является необходимость установок многогигабайтного программного обеспечения, что может занимать часы для установки прежде, чем среда разработки сможет быть использована. Машина, на которой устанавливается приложение разработки программного обеспечения, должна иметь достаточно ресурсов, чтобы управлять компиляциями, которые зачастую могут требовать большого количества RAM и других системных ресурсов. Это накладывает тяжелое бремя на машину для локальной разработки.
Кроме того, пользователи таких сред разработки программного обеспечения не способны легко совместно использовать свою работу с друзьями и/или коллегами без использования механизма совместного использования от третьей стороны, например, посредством передачи проекта по электронной почте человеку или использования системы контроля версий, которая управляет исходным кодом. Одной проблемой с передачей проекта по электронной почте является то, что зачастую может быть задействовано большое количество файлов исходного кода, и получатель электронной почты также должен иметь приложение разработки программного обеспечения, установленное на своем компьютере. Одной проблемой с системами контроля версий является то, что они также зачастую ограничены установками на толстом клиенте, и могут типично быть доступны только коллегам в той же конкретной компании ввиду ограничений безопасности компании.
Сущность изобретения
Раскрываются различные технологии и способы для предоставления "тонкому" клиенту (клиенту-терминалу) среды разработки программного обеспечения. Предоставляется серверное приложение разработки программного обеспечения, которое функционирует с возможностью отображения в пользовательском интерфейсе "тонкого" клиента на клиентском компьютере. Серверное приложение разработки имеет серверный компилятор, который управляет задачей компиляции, которая может зачастую быть чувствительной к ресурсам. От клиентского компьютера принимаются входные данные для взаимодействия с проектом разработки программного обеспечения с помощью серверного приложения разработки программного обеспечения. Проект разработки программного обеспечения сохраняется в местоположении, доступном из приложения разработки программного обеспечения. Выбор этапа компиляции принимается от клиентского компьютера, чтобы скомпилировать проект разработки программного обеспечения с помощью серверного приложения разработки программного обеспечения. В ответ на выбор компиляции от клиентского компьютера скомпилированное приложение формируется с помощью серверного приложения разработки программного обеспечения и предоставляется клиентскому компьютеру, как, например, с помощью функциональной возможности загрузки файла.
В одном варианте осуществления различные функциональные возможности разработки предоставляются пользователям в пользовательском интерфейсе "тонкого" клиента, как, например, окончание команды, раскрашивание синтаксиса и помощь по параметрам - если перечислять несколько неограничивающих примеров. В еще одном варианте осуществления функциональная возможность совместного использования позволяет осуществлять доступ к проекту разработки программного обеспечения множеству пользователей с различных клиентских компьютеров, например, для того, чтобы просмотреть, исправить и/или прокомментировать проект. Одна или более настроек безопасности могут управлять доступом к проекту одного или более пользователей. В одном варианте осуществления пользователь, который создает проект, управляет тем, кто может получить доступ к проекту.
Данная краткая сущность предусмотрена для того, чтобы в упрощенной форме представить выбор концепций, которые дополнительно описываются ниже в подробном описании. Эта сущность не предназначена для того, чтобы идентифицировать ключевые признаки или важнейшие признаки заявляемого предмета изобретения, а также не предназначена для того, чтобы быть использованной в качестве помощи при определении области применения заявляемого предмета изобретения.
Краткое описание чертежей
Фиг.1 является схематическим представлением вычислительной системы одного варианта осуществления.
Фиг.2 является схематическим представлением серверного приложения разработки программного обеспечения одного варианта осуществления, работающего в вычислительной системе на фиг.1.
Фиг.3 является блок-схемой процесса для одного варианта осуществления системы на фиг.1, иллюстрирующей этапы, используемые при предоставлении серверного приложения разработки программного обеспечения, которое может быть доступно в пользовательском интерфейсе "тонкого" клиента.
Фиг.4 является блок-схемой процесса для одного варианта осуществления системы на фиг.1, иллюстрирующей этапы, используемые при использовании функциональной возможности совместного использования проекта разработки программного обеспечения "тонкого" клиента.
Фиг.5 является логической схемой для одного осуществления системы на фиг.1, иллюстрирующей компоненты, используемые при предоставлении серверного приложения разработки программного обеспечения, которое доступно в пользовательском интерфейсе "тонкого" клиента.
Фиг.6 является смоделированным экраном одного осуществления системы на фиг.1, который иллюстрирует пользовательский интерфейс "тонкого" клиента для серверного приложения разработки программного обеспечения, чтобы предоставить возможность пользователю создать проект или продолжить существующий.
Фиг.7 является смоделированным экраном одного осуществления системы на фиг.1, который иллюстрирует пользовательский интерфейс "тонкого" клиента для серверного приложения разработки программного обеспечения, который позволяет пользователю написать исходный код, скомпилировать исходный код и увидеть результаты.
Подробное описание
В целях способствования пониманию принципов изобретения теперь будет сделана ссылка на варианты осуществления, иллюстрированные на чертежах, и будет использован специфический язык, чтобы описать их. Тем не менее, будет понятно, что в связи с этим не подразумевается ограничение рамок изобретения. Все изменения и дополнительные модификации в описанных вариантах осуществления и любые дополнительные применения принципов, которые описаны в данном документе, рассматриваются, как обычно придет на ум специалисту в данной области техники.
Система может быть описана в общем контексте как приложение разработки программного обеспечения, но система также служит другим целям в дополнение к этим. В одном осуществлении один или более способов, описанных в данном документе, могут быть осуществлены в качестве функциональных возможностей в программе разработки программного обеспечения, такой как MICROSOFT® Visual Studio, Eclipse или из любого другого типа программы или службы, которая позволяет пользователю создавать программное обеспечение для одной или более платформ операционной системы. В одном осуществлении предоставлено серверное приложение разработки программного обеспечения, которое доступно пользователю в пользовательском интерфейсе "тонкого" клиента. Серверный компилятор выполняет компиляцию и другие чувствительные к ресурсам задачи, таким образом компьютер пользователя не должен делать это. Файлы проекта разработки программного обеспечения одного отдельного пользователя могут необязательно совместно использоваться между множеством пользователей.
Как показано на фиг.1, примерная вычислительная система, используемая для реализации одной или более частей системы, включает в себя одно или более вычислительных устройств, таких как вычислительные устройства 100 и/или 130. В своей самой базовой конфигурации вычислительные устройства 100 и/или 130 типично включают в себя, по меньшей мере, один блок (102 и 132 соответственно) обработки и память (104 и 134 соответственно). В зависимости от точной конфигурации и типа вычислительного устройства память 104 или 134 может быть энергозависимой (такой как RAM), энергонезависимой (такой как ROM, флеш-память и т.д.) или некоторой комбинацией обеих. Эта самая базовая конфигурация иллюстрирована на фиг.1 линиями 106 и 136.
Кроме того, устройства 100 и/или 130 могут также иметь дополнительные признаки/функциональность. Например, устройства 100 и/или 130 могут также включать в себя дополнительное хранилище (съемное и/или несъемное), включающее в себя, но не только, магнитные или оптические диски или ленту. Такое дополнительное хранилище проиллюстрировано на фиг.1 посредством съемного хранилища (108 и 138 соответственно) и несъемного хранилища (110 и 140 соответственно). Компьютерные носители хранения включают в себя энергозависимые и энергонезависимые, съемные и несъемные носители, реализованные любым способом или технологией хранения такой информации, как компьютерно-читаемые инструкции, структуры данных, программные модули или другие данные. Память 104 и 134, съемное хранилище 108 и 138, несъемное хранилище 110 и 140 - все являются примерами компьютерных носителей хранения. Компьютерные носители хранения включают в себя (но не только) RAM, ROM, EEPROM, флэш-память или другую технологию памяти, CD-ROM, универсальные цифровые диски (DVD) или другие оптические устройства хранения, магнитные кассеты, магнитные ленты, устройства хранения на магнитных дисках или другие магнитные устройства хранения, либо любой другой носитель, который может быть использован для того, чтобы сохранять нужную информацию, и доступ к которому может осуществляться посредством устройства 100 и/или 130. Любые такие компьютерные носители хранения могут быть частью устройства 100 и/или 130.
Вычислительные устройства 100 и/или 130 включают в себя одно или более соединений связи, которые позволяют вычислительным устройствам 100 и/или 130 осуществлять связь друг с другом и/или одним или более другими вычислительными устройствами (150, 160 и 170 соответственно) через сеть 116. Соединение(я) 114 и 144 связи являются примерами среды передачи данных. Среда связи типично воплощает компьютерно-читаемые инструкции, структуры данных, программные модули или другие данные в модулированном сигнале данных, таком как несущее колебание или другой механизм распространения, и включает в себя любой носитель для доставки информации. Термин "модулированный сигнал данных" означает сигнал, который имеет одну или более из его характеристик, установленных или изменяемых таким образом, чтобы кодировать информацию в сигнале. В качестве примера, но не в качестве ограничения, среда связи включает в себя проводную среду, такую как проводная сеть или прямое проводное соединение, и беспроводную среду, такую как акустическая среда, RF, инфракрасное излучение и другая беспроводная среда. Термин "компьютерно-читаемые носители" при использовании в данном документе включает в себя как носители хранения, так и среду связи.
В одном осуществлении вычислительное устройство 100 является клиентским компьютером, который связывается с серверным компьютером 130 с помощью соединения 114 и 144 связи через сеть 116. В таком осуществлении пользовательский интерфейс 118 "тонкого" клиента (например, браузера) клиентского вычислительного устройства 100 обращается к пользовательским данным 150 проекта разработки программного обеспечения (если есть в наличии) и серверному приложению 200 разработки программного обеспечения на серверном вычислительном устройстве 130 для выполнения одной или более задач разработки программного обеспечения. Будет понятно, что пользовательские данные 150 проекта разработки программного обеспечения и/или серверное приложение 200 разработки программного обеспечения могут быть сохранены на одном и том же компьютере или разных компьютерах, но что они показаны на одном и том же серверном вычислительном устройстве 130 ради ясности. В одном осуществлении пользовательский интерфейс 118 "тонкого" клиента клиентского вычислительного устройства 100 является основанным на браузере пользовательским интерфейсом, а серверное вычислительное устройство 130 является веб-сервером.
Вычислительные устройства 100 и 130 могут также иметь устройство(а) ввода (114 и 134 соответственно), такие как клавиатура, мышь, перо, устройство голосового ввода и т.д. Устройство(а) вывода (116 и 136 соответственно), такие как дисплей, динамики, принтер и т.д., также могут быть включены в состав системы. Эти устройства хорошо известны в области техники, и нет необходимости обсуждать их здесь.
Обращаясь теперь к фиг.2 с продолжающейся ссылкой на фиг.1, иллюстрируется серверное приложение 200 разработки программного обеспечения, функционирующее на вычислительном устройстве 100. Серверное приложение 200 разработки программного обеспечения является одной из прикладных программ, которые постоянно находятся в вычислительном устройстве 100. Однако будет понятно, что серверное приложение 200 разработки программного обеспечения может альтернативно или дополнительно быть осуществлено как компьютерно-исполняемые инструкции на одном или более компьютерах и/или в других вариациях, чем показано на фиг.1. Альтернативно или дополнительно, одна или более частей серверного приложения 200 разработки программного обеспечения могут быть частью системной памяти 104, на других компьютерах и/или приложениях 115, или другими такими вариациями, которые придут на ум специалисту в области техники компьютерного программного обеспечения.
Серверное приложение 200 разработки программного обеспечения включает в себя программную логику 204, которая отвечает за выполнение некоторых или всех способов, описанных в данном документе. Программная логика 204 включает в себя логику 206 для предоставления серверного приложения разработки программного обеспечения, работающего, чтобы отображаться в пользовательском интерфейсе "тонкого" клиента, по меньшей мере, на одном клиентском компьютере; логику 208 для предоставления серверного компилятора как части приложения разработки, компилятор функционирует так, чтобы предоставить один или более скомпилированных файлов отдельному получателю на основе запроса клиентским компьютером выполнения компиляции; логику 210 для получения входных данных, по меньшей мере, от одного клиентского компьютера, чтобы получить доступ к приложению разработки с помощью пользовательского интерфейса "тонкого" клиента; логику 212 для сохранения, по меньшей мере, одного пользовательского проекта, который был создан клиентским компьютером, когда клиентский компьютер обращался к серверному приложению разработки программного обеспечения; логику 214, чтобы сделать пользовательский проект доступным одному или более пользователям (например, для просмотра, исправления и/или комментирования) на основе набора настроек безопасности для проекта; логику 216 для предоставления множества функциональных возможностей разработки, таких как завершение команды, раскрашивание синтаксиса и помощь по параметрам; и другую логику 220 для работы приложения.
Обращаясь теперь к фиг.3-4 с продолжающейся ссылкой на фиг.1-2, этапы осуществления одной или более реализаций серверного приложения 200 разработки программного обеспечения описываются более подробно. Фиг.3 является блок-схемой процесса, иллюстрирующей этапы, используемые при предоставлении серверного приложения 200 разработки программного обеспечения, к которому может осуществляться доступ в пользовательском интерфейсе "тонкого" клиента. В одной форме процесс на фиг.3, по меньшей мере, частично реализован в операционной логике вычислительного устройства 100. Процедура начинается в точке 240 старта с предоставления серверного приложения разработки программного обеспечения, выполненного с возможностью отображаться в пользовательском интерфейсе "тонкого" клиента на клиентском компьютере (этап 242). В одном осуществлении пользовательский интерфейс "тонкого" клиента доступен в веб-браузере из множества платформ операционных систем, которые используют некоторые команды на основе AJAX или другой технологии (этап 242). В одном осуществлении предоставлены возможности среды разработки, такие как окончание команды, раскрашивание синтаксиса и помощь по параметрам - если упоминать несколько неограничивающих примеров (этап 242). Альтернативно или дополнительно, один или более веб-компонентов первоначально загружаются из серверного приложения разработки на конкретный клиентский компьютер, прежде чем пользовательский интерфейс "тонкого" клиента будет правильно функционировать. Серверное приложение разработки программного обеспечения может занимать более или менее чем один гигабайт пространства хранения на сервере (этап 242).
Входные данные принимаются от клиентского компьютера так, чтобы выполнять взаимодействие с проектом разработки программного обеспечения с помощью приложения разработки программного обеспечения (этап 244). Проект разработки программного обеспечения сохраняется (например, на серверном компьютере, на клиентском компьютере и т.д.) и доступен приложению разработки программного обеспечения (этап 246). Проект разработки программного обеспечения может необязательно иметь одну или более настроек безопасности для указания того, какие права доступа к проекту могут иметь один или более пользователей (этап 248), например только чтение, чтение-запись, защита от копирования и т.д. В одном осуществлении пользователь, который создал проект, может модифицировать установки безопасности, управляющие правами доступа (этап 248). Альтернативно или дополнительно, другим пользователям (таким как менеджеры проектов или сетевые администраторы) может быть предоставлено разрешение модифицировать установки безопасности для одного или более проектов.
Выбор этапа компиляции принимается от клиентского компьютера, чтобы скомпилировать проект разработки программного обеспечения с помощью приложения разработки программного обеспечения (этап 250). Скомпилированное приложение (или один или более компонентов) формируется с помощью приложения разработки программного обеспечения посредством серверного компилятора (этап 252). Термин "компиляция", когда используется в данном документе, определяется как перевод исходного кода в исполняемый формат, такой как исполняемый (EXE) файл, динамически подключаемая библиотека (DLL), элемент управления, подключаемый программный модуль и т.д. Скомпилированное приложение предоставляется компьютеру назначения (такому как клиентский компьютер или другой компьютер), как, например, посредством создания одного или нескольких файлов (исполняемых файлов, DLL, подключаемых программных модулей, элементов управления и т.д.), доступных для загрузки (этап 254). Альтернативно или дополнительно, файлы, сформированные компилятором, могут автоматически развертываться сервером, например, когда затрагивается веб-часть или разработка расширения для веб-приложения, если упоминать неограничивающий пример. Другие сценарии загрузки файлов и/или развертывания файлов для скомпилированного одного или более файлов также возможны, как придет на ум обычному специалисту в области техники программного обеспечения. Процесс заканчивается в точке 256.
Фиг.4 иллюстрирует одно осуществление этапов, используемых при использовании функциональной возможности совместного использования проекта разработки программного обеспечения "тонкого" клиента. В одной форме процесс на фиг.4, по меньшей мере, частично реализован в операционной логике вычислительного устройства 100. Процедура начинается в точке 270 старта предоставлением серверного приложения разработки программного обеспечения с серверным компилятором (этап 272). Приложение разработки программного обеспечения доступно множеству клиентских компьютеров через пользовательский интерфейс "тонкого" клиента (такого, как разрешающего доступ клиентского компьютера, после того как приняты правильные реквизиты доступа)(этап 272). Входные данные принимаются от первого клиентского компьютера для того, чтобы создать проект разработки программного обеспечения с помощью серверного приложения разработки программного обеспечения (и, необязательно, принимаются установки безопасности, которые указывают, какие пользователи могут осуществлять доступ к проекту)(этап 274). Проект разработки программного обеспечения сохраняется в местоположении хранения, которое доступно из серверного приложения разработки программного обеспечения (например, на том же или другом компьютере)(этап 276). Входные данные принимаются от второго клиентского компьютера для того, чтобы осуществить доступ к проекту разработки программного обеспечения (этап 278). Проект разработки программного обеспечения предоставляется второму клиентскому компьютеру (этап 280). Приложение разработки программного обеспечения необязательно принимает комментарии и/или исправления от второго клиентского компьютера, которые сохраняются с проектом (этап 280). Процесс заканчивается в точке 282 окончания.
Фиг.5 является логической схемой для одного осуществления системы на фиг.1, иллюстрирующей компоненты, включенные в предоставление серверного приложения 400 (200 на фиг.1 и 2) разработки программного обеспечения, которое доступно в пользовательском интерфейсе "тонкого" клиента. Показаны клиентские компоненты 402 и серверные компоненты 404. Клиентские компоненты включают в себя пользовательский интерфейс 406 "тонкого" клиента, как, например, интерфейс в браузере, таком как MICROSOFT® Internet Explorer, Firefox и т.д. Пользовательский интерфейс 406 "тонкого" клиента может использовать Atlas или другую AJAX-библиотеку и т.д. для осуществления некоторой функциональности. Серверные компоненты 404 включают в себя компонент 408 раскрашивания синтаксиса, компонент 410 окончания команд, компонент 412 помощи по параметрам, уровень 414 веб-службы и внутреннюю среду 416 разработки. Компонент 408 раскрашивания синтаксиса, компонент 410 окончания команд и компонент 412 помощи по параметрам являются только неограничивающими примерами типов функциональных возможностей разработки, предоставляемых серверным приложением разработки программного обеспечения. Уровень веб-службы ссылается на функциональность, которая предоставляет возможность связывания между внутренней средой 416 разработки и "тонким" клиентом 406. Внутренняя часть 416 среды разработки отвечает за предоставление функциональности приложения, такой как контекст проекта, семантический контекст, раскрашивание синтаксиса и т.д.
Фиг.6 является смоделированным экраном 430 одного осуществления системы на фиг.1, который иллюстрирует пользовательский интерфейс "тонкого" клиента для серверного приложения разработки программного обеспечения, чтобы предоставить возможность пользователю создать проект 434 или продолжить существующий 432. Фиг.7 является смоделированным экраном 450 одного осуществления системы на фиг.1, который иллюстрирует пользовательский интерфейс "тонкого" клиента для серверного приложения разработки программного обеспечения, который позволяет пользователю написать исходный код 458, скомпилировать исходный код с помощью функциональной возможности 454 сборки кода и увидеть результаты компиляции в окне 460 компиляции. Проект может быть сохранен с помощью варианта 452 "сохранение" и необязательно совместно использоваться с другими пользователями с помощью варианта 456 "совместное использование". Признак 462 окончания команды показан после ввода фразы "Console."("консоль."), чтобы показать различные варианты окончания команды. Хотя и не показано, чтобы сохранить ясность, также может использоваться раскрашивание синтаксиса, чтобы изменить цвет различных типов синтаксиса, чтобы сделать его легким для распознавания пользователем. Одним неограничивающим примером является предоставление комментариев цветом, отличным от фактических команд. Также может быть предоставлена помощь по параметрам, например, показывающая пользователю, какие параметры принимает вызов данной процедуры, чтобы помочь пользователю закончить запись вызова в эту процедуру.
Хотя предмет изобретения описан на языке, характерном для структурных признаков и/или методологических действий, следует понимать, что предмет изобретения, заданный в прилагаемой формуле изобретения, не обязательно ограничен характерными признаками или действиями, описанными выше. Скорее, характерные признаки и действия, описанные выше, раскрываются как примерные формы реализации формулы изобретения. Все эквиваленты, изменения и модификации, которые попадают под дух реализаций, описанных в данном документе и/или нижеследующей формуле изобретения, должны попадать в пределы охраны.
Например, обычный специалист в области компьютерного программного обеспечения поймет, что клиентское и/или серверное устройства, содержимое экрана пользовательского интерфейса и/или форматы данных, которые описаны в примерах, обсужденных в данном документе, могут быть организованы по-разному на одном или более компьютерах, чтобы включать в себя меньше или дополнительные варианты или признаки, в сравнении с представленными в примерах.

Claims (15)

1. Способ предоставления среды разработки для "тонкого" клиента, содержащий этапы, на которых:
предоставляют серверное приложение разработки программного обеспечения, выполненное с возможностью отображения в пользовательском интерфейсе "тонкого" клиента на клиентском компьютере, при этом серверное приложение разработки программного обеспечения выполнено с возможностью предоставлять в клиентский компьютер функциональные возможности разработки, содержащие, по меньшей мере, завершение команды, раскрашивание синтаксиса и помощь по параметрам;
принимают от клиентского компьютера входные данные для взаимодействия с проектом разработки программного обеспечения с помощью серверного приложения разработки программного обеспечения, при этом проект разработки программного обеспечения содержит исходный код;
принимают от клиентского компьютера выбор компиляции для компиляции проекта разработки программного обеспечения с помощью серверного приложения разработки программного обеспечения;
формируют скомпилированное приложение с помощью серверного приложения разработки программного обеспечения; и
предоставляют скомпилированное приложение компьютеру назначения, причем компьютер назначения не является клиентским компьютером, при этом серверное приложение разработки программного обеспечения выполнено с возможностью обеспечивать пользователю, который создал проект разработки программного обеспечения, возможность указать, имеют ли какие-либо из множества пользователей одно или более прав доступа к проекту разработки программного обеспечения.
2. Способ по п.1, в котором скомпилированное приложение предоставляется компьютеру назначения посредством этапа, на котором делают по меньшей мере один файл доступным для загрузки.
3. Способ по п.2, в котором упомянутый по меньшей мере один файл содержит исполняемую программу.
4. Способ по п.1, дополнительно содержащий этап, на котором принимают от другого клиентского компьютера входные данные для взаимодействия с проектом разработки программного обеспечения с помощью серверного приложения разработки программного обеспечения, причем упомянутое взаимодействие со стороны другого клиентского компьютера содержит исправление, которое сохраняется с проектом разработки программного обеспечения.
5. Способ по п.1, в котором серверное приложение разработки программного обеспечения поддерживает разработку для множества платформ операционных систем.
6. Способ по п.1, в котором к проекту разработки программного обеспечения может осуществлять доступ множество пользователей.
7. Способ по п.1, в котором проект разработки программного обеспечения приспособлен для сохранения на серверном компьютере.
8. Способ по п.1, в котором проект разработки программного обеспечения приспособлен для сохранения на клиентском компьютере.
9. Способ по п.1, в котором серверное приложение разработки программного обеспечения занимает по меньшей мере один гигабайт пространства хранения на серверном компьютере для предоставления множества функциональных возможностей разработки программного обеспечения.
10. Способ по п.1, в котором серверное приложение разработки программного обеспечения выполнено с возможностью предоставления пользовательского интерфейса "тонкого" клиента с использованием, по меньшей мере, некоторых команд на основе AJAX-технологии.
11. Способ по п.1, в котором серверное приложение разработки программного обеспечения предоставляется с серверным компилятором, причем приложение разработки программного обеспечения является доступным множеству клиентских компьютеров через пользовательский интерфейс "тонкого" клиента, при этом способ дополнительно содержит этапы, на которых:
принимают от первого клиентского компьютера из множества клиентских компьютеров входные данные для создания проекта разработки программного обеспечения с помощью серверного приложения разработки программного обеспечения;
сохраняют проект разработки программного обеспечения в месте хранения, доступном из серверного приложения разработки программного обеспечения;
принимают от второго клиентского компьютера из множества клиентских компьютеров входные данные для осуществления доступа к проекту разработки программного обеспечения; и
предоставляют проект разработки программного обеспечения второму клиентскому компьютеру.
12. Способ по п.11, в котором из второго клиентского компьютера принимаются комментарии относительно проекта разработки программного обеспечения, причем эти комментарии сохраняются вместе с проектом разработки программного обеспечения.
13. Способ по п.11, в котором от первого клиентского компьютера и второго клиентского компьютера требуется предоставить правильные регистрационные реквизиты перед доступом к серверному приложению разработки программного обеспечения.
14. Способ по п.11, в котором серверное приложение разработки программного обеспечения позволяет первому пользователю указать, могут ли какие-либо из множества пользователей иметь одно или более прав доступа к проекту.
15. Машиночитаемый носитель, на котором имеются машиноисполняемые инструкции для предписания компьютеру выполнять этапы способа по пп.1-14.
RU2009115662/08A 2006-10-27 2007-10-05 Среда разработки программного обеспечения для "тонкого" клиента RU2469385C2 (ru)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/588,745 2006-10-27
US11/588,745 US8453104B2 (en) 2006-10-27 2006-10-27 Thin client software development environment
PCT/US2007/080546 WO2008051695A1 (en) 2006-10-27 2007-10-05 Thin client software development environment

Publications (2)

Publication Number Publication Date
RU2009115662A RU2009115662A (ru) 2010-10-27
RU2469385C2 true RU2469385C2 (ru) 2012-12-10

Family

ID=39324917

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2009115662/08A RU2469385C2 (ru) 2006-10-27 2007-10-05 Среда разработки программного обеспечения для "тонкого" клиента

Country Status (9)

Country Link
US (1) US8453104B2 (ru)
EP (1) EP2080112A4 (ru)
JP (1) JP5264748B2 (ru)
KR (1) KR101424303B1 (ru)
CN (1) CN101529414B (ru)
BR (1) BRPI0716149A2 (ru)
CA (1) CA2666976A1 (ru)
RU (1) RU2469385C2 (ru)
WO (1) WO2008051695A1 (ru)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7954135B2 (en) * 2007-06-20 2011-05-31 Novell, Inc. Techniques for project lifecycle staged-based access control
US8365153B2 (en) * 2007-10-26 2013-01-29 Qualcomm Incorporated Server-based code compilation
US20090119300A1 (en) * 2007-11-01 2009-05-07 Sun Microsystems, Inc. Technique for editing centralized digitally encoded information
US8677329B2 (en) 2009-06-03 2014-03-18 Apple Inc. Methods and apparatuses for a compiler server
US9117071B2 (en) * 2009-06-03 2015-08-25 Apple Inc. Methods and apparatuses for secure compilation
KR101316677B1 (ko) * 2009-12-17 2013-10-10 한국전자통신연구원 사용자 인터페이스 가상화에 의한 어플리케이션 서비스 시스템 및 방법
US9116778B2 (en) * 2010-04-29 2015-08-25 Microsoft Technology Licensing, Llc Remotable project
US8627280B2 (en) * 2011-06-20 2014-01-07 Microsoft Corporation Multi-tenant collaborative review service
US20130042312A1 (en) * 2011-08-09 2013-02-14 Mobileframe Llc Authentication in a smart thin client server
US9049174B2 (en) 2011-08-09 2015-06-02 Mobileframe, Llc Maintaining sessions in a smart thin client server
US9053444B2 (en) 2011-08-09 2015-06-09 Mobileframe, Llc Deploying applications in a smart thin client server
CN102541609B (zh) * 2012-02-17 2014-07-02 北京星网锐捷网络技术有限公司 安装程序制作方法、装置及网络设备
US9075913B2 (en) 2012-02-27 2015-07-07 Qualcomm Incorporated Validation of applications for graphics processing unit
ES2606175T3 (es) 2012-11-30 2017-03-23 Accenture Global Services Limited Red de comunicaciones, arquitectura de ordenador, método implementado en ordenador y producto de programa de ordenador para el desarrollo y la administración de aplicaciones basadas en femtoceldas
KR101539968B1 (ko) * 2012-12-20 2015-07-29 슈어소프트테크주식회사 어플리케이션 실행 제어 방법 및 어플리케이션 실행 여부 판별 방법과 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체
US9134962B1 (en) 2013-03-15 2015-09-15 Sanctum Solutions, Inc. Interactive content development
US9684505B2 (en) 2013-06-12 2017-06-20 Mitsubishi Electric Corporation Development environment system, development environment apparatus, development environment providing method, and program
US20150334190A1 (en) * 2014-05-13 2015-11-19 Yoram Bucks Cloud Side Application
SG11201805215UA (en) * 2015-12-21 2018-07-30 Ciambella Ltd Method and apparatus for creating and managing controller based remote solutions
DE102016110939B3 (de) * 2016-06-15 2017-10-05 Phoenix Contact Gmbh & Co. Kg Datenorganisationsverfahren und Entwicklungsumgebungssystem
CN106775907A (zh) * 2016-11-22 2017-05-31 福建中金在线信息科技有限公司 一种Java项目开发环境搭建方法及装置
US11805125B2 (en) * 2021-05-26 2023-10-31 Microsoft Technology Licensing, Llc Task based access rights control

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020078255A1 (en) * 2000-10-17 2002-06-20 Shankar Narayan Pluggable instantiable distributed objects
US20030014442A1 (en) * 2001-07-16 2003-01-16 Shiigi Clyde K. Web site application development method using object model for managing web-based content
US20040003091A1 (en) * 2002-06-26 2004-01-01 International Business Machines Corporation Accessing a remote iSeries or AS/400 computer system from an integrated development environment
RU2237275C2 (ru) * 1999-02-18 2004-09-27 Ситрикс Системз, Инк. Сервер и способ (варианты) определения программного окружения клиентского узла в сети с архитектурой клиент/сервер
WO2004088516A1 (en) * 2003-04-01 2004-10-14 Sap Aktiengesellschaft Method and computer system for activation of source files
US7000220B1 (en) * 2001-02-15 2006-02-14 Booth Thomas W Networked software development environment allowing simultaneous clients with combined run mode and design mode

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10214181A (ja) 1997-01-31 1998-08-11 Toshiba Corp 分散アプリケーション開発支援方法及び装置
US6158044A (en) * 1997-05-21 2000-12-05 Epropose, Inc. Proposal based architecture system
WO2001075610A1 (en) 2000-03-31 2001-10-11 Siebel Systems, Inc. Thin client method and system for generating page delivery language output from applets, views, and screen definitions
WO2002023308A2 (en) 2000-09-12 2002-03-21 Viaken Systems, Inc. Techniques for providing and obtaining research and development information technology on remote computing resources
US6944860B2 (en) * 2001-01-16 2005-09-13 Sun Microsystems, Inc. Method and apparatus for representing and encapsulating active computing environments
US7546576B2 (en) * 2001-06-15 2009-06-09 Lightsurf Technology, Inc. Software framework for web-based applications
US20030065715A1 (en) 2001-08-20 2003-04-03 Burdick William R. System and method of a wireless thin-client, server-centric framework
US20030046557A1 (en) 2001-09-06 2003-03-06 Miller Keith F. Multipurpose networked data communications system and distributed user control interface therefor
KR100490401B1 (ko) 2002-03-26 2005-05-17 삼성전자주식회사 TC(Thin-Client)환경에서 영상 처리 장치 및 방법
US20040031017A1 (en) * 2002-08-12 2004-02-12 Shankar Vaidyanathan System and method for context-sensitive help in a design environment
US7213228B2 (en) * 2003-03-17 2007-05-01 Macrovision Corporation Methods and apparatus for implementing a remote application over a network
US7596778B2 (en) * 2003-07-03 2009-09-29 Parasoft Corporation Method and system for automatic error prevention for computer software
US20050021756A1 (en) 2003-07-26 2005-01-27 Grant Bruce K. Method of developing, delivering and rendering network applications
KR100546742B1 (ko) 2003-09-04 2006-01-26 한국전자통신연구원 타겟 시스템 기반 소스 프로그램 개발장치 및 방법
US7685257B2 (en) 2003-11-10 2010-03-23 Sun Microsystems, Inc. Portable thin client for the enterprise workspace
US20050108023A1 (en) 2003-11-13 2005-05-19 Chris Hemmings Methods and systems for producing and/or distributing electronic publications
US7293232B2 (en) * 2003-11-26 2007-11-06 Microsoft Corporation Source code editor for editing multilanguage documents
US20050197157A1 (en) 2004-02-13 2005-09-08 Wendong Li System enabling easy application development on mobile devices
US7890926B2 (en) 2005-01-04 2011-02-15 Vaakya Technologies Private Limited System and method for application development and deployment
US7734686B2 (en) 2005-01-25 2010-06-08 International Business Machines Corporation Markup method for managing rich client code and experiences using multi-component pages
US7730157B2 (en) 2005-02-03 2010-06-01 The Trustees Of Columbia University In The City Of New York Methods, media, and systems for displaying information on a thin-client in communication with a network
US8037452B2 (en) * 2005-04-15 2011-10-11 Microsoft Corporation Task aware source checkin and build
US8302070B2 (en) * 2006-07-12 2012-10-30 International Business Machines Corporation Output styling in an IDE console
US7861213B2 (en) * 2006-09-05 2010-12-28 Oracle International Corporation Mechanism for developing AJax applications using java swing framework and method for using the same
US20090125880A1 (en) * 2007-11-12 2009-05-14 Microsoft Corporation Polymorphic software architecture
US8607189B2 (en) * 2009-05-18 2013-12-10 National Instruments Corporation Dynamic analysis of a graphical program in a browser

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2237275C2 (ru) * 1999-02-18 2004-09-27 Ситрикс Системз, Инк. Сервер и способ (варианты) определения программного окружения клиентского узла в сети с архитектурой клиент/сервер
US20020078255A1 (en) * 2000-10-17 2002-06-20 Shankar Narayan Pluggable instantiable distributed objects
US7000220B1 (en) * 2001-02-15 2006-02-14 Booth Thomas W Networked software development environment allowing simultaneous clients with combined run mode and design mode
US20030014442A1 (en) * 2001-07-16 2003-01-16 Shiigi Clyde K. Web site application development method using object model for managing web-based content
US20040003091A1 (en) * 2002-06-26 2004-01-01 International Business Machines Corporation Accessing a remote iSeries or AS/400 computer system from an integrated development environment
WO2004088516A1 (en) * 2003-04-01 2004-10-14 Sap Aktiengesellschaft Method and computer system for activation of source files

Also Published As

Publication number Publication date
CN101529414B (zh) 2010-12-08
EP2080112A1 (en) 2009-07-22
US20080127135A1 (en) 2008-05-29
KR101424303B1 (ko) 2014-08-06
BRPI0716149A2 (pt) 2013-09-17
RU2009115662A (ru) 2010-10-27
CN101529414A (zh) 2009-09-09
WO2008051695A1 (en) 2008-05-02
KR20090073177A (ko) 2009-07-02
CA2666976A1 (en) 2008-05-02
JP2010508580A (ja) 2010-03-18
EP2080112A4 (en) 2009-11-18
JP5264748B2 (ja) 2013-08-14
US8453104B2 (en) 2013-05-28

Similar Documents

Publication Publication Date Title
RU2469385C2 (ru) Среда разработки программного обеспечения для "тонкого" клиента
US11150893B2 (en) Collaborative software development tool for resolving potential code-change conflicts in real time
US9632770B2 (en) Infrastructure for hosting and publishing software packages
WO2018177260A1 (zh) 一种应用程序开发方法及其工具、设备、存储介质
US8793652B2 (en) Designing and cross-configuring software
RU2459238C2 (ru) Управляемая среда выполнения для организации взаимодействия между программными приложениями
US20200065124A1 (en) Shortening just-in-time code warm up time of docker containers
US20090064196A1 (en) Model based device driver code generation
CN111259412B (zh) 权限控制方法、装置、计算机设备及存储介质
JP2007519071A (ja) ソフトウェアアプリケーションをプログレッシブインストールするためのシステムおよび方法およびapi
JP5108773B2 (ja) 宣言的に定義されるコントロールアクション
US9639375B2 (en) Generation of language bindings for libraries using data from compiler generated debug information
US20110271248A1 (en) Converting controls into source code
US8762976B2 (en) Static extensibility models with dynamic languages and scripts
WO2011157105A2 (zh) 组件扩展方法和装置
US9098317B2 (en) Optional retargeting of library references
Robinson et al. Getting started with meteor
Johnson et al. Installing MVVM Light
Wadhwa Exploring Ubuntu Touch OS: privacy, performance, and private server integration
KR101084662B1 (ko) Ria 어플리케이션 실행 방법 및 ria 컴포넌트 다중 버전 지원 방법
Jain Getting Started with SharePoint Framework (SPFx): Design and Build Engaging Intelligent Applications Using SharePoint Framework
Macero García et al. A Minimal Frontend with React
CN117453302A (zh) 导入软件开发包的方法、装置、设备及计算机可读介质
Layka et al. Play with java and scala
Stevanovic et al. Locating the Libraries

Legal Events

Date Code Title Description
PC41 Official registration of the transfer of exclusive right

Effective date: 20150526