"Дмитрий Леонов. Использование Perl в интернет-технологиях" - читать интересную книгу автора Основным достоинством Java-приложений является их независимость от
клиентской платформы. В отличие от традиционных приложений, транслирующихся в исполняемые коды процессора, Java-приложения транслируются в так называемый байт-код, интерпретируемый в дальнейшем виртуальной Java-машиной. При этом байт-код независим от платформы, на которой он в дальнейшем будет выполняться - достаточно, чтобы для этой платформы была реализована Java-машина. Поскольку большая часть основных функций реализована на уровне виртуальной Java-машины, это приводит к существенному уменьшению размеров байт-кода. Это является как достоинством, так и недостатком Java-приложений - поскольку байт-код интерпретируются виртуальной машиной, производительность Java-приложений уступает производительности традиционных откомпилированных программ. Частично с этим удается бороться, применяя компиляторы времени исполнения (JIT - just in time compilers), осуществляющие компиляцию приложения при его загрузке в "родной" для данного процессора код. Также возможен вызов функций, реализованных на других языках программирования (таких как С, С++) и откомпилированных для данной платформы - так называемый native code. Это применяется при реализации наиболее критичных к времени исполнения фрагментов кода. Другим достоинством Java-приложений является их защищенность - как с точки зрения программирования (из языка исключены средства, наиболее часто приводящие к ошибкам при программировании - такие как указатели, перегрузка операторов и т.д., язык является строго объектно-ориентированным, в него встроена "сборка мусора" и т.д.), так с точки зрения исполнения (значительно ограничена возможность работы с файлами на локальных машинах, с установлением сетевых соединений и т.д., программа выполняется в отдельном полученными из сети, не опасаясь наличия в них опасного кода. Таким образом, проблема безопасности полностью решена на уровне архитектуры. Второй недостаток - необходимость существования для данной платформы виртуальной Java-машины. Java-машины реализованы для всех наиболее распространенных платформ, но они остаются достаточно ресурсоемкими и зачастую довольно нестабильными системами. Кроме того, остаются проблемы несовместимости - поскольку язык Java изначально проектировался для написания многоплатформенных приложений, в него преимущественно входили элементы, доступные на всех платформах, что привело к некоторой аскетичности доступных средств. Некоторые разработчики виртуальных машин расширяли их возможности для конкретной платформы, что может привести к тому, что Java-приложение, использующее все эти возможности, утратит способность запускаться на других платформах. Ошибки в реализации виртуальной машины могут также привести к снижению безопасности системы, за последние несколько лет тому было немало примеров. Существенным достоинством Java является ее объектная ориентированность. Программа на Java представляет собой набор взаимодействующих между собой классов. С помощью классов осуществляется и доступ к основным сервисам виртуальной машины. Стандартная библиотека классов достаточно обширна и включает в себя классы для работы с сетевыми протоколами - как на низком, так и на прикладном уровне, с графикой, графическим пользовательским интерфейсом, базами данных, строками и т.д. Перечисленные достоинства делают Java-приложения лучшим выбором в гетерогенных системах, для которых безопасность имеет большее значение чем |
|
|