RU2466450C2 - Способ и система для создания ит-ориентированных серверных сетевых приложений - Google Patents
Способ и система для создания ит-ориентированных серверных сетевых приложений Download PDFInfo
- Publication number
- RU2466450C2 RU2466450C2 RU2009130915/08A RU2009130915A RU2466450C2 RU 2466450 C2 RU2466450 C2 RU 2466450C2 RU 2009130915/08 A RU2009130915/08 A RU 2009130915/08A RU 2009130915 A RU2009130915 A RU 2009130915A RU 2466450 C2 RU2466450 C2 RU 2466450C2
- Authority
- RU
- Russia
- Prior art keywords
- specified
- client
- application
- server
- application object
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Изобретение относится к способу управления объектами приложений. Технический результат заключается в уменьшении нагрузки на канал передачи данных. Управляют множеством различных приложений на сервере. Принимают от клиентского звена, имеющего браузер, множество запросов на множество объектов приложений из указанного множества различных приложений. Пересылают базовый статический код указанному клиенту, который выполняет указанный базовый статический код. Пересылают от указанного сервера множество команд, каждая из которых указывает состояние отдельного объекта приложения из множества объектов приложения, указанному клиенту для воспроизведения указанным базовым статическим кодом, имеющимся в клиенте, каждого объекта приложения согласно соответствующему состоянию с помощью указанного браузера. Принимают от указанного клиента множество клиентских событий, каждое из которых относится к отдельному объекту приложения указанного множества объектов приложения. Идентифицируют, для каждого из указанного множества клиентских событий, соответствующее приложение из указанного множества различных приложений и обновляют каждое состояние посредством обработки указанного множества клиентских событий на указанном сервере в соответствии с упомянутой идентификацией. 3 н. и 19 з.п. ф-лы, 3 ил.
Description
Область техники
Настоящее изобретение относится к веб-приложениям. Более конкретно, настоящее изобретение относится к способу и системе для создания ИТ (Информационные Технологии) - ориентированных веб-приложений, предоставляемых по сети передачи данных, такой как Интернет.
Определения, сокращения и аббревиатуры
В данном описании используются следующие определения.
Событие: действие, выполненное пользователем в приложении.
Критическое событие: событие, которое должно быть немедленно передано серверу с целью синхронизации состояний клиента и сервера (в отличие от события, которое может быть отправлено с задержкой по времени).
Уникальное событие: событие, которое в итоге отправляется серверу.
Накопленные события: события на стороне клиента, которые хранятся в очереди событий до тех пор, пока не происходит критическое событие. Затем, когда происходит критическое событие, клиент пересылает всю очередь событий, которые произошли между предыдущим критическим событием и текущим критическим событием.
Клиент или клиентское звено - это терминал пользователя (например, веб-страница), подключенный к серверу.
Элемент управления: отображаемый компонент приложения (например, кнопка, поле и т.п.). Каждый элемент управления может выполнять определенные операции (например, получение данных, вводимых с клавиатуры, нажатие и т.д.)
Контейнер: окно, которое включает элементы управления.
Разделитель: боковая панель (горизонтальная или вертикальная), аналогичная элементу управления, которая помещается между двумя закрепленными/привязанными элементами управления и которая позволяет изменять соотношение размеров (ширину или высоту) одного из этих элементов управления за счет другого посредством ее перетаскивания.
Выделенное (специализированное) ядро
В контексте настоящего изобретения выделенное ядро (dedicated kernel) - это небольшой и статический фрагмент кода, который загружается клиентом только один раз при первом обращении клиента к приложению на стороне сервера. Это выделенное ядро служит связующим звеном между браузером клиентской стороны и приложением и выполняет следующие операции:
- передачу и прием данных любого вида на сервер и от сервера;
- активацию XSL (язык для форматирования документа XML: например, указывает, как данные, описываемые в документе XML, должны быть представлены на веб-странице) преобразований (указывают, как документ XML должен быть преобразован в другую структуру данных, которая затем может быть представлена путем сопровождения таблицы стилей XSL) или любой другой технологии формирования макета на уровне представления;
- сбор событий пользователя (например, нажатий клавиш, событий, связанных с мышью), накопление очереди некритических событий и отправка очереди этих событий по требованию сервера;
- отражение поведения любых элементов управления клиентской стороны, которое реализуется посредством кода языков клиента.
Индекс объектов приложения: совокупность объектов приложения, где хранится ID (Identification - идентификация) компонента для экземпляра объекта приложения. Этот индекс используется для обработки очереди событий, отправленной клиентом, посредством поиска владельца объекта запущенного события по его идентификатору ID и передачи ответственности за обработку события соответствующему экземпляру объекта. Это обеспечивает зависимость между экземплярами объектов клиента и сервера, которая может быть выражена стандартным синтаксисом XML с использованием идентификатора ID экземпляра.
Дерево объектов приложения: дерево объектов, включающее объекты приложения в виде структуры иерархического дерева, представляющего структуру GUI (Graphical User Interface - графический интерфейс пользователя).
Корень приложения: объект приложения, который ограничен сконфигурированным именем страницы, которая доступна посредством ее прямой активации так, что она действует как точка входа дерева объектов приложения. То есть корень приложения доступен для просмотра путем ввода URL в браузере (например, с использованием настоящего изобретения на веб-платформе).
Окно главной формы: первое окно, которое видит пользователь, когда получает доступ к URL, который обрабатывается по данной технологии. Это окно эквивалентно главному окну, которое открывается при запуске настольного приложения.
Временная метка клиента: отметка времени для объекта на клиентской стороне, отражающая время последнего обновления.
Временная метка запроса: отметка времени, указывающая текущий статус браузера, которая представляет собой время, когда браузер последний раз получил команду обновления от сервера.
Временная метка: числовое значение, отражающее время последнего обновления данного объекта приложения.
Уникальное накопленное событие: новое событие, которое замещает любое событие, имеющее такой же ID, поскольку старое событие устарело.
Команды обновления: набор элементов XML (Extensible Markup Language - расширяемый язык разметки), которые исполняет браузер, чтобы синхронизироваться с деревом объектов приложения и контрольным состоянием сервера.
Структура окна: набор элементов XML, описывающих структуру текущего окна приложения. Структура окна используется для обновления состояния клиентского звена (прорисованный в данный момент UI) в соответствии с состоянием серверного звена (текущее состояние UI на сервере).
Шаблоны XSLT: набор XSLT (Extensible Stylesheet Language Transformations - преобразования расширяемого языка таблиц стилей), который описывает преобразования, которые необходимо выполнить с данными, чтобы сформировать отображаемые элементы управления в клиентском звене (например, веб-браузере).
Данные на основе XML: данные XML, которые используются клиентом для хранения состояния интерфейса приложения. Состояние интерфейса приложения содержит свойства каждого элемента управления UI и включает всю информацию, необходимую клиенту для синхронизации состояния своих элементов управления в соответствии с состоянием сервера, например цвет или размер элемента управления, отображаемый им текст и т.д. Это обеспечивает клиентское звено возможностью переформировывать любую часть UI посредством использования XSLT (преобразование шаблонов) для данных на основе XML.
Предпосылки создания изобретения
В настоящее время HTML (HyperText Markup Language - язык гипертекстовой разметки) является международным стандартным языком, который освобожден от авторского права и является доступным для всех разработчиков, а также поддерживается во всех средах программирования. Способность предлагать ссылки для навигации и возможность поддержки мультимедиа (звук, изображение, анимация и т.п.) явилось причиной того, что мировое сообщество приняло HTML как основной промышленный стандарт. Также в последнее время был представлен язык DHTML (Dynamic HTML - динамический HTML). DHTML - это совокупность технологий, используемых вместе для создания интерактивных и анимированных веб-сайтов с использованием комбинации статического языка разметки (такого как HTML), языка сценариев клиентских приложений (такого как JavaScript™), языка описания представлений (CSS; Cascading Style Sheets - каскадные таблицы стилей) и объектной модели документа (интерфейс программирования). Таким образом, DHTML позволил в большей степени обеспечить интерактивность с пользователями Интернета. Проникновение Интернета во все области жизни и быстрое распространение Интернета среди пользователей, наряду с растущим спросом производственных и коммерческих кругов на использование Интернета в качестве средства связи со своими пользователями, повлекло за собой потребность в более динамичных и более сложных удаленных клиент-серверных приложениях для Интернета. Это привело к внедрению ASP (Application Service Provider - провайдер прикладных услуг), РНР (Hypertext Preprocessor - гипертекстовый препроцессор) и других языков/сред для веб-приложений, которые предоставляют новые полезные функции, такие как динамически создаваемые страницы, которые прежде были статическими. Эти новые среды внесли способность выставлять и принимать данные посредством стандартных HTML страниц.
Недостаточно высокая клиент-серверная производительность веб-ориентированных ИТ приложений в настоящее время не может удовлетворить растущие требования все более сложных ИТ приложений. Несмотря на значительное развитие Интернета, который становится основным связующим звеном при использовании ИТ, основные принципы, обеспечивающие это использование, остались такими же, как и два десятилетия назад. В наши дни ASP.NET (Active Server Pages - активные серверные страницы) и JSP (Java® Server Pages - серверные страницы Java) предлагают наилучшую среду разработки на «стороне сервера». На стороне клиента страницы HTML включают сценарии, которые вызывают серверные страницы, т.е. страницы полностью реконструируются после каждого действия на серверной стороне, что приводит к ограниченной низкой производительности. Кроме того, использование веб-приложений, которые значительно зависят от сценариев, стало нормой у веб-разработчиков. Требования веб-приложений становятся все более и более похожими на требования приложений для настольных компьютеров. Множество функциональных возможностей, которые прежде поддерживались только "настольными приложениями" (desktop applications), становятся неотъемлемой частью веб-приложений. Это требует высоких расходов на пропускную способность, т.е. веб-ресурсов для транспортировки. Сценарии на клиентской стороне становятся все более и более сложными, что делает веб-приложения трудными для разработки и обслуживания. Кроме того, проблемы качества работы таких приложений являются обычными. Легко разрушить содержание, поскольку сценарии не обеспечивают ограничений на доступ к коду и предлагают скудные принципы объектно-ориентированного программирования, если они вообще есть.
Также одной из основных проблем остаются вопросы безопасности существующих веб-ориентированных технологий, поскольку сценарии выполняются браузером клиента (например, Microsoft® Internet Explorer). Использование языков сценариев, встраиваемых в браузер пользователя, сделало веб-приложения уязвимыми для вредоносных манипуляций, поскольку страницы, которые служат источником данных для веб-приложений, трудно защитить. Большая часть данных обрабатывается браузером на стороне пользователя (а не на стороне сервера) и по этой причине раскрывается больше данных, чем требуется.
Помимо этого технологии ASP.NET и JSP уже устарели, поскольку они не способны нормально справляться с современными требованиями ИТ. Несмотря на то, что введены более мощные возможности программирования, такие как новые инфраструктурные средства программирования, новое моделирование и возможность многократного использования (многократное использование - это возможность создать компоненты один раз и позже использовать их несколько раз), основные принципы до сих пор остались прежними и приводят к указанным выше проблемам (т.е. производительность, взаимодействие с пользователем, безопасность, сложность разработки и обслуживания). Концепция таких сред на базе страниц оказывается неудовлетворительной для разработки веб-приложений, поскольку на стороне сервера отсутствует поддержка открывания окон или взаимодействия между фреймами (так как большая часть кода управления окнами должна быть написана на клиентских языках сценариев, распределяющих бизнес-логику на несколько языков и местоположений). Существует ограниченная поддержка частичного обновления интерфейса пользователя, которая требует от разработчика подробного управления частичным обновлением и снижает производительность процесса разработки. Кроме того, пропускная способность существующих систем ИТ ограничена, и они не способны удовлетворить современным требованиям, для которых необходимо больше ресурсов для обработки информации. Это ведет к потерям дорогостоящего времени пользователей. Сложные действия ведут к медленному выполнению сценариев браузером, причем каждое действие вызывает отдельную страницу, которая полностью воссоздается сервером и полностью формируется браузером. В настоящее время только разработчик один решает, какое содержание будут иметь данные, передаваемые между клиентской стороной и серверной стороной. Этот факт делает данные несовместимыми и нестандартными, т.е. данные могут включать данные представления, деловые данные, все виды маркеров доступа и другие типы данных. Более того, данные могут иметь любой формат, например обычный текст, XML или любой другой формат. Некоторые разработчики, а также некоторые проекты могут использовать индивидуальные и сильно различающиеся протоколы данных и форматов, отправляемых серверу и принимаемых от сервера. Разработчик должен владеть множеством языков Интернета, которые требуют серьезного обучения, и, следовательно, квалифицированных специалистов очень трудно найти.
В средах разработки настольных приложений управление позиционированием подразделяется на закрепление объекта (docking) и привязку объекта (anchoring). Закрепление - это возможность назначить каждому элементу в списке элементов управления один из пяти видов закрепления (слева, сверху, справа, снизу и заполнение), а затем использовать эти описания для создания вида экрана. Каждый элемент управления является независимым, но помещается без перекрытия по отношению к другим элементам управления. При таком способе не требуется обновление положения всех элементов управления при обновлении одного из них. Привязка - это возможность определить виртуальные строки, которые зафиксированы от границы элемента управления (одной, нескольких или всех) до его контейнера. Когда изменяют размер контейнера элемента управления, перемещают его или и то, и другое вместе, расстояние между боковыми сторонами контейнера, к которому делается привязка, и боковыми сторонами привязываемого элемента управления остается постоянным для боковых сторон, к которым привязан элемент управления. Это может привести к изменению размера элемента управления при привязке к противоположным боковым сторонам (например, слева + справа и/или сверху + снизу).
Традиционные среды разработки веб-приложений обеспечивают программисту объектный модуль (выходные данные ассемблера или компилятора, которые находятся в машинном коде целевого компьютера, объектные модули должны быть связаны с другими модулями для создания конечной исполняемой программы), предоставляющий HTML элементы для создания содержания страницы.
Вид страницы создается посредством использования трех инструментальных средств.
1. Таблицы HTML (которые могут включать веб-текст и использоваться также для размещения любых элементов HTML).
2. Стили управления потоками данных, такие как описание макета CSS (Cascading Style Sheets - каскадные таблицы стилей).
3. Абсолютное позиционирование, которое позволяет выполнять позиционирование любого элемента, отображаемого браузером (например, кнопка, список и т.п.), посредством указания точного местоположения этого элемента по отношению к другим отображаемым элементам. Эта методика является очень трудной для использования при разработке веб-сайта, который должен функционировать как приложение.
Все вышесказанное описывает сложную рабочую среду проектирования веб-приложений. Также указаны недостатки и ограничения при использовании таких приложений.
В наиболее близком аналоге (публикация 2003/0200254 А1) задачи приложения разделяются между сервером и клиентом. Клиент, использующий такое приложение, должен инсталлировать сервисную программу (JAVA приложение). Это означает, что некоторые задачи по обработке выполняются на стороне клиента. Это вынуждает пользователя устанавливать только авторизованные компьютеры и определенные операционную систему и веб-браузер. Также эти приложения хуже адаптируются при обновлении операционной системы и веб-браузера. Другим недостатком клиентской стороны, выполняющей некоторые задачи приложения по обработке, является способ осуществления связи. Пакеты данных, которые возможно содержат важную информацию, необходимо передавать от клиентской стороны серверу и обратно. Такая связь является далеко не идеальной из-за объема данных (полосы пропускания) и затрат времени. Также сохраняются угрозы безопасности, поскольку важная информация доступна клиентской стороне, которая соединяется с глобальной сетью.
Приложение «Remote Desktop Connection» (удаленный рабочий стол) компании Микрософт - это программа, которая позволяет использовать приложения на серверах/компьютерах через сеть передачи данных. Приложение фактически запускается на сервере/компьютере, а пользователь, используя другой компьютер / терминал, подключенный к сети, может управлять этим приложением. Здесь используется передача изображения экрана в форме растрового изображения приложения пользователю/клиенту. Клиент посылает обратно события, связанные с клавиатурой и мышью. Данные, передаваемые сервером, представляют собой снимок экрана (растровое изображение) приложения на сервере, отображающий точное изображение экрана, сформированное на сервере. Чтобы получить "гладкое" изображение на стороне пользователя, растровые изображения передаются от сервера с высокой частотой. Пакеты данных являются большими, и скорость передачи высокая. Это приводит к массовой активности в сети и к потреблению большого объема сетевых ресурсов (пропускной способности). Такое приложение требует использования одинаковой операционной системы на сервере и клиенте. Также на клиентской стороне требуется установка апплета для поддержки этого приложения.
Основной целью настоящего изобретения является преодоление всех этих недостатков как при разработке, так и при использовании веб-приложений, независимо от всех ограничений. Другими словами, при одинаковой сложности проекта и одинаковых веб-ресурсах для транспортировки данных настоящее изобретение обеспечивает относительно простые способ и систему проектирования и намного более эффективное и безопасное использование ИТ-ориентированных серверных веб-приложений.
Целью настоящего изобретения является создание системы и способа предоставления ИТ-ориентированных серверных веб-приложений.
Еще одной целью настоящего изобретения является создание способа и системы, которые позволяют программировать серверные веб-приложения аналогично программированию настольных приложений.
Еще одной целью настоящего изобретения является создание способа и системы, в которых единая объектная модель управляет всеми потребностями приложения, например обработкой веб-приложения с несколькими окнами, управлением связью между сервером и браузером, передачей событий приложения (очереди событий) и приемом команд для обновления интерфейса пользователя при необходимости этого.
Еще одной целью настоящего изобретения является создание способа и системы, в которых не используются языки сценариев клиента или другие веб-языки, такие как JavaScript.
Еще одной целью настоящего изобретения является создание способа и системы, в которых разработчик использует один систематизированный объектно-ориентированный язык, такой как С#, VB.NET или любой другой язык, который поддерживает все функциональные возможности объектно-ориентированного программирования и компиляции, что не требует от разработчика знания стандартных языков веб-дизайна.
Следующей целью настоящего изобретения является создание способа и системы, в которых вся обработка производится на стороне сервера, а браузер пользователя используется только для приема входных команд и отображения результата.
Следующей целью настоящего изобретения является создание способа и системы, в которых объем передаваемых данных значительно снижен по сравнению с существующим уровнем техники.
Следующей целью настоящего изобретения является создание способа и системы, в которых достигается гораздо более высокий уровень безопасности по сравнению с существующим уровнем техники.
Следующей целью настоящего изобретения является создание способа и системы, в которых дизайн веб-страницы (отображаемой на экране/дисплее компьютера пользователя) загружается только один раз, не требуя перезагрузки при обновлении данных, представленных на указанной веб-странице.
Следующей целью настоящего изобретения является создание способа и системы, в которых на клиентской стороне используются относительно малые пропускная способность и ресурсы для обработки информации.
Целью настоящего изобретения является создание способа и системы для обеспечения разработчиков ИТ-ориентированного серверного веб-приложения новой средой разработки, которая является совместимой со средой разработки Microsoft®.
Другие цели и преимущества настоящего изобретения станут очевидными из последующего описания.
Сущность изобретения
Настоящее изобретение предлагает способ, позволяющий компьютеризованной системе использовать ИТ-ориентированные серверные веб-приложения, предоставляемые по сети передачи данных. Соответственно, на стороне сервера инсталлируется приложение, которое осуществляет связь с терминалом на стороне клиента по сети передачи данных. Выделенное ядро загружается один раз на стороне клиента и является связующим звеном (например, управляя протоколом связи клиентской стороны) между приложением и клиентской стороной. На стороне клиента события ассоциируются с соответствующими тегами ID, которые указывают на объекты приложения, и каждому событию присваивается временная метка. События организуются в очередь и передаются приложению в форме очереди событий только тогда, когда происходит критическое событие. На стороне сервера события преобразуются в действия приложения путем ассоциации между ними и объектами приложения с использованием тегов ID. Если объекты приложения этого клиента оказываются более обновленными при сравнении временной метки каждого принятого события и временной метки последнего обновления объекта приложения, подготавливается пакет данных, включающий команды на обновление только соответствующих объектов макета для клиентской стороны, которые отражают обновления приложения, и этот пакет посылается назад клиентской стороне в качестве обновлений. В результате объекты макета экрана на клиентской стороне обновляются на уровне представления в соответствии с содержанием пакета данных.
Клиентская сторона может представлять собой любой браузер, работающий под управлением любой операционной системы. Уровень представления не зависит от кода выделенного ядра и может представлять собой DHTML, WinForms® (оболочка для создания клиентских приложений Windows, использующая общеязыковую среду исполнения; приложения WinForms® могут быть написаны на любом языке, который поддерживает общеязыковая среда исполнения), Microsoft®Silverlight™ (подключаемый к браузеру модуль, позволяющий выполнять разработку веб-приложений) или другую среду, которая поддерживается любым другим уровнем представления, который способен передавать и принимать коды XML.
Выделенное ядро может быть кодом, который изменяется между разными поддерживаемыми уровнями представления. Обмен данными между сервером и клиентской стороной производится только посредством XML.
Настоящее изобретение также обеспечивает способ программирования ИТ-ориентированных серверных веб-приложений, предоставляемых клиентской стороне через сеть передачи данных, путем программирования веб-приложения аналогично программированию настольного приложения с использованием любого объектно-ориентированного языка программирования посредством конвертирования программного приложения в веб-приложение путем адаптации объектов и их ассоциированной логики к языкам веб-дизайна. Программное приложение может базироваться на другом веб-приложении, которое было разработано посредством других средств проектирования.
Краткое описание чертежей
Вышеуказанные и другие характеристики и преимущества настоящего изобретения более полно раскрываются далее в поясняющем, но не ограничивающем настоящее изобретение подробном описании предпочтительного варианта осуществления изобретения, которое сопровождается чертежами, где:
на фиг.1 показана схема инициализации клиентской стороны для системы, предлагаемой настоящим изобретением;
на фиг.2 показана схема обычного взаимодействия между сервером и клиентской стороной; и
на фиг.3 показана схема архитектуры системы для обеспечения ИТ-ориентированных серверных веб-приложений в соответствии с предпочтительным вариантом осуществления настоящего изобретения.
Подробное описание предпочтительных вариантов осуществления изобретения
Система согласно настоящему изобретению делает шаг вперед в области клиент-серверных ИТ-приложений как в вопросе разработки таких приложений, так и в использовании такой системы. Новшество в сфере разработки заключается в использовании любого программного обеспечения для объектно-ориентированного программирования (язык программирования высокого уровня) с целью разработки веб-приложений. Для разработчиков это полностью устраняет необходимость использовать общепринятые средства программирования веба/Интернета (например, HTML, XML, CSS и т.п.). Характер этой системы делает разработку веб-приложения доступной для любого программиста, а не только для тех, кто специализируется на языках проектирования веба/Интернета. Другим очевидным преимуществом настоящего изобретения является использование одного языка программирования вместо нескольких. Разработка макета (layout) при использовании данной системы является значительно более простой, чем при обычном способе существующего уровня техники. Отсутствует необходимость описывать размеры и свойства окон и элементов управления в символах/числах, а используется только способ «перетащить и оставить», аналогично тому, как это реализовано в некоторых средах разработки настольных приложений, таких как "Visual Studio". Также здесь реализуется способ разработки макета - закрепление и привязка (описывается в разделе «Предпосылки создания изобретения»), который делает разработку и модификацию макета более простой и удобной для пользователя.
Новшества и преимущества при использовании системы настоящего изобретения также распространяются на сторону клиента (пользователя) и способ связи клиент-сервер.
Клиент имеет полную свободу при выборе операционной системы и веб-браузера в соответствии со своими предпочтениями. Клиент также не ограничен специальными правами доступа, поскольку локальная инсталляция программного обеспечения не требуется. Следовательно, клиент может использовать любой компьютер, подключенный к глобальной сети (или локальной сети сервера) под управлением любой операционной системы и с любым браузером. Это достигается выполнением всех задач приложения на стороне сервера. Клиентская сторона только отображает требуемый экран. Это означает, что клиент не содержит никакой важной информации на своей стороне, а содержит только проецируемые данные. Проецируемые данные не хранятся на клиентской стороне (например, в виде 'cookies' - памяти веб-сайта на локальном жестком диске). Клиент использует выделенное ядро для расшифровки данных, принятых от сервера, и транслирования этих данных на экранный дисплей. Выделенное ядро также используется для кодирования данных, передаваемых на сервер. Такие особенности системы настоящего изобретения обеспечивают более высокий уровень защиты по сравнению с существующим уровнем техники, а также делают связь намного более эффективной с точки зрения размера пакетов данных, передаваемых от клиента серверу, и наоборот.
Далее описываются дополнительные аспекты способа связи в системе настоящего изобретения. Связь между сервером и браузером осуществляется с использованием одного URL (Uniform Res ource Locator; универсальный указатель ресурса - адрес веб-сайта) посредством использования главного окна приложения. Приложение может включать множество окон, но тем не менее связь с сервером осуществляется через один адрес.
Связь клиент-сервер осуществляется следующим образом: когда клиент обращается к серверу в первый раз, клиенту пересылается целая страница. Это происходит только один раз. В дальнейшем эта страница будет частично обновляться в соответствии с запросами клиента. На стороне клиента события объединяются в очередь, и когда происходит критическое событие, вся очередь передается на сервер. Каждому событию на стороне клиента присваивается тег ID и временная метка, с помощью которых сервер обновляет на клиентской стороне только необходимые данные. Это позволяет серверу обслуживать множество клиентов, поскольку сервер может различать клиентов и их запросы посредством тегов и временных меток. Данные, переданные от клиента серверу, отражают активность клиента (например, щелки мышью по определенным полям/элементам управления, набор текста на клавиатуре и т.д.). Эти данные кодируются в минимальный пакет данных и передаются на сервер. Сервер выполняет приложение с использованием этих данных и передает результат обратно клиенту в минимальном пакете данных. Клиент, как указано ранее, кодирует данные и транслирует их на экранный дисплей. Такой способ взаимодействия между сервером и клиентом обеспечивает значительное снижение активности по передаче информации и уменьшение размера пакетов данных по сравнению с системами существующего уровня техники.
ИТ приложение, которое разрабатывается с использованием системы настоящего изобретения, может быть подготовлено на компьютере программиста и затем опубликовано в сети (инсталлировано на сервере) или может программироваться прямо на сервере через сеть, т.е. путем удаленного программирования. В последнем способе программирования используется такой же способ связи, как клиент-сервер, который используется при применении системы настоящего изобретения. В этом случае программист является пользователем на клиентской стороне, а приложением на стороне сервера являются средства проектирования для создания приложения ИТ. Последующие иллюстрации относятся к обоим случаям: удаленный разработчик ИТ приложения, использующий систему настоящего изобретения, и пользователь самого ИТ приложения. В последующем описании приложение означает либо приложение ИТ, либо средства проектирования, а пользователь означает либо пользователя ИТ приложения, либо удаленного программиста.
На фиг.1 представлена схема инициализации системы на стороне клиента, предлагаемая настоящим изобретением. Каждый раз, когда пользователь хочет использовать приложение, выполняется следующая процедура. Пользователь, управляющий стороной 300 клиента через веб-браузер на компьютере/терминале, подключенном к серверу 200 по сети 500, обращается к серверу 200 через заданный веб-сайт. Сервер в свою очередь передает выделенное ядро для использования на стороне 300 клиента, а также данные для создания изображения приложения на экране клиентской стороны 300. Эта операция выполняется, как указано выше, только один раз при инициализации клиентской стороны. Это по сути является регистрацией пользователя в системе.
На фиг.2 показана стандартная процедура взаимодействия между сервером 200 и клиентской стороной 300. После регистрации любое взаимодействие между пользователем и приложением выполняется следующим образом: на стороне клиента 300 действия пользователя на экране (например, щелчки мышью, ввод текста с клавиатуры или любой другой ввод данных пользователем) преобразуются в события. Каждому событию присваивается уникальный идентификатор ID и временная метка. События организуются в очередь на стороне 300 клиента. Когда происходит критическое событие, вся очередь передается на сервер 200. Когда сервер 200 получает данные, он преобразует события в действия приложения и подготавливает пакет данных для отправки обратно клиентской стороне 300. Пакет данных включает только необходимую информацию, которая требуется клиенту для обновления содержания экрана и отражения результата действий приложения. Эти операции повторяются до тех пор, пока пользователь подключен к приложению.
Существуют случаи, когда пользователь не производит никаких действий (например, щелчков мышью, ввода текста с клавиатуры и т.д.), но события все равно будут запускаться на сервере. Это происходит вследствие срабатываний таймеров, которые периодически производит инфраструктура (например, "Keep-connected" - сохранение подключения, которое является событием, запускаемым через постоянный конфигурируемый интервал времени, и которое синхронизирует клиента и сервер во время простоя), или в результате запроса разработчика на асинхронные операции (т.е. асинхронный таймер, которым управляет разработчик для вызова асинхронных событий, таких как индикаторы выполнения или периодические обновления, автоматически запускаемые клиентским компьютером).
На фиг.3 схематично показана система 100 для обеспечения ИТ-ориентированных серверных веб-приложений в соответствии с предпочтительным вариантом осуществления настоящего изобретения. Система 100 включает три звена: звено 105 приложения, серверное звено 115 и клиентское звено 300. Клиентское звено 300 взаимодействует с серверным звеном 115, которое в свою очередь взаимодействует со звеном 105 приложения. Взаимодействие между клиентским звеном 300 и серверным звеном 115 осуществляется посредством событий, которые организуются в очередь и передаются от браузера 135 на сервер 116 приложения в форме XML (Extensible Markup Language - расширяемый язык разметки). С другой стороны, взаимодействие между северным звеном 115 и клиентским звеном 300 осуществляется посредством команд обновления, которые посылаются сервером 116 приложения браузеру 135 в форме XML.
Звено 115 приложения также включает дерево 106 объектов приложения, которое может представлять собой древовидную объектную модель, отображающую экземпляр приложения (созданный в программном коде) для хранения статуса приложения; индекс 107 объектов приложения, который может представлять собой хэш-таблицу для хранения связей между идентификаторами компонентов и ссылками на компоненты и который используется для получения ссылки на объект приложения согласно идентификатору объекта приложения; и конфигурацию 108 приложения, которая может представлять собой документ XML для хранения описаний и параметров приложения.
Серверное звено 115, которое также включает сервер 116 приложения, выполняет следующие функции:
- маршрутизацию запросов от клиентского звена на ресурсы, которые могут быть различных типов, к обработчикам запросов ресурсов в серверном звене, которые являются объектами, которые должны обеспечивать приложение ресурсами, такими как пиктограммы/изображения, данные, компоновки, контент и т.д., и посылать эти данные обратно в клиентское звено;
- маршрутизацию запросов на объект приложения (в дереве 106 объектов приложения), в которых запрашивается файл и которые могут быть созданы путем добавления специального поля к предоставленной форме, содержащей ID объекта приложения, и получения объектной ссылки из индекса объектов приложения. Индекс объекта приложения - это словарь, который хранит объекты приложения с их идентификаторами ID, позволяя обеспечить прямой доступ к объектам приложения по ID. Таким образом, когда запрос поступает в серверное звено, он направляется к соответствующему объекту приложения;
- прием очередей событий и обработку событий по одному элементу в очереди событий; причем события обрабатываются в том порядке, как они произошли в клиентском звене 300;
- возвращение команд обновления из браузера 135 в сервер 116 приложения с использованием временной метки, пересылаемой от серверного звена при последнем ответе сервера (обеспечивается в клиентском звене 300) на сервер 116 приложения (обеспечивается в серверном звене 115);
- обработку первого обращения к URL посредством получения класса объекта приложения, который представляет собой контейнерный управляющий элемент точки входа в систему (например, контейнерный объект формы), из дерева 106 объектов приложения (указанный класс отображается на конкретный URL); инициализации объекта из указанного класса и возвращения команды полного обновления. Команда полного обновления - это полный набор свойств, которые позволяют клиенту полностью сформировать изображение элементов управления в отличие от команды частичного обновления, которая обновляет некоторые свойства и поэтому обеспечивает частичное воспроизведение элементов управления.
Клиентское звено 300 также включает следующие программные компоненты:
- браузер 135 (например, Mozilla Firefox® или Microsoft® Internet Explorer) для навигации по сети передачи данных, такой как Интернет;
- сценарии 127 управления браузером, которые являются сценариями, загружаемыми при первом обращении, и используются как «базовая оболочка». «Базовая оболочка» означает, что сценарии клиентского звена загружаются один раз и используются для всех целей в отличие от других оболочек, в которых каждое состояние приложения/управления требует загрузки специального сценария. Такой сценарий «базовой оболочки» используется для связи с сервером 116 приложения и обновления клиентского звена 300 посредством команд обновления, принятых от указанного сервера 116 приложения. Сценарий «базовой оболочки» позволяет клиентскому звену ввести в действие команды обновления, которые могут включать, как указано выше, частичные/полные инструкции, определяющие, что необходимо изменить или заново воспроизвести в клиентском звене. Сценарий «базовой оболочки» также позволяет выполнять последующую передачу информации на сервер о том, что происходит в клиентском звене (клиентские события), например пользователь 130 щелкает/дважды щелкает мышью, изменяет текст, перемещает мышь и т.п.;
- документ 126 XSL, который генерируется на сервере 116 приложения и используется для преобразования команд обновления, которые посылаются сервером 116 приложения браузеру 135, в код HTML, который замещает существующий код HTML. Это выполняется посредством XSL преобразования данных обновления на основе XML, которые обеспечивают преобразование заново обновленных свойств в отображаемые элементы управления;
- документ 128 XML статуса интерфейса, который хранит состояние интерфейса и используется для воспроизведения пошагового обновления и сохранения состояния интерфейса. При хранении документа XML с данными о свойствах в клиентском звене можно выполнять пошаговые обновления, поскольку серверное звено может передавать только необходимые данные на каждом шаге, посредством обновления документа 128 XML статуса интерфейса и заново воспроизводить только те части, которые требуется воспроизвести;
- документ 136 CSS, который генерируется в серверном звене и используется как общее оформление (такое как цвет фона, размеры границ, цвет границы, стиль макета и т.д.) для всех воспроизводимых элементов HTML (данные + преобразованный код XSLT).
События клиента (например, щелчки мышью, двойные щелчки, перемещения мыши и т.п.) организуются в очередь в сценариях 127 управления браузера. Клиентские события подразделяются на три основные категории:
- накопленные события: такие события организуются посредством сценариев 127 управления браузера в очередь 129 событий клиента;
- накопленные уникальные события: такие события также организуются посредством сценариев 127 управления браузера в очередь 129 событий клиента, но хранятся как уникальные события: это означает, что если происходит событие такого типа, а предыдущее событие от такого же источника и с тем же именем уже существует, то предыдущее событие будет удалено, а новое событие будет помещено в очередь;
- критические события: когда происходит событие такого типа, оно помещается в очередь как последнее событие и запускает очередь событий, которая включает хронологический список всех некритических событий, которые произошли в клиентском звене между последним критическим событием и текущим критическим событием. Запуск события означает, что оно посылается без задержки в синхронном режиме на сервер 116 приложения.
При первоначальном запросе URL (который представляет собой URL, вводимый в веб-браузере с целью перехода в точку входа приложения), который работает под управлением сервера 116 приложения, указанный сервер 116 приложения производит поиск внутри конфигурации 108 приложения, чтобы определить отображение на класс объектов приложения (для данного URL). После обнаружения отображаемого класса объектов приложения в программном компоненте указанной конфигурации 108 приложения этот класс инициализируется, чтобы установить корневой объект дерева 106 объектов приложения (это означает, что корневой объект инициализируется, чтобы создать точку входа приложения и показать ее в клиентском звене). Затем команда полного обновления возвращается от сервера 116 приложения в клиентское звено 300, что позволяет указанному клиентскому звену 300 инициализировать клиентский интерфейс. Инициализация - это процесс создания новых объектов для всех отображаемых в настоящий момент элементов управления в определенном состоянии и присвоения им требуемых исходных свойств. С этого момента связь между клиентским звеном 300 и сервером 116 приложения осуществляется посредством событий и команд обновления, за исключением того, когда вызывается операция обновления (может быть вызвана нажатием кнопки обновления в браузере или изменением некоторого основного свойства приложения, такого как язык), которая приводит к тому, что серверное звено 115 передает еще раз команды полного обновления.
Когда критическое событие запускает передачу очереди событий, сценарии 127 управления браузера посылают очередь действий серверу 116 приложения (находится в очереди 129 событий клиента) совместно с уникальной клиентской меткой, например временной меткой, которая является числовым значением, отображающим время последнего обновления клиентского звена 135. Затем сервер 116 приложения в серверном звене 115 принимает очередь событий и временную метку клиента. После этого сервер обрабатывает очередь событий от конца к началу в порядке возникновения событий. Каждое событие в очереди событий имеет значение источника, которое представляет собой идентификатор ID объекта приложения, с которым связано данное событие. Такой идентификатор ID объекта приложения, полученный из текущего события, используется при поиске по индексу 107 объектов приложения для получения объектной ссылки на объект приложения, к которому относится данное событие. Объект текущего события посылается методу объекта приложения (методу, который является обработчиком события объекта для данного типа событий), который преобразует событие объекта в вызов стандартного события (вызов стандартного события - это способ сервера передавать события между объектами в отличие от нестандартных событий, которые являются событиями, передаваемыми от клиентского звена серверному звену приложения в соответствии с настоящим изобретением). Затем объект приложения в зависимости от типа (типа элемента управления, т.е. кнопка, форма, окно списка и т.п.) и поведения (способ реагирования на каждое событие данного конкретного объекта приложения), которое этот элемент использует, посылает стандартные кодовые события, которые могут быть использованы разработчиком программного кода. Стандартное кодовое событие принимается и является хорошо известным алгоритмом отправки сообщений между объектами, написанными посредством такой же технологии (т.е. С#, Java и др.), например объект, который посылает сообщение с целью информировать свой контейнерный объект о некотором изменении, которое произошло в его данных, в отличие от нестандартного события, которое представлено в настоящем изобретении. Нестандартное событие проходит между клиентским звеном и сервером приложения посредством алгоритма настоящего изобретения, когда, например, отображаемый клиентом элемент HTML посылает событие, сообщающее о том, что по нему произведен щелчок; а когда это событие фактически передается объекту, который должен обработать его в серверном звене, оно преобразуется в стандартное кодовое событие посредством алгоритма настоящего изобретения.
После того, как все события отправлены из клиентского звена серверу 115 приложения, указанный сервер 115 приложения вызывает корневой объект приложения, который является корнем дерева 106 объектов приложения, для формирования команд обновления, которые должны быть выполнены в клиентском звене 300 для синхронизации с деревом 106 объектов приложения. Для создания команд обновления временная метка клиента посылается корневому объекту приложения в дереве 106 объектов приложения, который в свою очередь запускает действие рекурсивного формирования, которое вызывает каждый объект приложения в указанном дереве 106 объектов приложения для проверки его временной метки, чтобы определить, требуется ли генерировать одну или более команду обновления. Объект приложения может хранить одну или более временных меток, и таким образом он может генерировать различные команды обновления для обновления компонентов, когда это необходимо. Эта мультивременная метка объекта приложения в настоящее время используется для команд частичного обновления (например, обновления только атрибутов объекта приложения, таких как цвет фона, содержащиеся данные и т.п.). Команды частичного обновления используются для того, чтобы сделать процесс обновления настолько эффективным, насколько возможно, в отношении числа элементов, которые необходимо переформировать, и их сложности.
Команды обновления, созданные деревом 106 объектов приложения, посылаются серверу 116 приложения в серверном звене 115, который в свою очередь посылает указанные команды обновления в виде документа XML в клиентское звено 300. Сценарии 127 управления браузера принимают команды обновления и обновляют документ 128 XML статуса интерфейса. Затем обновляемые элементы по одному преобразуются в представление в коде HTML для отображения на дисплее 131 с использованием документа 126 XSL. HTML представление создается путем XSL преобразования документа 128 XML статуса интерфейса с использованием соответствующего шаблона XSL (для того элемента, который представляет собой элемент управления).
Управление открытыми окнами приложений осуществляется аналогично всем другим объектам приложения, но команды обновления, которые возвращаются из серверного звена 115 для открывания окна, или команда обновления, которая сохраняет окно открытым, также включают указание на структуру XML окна (структуры элементов XML могут либо являться объектом приложения, содержащимся в окне, так что этот элемент будет включаться, либо самой структурой окна в виде корневого узла XML), которая представляет собой структуру текущего окна (например, главное окно, модальное диалоговое окно или немодальное диалоговое окно, размеры, положение и т.д.). Когда сценарии 127 управления браузера получают структуру XML открытых окон, он сканирует (циклы по открытым в настоящий момент окнам) указанные окна, чтобы определить, нужно ли закрыть одно из них, и сканирует структуру окон, чтобы определить, нужно ли открыть новое окно. Управление содержанием окон осуществляется аналогично управлению содержанием главного окна (главное окно - это окно браузера, которое отображает исходный URL при запуске, тогда как другие окна открываются поверх главного окна во время работы приложения) посредством управления идентификатором ID объекта приложения для обновления, который является уникальным, так что его можно определить при поиске по окнам, что означает, что ID объекта приложения не может повторяться в других окнах, даже если данный объект приложения содержится в совершенно другом контейнере. Таким способом объект может быть обнаружен в XML однозначно, независимо от содержащего его окна.
В соответствии с вариантом осуществления настоящего изобретения используются описания макета обычных настольных приложений, которые описывают атрибуты закрепления и привязки к элементам макета. Макет с закреплением легче обслуживать, чем таблицы HTML или абсолютное позиционирование, которое используется в обычных веб-приложениях. В конечном счете на выходе остается HTML, но программист описывает только те атрибуты, которые относятся к закреплению или привязке к объекту приложения. Объекты приложения, которые поддерживают закрепление, имеют свойство закрепления, которое является перечислителем «слева», «сверху», «справа», «снизу» и «заполнение». Эти перечислители описывают поведение макета объекта приложения:
- определение закрепления «сверху» приводит к тому, что объект приложения появляется в самой верхней позиции, в соответствии с определением высоты, а ширина объекта приложения будет максимально возможной;
- определение закрепления «снизу» приводит к тому, что объект приложения появляется в самой нижней позиции, в соответствии с определением высоты, а ширина объекта приложения будет максимально возможной;
- определение закрепления «слева» приводит к тому, что объект приложения появляется в самой левой позиции, в соответствии с определением ширины, а его высота будет максимально возможной;
- определение закрепления «справа» приводит к тому, что объект приложения появляется в самой правой позиции, в соответствии с определением ширины, а его высота будет максимально возможной;
- определение закрепления «заполнение» приводит к тому, что объект приложения заполняет оставшуюся клиентскую область. Любые объекты приложения, которые будут определены после заполняющего объекта приложения, не будут отображаться совсем, так как объект приложения с закреплением «заполнение» уже занял все оставшееся место.
В соответствии с предпочтительным вариантом осуществления настоящего изобретения используется возможность абсолютного позиционирования элемента в HTML и возможность добавлять выражения к атрибутам стиля (атрибуты, которые описывают стиль элементов управления, такой как цвет, размеры, шрифт и т.д., в отличие от атрибутов данных, таких как текст), которые должны пересчитываться время от времени (пересчет - это операция определения позиции и размеров элементов управления).
Когда пользователь переходит на URL, который управляется сервером 116 приложения, он отображается на класс корневого объекта приложения (отображение производится так, что приложение будет иметь точку входа, указывающую, что конкретный объект приложения представляет собой первый экран для отображения), причем этот класс инициализируется и действует как корневой объект для всех других объектов приложения дерева 106 объектов приложения. Программирование приложения производится посредством событий приложения с целью изменения текущего статуса (например, программирование кода, который формируется, когда происходит событие, связанное со щелчком мышью, выбором пункта из списка и т.д.) и структуры (например, программирование кода, который вызывает появление/ исчезновение элементов управления, изменение размеров/стиля/состояния элементов управления, открывание окна и т.д.) дерева объектов приложения, а сервер отражает эти изменения в браузере клиента посредством команд обновления, которые используются для синхронизации текущего состояния интерфейса с состоянием дерева объектов приложения. Управление окнами веб-приложения также производится с использованием дерева объектов приложения. Для открывания окна программисту требуется создать новый экземпляр объекта, который наследует класс окна. Вызов функции «показать окно» (которая является функцией, которая дает серверу команду показать экземпляр окна) этого объекта помечает данный объект окна как видимый, и в следующих командах обновления это окно будет добавлено в структуру окон, что сообщает браузеру, что на сервере было создано окно и требуется открыть новое окно и воспроизвести его содержание. При вызове функции «скрыть окно», которая является функцией, которая дает серверу команду скрыть существующее окно и посылает клиенту новую команду обновления, которая не включает структуры этого окна, указывается, что данное окно должно быть закрыто. Браузер всегда сравнивает открытые в настоящий момент окна со списком структуры окон в команде обновления; при этом возможны 3 случая.
1. Окно существует как в команде обновления, так и в документе 128 XML статуса интерфейса, тогда окно должно оставаться открытым, поскольку оно является видимым как в состоянии серверного звена, так и в состоянии клиентского звена.
2. Окно существует в команде обновления, но не существует в документе 128 XML статуса интерфейса, тогда должно быть открыто новое окно с указанным содержимым внутри структуры нового окна, поскольку оно является видимым в состоянии серверного звена, но невидимым в состоянии клиентского звена.
3. Окно не существует в команде обновления, но существует в документе 128 XML статуса интерфейса, тогда существующее окно должно быть закрыто, поскольку оно является невидимым в состоянии серверного звена, но видимым в состоянии клиентского звена.
Среда разработки веб-приложений существующего уровня техники базируется на страницах, что означает, что URL вызывается данными, объединенными с данными сеанса связи и другими системными ресурсами, такими как записи базы данных, которые используются для полного воспроизведения новой страницы в клиенте. Для обновления интерфейса клиента требуется, чтобы страница была полностью воспроизведена сервером, отправлена браузеру и воспроизведена браузером для обновления его интерфейса. Для прохождения такого режима в этих средах требуется выполнение сценариев в браузере для отправки HTTP запроса к страницам сервера и обновления интерфейса браузера.
В то время как эта среда разработки веб-приложений использует сценарии клиента для выполнения своих задач, она делает это посредством базового набора сценариев, которые используются для обновления клиентского интерфейса и посылают обратно события клиента, а вся обработка выполняется на стороне сервера с целью генерирования команд обновления, которые используются для обновления интерфейса клиента. Таким образом, для разработчика устраняется необходимость программирования веб-приложения с использованием сценариев клиента. Разработчик приложения обрабатывает события дерева объектов приложения и посредством изменения структуры и состояния дерева объектов приложения через обработчики этих событий косвенно взаимодействует с интерфейсом пользователя.
В соответствии с существующим уровнем техники веб-страницы полностью воспроизводятся на стороне сервера и на стороне клиента. Данная среда разработки веб-приложений использует XML HTTP как связующее синхронное и асинхронное звено, а передаваемый контент представляет собой очередь событий, которая состоит из соответствующих изменений и действий, которые произошли в браузере. Вместе с очередью событий на сервер передается также временная метка клиента, которая используется для формирования команд обновления после того, как обработана очередь событий и выполнен код обработчиков событий. Изменения, сделанные обработчиками событий для элементов дерева объектов приложения, приводят к тому, что каждый измененный элемент имеет свою метку последнего обновления, и посредством рекурсивного обхода дерева объектов приложения и сравнения временной метки клиента с меткой каждого элемента дерева объектов приложения можно получить перечень команд обновления и использовать его для обновления интерфейса клиента с целью его синхронизации с деревом объектов приложения. Такой алгоритм оптимизирует до минимума размер данных, передаваемых на сервер и возвращаемых обратно от сервера. Алгоритм очереди событий, используемый данной средой разработки веб-приложений, оптимизирует обращения к серверу, так что события, которые не требуется обрабатывать на сервере, не пересылаются, и только когда происходит событие, которое требует обработки, оно пересылается. Очередь событий оптимизируется еще больше при повторном определении уникальных событий, что означает, что некоторые события отменяют другие. Например, если пользователь изменяет на экране позицию разделителя и затем изменяет ее еще раз, первое событие не является значимым и будет удалено из очереди.
В соответствии с предпочтительным вариантом осуществления настоящего изобретения, можно выполнить импорт унаследованного приложения (например, сервисные программы, клиент-серверные приложения и т.д.) из любой существующей настольной среды в веб-среду. Кроме того, достигается более высокий уровень безопасности, поскольку браузер не хранит сценарии бизнес-логики (такие как проверка действительности приложения, пароли, скрытые поля, маркеры и т.д.), а также большую часть данных, кроме данных представления, которые делают возможным создание текущего изображения, отображаемого в любой момент времени.
Тогда как для иллюстрации были описаны несколько вариантов осуществления настоящего изобретения, очевидно, что настоящее изобретение может осуществляться с множеством модификаций, разновидностей и доработок, с использованием многочисленных эквивалентных или альтернативных решений, которые очевидны для специалистов в данной области техники, без отклонения от сущности настоящего изобретения и выхода за рамки формулы изобретения.
Claims (22)
1. Способ управления объектом приложения, включающий:
управление множеством различных приложений на сервере;
прием от клиентского звена, имеющего браузер, множества запросов на множество объектов приложений из указанного множества различных приложений;
пересылку базового статического кода указанному клиенту, который выполняет указанный базовый статический код;
пересылку от указанного сервера множества команд, каждая из которых указывает состояние отдельного объекта приложения из множества объектов приложения, указанному клиенту для воспроизведения указанным базовым статическим кодом, имеющимся в клиенте, каждого объекта приложения согласно соответствующему состоянию с помощью указанного браузера;
прием от указанного клиента множества клиентских событий, каждое из которых относится к отдельному объекту приложения указанного множества объектов приложения;
идентификацию для каждого из указанного множества клиентских событий соответствующего приложения из указанного множества различных приложений; и
обновление каждого состояния посредством обработки указанного множества клиентских событий на указанном сервере в соответствии с упомянутой идентификацией.
управление множеством различных приложений на сервере;
прием от клиентского звена, имеющего браузер, множества запросов на множество объектов приложений из указанного множества различных приложений;
пересылку базового статического кода указанному клиенту, который выполняет указанный базовый статический код;
пересылку от указанного сервера множества команд, каждая из которых указывает состояние отдельного объекта приложения из множества объектов приложения, указанному клиенту для воспроизведения указанным базовым статическим кодом, имеющимся в клиенте, каждого объекта приложения согласно соответствующему состоянию с помощью указанного браузера;
прием от указанного клиента множества клиентских событий, каждое из которых относится к отдельному объекту приложения указанного множества объектов приложения;
идентификацию для каждого из указанного множества клиентских событий соответствующего приложения из указанного множества различных приложений; и
обновление каждого состояния посредством обработки указанного множества клиентских событий на указанном сервере в соответствии с упомянутой идентификацией.
2. Способ по п.1, также включающий пересылку дополнительной команды, указывающей клиенту упомянутые обновленные состояния, для воспроизведения указанным базовым статическим кодом множества объектов приложения соответственно указанным обновленным состояниям.
3. Способ по п.1, в котором указанный прием включает прием временной метки, связанной с указанной командой, сравнение указанной временной метки и предыдущей временной метки, связанной с соответствующим состоянием соответствующего указанного объекта приложения, при этом указанное обновление выполняется в соответствии с указанным сравнением.
4. Способ по п.1, в котором указанная команда является командой на обновление объекта макета экрана на уровне представления, отображающем соответствующий указанный объект приложения.
5. Способ по п.1, в котором указанная команда не содержит логический сценарий, относящийся к указанному объекту приложения.
6. Способ по п.1, в котором указанная команда представлена в виде команды расширяемого языка разметки XML.
7. Способ по п.1, в котором указанные управление, пересылку и прием выполняют на общем уровне.
8. Способ по п.1, в котором каждый объект приложения представляет собой структуру окна.
9. Способ по п.1, в котором управление включает инициализацию указанного множества объектов приложения на указанном сервере и присвоение каждому указанному объекту приложения уникального идентификатора; при этом управление, пересылка, прием и обновление выполняют на указанном сервере отдельно для каждого объекта приложения, и указанный базовый статический код отдельно обновляет каждый объект приложения.
10. Способ по п.1, в котором управление включает инициализацию указанного множества приложений в ответ на запрос от указанного клиента.
11. Способ по п.10, в котором указанный запрос является запросом доступа к универсальному указателю ресурса URL.
12. Система управления объектами приложения, содержащая:
сервер, сконфигурированный для управления состоянием каждого из множества объектов приложения из множества приложений и для доставки множества базовых статических кодов множеству клиентов, при этом каждый из указанного множества базовых статических кодов сконфигурирован для воспроизведения отображения любого из указанного множества объектов приложения любого из указанного множества приложений на одном из указанных клиентов;
при этом указанный сервер пересылает команду, указывающую на обновление в соответствующем состоянии, соответствующему базовому статическому коду для обновления соответствующего базового статического кода в соответствии с указанным отображением;
при этом указанный базовый статический код пересылает по меньшей мере одно клиентское событие, относящееся к соответствующему объекту приложения, указанный сервер обрабатывает указанное по меньшей мере одно клиентское событие и обновляет соответствующее указанное состояние.
сервер, сконфигурированный для управления состоянием каждого из множества объектов приложения из множества приложений и для доставки множества базовых статических кодов множеству клиентов, при этом каждый из указанного множества базовых статических кодов сконфигурирован для воспроизведения отображения любого из указанного множества объектов приложения любого из указанного множества приложений на одном из указанных клиентов;
при этом указанный сервер пересылает команду, указывающую на обновление в соответствующем состоянии, соответствующему базовому статическому коду для обновления соответствующего базового статического кода в соответствии с указанным отображением;
при этом указанный базовый статический код пересылает по меньшей мере одно клиентское событие, относящееся к соответствующему объекту приложения, указанный сервер обрабатывает указанное по меньшей мере одно клиентское событие и обновляет соответствующее указанное состояние.
13. Система по п.12, в которой сервер управляет логическим сценарием и обрабатывает логический сценарий для каждого указанного объекта приложения.
14. Система по п.13, в которой логический сценарий не обрабатывается указанным клиентом.
15. Способ воспроизведения объекта приложения, содержащий:
прием по сети базового статического кода и его инсталляцию в память клиента в клиентском звене;
прием по сети в клиентском звене команды, указывающей состояние по меньшей мере одного объекта приложения одного из множества приложений, управляемых сервером, соединенным с указанной сетью;
использование указанного базового статического кода под управлением указанной операционной системы для идентификации указанного по меньшей мере одного объекта приложения и воспроизведения указанного по меньшей мере одного объекта приложения с помощью браузера в соответствии с указанной командой;
захват по меньшей мере одного клиентского события, относящегося к указанному по меньшей мере одному объекту приложения; и
пересылку указанного по меньшей мере одного клиентского события с идентификатором указанного по меньшей мере одного объекта приложения указанному серверу для его обработки в указанном сервере и обновления указанного состояния в соответствии с обработкой.
прием по сети базового статического кода и его инсталляцию в память клиента в клиентском звене;
прием по сети в клиентском звене команды, указывающей состояние по меньшей мере одного объекта приложения одного из множества приложений, управляемых сервером, соединенным с указанной сетью;
использование указанного базового статического кода под управлением указанной операционной системы для идентификации указанного по меньшей мере одного объекта приложения и воспроизведения указанного по меньшей мере одного объекта приложения с помощью браузера в соответствии с указанной командой;
захват по меньшей мере одного клиентского события, относящегося к указанному по меньшей мере одному объекту приложения; и
пересылку указанного по меньшей мере одного клиентского события с идентификатором указанного по меньшей мере одного объекта приложения указанному серверу для его обработки в указанном сервере и обновления указанного состояния в соответствии с обработкой.
16. Способ по п.15, в котором указанный захват также включает формирование очереди из множества клиентских событий, относящихся к указанному по меньшей мере одному объекту приложения, указанная пересылка включает пересылку указанного множества клиентских событий указанному серверу в ответ на обнаружение события для их обработки в указанном сервере и обновления указанного состояния в соответствии с обработкой.
17. Способ по п.15, в котором указанное обновление включает проверку временной метки указанного по меньшей мере одного клиентского события по сравнению с другой временной меткой указанного объекта приложения.
18. Способ по п.15, в котором указанный по меньшей мере один объект приложения представляет собой конвертированное настольное приложение.
19. Способ по п.15, в котором указанный прием включает локальное хранение копии указанного состояния; и также включает синхронизацию между указанной копией в клиентском звене и указанным состоянием на сервере.
20. Способ по п.15, в котором указанный прием выполняют посредством базового статического кода, загруженного в память клиента.
21. Способ по п.20, в котором указанный базовый статический код не инсталлирован в указанную память.
22. Способ по п.20, в котором указанный базовый статический код управляет связью клиентского звена.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US90167407P | 2007-01-16 | 2007-01-16 | |
US60/901,674 | 2007-01-16 |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2009130915A RU2009130915A (ru) | 2011-02-27 |
RU2466450C2 true RU2466450C2 (ru) | 2012-11-10 |
Family
ID=39636466
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2009130915/08A RU2466450C2 (ru) | 2007-01-16 | 2008-01-16 | Способ и система для создания ит-ориентированных серверных сетевых приложений |
Country Status (8)
Country | Link |
---|---|
US (2) | US8510371B2 (ru) |
EP (1) | EP2126716A4 (ru) |
JP (1) | JP5439190B2 (ru) |
CN (2) | CN101849228B (ru) |
AU (1) | AU2008206688B9 (ru) |
CA (1) | CA2675393A1 (ru) |
RU (1) | RU2466450C2 (ru) |
WO (1) | WO2008087636A2 (ru) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2625936C1 (ru) * | 2016-03-03 | 2017-07-19 | ТУЗОВА Алла Павловна | Способ обработки машиночитаемой информации |
RU2703156C2 (ru) * | 2015-07-14 | 2019-10-15 | БИТДЕФЕНДЕР АйПиАр МЕНЕДЖМЕНТ ЛТД | Системы и способы обеспечения компьютерной безопасности, использующие исключения асинхронной интроспекции |
Families Citing this family (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2008206688B9 (en) | 2007-01-16 | 2013-01-24 | Gizmox Ltd. | Method and system for creating IT-oriented server-based web applications |
US9092538B2 (en) * | 2008-09-30 | 2015-07-28 | Disney Enterprises, Inc. | System and method for determining the data model used to create a web page |
AU2009319665B2 (en) | 2008-11-26 | 2015-08-20 | Calgary Scientific Inc. | Method and system for providing remote access to a state of an application program |
CN102096584B (zh) * | 2009-12-15 | 2014-04-09 | 阿里巴巴集团控股有限公司 | 一种页面脚本时间戳的修改方法、设备和系统 |
US8370899B2 (en) * | 2010-08-11 | 2013-02-05 | Emc Corporation | Disposable browser for commercial banking |
US20120096070A1 (en) * | 2010-10-15 | 2012-04-19 | Shane Bryzak | Web application framework remoting model api |
US9406043B1 (en) * | 2010-12-15 | 2016-08-02 | A9.Com, Inc. | Techniques for peer-to-peer communication |
WO2012093330A1 (en) | 2011-01-04 | 2012-07-12 | Calgary Scientific, Inc. | A method and system of controlling a remote controlled device in a remote controlled surgical procedure |
US9741084B2 (en) | 2011-01-04 | 2017-08-22 | Calgary Scientific Inc. | Method and system for providing remote access to data for display on a mobile device |
US8347315B1 (en) * | 2011-01-28 | 2013-01-01 | Sprint Communications Company L.P. | Configuration console for messaging middleware |
US8782174B1 (en) | 2011-03-31 | 2014-07-15 | Emc Corporation | Uploading and downloading unsecured files via a virtual machine environment |
US9600350B2 (en) * | 2011-06-16 | 2017-03-21 | Vmware, Inc. | Delivery of a user interface using hypertext transfer protocol |
US11750673B2 (en) * | 2011-08-01 | 2023-09-05 | Spring Design, Inc. | User interface content state synchronization across devices |
KR20140080483A (ko) | 2011-08-15 | 2014-06-30 | 캘거리 싸이언티픽 인코포레이티드 | 애플리케이션 프로그램에 대한 비-침투적 원격 액세스 |
US9514242B2 (en) | 2011-08-29 | 2016-12-06 | Vmware, Inc. | Presenting dynamically changing images in a limited rendering environment |
US9549045B2 (en) | 2011-08-29 | 2017-01-17 | Vmware, Inc. | Sharing remote sessions of a user interface and/or graphics of a computer |
CA2850422C (en) | 2011-09-30 | 2023-09-26 | Calgary Scientific Inc. | Uncoupled application extensions including interactive digital surface layer for collaborative remote application sharing and annotating |
US20130086156A1 (en) * | 2011-09-30 | 2013-04-04 | Calgary Scientific Inc. | Coupled application extensions for collaborative remote application sharing |
US10210026B2 (en) * | 2011-09-30 | 2019-02-19 | Oracle International Corporation | Enterprise tools enhancements |
US20130091197A1 (en) | 2011-10-11 | 2013-04-11 | Microsoft Corporation | Mobile device as a local server |
RU2616162C2 (ru) * | 2011-10-11 | 2017-04-12 | МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи | Обслуживание событий для локальных приложений-клиентов посредством локального сервера |
WO2013072764A2 (en) | 2011-11-11 | 2013-05-23 | Calgary Scientific Inc. | Session transfer and suspension in a remote access application framework |
SG11201402546WA (en) | 2011-11-23 | 2014-06-27 | Calgary Scient Inc | Methods ans systems for collaborative remote application sharing and conferencing |
US9037636B2 (en) * | 2012-01-19 | 2015-05-19 | Microsoft Technology Licensing, Llc | Managing script file dependencies and load times |
US10530894B2 (en) | 2012-09-17 | 2020-01-07 | Exaptive, Inc. | Combinatorial application framework for interoperability and repurposing of code components |
US9600351B2 (en) | 2012-12-14 | 2017-03-21 | Microsoft Technology Licensing, Llc | Inversion-of-control component service models for virtual environments |
CN104092777B (zh) * | 2014-07-29 | 2017-12-26 | 深圳市富途网络科技有限公司 | 客户端的布局设定与服务器同步存储的方法及其系统 |
CN105450718A (zh) * | 2014-09-30 | 2016-03-30 | 阿里巴巴集团控股有限公司 | 界面更新方法及客户端 |
US9564108B2 (en) * | 2014-10-20 | 2017-02-07 | Amlogic Co., Limited | Video frame processing on a mobile operating system |
US9916140B2 (en) * | 2015-03-23 | 2018-03-13 | International Business Machines Corporation | Method of generating end-to-end web application from tooling |
WO2017023049A1 (en) * | 2015-07-31 | 2017-02-09 | Samsung Electronics Co., Ltd. | Electronic device and server related to rendering of web content and controlling method thereof |
US9319365B1 (en) * | 2015-10-09 | 2016-04-19 | Machine Zone, Inc. | Systems and methods for storing and transferring message data |
US10389795B2 (en) | 2015-10-09 | 2019-08-20 | Microsoft Technology Licensing, Llc | Distributed extension execution in computing systems |
US10419568B2 (en) | 2016-04-01 | 2019-09-17 | Microsoft Technology Licensing, Llc | Manipulation of browser DOM on server |
US10102376B2 (en) | 2016-08-22 | 2018-10-16 | International Business Machines Corporation | Implementing locale management on PaaS: locale replacement risk analysis |
US9910666B1 (en) | 2016-08-22 | 2018-03-06 | International Business Machines Corporation | Implementing locale management on PaaS: live locale object update |
CN106776784A (zh) * | 2016-11-24 | 2017-05-31 | 福建星网智慧科技股份有限公司 | 一种web页面快速加载的方法 |
US10409565B2 (en) | 2017-03-30 | 2019-09-10 | Ice Tea Group Llc | Pixel perfect real-time web application framework |
CN107895005A (zh) * | 2017-11-07 | 2018-04-10 | 东莞亿科信息技术有限公司 | 一种多市场历史数据的回测方法和计算机存储介质 |
US11611373B2 (en) * | 2018-05-15 | 2023-03-21 | Logmore Oy | Electronic device and data-transmission system |
CN109032705B (zh) * | 2018-07-05 | 2022-02-25 | 腾讯科技(深圳)有限公司 | 应用程序的执行方法、装置、电子设备及可读存储介质 |
JP7225596B2 (ja) * | 2018-07-30 | 2023-02-21 | トヨタ自動車株式会社 | プログラム更新システム、プログラム更新サーバーおよび車両 |
CN110929188A (zh) * | 2018-09-19 | 2020-03-27 | 北京国双科技有限公司 | 服务端页面渲染方法及装置 |
CN109471708B (zh) * | 2018-10-12 | 2023-10-31 | 北京奇虎科技有限公司 | 一种任务处理方法、装置及系统 |
WO2020104999A1 (en) * | 2018-11-23 | 2020-05-28 | Nagravision S.A. | Techniques for managing generation and rendering of user interfaces on client devices |
JP6978447B2 (ja) * | 2019-01-22 | 2021-12-08 | ファナック株式会社 | 表示データ提供装置 |
CN115081419A (zh) * | 2022-06-21 | 2022-09-20 | 京东方科技集团股份有限公司 | 信息处理方法、信息处理系统、电子设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1214667B1 (en) * | 1999-09-07 | 2004-02-25 | Citrix Systems, Inc. | Methods and apparatus for efficiently transmitting interactive application data between a client and server using markup language |
RU2237275C2 (ru) * | 1999-02-18 | 2004-09-27 | Ситрикс Системз, Инк. | Сервер и способ (варианты) определения программного окружения клиентского узла в сети с архитектурой клиент/сервер |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5608909A (en) * | 1994-04-15 | 1997-03-04 | Microsoft Corporation | Method and system for caching presentation data of a source object in a presentation cache |
US5881230A (en) * | 1996-06-24 | 1999-03-09 | Microsoft Corporation | Method and system for remote automation of object oriented applications |
US6115646A (en) * | 1997-12-18 | 2000-09-05 | Nortel Networks Limited | Dynamic and generic process automation system |
WO2001045018A1 (en) * | 1999-12-17 | 2001-06-21 | Dorado Network Systems Corporation | Purpose-based adaptive rendering |
US7240283B1 (en) * | 2000-11-10 | 2007-07-03 | Narasimha Rao Paila | Data transmission and rendering techniques implemented over a client-server system |
US7574493B2 (en) * | 2000-11-22 | 2009-08-11 | Cricket Communications, Inc. | Method and system for improving the efficiency of state information transfer over a wireless communications network |
US8843909B2 (en) * | 2001-05-11 | 2014-09-23 | Ca, Inc. | Method and apparatus for transforming legacy software applications into modern object-oriented distributed systems |
AUPR947701A0 (en) * | 2001-12-14 | 2002-01-24 | Activesky, Inc. | Digital multimedia publishing system for wireless devices |
DE10214538A1 (de) | 2002-04-02 | 2003-10-30 | Siemens Ag | Webserver mit integrierter Automatisierungsfunktionalität und direktem Zugriff auf eine Transportschicht |
US7379982B2 (en) * | 2002-04-15 | 2008-05-27 | Bassam Tabbara | System and method for custom installation of an operating system on a remote client |
JP2003323402A (ja) * | 2002-05-01 | 2003-11-14 | Ntt Docomo Inc | シンクライアントシステム、並びに、シンクライアント端末、シンクライアント端末制御方法、及び、制御プログラム |
US9521207B2 (en) | 2002-05-09 | 2016-12-13 | Protel Communications Limited | Unified integration management—contact center portal |
US6687485B2 (en) * | 2002-05-21 | 2004-02-03 | Thinksmark Performance Systems Llc | System and method for providing help/training content for a web-based application |
US7107497B2 (en) * | 2002-09-30 | 2006-09-12 | Sun Microsystems, Inc. | Method and system for event publication and subscription with an event channel from user level and kernel level |
CN1307545C (zh) * | 2002-12-24 | 2007-03-28 | 鸿富锦精密工业(深圳)有限公司 | 面向对象的商业网站架设系统 |
US7290249B2 (en) * | 2003-01-27 | 2007-10-30 | Bea Systems, Inc. | System and method for java message service mark-up language |
US7614052B2 (en) | 2004-01-09 | 2009-11-03 | Nexaweb Technologies Inc. | System and method for developing and deploying computer applications over a network |
US7392294B2 (en) * | 2004-07-22 | 2008-06-24 | International Business Machines Corporation | Decreasing data transmission volume from server to client device in data processing network |
US20060089147A1 (en) * | 2004-10-21 | 2006-04-27 | Beaty Robert M | Mobile network infrastructure for applications, personalized user interfaces, and services |
US7467293B2 (en) | 2004-11-12 | 2008-12-16 | Tsinghua University | Method and computing system for transparence computing on the computer network |
CN1333339C (zh) * | 2005-04-06 | 2007-08-22 | 清华大学 | 基于透明计算的计算设备和方法 |
CN100407643C (zh) | 2005-06-02 | 2008-07-30 | 中兴通讯股份有限公司 | 一种电信设备面板管理系统及其实现管理的方法 |
US20070008973A1 (en) * | 2005-07-11 | 2007-01-11 | Galea Nicholas P A | Thin client server |
US20080071922A1 (en) * | 2006-09-19 | 2008-03-20 | International Business Machines Corporation | Methods, systems, and computer program products to transparently dispatch requests to remote resources in a multiple application server environment |
AU2008206688B9 (en) | 2007-01-16 | 2013-01-24 | Gizmox Ltd. | Method and system for creating IT-oriented server-based web applications |
CN100566234C (zh) * | 2007-07-16 | 2009-12-02 | 腾讯科技(深圳)有限公司 | 数据同步方法及处理方法、客户端设备、服务器 |
-
2008
- 2008-01-16 AU AU2008206688A patent/AU2008206688B9/en not_active Ceased
- 2008-01-16 US US12/523,177 patent/US8510371B2/en not_active Expired - Fee Related
- 2008-01-16 CA CA002675393A patent/CA2675393A1/en not_active Abandoned
- 2008-01-16 EP EP08702647A patent/EP2126716A4/en not_active Withdrawn
- 2008-01-16 CN CN2008800086132A patent/CN101849228B/zh not_active Expired - Fee Related
- 2008-01-16 RU RU2009130915/08A patent/RU2466450C2/ru not_active IP Right Cessation
- 2008-01-16 JP JP2009546066A patent/JP5439190B2/ja not_active Expired - Fee Related
- 2008-01-16 WO PCT/IL2008/000066 patent/WO2008087636A2/en active Application Filing
- 2008-01-16 CN CN2012104873440A patent/CN103218215A/zh active Pending
-
2013
- 2013-08-12 US US13/964,190 patent/US20140143310A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2237275C2 (ru) * | 1999-02-18 | 2004-09-27 | Ситрикс Системз, Инк. | Сервер и способ (варианты) определения программного окружения клиентского узла в сети с архитектурой клиент/сервер |
EP1214667B1 (en) * | 1999-09-07 | 2004-02-25 | Citrix Systems, Inc. | Methods and apparatus for efficiently transmitting interactive application data between a client and server using markup language |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2703156C2 (ru) * | 2015-07-14 | 2019-10-15 | БИТДЕФЕНДЕР АйПиАр МЕНЕДЖМЕНТ ЛТД | Системы и способы обеспечения компьютерной безопасности, использующие исключения асинхронной интроспекции |
RU2625936C1 (ru) * | 2016-03-03 | 2017-07-19 | ТУЗОВА Алла Павловна | Способ обработки машиночитаемой информации |
Also Published As
Publication number | Publication date |
---|---|
CN101849228A (zh) | 2010-09-29 |
WO2008087636A3 (en) | 2010-01-28 |
EP2126716A2 (en) | 2009-12-02 |
JP2010528344A (ja) | 2010-08-19 |
CN103218215A (zh) | 2013-07-24 |
US20100115023A1 (en) | 2010-05-06 |
US20140143310A1 (en) | 2014-05-22 |
CN101849228B (zh) | 2013-05-08 |
AU2008206688B9 (en) | 2013-01-24 |
RU2009130915A (ru) | 2011-02-27 |
AU2008206688B2 (en) | 2012-09-27 |
AU2008206688A1 (en) | 2008-07-24 |
EP2126716A4 (en) | 2011-03-16 |
CA2675393A1 (en) | 2008-07-24 |
JP5439190B2 (ja) | 2014-03-12 |
US8510371B2 (en) | 2013-08-13 |
WO2008087636A2 (en) | 2008-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2466450C2 (ru) | Способ и система для создания ит-ориентированных серверных сетевых приложений | |
US7596593B2 (en) | Methods and apparatus for efficiently transmitting interactive application data between a client and server using markup language | |
US20130066947A1 (en) | System and Method for Managing Applications for Multiple Computing Endpoints and Multiple Endpoint Types | |
CA2557111C (en) | System and method for building mixed mode execution environment for component applications | |
KR101507629B1 (ko) | 기존 애플리케이션들의 커스터마이징 및 분산을 위한 브라우저-기반 프록시 서버 | |
US7596791B2 (en) | Methods and techniques for delivering rich Java applications over thin-wire connections with high performance and scalability | |
US7907966B1 (en) | System and method for cross-platform applications on a wireless phone | |
US8627344B2 (en) | Methods and apparatuses for user interface management | |
US20020101448A1 (en) | Generating a declarative user interface | |
US20070288644A1 (en) | Systems and methods for developing and running applications in a web-based computing environment | |
US20110083070A1 (en) | Systems and methods for rendering and increasing portability of document-based user interface software objects | |
KR20150043333A (ko) | 선언형 템플릿을 사용하여 컨트롤을 스탬프 아웃하기 위한 사용자 인터페이스 컨트롤 프레임워크 | |
KR20090000199A (ko) | 웹 서버 어플리케이션 프레임워크와 상기 프레임워크를이용한 웹 어플리케이션 처리 방법 및 이를 구현할 수 있는컴퓨터로 읽을 수 있는 기록 매체 | |
WO2010097688A1 (en) | System and method for the generation of applications by means of a computer network | |
IL199860A (en) | Method and System for Creating Server-Based Networking and Information Technology (IT) Applications | |
TWI610183B (zh) | 植基於ajax技術於控管網頁共通部分之運作系統 | |
Ghoda et al. | Advanced Silverlight 3 Features | |
Hackborn | Interactive HTML | |
GB2362234A (en) | Embedded Web interface |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20160117 |