30508

Сравнение компонентно-объектной модели, среды .NET и Java. Их преимущества и недостатки

Доклад

Математика и математический анализ

Идеология .NET заключается в максимально полном использовании ресурсов платформы, на которой работает среда выполнения .NET. В результате возможности Java ограничены усредненным набором функций API виртуальной машины, и программистам на Java недоступны все функции той или иной платформы, на которой выполняются приложения

Русский

2013-08-24

25.5 KB

28 чел.

  1.  Сравнение компонентно-объектной модели, среды .NET и Java. Их преимущества и недостатки.

Ответ:

Одним из принципиальных технологических преимуществ проектирования и реализации

программного обеспечения, декларируемых Microsoft, является так называемый

компонентный подход к программированию.

В своей основе указанный подход совпадает с традиционным объектно-ориентированным,

однако имеет ряд важных особенностей.

Центральной концепцией подхода (и это очевидно уже из названия) является понятие

компонента.

Под компонентом в дальнейшем будем понимать независимый модуль программного

обеспечения, который возможно повторно использовать, а также тиражировать.

В отличие от «традиционных» объектов ООП компоненты обладают следующими

характеристическими свойствами:

• в целом компонент обладает более высоким уровнем абстракции по сравнению с

объектом (если под последним понимается конструкция уровня языка

программирования);

• компоненты могут содержать в своем составе множественные классы;

• компоненты с точки зрения пользователя являются инвариантами по отношению к

тому языку программирования, на котором они реализованы.

Таким образом, оказывается, что в общем случае разработчик и пользователь компонента

могут быть территориально разделены и могут использовать различные языки

программирования в рамках единой среды разработки приложений Microsoft .NET.

Заметим, что попытки построения компонентных программных систем предпринимались и рядом других компаний – разработчиков программного обеспечения (в частности, технология JavaBeans производства Sun Microsystems), а также международных ассоциаций, объединяющих усилия исследователей и практиков в области объектного программирования (например, стандарт брокеров объектных запросов CORBA организации Object Management Group, или OMG).

В основе таких попыток лежали варианты объектных моделей. Один из подобных

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

Охарактеризуем компонентную модель Microsoft, которая обычно

именуется в литературе аббревиатурой COM (что происходит от слов Component Object Model).

