Основы проектирования корпоративных систем - Сергей Зыков
Шрифт:
Интервал:
Закладка:
Глава 8
Программная платформа Microsoft.NET
В данной главе будет более подробно рассмотрен подход Microsoft к созданию корпоративных систем. Прежде всего речь пойдет о Visual Studio.NET и вообще о. NET подходе. Не стоит ограничивать. NET чисто технологическим аспектом, так как. NET – это платформа в достаточно широком и глубоком смысле этого слова, т. е. это идеология проектирования программного обеспечения, которая имеет в основе такие принципы, как сервисная ориентированность, интернет-распределенность, командная работа, компонентная ориентированность (интероперабельность) и, что еще интереснее, языковая интероперабельность – создание гетерогенных проектов с компонентами, написанными на разных языках и разными людьми в разных точках земного шара. По сути, речь идет об идеологии производства систем корпоративного типа, при этом платформа является достаточно общей и имеет единую среду в форме виртуальной машины, которая предназначена для создания и поддержки таких систем. На основе математических моделей, разработанных Юрием Гуревичем, моделей абстрактных машин с состояниями, построена виртуальная машина, на основе которой происходит создание приложений Microsoft Visual Studio.NET, являющихся уже технологической надстройкой, т. е. NET – это во многом еще и идеология и модель. Рассмотрим ее более подробно.
Четыре основные аспектаХотелось бы выделить четыре аспекта в подходе. NET как платформы для разработки корпоративных приложений:
1) концепция, т. е. общий подход;
2) вычислительная модель – в ее основе лежит достаточно формальная математическая модель. Это некая более реальная реалистичная формализация, но тем не менее тоже фактически модель вычисления на компьютере достаточно общего вида. Так же, как в Java-подходе, имеется виртуальная Java-машина, которая работает на любой платформе, так и здесь есть виртуальная машина высокого уровня, в терминах которой компилируется код на различных языках программирования, но эта платформа ограничена множеством ОС Windows;
3) технологическая платформа;
4) инструментальная средства Visual Studio.NET.
Достаточно важным является подход к реализации системы управления этой виртуальной машиной, которая называется Common Language Runtime (CLR) и подразумевает выполнение компонентов программы, написанных на различных языках. Платформа включает среду реализации, среду вычисления с точки зрения абстрактных (виртуальных) машин и. NET Framework общей надстройки, которая представляет собой семейство базовых системных классов. При этом система типов также является достаточно универсальной, т. е. общей common type system (CTS). По сути, с одной стороны, это система типов, которая принята в C#, а с другой – в эту систему типов подгружается на самом деле система типов любого языка программирования, который написан для этой среды.
Одним из достаточно ранних курсов, реализованных в Санкт-Петербургском государственном университете для. NET, является курс создания компилятора для. NET. Он был написан для студентов второго курса, которые за один семестр могли создать компилятор некоего подмножества языка C# для. NET. То есть речь идет о том, что не только на тех языках, которые реализованы для. NET, но и вообще на этой платформе возможно реализовать произвольный язык, если правильно погрузить его в термины виртуальной машины, и, конечно, типы языка, каким бы он ни был, будут оттранслированы в семейство CTS.
Еще одним важным принципом реализации концепции. NET является предоставление ПО как сервиса. На самом деле эта идеология присуща не только Microsoft, но и Java или подходу IBM SOA, но в рамках подхода. NET есть множественные реализации, которые связаны с различным образом организованными сервисами: это веб-сервисы, технология Remoting, более поздняя технология WCF и др., скажем ASP, технологии, связанные с веб-формами, и целый ряд других технологий, которые предназначены для реализации ПО как сервиса и распространении SOA по сети Интернет.
Первое, что приходит на ум при словах «распространение по Интернету», – это вирусы. В этой связи нужно сказать, что важным акцентом после известных событий 11 сентября для Microsoft является безопасность. Платформа. NET во многом ориентирована на реализацию этого принципа безопасности, и компоненты, которые создаются в рамках платформы. NET, учитывают это.
Одним из направлений реализации и принципом подхода SDL (Secure Development Lifecycle) является Seсure by Design, т. е. собственно проектирование ПО ведется таким образом, что оно является изначально безопасным. Во многом на это нацелена идеология. NET и ее компонентная ориентированность механизма сборок assembler, т. е. самодостаточных компонентов для разворачивания ПО, который является основой идеологии. NET и защищен такими средствами, как цифровая подпись, имя автора и версии сборки и целый ряд других аспектов, позволяющих обеспечивать высокую безопасность создаваемого ПО как покомпонентно, так и в целом для корпоративных приложений, строящихся на основе интероперабельности – постоянно взаимодействующих и меняющихся объектов.
Далее рассмотрим компонентный подход: как строятся компоненты, в чем идеология их создания, почему их можно создавать на разных языках и на основе чего они взаимодействуют при этом, как осуществляется реализация общих интерфейсов.
Прежде всего речь пойдет о технологии Windows Forms и Web Forms, достаточно важных технологиях создания, в том числе и корпоративных приложений, которые обеспечивают стандартизацию пользовательских интерфейсов и взаимодействие в среде Интернет на основе этих интерфейсов. Конечно, мы посмотрим на. NET. Отчасти в сравнении с Java весь San Microsystems тоже имеет достаточно древний и апробированный подход, который называется EJB, по сути, компонентное проектирование тоже на основе виртуальной машины, и даже в различных ОС, не только Windows. Но с языковой точки зрения интероперабельность – подход немного беднее. Мы обсудим некоторые параллели, преимущества и недостатки. NET, которые выявлены и существуют, в том числе и в аспекте проектирования корпоративных приложений.
Что такое Microsoft.NETНе совсем верно рассматривать. NET как исключительно технологическое средство, платформу. По сути, это достаточно комплексная идеология проектирования ПО, в том числе и корпоративного типа.
NET включает следующие основные аспекты (послойно, от более абстрактного уровня к более конкретному):
1) идеология проектирования и реализации программного обеспечения;
2) модель эффективной поддержки жизненного цикла прикладных систем;
3) унифицированная, интегрированная технологическая платформа;
4) современный, удобный в использовании, безопасный инструментарий для создания, размещения и поддержки программного обеспечения.