Как создать сервер для приложения
Перейти к содержимому

Как создать сервер для приложения

  • автор:

Создание удаленного сервера с помощью Visual C#

Эта статья поможет вам создать удаленный сервер, к которому другое приложение может получить доступ с помощью Visual C#.

Исходная версия продукта: Visual C #
Исходный номер базы знаний: 307445

Аннотация

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

В этой статье рассматриваются следующие пространства имен библиотеки классов Microsoft платформа .NET Framework:

  • System.Runtime.Remoting
  • System.Runtime.Remoting.Channels
  • System.Runtime.Remoting.Channels.Tcp

Требования

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

  • Visual Studio .NET или Visual Studio
  • Visual C# .NET или Visual C #
  • Сеть

Создание объекта удаленного сервера

Первым шагом при создании серверного приложения является создание объекта сервера. Объект сервера — это то, что клиентское приложение создает экземпляр и взаимодействует с ним на серверном компьютере. Клиентское приложение делает это через прокси-объект, созданный на клиенте. В этом примере объект сервера находится в библиотеке классов (DLL) и называется myRemoteClass.

  1. Создайте приложение библиотеки классов в Visual C# .NET. Назовите проект ServerClass. Класс 1 создается по умолчанию.
  2. В Обозреватель решений переименуйте файл кода Class1.cs в ServerClass.cs.
  3. Откройте файл ServerClass.cs и переименуйте Class1 в myRemoteClass. Необходимо также переименовать конструктор по умолчанию для класса в , чтобы он соответствовал имени класса. класс myRemoteClass должен наследоваться MarshalByRefObject от класса . Теперь ваш класс должен выглядеть следующим образом:

public class myRemoteClass: MarshalByRefObject < public myRemoteClass() < // TO DO: Add constructor logic here. >> 
public bool SetString(String sTemp) < try < Console.WriteLine("This string '' has a length of ", sTemp, sTemp.Length); return sTemp != ""; > catch < return false; >> 

Создание удаленного серверного приложения

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

Причина включения объекта сервера в отдельный проект заключается в том, что вы можете легко ссылаться на серверный объект из клиентского проекта. Если вы включите его в этот проект, вы не сможете ссылаться на него, так как ссылки могут быть заданы только для DLL-файлов.

  1. Создайте консольное приложение в Visual C# .NET, чтобы запустить удаленный сервер. Класс 1 создается по умолчанию.
  2. В Обозреватель решений переименуйте файл Class1.cs в RemoteServer.cs.
  3. Добавьте ссылку на System.Runtime.Remoting пространство имен.
  4. Добавьте ссылку на сборкуServerClass.dll , созданную в предыдущем разделе.
  5. Используйте инструкцию using для Remoting пространств имен , Remoting.Channels и Remoting.Channels.TCP , чтобы позже в коде не требовалось квалифицировать объявления в этих пространствах имен. Оператор необходимо использовать using перед любыми другими объявлениями.

using System.Runtime.Remoting; using System.Runtime.Remoting.Channels; using System.Runtime.Remoting.Channels.Tcp; 
TcpChannel chan = new TcpChannel(8085); ChannelServices.RegisterChannel(chan); 
  • Полное имя типа регистрируемого объекта (в этом примере — ServerClass.myRemoteClass ), за которым следует имя сборки ServerClass. Укажите здесь имя пространства имен, а также имя класса. Так как пространство имен не указано в предыдущем разделе, используется корневое пространство имен по умолчанию.
  • Назовите конечную точку, где объект будет опубликован, как RemoteTest. Чтобы подключиться к объекту, клиенты должны знать это имя.
  • SingleCall Используйте режим объекта, чтобы указать окончательный параметр. Режим объекта указывает время существования объекта при его активации на сервере. В случае SingleCall объектов создается новый экземпляр класса для каждого вызова, который выполняет клиент, даже если один и тот же клиент вызывает один и тот же метод несколько раз. С другой стороны, Singleton объекты создаются только один раз, и все клиенты взаимодействуют с тем же объектом.
RemotingConfiguration.RegisterWellKnownServiceType( System.Type.GetType("ServerClass.myRemoteClass, ServerClass"), "RemoteTest", WellKnownObjectMode.SingleCall); 
System.Console.WriteLine("Hit to exit. "); System.Console.ReadLine(); 

Ссылки

  • Класс TcpChannel
  • Метод RemotingConfiguration.RegisterWellKnownServiceType

Общие сведения о удаленном взаимодействии .NET см. в документации по платформа .NET Framework руководства разработчика.

Как создать сервер для приложения

Создание сервера приложений

Создание сервера приложений начнем с создания обычной формы (можно небольшого размера, так как основное ее назначение — быть индикатором запущенного сервера приложений) со значением свойства FormStyle равным fsStayOnTop (рис.1). Вообще говоря, появление на экране главной формы в общем случае не является обязательным. Далее создадим обычный модуль данных, содержащий компонент TDataBase, указывающий на серверную СУБД. Для простоты установим свойство LoginPrompt этого компонента равным False, а в свойстве Params укажем имя пользователя, от имени которого будет запущен сервер приложений, и его пароль:

