Язык программирования 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 :array4ofstring=
(
"Телеобработка",
"Монитор взаимодействия с Этран",
"Модуль взаимодействия с АС ЭТД",
"StatClient"
);
// службы на основном сервере приложений
Main_SP :array4ofstring=
(
"Планировщик СП основной",
"Отчетность АСУСТ (основная)",
"Сервер подсистемы КСАРМ ВЧД",
"StatClient(основной)"
);
// службы на резервном сервере приложений
Res_SP :array4ofstring=
(
"Планировщик СП резервный";
"Отчетность АСУСТ (резервная)";
"Сервер подсистемы КСАРМ ВЧД";
"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
ifnot(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("Подключение к серверу телеобработки");
ifnot @CUMR04_TO->Connect()then
writeln("Ошибка: ", @CUMR04_TO->Get_MessErr());
exit;
endif;
// подключение к основному серверу приложений
writeln("Подключение к основному серверу приложений");
ifnot @CUMR04A->Connect()then
writeln("Ошибка: ", @CUMR04A->Get_MessErr());
exit;
endif;
// подключение к резервному серверу приложений
writeln("Подключение к резервному серверу приложений");
ifnot @CUMR05A->Connect()then
writeln("Ошибка: ", @CUMR05A->Get_MessErr());
exit;
endif;
writeln("-----------------------------------------");
writeln(@CUMR04_TO.Title+" ("+ @CUMR04_TO.Host+")");
// проверка запуска служб на сервере телеобработки
for I :=0to Len(Main_TO)-1
ServiceControl(@CUMR04_TO, Main_TO[I]);
endfor;
writeln("-----------------------------------------");
writeln(@CUMR04A.Title+" ("+ @CUMR04A.Host+")");
// проверка запуска служб на основном сервере приложений
for I :=0to Len(Main_SP)-1
ServiceControl(@CUMR04A, Main_SP[I]);
endfor;
writeln("-----------------------------------------");
writeln(@CUMR05A.Title+" ("+ @CUMR05A.Host+")");
// проверка запуска служб резервном сервере приложений
for I :=0to 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(резервный)' - запущена!
-----------------------------------------
Источник: http://feedproxy.google.com/~r/codenet/read/~3/FYieeYgXoJc/
Дайджест новых статей по интернет-маркетингу на ваш email
Новые статьи и публикации
- 2024-11-26 » Капитан грузового судна, или Как начать использовать Docker в своих проектах
- 2024-11-26 » Обеспечение безопасности ваших веб-приложений с помощью PHP OOP и PDO
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-15 » Перенос сайта на WordPress с одного домена на другой
- 2024-11-08 » OSPanel 6: быстрый старт
- 2024-11-08 » Как установить PhpMyAdmin в Open Server Panel
- 2024-09-30 » Как быстро запустить Laravel на Windows
- 2024-09-25 » Next.js
- 2024-09-05 » OpenAI рассказал, как запретить ChatGPT использовать содержимое сайта для обучения
- 2024-08-28 » Чек-лист: как увеличить конверсию интернет-магазина на примере спортпита
- 2024-08-01 » WebSocket
- 2024-07-26 » Интеграция с Яндекс Еда
- 2024-07-26 » Интеграция с Эквайринг
- 2024-07-26 » Интеграция с СДЕК
- 2024-07-26 » Интеграция с Битрикс-24
- 2024-07-26 » Интеграция с Travelline
- 2024-07-26 » Интеграция с Iiko
- 2024-07-26 » Интеграция с Delivery Club
- 2024-07-26 » Интеграция с CRM
- 2024-07-26 » Интеграция с 1C-Бухгалтерия
- 2024-07-24 » Что такое сторителлинг: техники и примеры
- 2024-07-17 » Ошибка 404: что это такое и как ее использовать для бизнеса
- 2024-07-03 » Размещайте прайс-листы на FarPost.ru и продавайте товары быстро и выгодно
- 2024-07-01 » Профилирование кода в PHP
- 2024-06-28 » Изучаем ABC/XYZ-анализ: что это такое и какие решения с помощью него принимают
- 2024-06-17 » Зачем вам знать потребности клиента
- 2024-06-11 » Что нового в работе Яндекс Метрики: полный обзор обновления
- 2024-06-11 » Поведенческие факторы ранжирования в Яндексе
- 2024-06-11 » Скорость загрузки сайта: почему это важно и как влияет на ранжирование
Неудача — это не единичное внезапное событие. Ваш провал не возникает внезапно. Напротив, неудача появляется, когда вы совершаете одни и те же ошибки изо дня в день. Джим Рон |
Мы создаем сайты, которые работают! Профессионально обслуживаем и продвигаем их , а также по всей России и ближнему зарубежью с 2006 года!
Как мы работаем
Заявка
Позвоните или оставьте заявку на сайте.
Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!
Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.
Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.
Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.