Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Язык программирования Alfa

Язык программирования Alfa - это попытка создать инструмент, для удаленного администрирования и автоматизации выполняемых работ на серверах и компьютерах под Windows платформой, с простым и ясным синтаксисом похожим на старый, добрый - Pascal.

Краткая характеристика языка Alfa

Автор: Александр Уваров 

  • Язык Alfa процедурный, типизированный;
  • Программа на языке Alfa состоит из единственного модуля. Выполнение программы начинается с первого оператора после слова begin;
  • Предусмотрены константы и переменные вещественного (real), целого (int), строкового (string), булевского (bool) типа. Ссылочные переменные файлового (file) типа, серверного (server) типа, COM (comobj) типа, процедурного (proc, func) типа;
  • Предусмотрены одномерные массивы перечисленных типов;
  • Переменные серверного типа (server) представляют собой специальный объект сервер, с помощью методов которого, можно удаленно выполнять различные действия на сервере или рабочей станции. Можно запускать и останавливать службы и процессы, определять их текущее состояние, перезагружать сервер, изменять IP адрес, определять доступность любого компьютера или сервера в сети, работать с файлами, папками, общими ресурсами;
  • Предусмотрена работа с внешними серверами автоматизации (COM объектами);
  • Предусмотрены стандартные процедуры и функции для работы с числами, строками, массивами, папками и файлами, а также функции для отправки сообщений электронной почты по протоколу SMTP, функции передачи и приёма файлов по протоколу FTP, функции для работы с INI файлами, функции для работы с COM объектами;
  • Предусмотрен ввод и вывод на консоль, чтение и запись информации в текстовый файл;
  • Предусмотрено выполнение кода написанного на других языках программирования JScript, VBScript;
  • В записи программы разрешены комментарии, которые могут быть вложенными;
  • Большие и малые буквы различаются;
  • Язык программирования Alfa предназначен исключительно для специфических задач удаленного администрирования серверов и компьютеров и не претендует ни на что более.

Скачать

Пример программы на языке Alfa

Задача

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

Ниже представлен исходный код на языке программированияAlfa, для решения поставленной задачи.

Код:
#on_wait
#on_log
program ControlServers;
var
 I : int;
 // службы на сервере телеобработки
 Main_TO : array 4 of string =
 (
 "Телеобработка",
 "Монитор взаимодействия с Этран",
 "Модуль взаимодействия с АС ЭТД",
 "StatClient"
 );
 // службы на основном сервере приложений
 Main_SP : array 4 of string =
 (
 "Планировщик СП основной",
 "Отчетность АСУСТ (основная)",
 "Сервер подсистемы КСАРМ ВЧД",
 "StatClient(основной)"
 );
 // службы на резервном сервере приложений
 Res_SP : array 4 of string =
 (
 "Планировщик СП резервный";
 "Отчетность АСУСТ (резервная)";
 "Сервер подсистемы КСАРМ ВЧД";
 "StatClient(резервный)";
 );
declare @CUMR04_TO : server
 Title = "Cервер телеобработки";
 Host = "1.2.2.15";
 User = "adm";
 Password = "pass";
 IntervalWait = 60;
 WaitReboot = 360;
end;
declare @CUMR04A : server
 Title = "Основной сервер приложений";
 Host = "1.2.2.11";
 User = "adm";
 Password = "pass";
 IntervalWait = 60;
 WaitReboot = 360;
end;
declare @CUMR05A : server
 Title = "Резервный сервер приложений";
 Host = "1.2.2.21";
 User = "adm";
 Password = "pass";
 IntervalWait = 60;
 WaitReboot = 360;
end;
procedure OutMess (Mess : string; NameService : string);
begin
 if not(Mess = "") then
 writeln("Ошибка: ", Mess);
 else
 writeln("Cлужба: " + "'" + NameService + "'" + " - запущена!");
 endif;
end;
procedure ServiceControl (var @Serv : server; NameService : string);
begin
 @Serv->ControlService(NameService);
 OutMess(@Serv->Get_MessErr(), NameService);
end;
begin
writeln("=========================================");
 writeln("Контроль состояния служб на серверах ЦУМР");
 writeln("=========================================");
