Архивы: по дате | по разделам | по авторам

Чтоб созданное все сводить на .NET

АрхивСетевое окружение (архив)
автор : Андрей Драница   14.06.2002

Кто разорвет порочный круг или и превратится ли .NET в поле для очередной бесконечной склоки...

Зачем же созидать? Один ответ:
Чтоб созданное все сводить на нет.
Гете «Фауст»

В настоящий момент сложилась довольно интересная ситуация. С одной стороны, предприятия накапливают и худо-бедно используют информацию. А с другой — внешние структуры (филиалы, поставщики, клиенты) оказываются от этой информации отрезанными. Отчасти проблема решается с помощью CRM, B2B, SCM и тому подобных систем, но для каждого «нового» вида информации или действия приходится «придумывать» и реализовывать новую схему. Вполне естественно, что с течением времени и число таких систем, и объем информации в них растет, порождая целый ряд новых проблем — совместимости, переноса из системы в систему, совместного использования и многие другие. Как ни странно, разорвать этот порочный круг могла бы новая технология, изначально «заточенная» не только для обработки, но и для доставки информации, а также взаимодействия в разнородной среде.

В принципе, Microsoft .NET и является такой концепцией — объединяющей с помощью XML различные приложения, обеспечивающей взаимодействие между компаниями и высвобождающей информацию. По сути это набор инициатив (технологий, протоколов, стандартов, средств разработки и т.д.), призванный «объединить все со всем» на базе так называемых интеллектуальных веб-служб [1].

Зачем это нужно потребителю?

Как правило, предлагая ту или веб-технологию, компания-разработчик ориентируется прежде всего, на тех, кто связан с разработкой и внедрением ПО, а для конечного пользователя кардинально ничего не меняется — ну разве что могут появиться более удобные и быстрые приложения. В данном случае, возможно, изменения будут носить более «революционный» характер. Возьмем для примера самую обычную ситуацию — покупку книги через Интернет. Обычно это происходит так:

  1. Вы узнаете адреса нескольких виртуальных магазинов и поочередно посещаете их, при этом на каждом сайте по новой вводите название, автора и другие параметры поиска.
  2. Предположим, что нужного издания нет. Тогда вы либо подписываетесь на список рассылки о новых поступлениях в парочке магазинов, либо периодически посещаете их и просматриваете каталог.
  3. Наконец, книга поступила. Вы регистрируетесь на сайте магазина (хотя, возможно, это ваша первая и последняя покупка в данном месте), указываете номер кредитной карты (не очень актуально для России, но будем надеяться на лучшее) и свой адрес.

А вот как будет выглядеть такой же процесс, надеюсь, в недалеком будущем:

  1. Вы регистрируетесь в единой паспортной системе (Passport .NET), указываете свои данные, а также некую сопутствующую информацию (например, предпочтения, интересы) и получаете цифровое удостоверение. Раз зарегистрировавшись, вам уже никогда не придется вводить свое ФИО и прочие реквизиты по новой — все поставщики, после получения вашего согласия, будут черпать эту информацию из паспортного центра.
  2. Найдя адреса виртуальных магазинов, вы поочередно посещаете их в поисках нужной книги — при этом профиль искомой книги можно сохранить, чтобы не вводить его каждый раз. Если вы разрешите свою идентификацию, магазины, на основе ваших профилей, смогут предложить вам товары по интересующей вас тематике — вот она, мечта маркетологов!
  3. Если книги нет, вы подписываетесь на сообщение о ее поступлении, при этом, если вы не укажете специально, никакой дополнительной рекламной рассылки не будет. Само сообщение может быть не только банальным e-mail, но и, например, сообщением на Microsoft Instant Messenger или ICQ. Получив сообщение, вы одним кликом оказываетесь на странице заказа (регистрироваться не надо, необходимые данные известны) — и заказ готов.

Плюсы здесь довольно очевидны: во-первых, единовременная регистрация, во-вторых, гораздо менее рутинный поиск — к тому же вполне возможно создание глобальных систем поиска по магазинам, благо информация о товарах будет стандартизирована [2].

Зачем это нужно бизнесу?

Учитывая вовлеченность все большего числа пользователей в инфраструктуру .NET-приложений, понятно, что бизнес будет вынужден подстраиваться. Но даже если не брать в расчет эту самую «вынужденность», новая концепция приносит новые возможности и даже порождает новые виды бизнеса.

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

Чем это грозит разработчику?

Предполагается, что разработчиков, вставших на путь внедрения .NET, больше не будут волновать проблемы интеграции приложений. .NET обеспечивает инфраструктуру взаимодействия, а Интернет служит средством коммуникации и объединения прикладных служб различных производителей. Единственное препятствие на данном пути — необходимость прибегнуть к новым средствам разработки. Роль инструментария на платформе Windows отведена Visual Studio .NET, в комплект поставки которого войдут средства создания, развертывания и сопровождения как локальных, так и распределенных веб-приложений масштаба предприятия.

Связующим звеном, позволяющим интегрировать различные приложения, является XML. Visual Studio .NET включает средства программирования, основанные на XML, которые обеспечат интеграцию без необходимости изучения последнего. Более того, конкретный язык программирования тоже не является чем-то определяющим. В настоящий момент создание .NET-приложений в равной степени возможно на Visual Basic, C++, C#, Visual FoxPro и JavaScript. В ближайшее время предвидится портирование Cobol и Eiffel, а в будущем возможен перенос на .NET-платформу и других языков.

Принцип функционирования .NET-приложения в чем-то схож с Visual Basic и Java [3]. Приложение компилируется в промежуточный байт-код (в оригинале IL — intermediate language) а затем «виртуальная .NET-машина» [4] исполняет его [5]. Microsoft позиционирует С# как универсальную переносимую платформу, каковой сейчас считается Java. Предполагается, что, портировав «виртуальную .NET-машину» на различные платформы, удастся добиться почти невозможного — работы одних и тех же приложений без перекомпиляции не только на платформе Windows, а, например, на Mac OS X или Linux. Последнее может стать реальностью уже в ближайшем будущем — компания Ximian, специализирующаяся на проектировании пользовательских интерфейсов под Linux, работает над Linux-версией платформы Microsoft .NET — Ximian Mono Project, которая позволит создавать .NET -совместимые приложения и выполнять приложения .NET, изначально написанные для Windows. Исходные коды будут, разумеется, открытыми.

В заключение хотелось бы сказать пару слов о «взаимоотношениях» Java и .NET. Безусловно, эти технологии имеют много общего, и вполне возможно, что одной из причин, побудивших Microsoft выпустить .NET, были многочисленные препирательства с Sun, упорно не желавшей идти на компромисс. В конце концов, у Microsoft, как чисто софтверной компании, есть гораздо больше причин для подобной инициативы, обещающей стать основным направлением развития веб-технологий на ближайшие годы. Вместе с тем хочется надеяться, что компания учтет ошибки производителей, к примеру, различных видов DVD-приводов, и .NET не превратится в поле для очередной бесконечной склоки.

Среда и структура .NET

Основу среды составляет операционная система, под управлением которой работает среда исполнения (Common Language Runtime) и ее сервисы — библиотеки классов: базовой логики, манипуляции данных, обеспечения безопасности, отображения информации, электронной почты, интернета и многие другие. Поверх них работают WebService, WebForms, WinForms и др. (рис. 1).


Рисунок 1. Компоненты .NET

Общая структура .NET-платформы выглядит так (рис. 2):

  • Операционная система, где исполняются приложения. Windows CE, ME или 2000 требует установки среды исполнения .NET Framework.
  • Платформа для разработки офисных приложений Office .NET
  • MSN .NET и bCentral .NET — сетевые сервисы платформы .NET для дома, а также малого и среднего бизнеса.
  • Enterprise Servers — серверные продукты, такие как Exchange, SQL, BizTalk Server и т. д.
  • Visual Studio .NET — средства разработки приложений.


Рисунок 2. Структура .NET

Серверные продукты .NET

Практически все основные продукты данной линейки подверглись основательной модернизации, а кое-где и слиянию. В итоге мы имеем следующий набор:

  • Сервер приложений — Microsoft Application Center.
  • Сервер интеграции приложений — Microsoft BizTalk Server.
  • Сервер для создания электронных торговых площадок (B2C) — Microsoft Commerce Server, который является дальнейшим развитием Microsoft Site Server. Тесно интегрирован с BizTalk Server.
  • Почтовый сервер — Microsoft Exchange.
  • Сервер для интеграции мэйнфреймов в рабочую среду — Microsoft Host Integration Server (бывший Microsoft SNA Server).
  • Сервер корпоративного доступа в Интернет — Microsoft InterNET Security and Acceleration Server (бывший Proxy Server)
  • Сервер трансляции услуг .NET для мобильных устройств — Microsoft Mobile Information Server
  • Сервер корпоративных веб-порталов — Microsoft Tahoe Server.
  • Microsoft SQL Server.

[1] — Интеллектуальная веб-служба — это совокупность технологий, которая позволяет обмениваться информацией и выполнять какие-либо действия через Web, при этом учитывается контекст, т.е. конкретная ситуация, в которой находится выполняющий обращение пользователь.
[обратно к тексту]

[2] — Подобный механизм можно реализовать уже сейчас на базе HailStorm и некоторых других сервисов.
[обратно к тексту]

[3] — Но есть и отличия:

  • Программы можно создавать на нескольких языках одновременно, путем использования компонентов.
  • Байт-код является лишь промежуточным языком (Intermediate Language) и имеет открытую спецификацию, что дает надежду на перенос в CLR других языков программирования.
  • Программы не интерпретируются при исполнении, а транслируются до этого (технология JIT compilation — just in time compilation), после чего функционируют уже обработанные модули.

[обратно к тексту]

[4] — Название условное и не претендующее на роль стандартного, но принцип схож с исполнением Java-апплетов в браузере и приложений Visual Basic в среде Windows.
[обратно к тексту]

[5] — По этой причине для написания наиболее эффективных локальных приложений по-прежнему рекомендуется использовать Visual C++.
[обратно к тексту]

© ООО "Компьютерра-Онлайн", 1997-2021
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.