12

12


Это показывает, что языки сценариев, используемые в браузерах, были предназначены для решения круга определенных задач, в основном для созда¬ния более насыщенного и интерактивного графического пользовательского ин¬терфейса (GUI). Однако язык сценариев может быть использован для решения 80 % задач клиентского программирования. Ваша задача может как раз входить в эти 80 %. Поскольку языки сценариев позволяют легко и быстро создавать программный код, вам стоит сначала рассмотреть именно такой язык, перед тем как переходить к более сложным технологическим решениям вроде Java.

Java

Если языки сценариев берут на себя 80 % задач клиентского программирова¬ния, кому же тогда «по зубам» остальные 20 %? Для них наиболее популяр¬ным решением сегодня является Java. Это не только мощный язык програм¬мирования, разработанный с учетом вопросов безопасности, платформен¬ной совместимости и интернационализации, но также постоянно совершен¬ствуемый инструмент, дополняемый новыми возможностями и библиотека¬ми, которые элегантно вписываются в решение традиционно сложных задач программирования: многозадачности, доступа к базам данных, сетевого про¬граммирования и распределенных вычислений. Клиентское программирование на Java сводится к разработке апплетов, а также к использованию пакета Java Web Start.

Апплет — мини-программа, которая может исполняться только внутри брау¬зера. Апплеты автоматически загружаются в составе веб-страницы (так же, как загружается, например, графика). Когда апплет активизируется, он выполняет программу. Это одно из преимуществ апплета — он позволяет автоматически распространять программы для клиентов с сервера именно тогда, когда пользо¬вателю понадобятся эти программы, и не раньше. Пользователь получает са¬мую свежую версию клиентской программы, без всяких проблем и трудностей, связанных с переустановкой. В соответствии с идеологией Java, программист создает только одну программу, которая автоматически работает на всех компь¬ютерах, где имеются браузеры со встроенным интерпретатором Java. (Это вер¬но практически для всех компьютеров.) Так как Java является полноценным языком программирования, как можно большая часть работы должна выпол¬няться на стороне клиента перед обращением к серверу (или после него). На¬пример, вам не понадобится пересылать запрос по Интернету, чтобы узнать, что в полученных данных или каких-то параметрах была ошибка, а компьютер кли¬ента сможет быстро начертить какой-либо график, не ожидая, пока это сделает сервер и отошлет обратно файл с изображением. Такая схема не только обеспе¬чивает мгновенный выигрыш в скорости и отзывчивости, но также снижает за¬грузку основного сетевого транспорта и серверов, предотвращая замедление ра¬боты с Интернетом в целом.

Альтернативы

Честно говоря, апплеты Java не оправдали начальных восторгов. При первом появлении Java все относились к апплетам с большим энтузиазмом, потому что они делали возможным серьезное программирование на стороне клиента, повы¬шали скорость отклика и снижали загрузку канала для Интернет-приложений. Апплетам предрекали большое будущее.

И действительно, в веб можно встретить ряд очень интересных апплетов. И все же массовый переход на апплеты так и не состоялся. Вероятно, главная проблема заключалась в том, что загрузка 10-мегабайтного пакета для установки среды Java Runtime Environment (JRE) слишком пугала рядового пользователя. Тот факт, что компания Microsoft не стала включать JRE в поставку Internet Explorer, окончательно решил судьбу апплетов. Как бы то ни было, апплеты Java так и не получили широкого применения.

• Впрочем, апплеты и приложения Java Web Start в некоторых ситуациях при¬носят большую пользу. Если конфигурация компьютеров конечных пользова¬телей находится под контролем (например, в организациях), применение этих технологий для распространения и обновления клиентских приложений впол¬не оправдано; оно экономит немало времени, труда и денег (особенно при час¬тых обновлениях).

.NET и С#

Некоторое время основным соперником Java-апплетов считались компоненты ActiveX от компании Microsoft, хотя они и требовали для своей работы нали¬чия на машине клиента Windows. Теперь Microsoft противопоставила Java пол¬ноценных конкурентов: это платформа .NET и язык программирования С#. Платформа .NET представляет собой примерно то же самое, что и виртуальная машина Java (JVM) и библиотеки Java, а язык С# имеет явное сходство с язы¬ком Java. Вне всяких сомнений, это лучшее, что создала компания Microsoft в области языков и сред программирования. Конечно, разработчики из Micro¬soft имели некоторое преимущество; они видели, что в Java удалось, а что нет, и могли отталкиваться от этих фактов, но результат получился вполне достой¬ным. Впервые с момента своего рождения у Java появился реальный соперник. Разработчикам из Sun пришлось как следует взглянуть на С#, выяснить, по ка¬ким причинам программисты могут захотеть перейти на этот язык, и прило¬жить максимум усилий для серьезного улучшения Java в Java SE5.

Выданный момент основные сомнения вызывает вопрос о том, разрешит ли Microsoft полностью переносить .NET на другие платформы. В Microsoft утвер¬ждают, что никакой проблемы в этом нет, и проект Mono (www.go-mono.com) пре¬доставляет частичную реализацию .NET для Linux. Впрочем, раз реализация эта неполная, то, пока Microsoft не решит выкинуть из нее какую-либо часть, делать ставку на .NET как на межплатформенную технологию еще рано.

Интернет и интрасеть

Веб предоставляет решение наиболее общего характера для клиент/серверных задач, так что имеет смысл использовать ту же технологию для решения задач в частных случаях; в особенности это касается классического клиент/серверно- го взаимодействия внутри компании. При традиционном подходе «клиент/сер- вер» возникают проблемы с различиями в типах клиентских компьютеров, к ним добавляется трудность установки новых программ для клиентов; обе про¬блемы решаются браузерами и программированием на стороне клиента. Когда технология веб используется для формирования информационной сети внутри компании, такая сеть называется интрасетью. Интрасети предоставля¬ют гораздо большую безопасность в сравнении с Интернетом, потому что вы можете физически контролировать доступ к серверам вашей компании. Что ка¬сается обучения, человеку, понимающему концепцию браузера, гораздо легче разобраться в разных страницах и апплетах, так что время освоения новых сис¬тем сокращается.

Report Page