// подключение к серверу телеобработки
 writeln("Подключение к серверу телеобработки");
 if not @CUMR04_TO->Connect() then
 writeln("Ошибка: ", @CUMR04_TO->Get_MessErr());
 exit;
 endif;
// подключение к основному серверу приложений
 writeln("Подключение к основному серверу приложений");
 if not @CUMR04A->Connect() then
 writeln("Ошибка: ", @CUMR04A->Get_MessErr());
 exit;
 endif;
// подключение к резервному серверу приложений
 writeln("Подключение к резервному серверу приложений");
 if not @CUMR05A->Connect() then
 writeln("Ошибка: ", @CUMR05A->Get_MessErr());
 exit;
 endif;
writeln("-----------------------------------------");
 writeln(@CUMR04_TO.Title + " (" + @CUMR04_TO.Host + ")");
// проверка запуска служб на сервере телеобработки
 for I := 0 to Len(Main_TO) - 1
 ServiceControl(@CUMR04_TO, Main_TO[I]);
 endfor;
writeln("-----------------------------------------");
 writeln(@CUMR04A.Title + " (" + @CUMR04A.Host + ")");
// проверка запуска служб на основном сервере приложений
 for I := 0 to Len(Main_SP) - 1
 ServiceControl(@CUMR04A, Main_SP[I]);
 endfor;
writeln("-----------------------------------------");
 writeln(@CUMR05A.Title + " (" + @CUMR05A.Host + ")");
// проверка запуска служб резервном сервере приложений
 for I := 0 to Len(Res_SP) - 1
 ServiceControl(@CUMR05A, Res_SP[I]);
 endfor;
writeln("-----------------------------------------");
// запрос на завершение работы
 readln();
end.

Ниже представлен файл протокола программы ControlServers.

Код:
***********************************************************
ControlServers
 Дата: 22.10.2009 Время: 16:03:11
 Время выполнения: 00:11.79
***********************************************************
=========================================
Контроль состояния служб на серверах ЦУМР
=========================================
Подключение к серверу телеобработки
Подключение к основному серверу приложений
Подключение к резервному серверу приложений
-----------------------------------------
Cервер телеобработки (1.2.2.15)
Cлужба: 'Телеобработка' - запущена!
Cлужба: 'Монитор взаимодействия с Этран' - запущена!
Cлужба: 'Модуль взаимодействия с АС ЭТД' - запущена!
Cлужба: 'StatClient' - запущена!
-----------------------------------------
Основной сервер приложений (1.2.2.11)
Cлужба: 'Планировщик СП основной' - запущена!
Cлужба: 'Отчетность АСУСТ (основная)' - запущена!
Cлужба: 'Сервер подсистемы КСАРМ ВЧД' - запущена!
Cлужба: 'StatClient(основной)' - запущена!
-----------------------------------------
Резервный сервер приложений (1.2.2.21)
Cлужба: 'Планировщик СП резервный' - запущена!
Cлужба: 'Отчетность АСУСТ (резервная)' - запущена!
Cлужба: 'Сервер подсистемы КСАРМ ВЧД' - запущена!
Cлужба: 'StatClient(резервный)' - запущена!
-----------------------------------------

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 

Комментарии

1.
92K
21 декабря 2013 года
Валентин Краковецкий
0 / / 21.12.2013
Мне нравитсяМне не нравится
21 декабря 2013, 15:17:55
А у вас случайно нет архива с готовым интерпретатором на CocoR по книжке? Для работе по учебе нужно, не могу несколько багов выловить...
2.
86K
25 октября 2012 года
KATAJLU3ATOP
1 / / 25.10.2012
+1 / -0
Мне нравитсяМне не нравится
25 октября 2012, 20:02:02
Уважаю! Судя по синтаксису Alfa, вы любите Pascal :)
3.
5
09 августа 2005 года
hardcase
4.5K / / 09.08.2005
+2 / -0
Мне нравитсяМне не нравится
25 октября 2012, 13:38:35
Чем WMI (как инструмент) и PowerShell (как язык) не устроили?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог