Tag Archives: RIA

Серебряный свет Microsoft

В предыдущей заметке я писал о Rich Internet Applications. Существует несколько технологий, реализующих эту концепцию. Наиболее передовой и функциональной я, не без оснований, считаю технологию Microsoft Silverlight.

Ранее Microsoft публиковала другую технологию того же класса – это Microsoft ASP .NET AJAX Extensions, кодовое имя Atlas. Это решение основано на концепции AJAX. Вдаваться в технические подробности я не буду, но суть в том, что клиентская часть программы реализуется на основе уже имеющихся инструментов разработки веб-сайтов: HTML, JavaScript, XML, DOM. Эти инструменты существенно ограничены в возможностях, что не мудрено, ибо делались они лет десять назад и тогда такое их применение не предполагалось. Кроме того, они еще и по-разному работают в разных браузерах. Поэтому для правильной работы приложения приходится тестировать и отлаживать его на огромном количестве различных браузеров, различных их версий, различных ОС, различных конфигураций ПО.

Microsoft Silverlight работает несколько иначе. Фактически устанавливается плагин к браузеру пользователя. Клиентская часть программ разрабатывается на обычных языках программирования, вроде C# или Visual Basic и компилируется в единую сборку, которая выполняется компьютером клиента как обычное Windows-приложение, но не требует установки и запускается в браузере.

Приложения Silverlight на данный можно запускать на операционных системах Windows 2000 и выше (XP, 2k3, Vista, 7, 2k8), MacOS 10.4 и выше, в браузерах Internet Explorer версии 6 и выше, Firefox 1.5 и выше, Safari 3.1.

В ближайшем будущем планируется добавить поддержку Opera, мобильных устройств на основе Windows Mobile и Symbian и некоторых других платформ.

Silverlight содержит средства для создания мультимедийных приложений. Это проигрывание видео и музыки, трёхмерная графика с аппаратным ускорением.

Большое внимание уделено разработке графического интерфейса приложений. Разработчикам доступны основные визуальные компоненты, включая такие сложные как Grid’ы. В последней версии Silverlight ребята из Microsoft добавили даже поддержку Multitouch-интерфейса, что по достоинству оценят владельцы нетбуков.

 

Если Macromedia Flash изначально рассчитан на создание мультиков и простеньких игрушек, то на Microsoft Silverlight вполне можно разрабатывать серьезные бизнес-решения. Так, например, московская компания BB Software завершает разработку системы электронного документооборота на основе Microsoft Silverlight 2.0. Посмотреть на то, как это работает, можно здесь: http://213.79.102.127:8090/ (логиньтесь под учетной записью «Администратор Системы Оперативного Управления», пароль «1»).

 

P.S. Это кросспост моей заметки в блоге проекта интерактивной системы самоподготовки, обучения и тестирования.

 

Павел Сурменок

Красноярск, 25 сентября 2009, вечер

 

Интернет-приложения становятся богаче

Традиционно программное обеспечение принято делить на два класса, согласно логике взаимодействия пользователя с программой. Это «толстые клиенты», или обычные приложения с графическим интерфейсом (в ОС Windows еще называют Windows-приложениями). И это «тонкие клиенты», или обычные веб-приложения.

Windows-приложения позволяют реализовать навороченный интерфейс пользователя. Они работают быстрее, и позволяют пользователям более удобно и быстро работать с программой. Однако есть у этих приложений и существенные недостатки. Так, необходимо устанавливать ПО на каждое рабочее место, в дальнейшем обновлять на этих компьютерах ПО, при необходимости устанвливать пакеты исправлений и т.п.  Представьте себе, что с программой в вашей компании должно работать 50 пользователей, которые к тому же работают в разных офисах, а-то и в разных городах, и на каждый из этих 50 компьютеров нужно отдельно устанавливать саму программу, и раз в несколько недель/месяцев устанавливать обновления и исправления. А еще часто бывает, что на разных компьютерах разное «железо» и разные конфигурации программ, и на разных компьютерах программа работает по-разному. Просто ужас для системного администратора :)