Компонентная объектная модель COM является основным стандартом Microsoft для компонентного проектирования и реализации программного обеспечения. На сегодня это самая развитая, и, пожалуй, самая удачная в практическом плане модель, которая практически обеспечивает возможность инициализации и использования компонентов как внутри одного процесса, так и между процессами или между компьютерами независимо от языка реализации. COM-модель поддерживается в идеологии .NET для целого ряда языков программирования (C#, SML, Visual Basic, C++ и др.), является основой для ActiveX, OLE, а также для многих других технологий Microsoft.

Идеология .NET заключается в максимально полном использовании ресурсов платформы, на которой работает среда выполнения .NET. В результате возможности Java ограничены усредненным набором функций API виртуальной машины, и программистам на Java недоступны все функции той или иной платформы, на которой выполняются приложения. В случае с .NET среда выполнения предоставляет доступ к специфичным возможностям Microsoft Windows, позволяя приложению тесно взаимодействовать с операционной системой и пользоваться всеми преимуществами платформы Windows, например прозрачно работать с COM-объектами, службами Window (в частности, Active Directory), кроме того, пользователь имеет дело с удобным и привычным графическим интерфейсом Windows. Разумеется, при использовании Java можно «докопаться» до возможностей платформы, но зачастую это требует написания большого количества нетривиального кода.

В отличие от СОМ, модель Java Beans, базовый стандарт Sun Microsystems для компонент, оказывается зависимой от языка реализации.

Не менее важна доступность средств разработки. Для .NET имеется интегрированная среда разработки Visual Studio, позволяющая писать приложения, задействуя весь функционал платформы .NET и Microsoft Windows. В Visual Studio существуют встроенные средства для отладки настольных и Web-приложений, включая отладку кода клиентских скриптовых языков, выполняемых в Web-браузере, и отладку приложений для мобильных устройств с использованием программных эмуляторов. Более того, есть несколько редакций среды разработки Visual Studio, обладающие расширенным набором возможностей для различных ролей участников проекта, таких как архитектор, разработчик, специалист по тестированию и разработчик баз данных. Вместе с серверным решением для обеспечения процесса разработки программного обеспечения Team Foundation Server данные инструменты позволяют писать высококачественные приложения в весьма сжатые сроки.

Поскольку большинство современных настольных компьютеров работают под управлением операционной системы Microsoft Windows, сообщество пользователей Windows и разработчиков для этой операционной системы воистину огромно. В связи с этим регулярно появляются оригинальные решения сообщества, которые могут быть интегрированы с решениями, создаваемыми для Windows. В то же время значительную часть сообщества разработчиков на Java составляют приверженцы UNIX/Linux-платформ, многие из которых сильно различаются между собой. Поскольку платформа .NET тесно интегрируется с Windows, то опыт, накопленный сообществом пользователей Windows, полноценно переносится на базу .NET. Для разработчика под Windows в значительной степени проще перейти к использованию платформы .NET, чем Java, и возникает банальная проблема поиска кадров и обучения сотрудников при попытке создавать и поддерживать Java-приложения на платформе Windows. Преимущества Microsoft-ориентированной инфраструктуры в этом случае связаны даже не столько с опытом пользователя операционной системы Windows, сколько с наличием полного спектра легко интегрируемых решений Microsoft – от офисных пакетов, серверов приложений и баз данных до мощных CRM- и ERP-приложений.

Доска:

JavaBeans — классы в языке Java, написанные по определённым правилам. Они используются для объединения несколькихобъектов в один для удобной передачи данных.

Спецификация Sun Microsystems определяет JavaBeans как повторно используемые программные компоненты, которыми можно управлять, используя графические конструкторы и средства IDE.

.NET – это подход к проектированию и реализации

программного обеспечения, включающий по меньшей мере четыре следующих

компонента:

1) идеология проектирования и реализации программного обеспечения;

2) модель эффективной поддержки жизненного цикла прикладных систем;

3) унифицированная, интегрированная технологическая платформа для программирования;

4) современный, удобный в использовании, безопасный инструментарий для

создания, размещения и поддержки программного обеспечения.

Дополнительно:

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

Во-первых, разработчики отмечают достаточно высокие требования к аппаратному обеспечению (в частности, объем оперативной памяти должен быть не менее 256 мегабайт, свободный объем жесткого диска для работы с Microsoft Visual Studio .NET– не менее 10 гигабайт).

Кроме того, некоммерческие версии программных продуктов Microsoft, которые зачастую предоставляют новые существенные возможности, в недостаточной степени устойчивы в работе; документация по ряду новых функций программного обеспечения представлена не в полном объеме.

Поддержка ряда теоретически интересных и практически полезных языков

программирования реализована в ограниченном объеме (скажем, компилятор для языка программирования SML для Visual Studio .NET находится в процессе реализации).

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

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

При работе с реальным проектом необходимо учитывать область применения той или иной технологии. COM (как цельное и комплексное решение) способен функционировать только под Windows NT/Windows2000. Рассуждения о переносе COM на другие операционные системы в настоящий момент носят скорее рекламный характер. Ни компонентная модель COM (т.е. ActiveX), ни монитор транзакций (Microsoft Transaction Server, MTS) не способны работать нигде, кроме Windows, и сама Microsoft не проявляет никакой активности в этом напрвлении (вопросами переноса тех или иных элементов COM на другие платформы занимается консорциум Open Group).

Помимо чисто технологических аспектов, при принятии решения необходимо оценить затраты на закупку необходимого программного обеспечения, его сопровождения и обучение персонала. COM  официально является бесплатной технологией. Вы получаете все необходимое, просто приобретя, например, Windows NT Server.

Наличие готовых серверов приложений, пригодных для решения вашей задачи. Если Вы можете решить свои проблемы, используя функциональность Microsoft Office, то ничего лучше COM вы, естественно, не найдете. 

