ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] Q: future of alterator backends
@ 2009-10-28 18:35 Stanislav Ievlev
  2009-10-28 20:11 ` Anton Farygin
  0 siblings, 1 reply; 9+ messages in thread
From: Stanislav Ievlev @ 2009-10-28 18:35 UTC (permalink / raw)
  To: devel

Greetings!

This is a proposal of a new alterator features. Your comments are welcome ;)

alteratord service is going towards a RPC model.
At the first stage, I'm planning to replace a single message handler
with a several "export" instructions.

Current backend:
--
alterator_api_version=1

. alterator-sh-functions

...

message_handler()
{
  case "$in_action" in
    type)
     write_type_item a ipv4-address
     write_type_item b hostname
     ;;;
    foo) foo ;;
    bar) bar ;;
    ...
  esac
}

message_loop
--

New style backend will look like:
--

alterator_api_version=1

. alterator-sh-functions

....

alterator_export_var a ipv4-address
alterator_export_var b hostname

alterator_export_proc foo
alterator_export_proc bar

message_loop
--

Current backend call from client's code:
--
(woo-read "/backend" action "foo" a "value1" b "value2")
...
(woo-read "/backend" action "bar" a "value1" b "value2")
--

New style backend call from client's code:
--
(woo-call "/backend/foo" arg1 "value1" arg2 "value2")
(woo-call "/baclend/var" arg1 "value1" arg2 "value2")
--

All other processing (global "in_" variables and functions to send
answer from backend) and underlying protocol remains without changes
at this stage. This allow us to prepare all existing code for the
subsequent transformations.

At the next stage I will replace a global incoming variables "in_"
with a usual function arguments.

--
With best regards
Stanislav Ievlev.


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [devel] Q: future of alterator backends
  2009-10-28 18:35 [devel] Q: future of alterator backends Stanislav Ievlev
@ 2009-10-28 20:11 ` Anton Farygin
  2009-10-28 21:33   ` Mikhail Efremov
  2009-10-30  7:18   ` Stanislav Ievlev
  0 siblings, 2 replies; 9+ messages in thread
From: Anton Farygin @ 2009-10-28 20:11 UTC (permalink / raw)
  To: ALT Linux Team development discussions

28.10.2009 21:35, Stanislav Ievlev пишет:

>
> New style backend will look like:
> --
>
> alterator_api_version=1
>
> . alterator-sh-functions
>
> ....
>
> alterator_export_var a ipv4-address
> alterator_export_var b hostname
>
> alterator_export_proc foo
> alterator_export_proc bar

Стас, а если foo, bar, ipv4-address и hostname надо получать из 
медленного источника, то не получится ли замедления - нам ведь придётся 
проинициализировать все эти значения _одновременно_ ?



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [devel] Q: future of alterator backends
  2009-10-28 20:11 ` Anton Farygin
@ 2009-10-28 21:33   ` Mikhail Efremov
  2009-10-29  6:16     ` Anton Farygin
  2009-10-30  7:19     ` Stanislav Ievlev
  2009-10-30  7:18   ` Stanislav Ievlev
  1 sibling, 2 replies; 9+ messages in thread
From: Mikhail Efremov @ 2009-10-28 21:33 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Wed, 28 Oct 2009 23:11:07 +0300 Anton Farygin wrote:
> > New style backend will look like:
> > --
> >
> > alterator_api_version=1
> >
> > . alterator-sh-functions
> >
> > ....
> >
> > alterator_export_var a ipv4-address
> > alterator_export_var b hostname
> >
> > alterator_export_proc foo
> > alterator_export_proc bar
> 
> Стас, а если foo, bar, ipv4-address и hostname надо получать из 
> медленного источника, то не получится ли замедления - нам ведь
> придётся проинициализировать все эти значения _одновременно_ ?

Нет, если я правильно понял мысль Стаса - это просто инициализация
именами. Реальный вызов функции foo произойдет только когда будет вызов
(woo-call "/backend/foo" arg1 "value1" arg2 "value2") из клиентского
кода.
В целом все это позволит выкинуть одинаковый, повторяющийся
в каждом бакенде код. Так что мне нравится :)

-- 
WBR, Mikhail Efremov


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [devel] Q: future of alterator backends
  2009-10-28 21:33   ` Mikhail Efremov
