Другие статьи

Цель нашей работы - изучение аминокислотного и минерального состава травы чертополоха поникшего
2010

Слово «этика» произошло от греческого «ethos», что в переводе означает обычай, нрав. Нравы и обычаи наших предков и составляли их нравственность, общепринятые нормы поведения.
2010

Артериальная гипертензия (АГ) является важнейшей медико-социальной проблемой. У 30% взрослого населения развитых стран мира определяется повышенный уровень артериального давления (АД) и у 12-15 % - наблюдается стойкая артериальная гипертензия
2010

Целью нашего исследования явилось определение эффективности применения препарата «Гинолакт» для лечения ВД у беременных.
2010

Целью нашего исследования явилось изучение эффективности и безопасности препарата лазолван 30мг у амбулаторных больных с ХОБЛ.
2010

Деформирующий остеоартроз (ДОА) в настоящее время является наиболее распространенным дегенеративно-дистрофическим заболеванием суставов, которым страдают не менее 20% населения земного шара.
2010

Целью работы явилась оценка анальгетической эффективности препарата Кетанов (кеторолак трометамин), у хирургических больных в послеоперационном периоде и возможности уменьшения использования наркотических анальгетиков.
2010

Для более объективного подтверждения мембранно-стабилизирующего влияния карбамезапина и ламиктала нами оценивались перекисная и механическая стойкости эритроцитов у больных эпилепсией
2010

Нами было проведено клинико-нейропсихологическое обследование 250 больных с ХИСФ (работающих в фосфорном производстве Каратау-Жамбылской биогеохимической провинции)
2010


C использованием разработанных алгоритмов и моделей был произведен анализ ситуации в системе здравоохранения биогеохимической провинции. Рассчитаны интегрированные показатели здоровья
2010

Специфические особенности Каратау-Жамбылской биогеохимической провинции связаны с производством фосфорных минеральных удобрений.
2010

Будущее разработки веб-приложений – основные тенденции и прогноз

Будущее разработки веб-приложений – основные тенденции и прогноз

Без сомнения, веб в наше время является наиболее динамически развивающейся областью информационных технологий. Веб 2.0, социальные сети, онлайн-сервисы – все эти слова стали знакомыми для людей, далеких от IT вообще, и прочно вошли в современную жизнь, которая частично теперь протекает не только в реальном мире, но и в «онлайне». Но что будет, если задуматься о технологиях, которые лежат в основе всего этого ежедневно прогрессирующего многообразия? Ответ поражает и сейчас, в конце 2010 года, все так же основу, костяк любого веб- сайта составляет HTML – HTML стандарта 4.0 или 4.1, спецификация которого была опубликована более 10 лет назад (в 1997 и 1999 гг. соответственно). Стоит оценить, насколько шагнул вперед прогресс, сравнив сайты сегодняшние и 10-летней давности (это легко сделать с помощью проекта «Internet Wayback Machine» - web.archive.org). И тут уже становится трудно поверить, что в основе всего это лежит одна и та же технология, пусть и серьезно дополненная технологиями вспомогательными, и теперь всегда по стандарту де-факто динамически программируемая. Очевидно, что давно назрел тот переломный момент, когда пора бы уже и подтянуться к современности и основной технологии – подход, где другие вспомогательные решения предлагают свои «костыли» совершенно негибкой основе, но ни то, ни другое по отдельности существовать не может, кажется неприемлемым и устаревшим. В идеале, такая технология должна стать унифицированной и совмещать в себе все, необходимые разработчику и пользователю функции – от разметки и отображения до динамической работы с сервером и мультимедийных возможностей. Каковы основные тенденции в реализации этой «унифицированной технологии» намечаются сейчас и что нас, возможно, ждет в этой сфере в будущем, мы и рассмотрим в данной статье.

RIA. Перед рассмотрением технологий, необходимо определиться с требованиями, которые предъявляются к современным веб-приложениям. Какие они должны быть? Что должно пониматься под их уровнем интерактивности и функциональности? Какие возможности должны обеспечивать средства разработки? На все эти вопросы дает ответ концепция RIA – «Rich Internet Application» или «Rich Interactive Application» (дословно – «богатое Интернет (интерактивное) приложение»). Впервые термин RIA прозвучал еще в 2002 году в официальном сообщении компании Macromedia, но более актуален он как раз сегодня, когда можно сказать, что идет активная разработка и переориентация существующих приложений на RIA-концепцию. Так что такое RIA и чем этот подход отличается от «традиционных» веб-приложений? Традиционные веб- приложения большей частью работают на сервере – в клиентской программе-браузере (Internet Explorer, Firefox или Opera) отображается контент, размеченный языком разметки HTML. В силу такого подхода традиционные веб-приложения имеют достаточно ограниченный уровень интерактивности и постоянно взаимодействуют с сервером – отправляют на него данные, получают ответы и загружают новые страницы. В RIA значительная часть функционала вынесена в клиентскую часть, т.е. исполняется на стороне клиента (по сути, в том же браузере, но с использованием расширений (плагинов) и/или популярной в настоящее время технологии Ajax и фреймворков вроде JQuery). Это позволяет получить приложение, которое работает быстрее (за счет меньшего количества обращений к серверу и отсутствия перегрузок страниц) и обеспечивает близкий к традиционным настольным приложениям уровень интерактивности и удобства интерфейса.

Работа традиционных веб-приложений сконцентрирована вокруг клиент-серверной архитектуры с так называемым «тонким клиентом». Такой клиент переносит все задачи по обработке информации на сервер, а сам используется лишь для отображения статического контента (например, HTML-кода). Основной недостаток этого подхода в том, что все взаимодействие с приложением должно обрабатываться сервером, что требует постоянной отправки данных на него, ожидания ответа сервера и загрузки страницы обратно в браузер. При использовании технологии запуска приложений на стороне клиента, RIA могут обойти этот медленный цикл синхронизации за счет большего взаимодействия с пользователем. Эта разница примерно аналогична разнице между архитектурой с «тонким клиентом» (Thin client) и архитектурой с «толстым клиентом» (Fat client), а также между терминалом и мейнфреймом.

Из всего этого, можно сделать вывод, что концепция RIA нацелена на стирание грани между традиционными веб и настольными приложениями. Веб-сайт, хотя бы частично реализующий концепцию RIA-приложения, будет представлять уже возможности гораздо большие, чем переход по гиперссылкам и отсылка форм. Казалось бы, чем тогда RIA отличается от обычных настольных программ, которые имеют доступ в Интернет и используют в своей работе онлайн-ресурсы? Концепция «толстого клиента» в них реализуется в наиболее полной мере, интерфейс и возможности – безграничны, так как ограничены только вычислительной мощностью компьютера и не завязаны на существующие веб-технологии. Но недостатки есть, и они существенны именно в контексте сети Интернет. Настольное ПО требует явной установки на машину клиента, таким образом процесс пользования программой обычно состоит из шагов поиска ее в Интернете, скачивания установщика, запуска его с локального диска, явного запуска исполняемого файла программы каждый раз при ее использовании. Далее идет явное осуществление контроля версий – в лучшем случае, программа будет содержать модуль обновления, в худшем – клиент вынужден будет каждый раз при обновлении версии самостоятельно проделывать заново весь процесс установки. В любом случае, могут возникнуть проблемы с совместимостью с уже существующими настройками ПО, операционной системой и т.д. Наконец, может быть ограниченная кросс- платформенность – далеко не все настольное ПО может похвастать полной совместимостью со всеми популярными операционными системами. Таким образом, разрозненное настольное ПО явно выпадает из общепринятых стандартов навигации в сети Интернет, где центральным и унифицирующим звеном выступает единая программа-браузер.

Конечно, RIA-приложения тоже не лишены недостатков, особенно в условиях существующих технологий:

  • посредством работы через браузер или иную аналогичную среду, само приложение имеет ограниченный доступ к системным ресурсам;
  • полная зависимость (по крайней мере, в данный момент) от скриптовых языков (JavaScript) – таким образом, если у клиента отключено исполнение скриптов или нестабильное Интернет- соединение, не позволяющее полностью загрузить страницу, работа всего приложения будет нарушена.
  • опережение существующих стандартов – возможное отсутствие индексации поисковиками, сложности интеграции с браузерами (невозможность корректного использования адресной строки, истории и.т.д.).

Очевидно, что будущее сети Интернет – за RIA-приложениями. Они не отнимут нишу у традиционных сайтов, нацеленных только на представление информации, или настольных приложений для решения специфичных задач, но наиболее интересным и определяющим облик будущего Интернета, по нашим прогнозам, будет именно сегмент RIA-приложений. Таковые уже существуют, популярны и задают «тон» другим разработчикам – ярким примером можно считать почтовый сервис Gmail от компании Google. При входе в почту происходит загрузка почти всего приложения сразу и далее оно ведет себя как полноценная почтовая программа внутри браузера – все действия доступны и выполняются без перезагрузки страницы.

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

HTML 5. Эту технологию следует рассматривать в первую очередь, потому как именно HTML 5 претендует на роль будущего общего стандарта Интернета и существенно дополняет роль стандартного языка разметки. Наиболее явные изменения включают в себя существенное дополнение тегов более очевидными и необходимыми для сегодняшних приложений. В HTML 4 для выделения даже базовых элементов приложения (вроде заголовка, «подвала», навигационной части) приходилось явно перегружать свойства class и id тегов и описывать их средствами CSS – таким образом, самая стандартная верстка различалась от сайта к сайту. HTML 5 предлагает давно назревшие теги <header> (заголовок), <nav> (элементы навигации), <article> (хранилище основного контента), <aside> (дополнительная информация сбоку), <footer> (информация об авторе, копирайт), а также специальные мультимедийные <audio> и <video>. Логично, что разработчики хотят избавиться от нынешнего нагромождения различных технологий и интегрировать все в одну основную. Сейчас, например, для отображения мультимедиа используется Adobe Flash Player – хоть и он установлен на 99% браузеров всего мира, но стандартом не является. Помимо удобства разработки, такие теги вносят еще и базовую семантику в веб-приложение, что несомненно лучше скажется на распознавании содержимого поисковыми системами.

Другим огромным шагом HTML 5 можно назвать один-единственный тег <canvas>. Отныне браузер можно использовать как полноценный графический редактор с помощью API Canvas и главным плюсом будет возможность динамически эту самую графику изменять. Возможности создания нестандартных интерактивных интерфейсов становятся поистине безграничными. В качестве отдельных новшеств HTML 5 можно выделить улучшенную работу с формами и технологию User Interaction. В работе с формами задействована новая технология Web Forms 2.0 – где наконец-то появилась валидация вводимых значений и настройки для каждого поля (например, обязательный ввод). Раньше для этого нужно было делать отдельные секции проверок средствами Javascript, PHP или иного серверного языка. User Interaction позволяет разбить страницу на отдельные секции и отдельно описать способы взаимодействия пользователя с каждой из них.

Подводя итог, у технологии HTML 5 действительно есть все предпосылки стать будущим стандартом, причем гораздо более унифицированным, чем HTML 4. Но вряд ли он действительно станет единой технологией и избежит дополнений другими сторонними технологиями в повседневной разработке. Хотя бы потому, что веб-приложения могут иметь очень разную специализацию и включить все инструменты без сильных обобщений в единую технологию практически невозможно – для конкретных целей всегда найдутся хорошие, постоянно дополняемые и обновляемые фреймворки. Хотя и отдельные компоненты из спецификации HTML 5 уже поддерживаются современными браузерами, сам стандарт получит статус W3C Candidate Recommendation только в 2012 году и говорить о его широком распространении пока что еще очень рано. Между тем, конкуренты тоже не стоят на месте и к моменту повсеместного распространения HTML 5 могут предложить уже более актуальные решения, которые снова оставят HTML на позициях языка базовой разметки. Основные игроки на рынке известны и речь о них пойдет ниже.

Adobe Flex. Технологию Flex можно назвать логическим продолжением, адаптацией всем известного Flash для нужд веб-разработки. Да, сам Flash тоже давно уже вышел за рамки видео и анимации и был востребован крупными разработчиками как самостоятельное средство. Но, несмотря на богатство возможностей, Flash сильно нарушал привычную концепцию навигации в Вебе – элементы навигации часто прятались в вычурном дизайне, переходы по ним не подтверждались изменениями в адресной строке, трудно было использовать закладки, содержимое плохо индексировалось поисковиками. Цель визуального «богатства» и интерактивности достигалась, но несколько раздражающим среднестатического пользователя способом. Приблизить Flash к нуждам веб-программирования и облегчить разработку была призвана технология Adobe Flex. Это набор усилит для разработки RIA на платформе Flash с использованием языка Actionscript 3, а также язык на основе XML для описания формата пользовательского представления (интерфейса) и поведения – MXML. Таким образом, достигается удачная комбинация разделения разметки и логической части, на помощь которой приходят ООП- возможности Actionscript. Кроме того, в рамках отдельного приложения Adobe AIR можно осуществлять работу в оффлайн-режиме настольной программы без переписывания кода. Существенным недостатком технологии можно назвать аналогичную обычному Flash методику исполнения в онлайн-режиме – результат компилируется в файл .swf и для отображения в браузере требует установленный Adobe Flash Player.

Google Web Toolkit (GWT). В этой технологии разработка осуществляется полностью на языке Java, где часть описания интерфейса компилируется GWT в тщательно оптимизированный Javascript. Файл скрипта подключается к веб-странице и во время загрузки отображает интерфейс приложения. Это делает приложение независимым от установленных расширений браузера и требует только включенного выполнения сценариев, а также в общем случае дает более производительный скрипт-код, нежели написанный вручную. Сама библиотека содержит средства для более привычной навигации по динамически изменяющемуся интерфейсу – например, обработку событий для кнопки «Назад» в браузере в рамках страницы с одним и тем же адресом. Технология по сути не предоставляет ничего особо нового, предлагая использовать популярный язык программирования Java, хотя и многие специализированные веб-разработчики могут не знать его. Нарекания также вызывает и GWT-компилятор за медленную скорость работы, хотя в GWT были предложены альтернативные методы исполнения кода.

JavaFX. Другая Java-based технология предлагает платформу для создания RIA-приложений для ПК и мобильных устройств с использованием не собственно «большой» Java, а специального декларативного языка JavaFX Script. Тесная интеграция при этом соблюдается в полной мере – в

JavaFX script можно обращаться ко всем библиотекам Java, также возможно их совместное использование для написания сложной логики на серверной стороне. В целом, технология еще достаточно новая и находится только на стадии развития.

Microsoft Silverlight. Осознав нарастающую тенденцию «утечки» программного обеспечения в Интернет, компания Microsoft не могла остаться в стороне и решительно включилась в борьбу, представив собственную технологию Silverlight. Она вполне самодостаточна, универсальна и заключает в себе возможности работы с мультимедиа, графикой, анимацией и интерактивностью, реализуемой средствами языков семейства .NET, а также разметку страниц средствами XAML (eXtended Application Markup Language – расширяемый язык разметки на базе известного XML). Ясно, что платформа от гиганта вроде Microsoft не может быть бедной по определению – здесь и огромный выбор средств разработки (можно использовать как простой VB.NET, так и мощный объектно-ориентированный C#), и хорошие средства разметки, и полный набор возможностей, и хорошая производительность. Silverlight напрямую конкурирует с прочно стоящим на ногах Adobe Flash и, если верить тестам, производительность уже сейчас часто оказывается далеко не в пользу последнего. Пока что Flash имеет еще очень большую «инерцию» в сфере RIA-разработки, он может не нравиться, но к нему привыкли, тогда как Microsoft предлагает совершенно другой подход к разработке – языки, обычно ассоциирующиеся с разработкой настольного ПО. Но крупнейшая софтверная корпорация мира вряд ли откажется от своих претензий на сегмент рынка интерактивных веб-приложений и по мере написания этих строк (2 декабря 2010 г.) анонсирована уже 5-я версия Silverlight.

Общее сравнение и анализ.

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

 

GWT

Adobe Flex

Java FX

Microsoft Silverlight

HTML 5

Логика

Java

Actionscript

Java, JavaFX script

C++, C#, Visual Basic, Object Pascal, другие ООП-языки

отсутствует (по сути – любой)

Интер-фейс

ООП (Java)

декларативное

, на основе

XML (MXML)

декларативное

(JavaFX script)

декларативное, на основе XML (XAML)

декларативное

Инстру- менты

Eclipse, NetBeans

Flex Builder

Eclipse, NetBeans, JFXBuilder

Visual Studio

любой

WYSIWYG-

редактор

Графика

3D (webGL), векторная ускорение

векторная

векторная, ускорение

3D, векторная, ускорение

3D (webGL), векторная, ускорение

Основной вывод, который может сделать читатель из этой табл. – насколько особняком в этом сравнении стоит технология HTML 5. Если все остальные решения предлагают практически полный и законченный пакет для создания веб-приложения (особенно далеко в этом направлении продвинулась Microsoft со своим Silverlight), HTML 5 не изменяет своей сути и остается только языком разметки и проектирования интерфейса. Для описания логики по-прежнему предполагается использовать любые другие сторонние языки и средства, которые позволяют динамически манипулировать разметкой. Налицо борьба двух парадигм разработки за будущее Веба: мощных и монолитных технологий с полным инструментарием практически на все случаи (за это борятся гиганты в лице Adobe и Microsoft) и текущей парадигмы, где разметка, логическая и скриптовая части существуют с точки зрения технологий раздельно и варьируются на усмотрение разработчика. HTML в качестве разметки будет в той или иной степени присутствовать везде, но существует огромная разница – используется ли несколько строк в качестве соблюдения вынужденных стандартов и обрамления для полновесного Flash или Silverlight приложения, или же будет делаться ставка на использование и расширение возможностей самого HTML и разных средств манипуляции им.

По мнению авторов, наиболее вероятным в будущем выглядит все-таки второй вариант – то есть, «старая» парадигма. Почему? Даже в такой динамичной и инновационной отрасли, как IT и веб-технологии, присутствует своя инертность, привычки и наработки текущих проектов и разработчиков. «Новая» парадигма предлагает своего рода революцию, и отторжение рынка может вызвать не столько новый подход к разработке, сколько концепция ведущих игроков на этом поле – привязка к определенным технологиям и сосредоточенность всего пакета в руках единого разработчика-корпорации. Крупные компании, для которых не важна стоимость и сложность разработки, уже сейчас выбирают такие монолитные технологии, но следует признать – в данном случае действует желание компании иметь соответствующее своему уровню «лицо» во Всемирной паутине и поразить посетителя разнообразными «фичами». Но – таких сайтов в сети меньшинство, а перегруженность интерфейса и «дизайнерские находки» зачастую вызывают неприятие даже у самих пользователей, потому что в погоне за технологичностью разработчики часто забывают о целевом назначении ресурса и элементарной эргономике. Самый яркий пример – злоупотребление появившимися достаточно давно и завоевавшим свою нишу Flash – хотя и с другой стороны, без него уже нельзя представить облик современного Интернета. Абсолютное большинство веб-разработчиков сегодня чувствует себя вполне комфортно в рамках текущей парадигмы и существующих технологических решений и хочет лишь эволюционного, но не революционного их развития. Этому же отвечают гласные и негласные стандарты разработки. Стоит только начать «новеньким» хоть немного перетягивать одеяло стандартов на себя – тут же начнутся обвинения (особенно в адрес Microsoft) в попытке со временем захватить рынок веб- разработки и диктовать там свои законы. Насколько справедливы такие обвинения – вопрос риторический. Все покажет время.

ЛИТЕРАТУРА

  1. Tim Berners-Lee, Mark Fischetti. Weaving the Web; The Original Design and Ultimate Destiny of the World Wide Web by Its Inventor. – Harper Paperbacks, 2000.
  2. HTML5. Draft standart. http://www.whatwg.org/specs/web-apps/current-work/
  3. Google Web Toolkit Overview. http://code.google.com/webtoolkit/overview.html
  4. Adobe Flex Framework Technologies. http://labs.adobe.com/technologies/flex/
  5. The official Microsoft Silverlight Site. http://www.silverlight.net/
  6. JavaFX – RIA development. http://javafx.com/

Разделы знаний

Архитектура

Научные статьи по Архитектуре

Биология

Научные статьи по биологии 

Военное дело

Научные статьи по военному делу

Востоковедение

Научные статьи по востоковедению

География

Научные статьи по географии

Журналистика

Научные статьи по журналистике

Инженерное дело

Научные статьи по инженерному делу

Информатика

Научные статьи по информатике

История

Научные статьи по истории, историографии, источниковедению, международным отношениям и пр.

Культурология

Научные статьи по культурологии

Литература

Литература. Литературоведение. Анализ произведений русской, казахской и зарубежной литературы. В данном разделе вы можете найти анализ рассказов Мухтара Ауэзова, описание творческой деятельности Уильяма Шекспира, анализ взглядов исследователей детского фольклора.  

Математика

Научные статьи о математике

Медицина

Научные статьи о медицине Казахстана

Международные отношения

Научные статьи посвященные международным отношениям

Педагогика

Научные статьи по педагогике, воспитанию, образованию

Политика

Научные статьи посвященные политике

Политология

Научные статьи по дисциплине Политология опубликованные в Казахстанских научных журналах

Психология

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

Религиоведение

Научные статьи по дисциплине Религиоведение опубликованные в Казахстанских научных журналах

Сельское хозяйство

Научные статьи по дисциплине Сельское хозяйство опубликованные в Казахстанских научных журналах

Социология

Научные статьи по дисциплине Социология опубликованные в Казахстанских научных журналах

Технические науки

Научные статьи по техническим наукам опубликованные в Казахстанских научных журналах

Физика

Научные статьи по дисциплине Физика опубликованные в Казахстанских научных журналах

Физическая культура

Научные статьи по дисциплине Физическая культура опубликованные в Казахстанских научных журналах

Филология

Научные статьи по дисциплине Филология опубликованные в Казахстанских научных журналах

Философия

Научные статьи по дисциплине Философия опубликованные в Казахстанских научных журналах

Химия

Научные статьи по дисциплине Химия опубликованные в Казахстанских научных журналах

Экология

Данный раздел посвящен экологии человека. Здесь вы найдете статьи и доклады об экологических проблемах в Казахстане, охране природы и защите окружающей среды, опубликованные в научных журналах и сборниках статей Казахстана. Авторы рассматривают такие вопросы экологии, как последствия испытаний на Чернобыльском и Семипалатинском полигонах, "зеленая экономика", экологическая безопасность продуктов питания, питьевая вода и природные ресурсы Казахстана. Раздел будет полезен тем, кто интересуется современным состоянием экологии Казахстана, а также последними разработками ученых в данном направлении науки.  

Экономика

Научные статьи по экономике, менеджменту, маркетингу, бухгалтерскому учету, аудиту, оценке недвижимости и пр.

Этнология

Научные статьи по Этнологии опубликованные в Казахстане

Юриспруденция

Раздел посвящен государству и праву, юридической науке, современным проблемам международного права, обзору действующих законов Республики Казахстан Здесь опубликованы статьи из научных журналов и сборников по следующим темам: международное право, государственное право, уголовное право, гражданское право, а также основные тенденции развития национальной правовой системы.