.Net и J2EE имеют отличия в технических деталях, но в этой статье мы не будем копаться в мелочах. Вместо этого мы рассмотрим два наиболее существенных отличия, а именно технологии реализации многоплатформенности и многоязыковой поддержки.

- Многоплатформенность Для разработчика важно то, что и .Net, и J2EE предоставляют средства для создания Web-служб. До сих пор J2EE могла гордиться своей поддержкой многоплатформенности, но, если верить Microsoft, более это не является прерогативой J2EE. Microsoft позиционирует .Net как платформу с двухступенчатой компиляцией, что позволяет создавать среду выполнения для любой платформы, подобно Java. Eric Rutter, старший вице-президент Microsoft запустил информацию о переносе .Net на FreeBSD. FreeBSD - это операционная система, производная от BSD (Berkeley Software Distribution) Unix. Он объявил, что Microsoft в самом деле занимается созданием среды выполнения для FreeBSD. Создание такой среды нарушило бы гегемонию Java в области платформенной независимости, однако не стоит пока полагаться на эту информацию. Создание CLR для наиболее популярных операционных систем может занять много лет. Более того, однажды, Microsoft уже делала подобные заявления в отношении переноса DCOM (Distributed Component Object Model) на другие платформы. Однако такой перенос так и не был осуществлен.

Таким образом, на сегодняшний день единственной средой разработки, поддерживающей многоплатформенность, является J2EE.


 

А также другие работы, которые могут Вас заинтересовать

70821. Управление дебиторской задолженностью (на примере ЗАО «Страховая группа «Спасские ворота») 1.17 MB
  Научная разработанность исследования заключается в разработке научно обоснованных теоретических подходов, принципов по управлению дебиторской задолженностью, а также практических рекомендаций и методических положений по совершенствованию этого процесса...
70822. Измерения активного сопротивления 564.5 KB
  Получение навыков измерения активного сопротивления. Ознакомление с методами измерения активного сопротивления. Ознакомьтесь с принципами организации измерения активного сопротивления косвенным методом.
70823. УПРОЩЕННАЯ ПРОЦЕДУРА ОБРАБОТКИ РЕЗУЛЬТАТОВ ПРЯМЫХ ИЗМЕРЕНИЙ С МНОГОКРАТНЫМИ НАБЛЮДЕНИЯМИ 401 KB
  Ознакомление с упрощенной процедурой обработки результатов прямых измерений с многократными наблюдениями. Знакомство с методами планирования количества наблюдений получение навыков обработки результатов наблюдений и оценивания погрешностей результатов измерений.
70824. Исследование модели шинной ЛВС со случайным доступом 134.5 KB
  Исследовать особенность построения и функционирования шинной ЛВС со случайным методом доступа и определение основных характеристик сети. В результате выполнения лабораторной работы получены знания по структуре, форматам кадров и протоколам физического и канального уровней...
70825. Изучение параметров сигнала с помощью программы SpectrLAB 4.08 MB
  Записать с помощью предоставленного микрофона звуковой сигнал определенной длительности. Изучить его параметры с помощью программы SpectraLAB v4.32.8. Выполнение задания: Исходный сигнал записан в звуковом формате wav, со следующими параметрами: Длительность: 5.28 с...
70827. Дослідження аналогової інтегральної мікросхеми 597 KB
  Експериментальне визначення параметрів не потребує знання схеми і може бути здійснено як для будь-якого чотириполюсника шляхом вимірювання струмів і напруг вхідного і вихідного сигналів.
70828. Счетчик импульсов 130 KB
  Цель: исследование работы счетчика импульсов. Приборы: модель счетчика импульсов СИ блок питания на 5В БП5 соединительные провода. Подсоединить провода питания 5В к выходу БП5 и к входу модели счетчика импульсов СИ. Однократным нажатием на кнопку Счет прибора СИ подаем импульс на вход счетчика.
70829. Децимация и интерполяция 104 KB
  Выполнение процедуры децимации (уменьшения частоты дискретизации в заданное целое число раз) приводит к уменьшению частоты дискретизации исходной последовательности. В процессе децимации исходная последовательность обрабатывается НЧ фильтром, после чего производится выборка с необходимой частотой.