@ 2009-10-29  6:16     ` Anton Farygin
  2009-10-29 12:29       ` Mikhail Efremov
  2009-10-30  7:19     ` Stanislav Ievlev
  1 sibling, 1 reply; 9+ messages in thread
From: Anton Farygin @ 2009-10-29  6:16 UTC (permalink / raw)
  To: ALT Linux Team development discussions

29.10.2009 00:33, Mikhail Efremov пишет:
> On Wed, 28 Oct 2009 23:11:07 +0300 Anton Farygin wrote:
>>> New style backend will look like:
>>> --
>>>
>>> alterator_api_version=1
>>>
>>> . alterator-sh-functions
>>>
>>> ....
>>>
>>> alterator_export_var a ipv4-address
>>> alterator_export_var b hostname
>>>
>>> alterator_export_proc foo
>>> alterator_export_proc bar
>>
>> Стас, а если foo, bar, ipv4-address и hostname надо получать из
>> медленного источника, то не получится ли замедления - нам ведь
>> придётся проинициализировать все эти значения _одновременно_ ?
>
> Нет, если я правильно понял мысль Стаса - это просто инициализация
> именами. Реальный вызов функции foo произойдет только когда будет вызов
> (woo-call "/backend/foo" arg1 "value1" arg2 "value2") из клиентского
> кода.
> В целом все это позволит выкинуть одинаковый, повторяющийся
> в каждом бакенде код. Так что мне нравится :)

Если так, то конечно хорошо.

Стас, может быть сразу подумаешь над тем, как делать обработку больше 
чем одного уровня в дереве ?

foo/faa/fuu
bar/bor/bur

особенно это интересно для тех случаев, когда содержимое foo зависит от 
окружения, т.е. - динамически изменяется.


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [devel] Q: future of alterator backends
  2009-10-29  6:16     ` Anton Farygin
@ 2009-10-29 12:29       ` Mikhail Efremov
  2009-10-29 14:56         ` Anton Farygin
  0 siblings, 1 reply; 9+ messages in thread
From: Mikhail Efremov @ 2009-10-29 12:29 UTC (permalink / raw)
  To: devel

On Thu, 29 Oct 2009 09:16:12 +0300 Anton Farygin wrote:
> Стас, может быть сразу подумаешь над тем, как делать обработку больше 
> чем одного уровня в дереве ?
> 
> foo/faa/fuu
> bar/bor/bur

/backend/foo в предложенной схеме означает "функция foo в
бакенде backend". Что должно означать в этом случае foo/faa/fuu я не
понимаю. В общем случае это можно заменить на вызов функции foo с
аргументами faa и fuu:
(woo-call "/backend/foo" arg1 "faa" arg2 "fuu").

> особенно это интересно для тех случаев, когда содержимое foo зависит
> от окружения, т.е. - динамически изменяется.

Я не понял о чем тут. Стас же сказал - это RPC. О каком динамическом
изменении речь?

P.S. Это ничего, что я не про языки?

-- 
WBR, Mikhail Efremov


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [devel] Q: future of alterator backends
  2009-10-29 12:29       ` Mikhail Efremov
@ 2009-10-29 14:56         ` Anton Farygin
  2009-10-30  7:21           ` Stanislav Ievlev
  0 siblings, 1 reply; 9+ messages in thread
From: Anton Farygin @ 2009-10-29 14:56 UTC (permalink / raw)
  To: ALT Linux Team development discussions

29.10.2009 15:29, Mikhail Efremov пишет:
> On Thu, 29 Oct 2009 09:16:12 +0300 Anton Farygin wrote:
>> Стас, может быть сразу подумаешь над тем, как делать обработку больше
>> чем одного уровня в дереве ?
>>
>> foo/faa/fuu
>> bar/bor/bur
>
> /backend/foo в предложенной схеме означает "функция foo в
> бакенде backend". Что должно означать в этом случае foo/faa/fuu я не
> понимаю. В общем случае это можно заменить на вызов функции foo с
> аргументами faa и fuu:
> (woo-call "/backend/foo" arg1 "faa" arg2 "fuu").

Если представить функции backend'а как каталоги, а аргументы - как 
файлы, то /backend/foo/faa/fuu должно означать файл fuu в подкаталоге 
faa в каталоге foo.

>
>> особенно это интересно для тех случаев, когда содержимое foo зависит
>> от окружения, т.е. - динамически изменяется.
>
> Я не понял о чем тут. Стас же сказал - это RPC. О каком динамическом
> изменении речь?

Вот о том и вопрос, что хотелось бы? получить динамическое изменение 
функций. Я же ещё помню alteratorfs через fuse.

>
> P.S. Это ничего, что я не про языки?

Нормально.


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [devel] Q: future of alterator backends
  2009-10-28 20:11 ` Anton Farygin
  2009-10-28 21:33   ` Mikhail Efremov
@ 2009-10-30  7:18   ` Stanislav Ievlev
  1 sibling, 0 replies; 9+ messages in thread
