Задачей net windows service является

Службы Windows

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

Например, на сервере Windows Server сетевые службы системы позволяют клиентам получать к ним доступ без прохождения пользователем процедуры регистрации на сервере, а в клиентских системах службы позволяют загружать новую версию программного обеспечения из Интернета или выполнять очистку файлов на локальном диске.

Службы Windows можно сконфигурировать так, чтобы они выполнялись от имени специально созданной учетной записи пользователя или от имени учетной записи системы, т.е. учетной записи, которая имеет более высокие привилегии, чем учетная запись администратора системы. В дальнейшем изложении, если не указано иначе, то при упоминании службы имеется в виду именно служба Windows. • Ниже приведено несколько примеров служб Windows:

Простой компонент TCP/IP Services (Службы TCP/IP)

Представляет собой служебную программу, которая обслуживает небольшие серверы TCP/IP: отображение (echo), дата и время (daytime), цитаты (quote) и т.п.

Компонент World Wide Publishing Service (Служба WWW)

Представляет собой одну из служб информационного сервера Интернета (Internet Information Server — IIS).

Компонент Event Log (Журнал событий)

Представляет собой службу для регистрации сообщений в системе регистрации событий.

Компонент Windows Search (Поиск Windows)

Представляет собой службу, которая создает индексы данных на диске.

Для просмотра всех служб, имеющихся в системе, предусмотрен инструмент администрирования под названием Services (Службы), окно которого показано на рисунке. Этот инструмент доступен в разделе Administrative Tools (Администрирование).

Для оперирования службой Windows необходимы три программы следующего типа:

программа для управления службой;

программа для конфигурирования службы.

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

Программа для конфигурирования службы позволяет устанавливать службу — она выполняет необходимое копирование в файловую систему, вносит соответствующие записи в системный реестр и настраивает результат как службу. Хотя компоненты .NET и могут устанавливаться с помощью просто команды хсору, поскольку им не обязательно записывать информацию о себе в системный реестр, установка служб требует выполнения соответствующей настройки в системном реестре. Программа для конфигурирования службы может применяться и для изменения конфигурации данной службы в более позднее время.

О каждом из этих трех составляющих службы Windows более подробно рассказывается в следующих подразделах.

Программа службы

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

За реализацию функциональных возможностей отвечает программа службы. Она должна состоять из трех частей:

главная служебная функция;

Для начала следует ознакомиться с диспетчером управления службами — Service Control Manager (SCM). Этот диспетчер играет важную роль для служб. Именно он отправляет службам запросы на выполнение запуска или остановки.

Диспетчер управления службами

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

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

Главная функция, главная служебная функция и обработчики

Главная функция службы представляет собой обычную точку входа в программу, т.е. метод Main(). В ней может регистрироваться более одной главной служебной функции. В главной служебной функции содержится сама функциональность службы. Служебная программа должна регистрировать главную служебную функцию для каждой из предоставляемых ею служб. Одна служебная программа может предоставлять множество служб; например, \system32\services.ехе представляет собой служебную программу, которая включает помимо прочих элементов такие службы, как Alerter, Application Management, Computer Browser и DHCP Client.

Читайте также:  Astra linux special edition руководство администратора часть 1

Далее диспетчер SCM вызывает главные служебные функции каждой из подлежащих запуску служб. Одной из важнейших задач главной служебной функции является регистрация обработчика в SCM.

Функция-обработчик представляет собой третью часть служебной программы. Она должна обязательно уметь отвечать на события SCM. Работа служб может останавливаться, приостанавливаться и возобновляться, и обработчик должен обязательно быть способен реагировать на все такие события.

После регистрации обработчика в SCM программа для управления службой может начинать посылать SCM запросы на завершение, приостановку и возобновление работы службы. Эта программа не зависит ни от SCM, ни от самой службы. В операционной системе поставляется множество подобных программ; одной из них является, например, оснастка Services (Службы) консоли ММС, упомянутая ранее. Можно также писать собственные программы для управления службами; хороший пример — приложение SQL Server Configuration Manager (Диспетчер настройки сервера SQL).

Программа для управления службой

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

Программа для конфигурирования службы

Из-за того, что службы должны настраиваться соответствующим образом в системном реестре, применять для их установки команду хсору нельзя. В системном реестре содержится параметр, отвечающий за то, как должна запускаться служба. Он может быть настроен так, чтобы служба запускалась автоматически или вручную либо вообще была отключена. Также необходимо настраивать пользователя служебной программы и зависимости службы, например, другие службы, которые должны запускаться перед запуском данной.

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

Классы, с помощью которых можно реализовать три описанных составляющих службы, находятся в пространстве имен System.ServiceProcess:

Класс ServiceBase