Web-приложения лишены этих недостатков. Для работы с Web-приложением не нужно ничего устанавливать на компьютеры работников. Достаточно чтобы компьютер был подключен к интернету (или корпоративной локальной сети). Само программное обеспечение устанавливается централизованно на сервере. Соответственно и все обновления, исправления, дополнение устанавливаются на сервере. Это существенно упрощает сопровождение программы, уменьшает проблемы системного администратора организации и конечных пользователей. Но за это приходится платить менее удобным интерфейсом программ. Фактически компьютер пользователя только отображает информацию, формируемую на сервере, никакого программного кода компьютер клиента не выполняет. Для получения отклика на действие пользователя компьютер отправляет запрос к серверу. Информация передается по локальной сети либо через интернет, а это занимает некоторое время, иногда немаленькое. Поэтому веб-приложения работают более медленно и не позволяют некоторых вещей, которые можно реализовать в Windows-приложении.

А можно ли сделать некий симбиоз Windows-приложений и веб-приложений? Лет десять-пятнадцать назад это было практически невозможно. В основном из-за технических ограничений: интернет был очень медленным, да и компьютеры не слишком производительными. Однако по мере развития технологий, объединение толстых и тонких клиентов стало возможным.

Основоположником этой идеи можно считать компанию Microsoft, которая в 1998 году ввела понятие “Remote Scripting”. Позже идею развили другие разработчики. Один из наиболее устоявшихся терминов, “Rich Internet Application” (RIA), ввела в 2002 году компания Macromedia.

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

Фактически программный код распределяется между сервером и компьютером пользователя таким образом, чтобы приложение было сбалансировано. На компьютере пользователя формируется графический интерфейс программы, а на сервере производится обработка данных и хранение информации. Это позволяет ускорить отклик программы на действия пользователя, и формировать богатый графический  интерфейс, по функциональности близкий к традиционным Windows-приложениям.

 

Итак, недостатки и преимущества приложений RIA:

 

- RIA-приложения работают несколько медленнее, чем Web-приложения. Впрочем, на современных компьютерах это не важно

- Зависимость от подключения к сети. Чтобы работать с RIA-приложением, компьютер должен быть подключен в интернету (или локальной сети, если сервер установлен в сети предприятия)

 

+ Богатый графический интерфейс

+ Большая интерактивность, по сравнению с Web-приложениями

+ Не нужно устанавливать программу на клиентские компьютеры

+ Обновления и исправления устанавливаются централизованно на сервере, нет необходимости устанавливать их на каждый клиентский компьютер отдельно.

+ Можно использовать ПО на любом компьютере с подключением к интернету

+ Не важно какая операционная система установлена на компьютере пользователя

+ Не важно географическое расположение пользователя. С RIA-приложением можно работать из любой точки планеты, если есть подключение к интернет

 

Наиболее передовой технологией для разработки RIA-приложений на данный момент можно считать технологию Microsoft Silverlight. На ее основе сейчас разрабатывается ряд внутренних корпоративных продуктов, системы документооборота, системы управления персоналом и др. Кстати говоря, Microsoft Silverlight 3.0 нивелирует некоторые недостатки приложений RIA, описанные выше. Так, Silverlight 3.0 позволяет пользователю продолжить работу с приложением даже при пропадании подключения к интернету. Также в последней версии разработчики Silverlight существенно улучшили быстродействие, и теперь RIA-приложения по производительности идут наравне с обычными Windows-приложениями. Впрочем, об этом поговорим подробней в следующих постах блога.

 

 

P.S. Пост опубликован в рамках инновационного проекта интерактивной системы обучения. Это проект RIA-приложения для образовательных учреждений, позволяющий вывести процесс самоподготовки, обучения и тестирования на качественно новый уровень. Интересная тема?

 

Павел Сурменок

Красноярск, 23 сентября 2009, вечер