From: Stanislav Ievlev @ 2009-10-30  7:18 UTC (permalink / raw)
  To: ALT Linux Team development discussions

28 октября 2009 г. 23:11 пользователь Anton Farygin
<rider@altlinux.com> написал:
> 28.10.2009 21:35, Stanislav Ievlev пишет:
>
>>
>> New style backend will look like:
>> --
>>
>> alterator_api_version=1
>>
>> . alterator-sh-functions
>>
>> ....
>>
>> alterator_export_var a ipv4-address
>> alterator_export_var b hostname
>>
>> alterator_export_proc foo
>> alterator_export_proc bar
>
> Стас, а если foo, bar, ipv4-address и hostname надо получать из медленного
> источника, то не получится ли замедления - нам ведь придётся
> проинициализировать все эти значения _одновременно_ ?
Типы потом переедут в декларации функций, если ты об этом.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [devel] Q: future of alterator backends
  2009-10-28 21:33   ` Mikhail Efremov
  2009-10-29  6:16     ` Anton Farygin
@ 2009-10-30  7:19     ` Stanislav Ievlev
  1 sibling, 0 replies; 9+ messages in thread
From: Stanislav Ievlev @ 2009-10-30  7:19 UTC (permalink / raw)
  To: ALT Linux Team development discussions

29 октября 2009 г. 0:33 пользователь Mikhail Efremov <sem@altlinux.ru> написал:
> On Wed, 28 Oct 2009 23:11:07 +0300 Anton Farygin wrote:
>> > New style backend will look like:
>> > --
>> >
>> > alterator_api_version=1
>> >
>> > . alterator-sh-functions
>> >
>> > ....
>> >
>> > alterator_export_var a ipv4-address
>> > alterator_export_var b hostname
>> >
>> > alterator_export_proc foo
>> > alterator_export_proc bar
>>
>> Стас, а если foo, bar, ipv4-address и hostname надо получать из
>> медленного источника, то не получится ли замедления - нам ведь
>> придётся проинициализировать все эти значения _одновременно_ ?
>
> Нет, если я правильно понял мысль Стаса - это просто инициализация
> именами. Реальный вызов функции foo произойдет только когда будет вызов
> (woo-call "/backend/foo" arg1 "value1" arg2 "value2") из клиентского
> кода.
> В целом все это позволит выкинуть одинаковый, повторяющийся
> в каждом бакенде код. Так что мне нравится :)
Да, конечно. Кроме того появляется возможность видеть структуру бакенда ;)
alterator-cmdline --help foo выдаст все имеющиеся функции ;)

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [devel] Q: future of alterator backends
  2009-10-29 14:56         ` Anton Farygin
@ 2009-10-30  7:21           ` Stanislav Ievlev
  0 siblings, 0 replies; 9+ messages in thread
From: Stanislav Ievlev @ 2009-10-30  7:21 UTC (permalink / raw)
  To: ALT Linux Team development discussions

29 октября 2009 г. 17:56 пользователь Anton Farygin
<rider@altlinux.com> написал:
> 29.10.2009 15:29, Mikhail Efremov пишет:
>>
>> On Thu, 29 Oct 2009 09:16:12 +0300 Anton Farygin wrote:
>>>
>>> Стас, может быть сразу подумаешь над тем, как делать обработку больше
>>> чем одного уровня в дереве ?
>>>
>>> foo/faa/fuu
>>> bar/bor/bur
>>
>> /backend/foo в предложенной схеме означает "функция foo в
>> бакенде backend". Что должно означать в этом случае foo/faa/fuu я не
>> понимаю. В общем случае это можно заменить на вызов функции foo с
>> аргументами faa и fuu:
>> (woo-call "/backend/foo" arg1 "faa" arg2 "fuu").
>
> Если представить функции backend'а как каталоги, а аргументы - как файлы, то
> /backend/foo/faa/fuu должно означать файл fuu в подкаталоге faa в каталоге
> foo.
Может быть когда-нибудь так и будет. Пути к объектам применяются также
в dbus, так что в будущем должно быть относительно просто пробросить
все бакенды и в эту шину.

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2009-10-30  7:21 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-10-28 18:35 [devel] Q: future of alterator backends Stanislav Ievlev
2009-10-28 20:11 ` Anton Farygin
2009-10-28 21:33   ` Mikhail Efremov
2009-10-29  6:16     ` Anton Farygin
2009-10-29 12:29       ` Mikhail Efremov
2009-10-29 14:56         ` Anton Farygin
2009-10-30  7:21           ` Stanislav Ievlev
2009-10-30  7:19     ` Stanislav Ievlev
2009-10-30  7:18   ` Stanislav Ievlev

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git