Является главным классом, от которого должно осуществляться наследование для реализации службы. Этот класс применяется для регистрации службы и ответа на запросы, касающиеся ее запуска и остановки.

Класс ServiceController

Позволяет реализовать программу для управления службой. С помощью этого класса можно отправлять службам запросы.

Классы ServiceProcessInstaller и ServiceInstaller

Как не трудно догадаться по их именам, позволяют устанавливать и конфигурировать программы служб.

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

Microsoft .NET — сервисы Windows нового поколения

В середине лета этого года Microsoft раскрыла свое видение эволюции платформы Windows в ближайшие годы. Платформа Microsoft .NET (ранее эта платформа называлась Next Generation Windows Services, NGWS) будет служить основой для создания распределенных Web-сервисов, интегрирующих различные сервисы, службы и приложения, и, таким образом, обеспечивать создание нового поколения Internet-приложений.

Если говорить о Microsoft .NET в целом, то эта платформа включает в себя следующие глобальные компоненты:

  • собственно платформу Microsoft .NET — инфраструктуру и средства разработки, используемые для построения и управления новым поколением сервисов;
  • продукты и сервисы Microsoft .NET, включая Windows .NET, MSN .NET, Office .NET, Visual Studio .NET, Office .NET и bCentral for .NET;
  • дополнительные сервисы, разрабатываемых сторонними фирмами.

Все взаимодействие между сервисами и компонентами базируется на языке XML и протоколе SOAP, который не зависит ни от объектных моделей, ни от используемых платформ. В Microsoft .NET легко интегрируются уже существующие, а также новые продукты. Так, в частности, одним из компонентов Microsoft .NET является BizTalk Server.

Читайте также:  Videocam gf112 драйвер для windows 10

В данном обзоре мы рассмотрим один из основных концептуальных блоков платформы Microsoft .NET — Web-сервисы, а также обсудим архитектуру Microsoft .NET.

Web-сервисы

Согласно определению Web-сервис — это приложение, обеспечивающее определенный набор сервисов, которое может быть интегрировано с другими Web-сервисами путем использования стандартов Internet. На более низком уровне Web-сервис можно назвать программируемым ресурсом, доступным по URL, который программным образом возвращает клиентам определенную информацию. Главным здесь является то, что клиенту не надо знать, как реализован тот или иной сервис для того, чтобы его использовать.

В отличие от существующих компонентных технологий, Web-сервисы не используют какие-либо специфичные для той или иной объектной модели протоколы типа DCOM, RMI или IIOP — сервисы взаимодействуют посредством стандартов Internet типа HTTP и XML. Таким образом, любая система, поддерживающая эти стандарты Internet, может взаимодействовать с Web-сервисами. Как мы отмечали выше, взаимодействие между сервисами и компонентами базируется на языке XML и протоколе SOAP. Язык XML используется в качестве основы для описания конкретного взаимодействия сервисов (язык Service Contact Language, SCL), а протокол SOAP — для обмена информацией между сервисами. Для публикации описаний сервисов используется спецификация Disco — рабочая версия этой спецификации доступна на Web-сайте фирмы Microsoft.

Отметим, что создание Web-сервисов возможно уже сегодня. Для этого вам необходимо приобрести Microsoft Visual Studio 6, а также загрузить в Web-сайт фирмы Microsoft и установить SOAP Toolkit for Visual Studio 6.0. Более подробно о протоколе SOAP можно прочитать в статье «Windows DNA 2000 — платформа нового тысячелетия», опубликованной в январском номере нашего журнала.

После этого менее чем краткого рассмотрения Web-сервисов давайте обратимся к платформе Microsoft .NET, которая служит основой для построения Web-приложений и Web-сервисов.

Архитектура Microsoft .NET

Наше знакомство с архитектурой Microsoft .NET разумнее всего начать с приведенной на рис. 1 диаграммы, демонстрирующей основные компоненты этой архитектуры.

Как видно из рисунка, над сервисами операционной системы (Windows CE, Windows ME, Windows 2000, Windows .NET) располагается Common Language Runtime (CLR) — общее языковое ядро, обеспечивающее единообразный доступ ко всем сервисам Microsoft .NET. К системным сервисам, доступным в виде библиотек классов, относятся расположенные над CLR сервисы для доступа к функциям операционной системы, управлению данными, отладки и т.п. Выше располагаются компоненты и сервисы, предназначенные для разработки Web-узлов и Web-сервисов, а также компоненты для реализации пользовательских интерфейсов. Ниже мы рассмотрим основные компоненты архитектуры Microsoft .NET более подробно.

Common Language Runtime

Основной задачей CLR является загрузка и выполнение кода, написанного на любом языке программирования, поддерживаемом в Microsoft .NET. В настоящее время поддерживаются языки Basic, C++, C#, JScript — на уровне продуктов фирмы Microsoft, а также языки сторонних фирм, в числе которых COBOL, Eiffel, Oberon, Perl, SmallTalk и ряд других. Языку C# посвящена статья, публикуемая в данном номере. Также в этом номере мы публикуем обзор новинок в Visual Basic.

Среди основных возможностей CLR следует отметить:

  • поддержку стандартного набора типов и правил для создания новых типов;
  • межъязыковую интеграцию — код, написанный на одном языке, может использовать классы, реализованные на другом языке программирования; исключения, возникшие в программе, написанной на одном языке, могут быть обработаны в программе, написанной на другом языке, и т.п.
  • единый набор библиотек классов для всех поддерживаемых языков программирования;
  • самоописываемые компоненты — для их использования не требуется каких-либо дополнительных файлов (IDL, TLB, Proxy/Stub и т.п.);
  • поддержку версий компонентов и наборов. Наборы (assembly) — это группа ресурсов и типов, а также метаданные, описывающие эти ресурсы и типы. Подобная группа распространяется и внедряется как единое целое. Метаданные содержат информацию о зависимостях между ресурсами, версиях и т.п. Таким образом можно указывать, какие наборы используются — новейшей версии, специфичной версии и т.п.;
  • сервисы безопасности, обеспечивающие, в частности, запрет на неавторизованный доступ к ресурсам как для пользователей (role-based security), так и для кода (code-based security).
Читайте также:  Что храниться во временной папке windows

Как уже отмечалось выше, на следующем уровне в архитектуре Microsoft .NET располагаются сервисы. Мы кратко рассмотрим их в следующем разделе.

Сервисы

Сервисы доступны на уровне классов, которые могут использоваться изо всех поддерживаемых в Microsoft .NET языков программирования. Некоторые из ключевых базовых классов показаны на рис. 2.

Как видно из рисунка, к базовым относятся классы, обеспечивающие доступ к сервисам операционной системы (Windows CE, Windows ME, Windows 2000, Windows .NET) — графическим функциям (здесь мы обнаружим функции для двухмерной графики, манипуляции графическими изображениями и шрифтами, включая технологию ClearType, а также интеграцию с GDI и DirectX), сетевым функциям, управлению потоками, глобализации, криптографии и т.п. К сервисам также относятся классы для доступа к данным (в Microsoft .NET входит библиотека классов ADO+, а также большой набор OLE DB-провайдеров), классы для средств разработки — отладка, трассировка, управление ресурсами, компиляция, установка, протоколирование событий и т.п., а также ряд других классов, включая классы для поддержки протокола SOAP.

Win Forms

Компонент Win Forms служит для обеспечения возможности создания традиционных Windows-приложений, использующих сервисы Microsoft .NET. Для клиентских приложений, работающих под управлением Windows, доступны все библиотеки классов, механизмы распространения сервисов и поддержки версии и сервисы безопасности. Таким образом, создание Windows-приложений в архитектуре Microsoft .NET дает разработчикам существенные преимущества по сравнению с традиционным, API-ориентированным подходом.

Web Forms

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

Концепция Web-форм знакома нам из Visual Basic 6. Идея заключается в том, что за счет объединения в рамках формы ASP- и HTML-кода мы получаем более структурированный подход для отделения логики Web-приложения от интерфейса. Богатый набор интерфейсных элементов (которые теперь могут располагаться на сервере) и простая, но мощная объектная модель позволяют легко создавать Web-приложения.

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

Корпоративные серверы

В начале данного обзора мы говорили о платформе Microsoft .NET как о средстве для интеграции различных сервисов. Одним из источников таких сервисов является семейство корпоративных серверов фирмы Microsoft. К этому семейству относятся следующие продукты:

  • Microsoft SQL Server 2000 (см. статьи в этом номере — «Microsoft SQL Server 2000. Краткий обзор новинок» и «Microsoft SQL Server 2000 Analysis Services»);
  • BizTalk Server 2000 (cм. статьи «Инициативы Microsoft в области e-commerce» и «Разработка приложений с использованием BizTalk Server»);
  • Commerce Server 2000;
  • Application Center 2000;
  • Host Integration Server 2000 (логическое развитие SNA Server);
  • Internet Security and Acceleration Server 2000;
  • Exchange Server 2000.

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

Заключение

В данном обзоре мы кратко рассмотрели архитектуру платформы Microsoft .NET, которая представляет собой дальнейшее развитие платформы Windows и служит фундаментом для создания программных решений нового поколения, основанных на использовании и интеграции различных сервисов, предоставляемых как существующими продуктами, так и специализированными программными компонентами, взаимодействующими на уровне языка XML с использованием протокола SOAP.

Оцените статью