Username=user1 Password = user1

Рис.1. Главная форма и модуль данных сервера приложений

Далее из репозитария объектов (доступ к которому осуществляется выбором пункта меню File/New:) со страницы New следует выбрать объект Remote Data Module (рис.2).

Рис.2. Выбор удаленного модуля данных из репозитария объектов

Remote Data Module имеет принципиальное отличие от обычного DataModule, заключающееся в том, что объекты, помещенные в него, могут иметь COM-интерфейс.

Создание Remote Data Module начинается с запуска эксперта Remote Dataset Wizard, в котором определяется, в частности, имя класса, под которым данный сервер приложений (он же OLE-сервер) будет зарегистрирован в реестре (рис.3):

Рис.3. Выбор имени класса

Далее в созданный удаленный модуль данных поместим два компонента TTable, связанных с компонентом Database1 и указывающих на только что созданные таблицы CLIENTS и HOLDINGS, а также два компонента TProvider. Установим значения свойств DataSet компонентов TProvider равными именам соответствующих компонентов TTable. Установим связь master/detail между таблицами по полю ACCT_NBR. Откроем таблицы (рис. 4)

Рис.4. Содержимое удаленного модуля данных

  • Export MyProv1 from data module
  • Export MyProv2 from data module
  • Export Table1 from data module
  • Export Table2 from data module

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

Если теперь исследовать полученную библиотеку типов (Type library), можно обнаружить, что COM-объект, который будет создаваться при запуске данного приложения, обладает интерфейсом, осуществляющим доступ извне к компонентам MyProv1, MyProv2, Table1 и Table2. (рис. 5).

Рис.5. Библиотека типов созданного проекта

Далее следует сохранить проект и скомпилировать приложение.

Рекомендуется убедиться, что оно зарегистрировано в реестре под выбранным ранее именем. Если тем не менее по каким-либо причинам этого не произошло, следует запустить наше приложение-сервер с параметром /regserver. После этого проект следует закрыть.

Программы для бизнеса

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

После скачивания дистрибутива программы «Клиенты» запустите его на установку на сервере, щелкнув по нему дважды либо выбрав опцию «Выполнить» (Запуск) после окончания закачки.

1. При работе регулярно делать резервную копию. Например раз в неделю. Для ежедневного автоматического архивирования программ по времени можно использовать бесплатную утилиту Автоматическое архивирование файлов.

2. Не ставить программы в Program Files. Имя папки должно быть английскими буквами, без пробелов.

3. Программы должны инсталлироваться с правами Администратора.

4. Если компьютер подключен к интернету, то при работе используйте обновляемый антивирус. Наличие антивируса не гарантирует от вирусов. Существуют вирусы, портящие информацию в базах (см. п. 1). При подозрении на вирусы проверьте компьютер разными антивирусами.

В папке с программой есть файл Readme.txt

При запуске установочного дистрибутива на установку (DblClk на скачанный архив) запустится окно инсталлятора и появится лицензионное соглашение.

Описание установки программы на локальный компьютер

Установите параметр «Я принимаю условия лицензионного соглашения» и нажмите кнопку «Далее».

Как установить программу на «сервер» и настроить доступ с рабочих станций

Укажите в текстовой строке папку для инсталляции программы (например C:\klient305 ) либо выберите ранее созданную через дерево каталогов. По умолчанию для каждой новой версии программы папка своя.

Не рекомендуется устанавливать программы в Program Files в связи с особыми правами доступа к данной папке в некоторых ОС (например Windows Vista или Windows7, см. Возможные проблемы при установке и работе программы )

Как установить программу на «сервер» и настроить доступ с рабочих станций

Выберите программную группу, куда программа инсталляции скопирует ярлык для программы. По умолчанию для каждой программы группа своя. Затем нажмите кнопку «Далее»

Как установить программу на «сервер» и настроить доступ с рабочих станций

Для продолжения установки нажмите кнопку «Установить»

Как установить программу на «сервер» и настроить доступ с рабочих станций

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

Как установить программу на «сервер» и настроить доступ с рабочих станций

После завершения копирования файлов появится сообщение, что установка завершена.
Для окончания установки нажмите кнопку «Готово»

Для просмотра файла Readme.txt в папке с программой галочка должна быть установлена.

Для запуска установленной программы на сервере необходимо запустить программный файл klient.exe в папке с программой (папка была выбрана пользователем в процессе установки ).

Как установить программу на «сервер» и настроить доступ с рабочих станций

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

Как установить программу на «сервер» и настроить доступ с рабочих станций

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

Программа на сервер установлена.

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

Для этого нажмите правой кнопкой мыши на значек папки, выберите пункт меню Свойства.

Как установить программу на «сервер» и настроить доступ с рабочих станций

Откроется окно свойств папки.

Как установить программу на «сервер» и настроить доступ с рабочих станций

В свойствах папки надо разрешить чтение и запись в закладках Permissions (Доступ) и Security (Безопасность), либо убрать галочку Только чтение (Read only).

Как установить программу на «сервер» и настроить доступ с рабочих станций

Разрешить доступ необходимо обязательно в двух закладках, в противном случае программа не сможет работать (см. 3.2.2. Какие бывают проблемы при настройке на сети и как их решить)

Подключение рабочих станций:

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

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

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

Через сетевое окружение надо найти папку на сервере ( \\server\klient305, где «server» — имя Вашего сервера ), нажать на нее правой кнопкой мыши и выбрать пункт меню «Подключить как сетевой диск».

Как установить программу на «сервер» и настроить доступ с рабочих станций

Имя диска выбирается любое из доступных, например Z, затем нажмите кнопку «Готово».

Затем надо открыть этот сетевой диск и вывести на рабочий стол ярлык с файла klient.exe

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

Как установить программу на «сервер» и настроить доступ с рабочих станций

Должен стоять сетевой диск Z:\

Как установить программу на «сервер» и настроить доступ с рабочих станций

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

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

Работа в терминальном режиме рекомендуется, если требуется повышенная защищенность данных, а также для ускорения работы программы по сети при большом количестве записей (от 1000 клиентов) или не большой пропускной способности локальной сети.

4.4.1. Создание сервера приложений

Процесс создания сервера приложений зависит от используемого варианта комплектации WebSphere Application Server.

Автономные серверы приложений

Автономные серверы приложений создаются путем создания профиля сервера приложения. Результатом будет профиль, определяющий один сервер приложений с именем server1. На данном сервере приложений размещаются образцы приложений и административная консоль. В ходе работы с мастером создания профиля вы имеете возможность зарегистрировать новый сервер приложений как службу Windows.

За информацией о создании профиля сервера приложений обращайтесь к разделу 3.3.2, «Создание профиля сервера приложений».

Управляемые серверы приложений

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

Примечание. Если вы создаете сервер приложений с целью добавления его в кластер, более эффективным будет использование пункта меню Servers (Серверы) →Cluster (Кластер). Обращайтесь к разделу 4.6 «Работа с кластерами».

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

1. Откройте административную консоль администратора развертывания.

2. Выберите пункт Servers (Серверы) → Application Servers (Серверы приложений).

3. Нажмите New (Создать) (см. рис. 4.16).

4. Выберите узел для нового сервера и введите имя нового сервера.

Рис. 4.16. Создание сервера приложений: шаг 1

Нажмите Next (Далее).

5. Выберите шаблон, который будет использоваться, нажав соответствующий переключатель (рис. 4.17). У вас есть следующие варианты.

○ Default: стандартный рабочий сервер.

○ DeveloperServer: сервер, оптимизированный для разработки.

○ defaultZOS: доступный только для платформ z/OS и единственный в этой сис теме, пока не будут созданы новые шаблоны.

Позже вы также сможете создавать шаблоны, основывающиеся на существующих серверах приложений (см. раздел «Создание шаблонов» ниже).

Рис. 4.17. Создание сервера приложений: шаг 2

Нажмите Next (Далее).

6. Опции, которые вы увидите в следующем окне, зависят от платформы. В случае распределенных платформ вы увидите то, что показано на рис. 4.18. Выберите базовую группу из списка. Данную опцию вы увидите, только если определено несколько базовых групп.

Установите флажок Generate Unique Http Ports (Генерировать уникальные номера портов Http), чтобы для данного сервера были сгенерированы уникальные номера портов.

Рис. 4.18. Создание сервера приложений: шаг 3 для распределенных систем

В системах z/OS вы увидите то, что показано на рис. 4.19.

Рис. 4.19. Создание сервера приложений: шаг 3 для z/OS

В поле Server specific short name (Краткое специфическое имя сервера) указывается краткое имя сервера. Оно также используется как имя задания (например, BBOS002). Общее краткое имя (поле Generic Short Name) – это краткое имя, преобразуемое в краткое имя кластера, если сервер позже будет использоваться в кластере.

Нажмите Next (Далее).

7. В окне сводки отображаются выбранные вами опции (рис. 4.20).

Рис. 4.20. Создание сервера приложений: шаг 4

8. В окне сообщений нажмите кнопку Save (Сохранить), чтобы сохранить изменения в основном хранилище.

Примечание. Если вы создаете сервер приложений в операционной системе Windows, то данный процесс не даст вам возможности зарегистрировать новый сервер как службу Windows. Вы можете сделать это позже с помощью команды WASService (см. раздел 3.6.3, «Перезапуск процесса при сбое»).

Чтобы создать шаблон сервера приложений на основе существующего сервера выполните следующие шаги.

1. Выберите пункт Servers (Серверы) → Application Servers (Серверы приложений).

2. Нажмите кнопку Template… (Шаблон) над списком серверов.

3. Нажмите New (Создать).

4. Выберите из списка сервер, на основе которого будет создаваться шаблон, и нажмите OK.

5. Введите имя и описание шаблона и нажмите OK.

6. Сохраните конфигурацию.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *