Безопасность, Java и Intranet
Раз уж затронули проблему безопасности, то следует назвать безопасность программирования на Java другим важным свойством этой технологии. Речь конечно идет не о личной безопасности, а о том, что программы, написанные на Java, являются безопасными. Дело в том, что многие источники проблем безопасности системы, связанные с программированием, как то: переполнение строковых массивов, адресная арифметика, отведение и освобождение памяти и т.п. в Java контролируются системой. Нельзя использовать метод (процедуру), если параметры ее вызова не совпадают с объявленными при ее описании. При этом длина передаваемых строк будет проверяться либо при компиляции, если речь идет о константах, либо на шаге исполнения.
При этом в угоду безопасности была даже урезана сетевая компонента системы. При программировании на Java можно получать данные и апплеты только с той машины, с которой был загружен выполняемый applet. Это серьезное препятствие на пути построения действительно распределенных вычислительных систем, тем более, что это ограничение обходится путем использования proxy-серверов (серверов-посредников), которые через себя способны транслировать запросы к информационным ресурсам, поддерживаемым другими серверами.
Данное ограничение обнажило действительную сферу применения Java - системы Intranet. Термин "Intranet" появился в начале 1995 года. Его появление было вызвано необходимостью обозначить сферу применения новой технологии компании Sun Microsystems - Java. Однако, часто он толкуется гораздо шире, чем область применения Java-приложений или Java-апплетов. Очень быстро об Intranet стали говорить как о применении информационных технологий Internet для создания внутрикорпоративных систем. Но это также не дает ответа на вопрос, вынесенный в заглавие раздела. Не претендуя на истину в последней инстанции, попробуем понять, что имеется в виду когда говорят об Intranet.
Введя в употребление термин "Intranet", Sun Microsystems стремилась придать своей новой технологии Java налет революционности.
В течении 1996 года Java не сходила со страниц компьютерных изданий. Но постепенно стало расти понимание того, что Intranet - это не только Java, а гораздо более емкое понятие.
В то же самое время Sun заговорила о своей системе защиты от несанкционированного доступа Sunscreen как о компоненте Intranet-технологии. Sunscreen к технологии Java никакого отношения не имеет. Общим является только то, что Java - это, в данном контексте, среда безопасного программирования, и Sunscreen средство обеспечения безопасности.
Конечно, Sunscreen не единственное средство, назначение которого - защита локальной сети от непрошенных гостей. В настоящее время, согласно данным, опубликованным Эдвином Маером (Edwin Mier) в Network World, существует около двух десятков межсетевых экранов, которые используются для защиты локальных сетей. Из них наиболее удачными являются (по данным того же автора):
- BorderWare FireWall Server - наиболее удачное дешевое решение для сетей на персональных компьютерах с процессором Intel;
- Black Hole - наиболее удачное решение для небольших сетей, состоящих из разношерстного набора платформ. Данный межсетевой фильтр может быть установлен как на персоналке, так и на рабочей станции;
- Gauntlet Internet Firewall - одно из наиболее удачных решений, которое может применяться в сетях любого типа.
К слову сказать, последние две системы сертифицированы Гостехкомиссией России и могут на законном основании применяться в наших условиях.
Но межсетевые фильтры используются не только для защиты локальной сети, но и для организации виртуальных локальных сетей поверх публичных сетей. Обычно такое решение называют Virtual Private Network.
Очень похожее решение предлагает и компания CISCO, только называется оно VirtualLocal Area Network (VLAN). Используя маршрутизаторы и/или коммутаторы этой компании можно в рамках одной организации построить на базе ее опорной сети передачи данных несколько виртуальных локальных сетей подразделений. При этом каждую из этих сетей можно защитить.
Однако, защита сетей и организация виртуальных сетей - это тоже не весь Intranet. Производители Систем Управления Базами Данных также заявили, что они производят смычку своих технологий с Intranet-технологией. Informix заявил о добавлении средств Web-bludes к своим продуктам, а Oracle просто выпустил свой собственный Web-сервер. Такая активность производителей СУБД понятна. Раз уж речь идет о корпоративной информационной системе, то такой системы не бывает без баз данных.
И при упоминании Java, и при разговоре о СУБД постоянно появляется слово "Web". Действительно, в рамках технологии Intranet все технологические решения так или иначе вращаются либо вокруг сервера протокола HTTP (HyperText Transfer Protocol), либо вокруг программы-браузера документов World Wide Web. Таким образом, технология World Wide Web занимает центральное место в Inranet.
Однако, так ли уж устойчива эта конструкция? В рамках небольших компаний у Intranet-решений, выполненных с использованием Web-технологии, есть серьезные конкуренты в лице семейства продуктов Microsoft и Lotus. Очень часто приходится слышать вопрос: "Чем же все-таки Intranet лучше существующих корпоративных информационных систем?". Ответ на этот вопрос не так уж и очевиден.
На поверхности лежит только одно преимущество - единый интерфейс ко всем информационным ресурсам. Собственно, когда Тим Бернерс-Ли (Tim Berners Lee) предлагал руководству международного центра физики высоких энергий (CERN, Швейцария) свой проект "Гипертекст для CERN", который превратился в итоге во Всемирную паутину (World Wide Web), главной задачей называлась разработка единого простого интерфейса доступа к разнообразным информационным ресурсам Центра. Фактически, это была первая Intranet-система, только в то время ее так не называли.
Таким образом, Intranet - это решение, ориентированное на пользователей информационных систем, а не на их разработчиков. Количество программ, написанных в этой технологии будет не меньше того, что пишется, скажем, в рамках технологий Microsoft.
Есть правда одно смутное предположение, что система, выполненная с опорой на Web, будет лучше переноситься с одной платформы на другую. На мой взгляд это иллюзия. Переносимость здесь такая же, как при переходе с одной реляционной СУБД на другую. Данные можно перенести без особых хлопот, а вот ПО придется переписать или, в лучшем случае, перетранслировать. Не помогут здесь и мобильные коды Java, т.к. обычно переход сопровождается изменением части базового программного обеспечения, что требует перепрограммирования сопряжений частей общей системы.
Можно сказать больше. Там где структура информационных потоков хорошо известна и для этой структуры имеются готовые решения городить огород Intranet вообще не имеет смысла. Особенно это касается сетей никак не связанных с Internet. В этом случае даже достоинство единого интерфейса не выглядит достаточно убедительным. Другое дело, когда пользователь ищет информацию не только в корпоративной базе данных, но во всем множестве ресурсов Internet. В этом случае единый интерфейс сразу показывает все свои достоинства.
Программирование в Intranet и для Intranet - это другая сторона вопроса. Какие собственно задачи должны решаться за счет создания программ Intranet. Как считают в компании Silicon Graphics, Intranet - это клей, связывающий различные технологические решения. Такая точка зрения базируется на том, что практически все элементы Web-технологии позволяют решать достаточно широкий класс задач без использования дополнительного ПО. Так, проблемы разработки интерфейса решаются средствами языка гипертекстовой разметки HTML, передача информации по сети - это забота протокола обмена гипертекстовой информацией HTTP, адрес ресурса в сети определен в спецификации CGI (Common Gateway Interface) и т. п. Разработчик системы будет писать программы, которые будут передавать данные от Web-сервера поисковой машине или серверу СУБД, или какой-либо другой внешней компоненте системы. При этом спецификации обмена данными также стандартизованы.
Это заставляет обратить внимание еще на одну группу средств, связанных с проблематикой Intranet - средства разработки. Задача этих средств - облегчить создание программного обеспечения для Intranet.
Именно к этой группе и относятся интегрированные средства разработки Java-приложений. Собственно место Java в Intranet можно схематично показать в виде связей между отдельными компонентами, составляющими Intranet систему (рисунок 5.8).
Рис. 5.8. Место Java среди компонентов Intranet
На рисунке 5.8 не отображены другие источники информации, которые обычно входят в Intranet-системы, например, системы электронной почты, средства коллективной работы и т. п. Но, во-первых, эти системы можно реализовать и в рамках Web-технологии, а во-вторых, для их создания также можно использовать Java. Однако, пока мощь Java в качестве клея еще недостаточна для серьезного обсуждения. Единственный Java-пакет (набор инструментов: описания классов и методов работы с ними), который годится на эту роль - это пакет net, но там, кроме нижнего уровня обмена данными в сетях TCP/IP и обмена по http, пока еще ничего не реализовано. Действительно неплохо выполнен в Java пакет awt, который существенно облегчает разработку интерфейса пользователя, и здесь со всей очевидностью проступает тот факт, что первоначально Java не предназначалась для работы в Internet.