Всем привет.
У меня вопрос идеологического характера:
Существует некая модель, включающая в себя два компонента:
1. Сущность, которая способна посылать пакеты (UDP, IP, Ethernet и т.д.) по заданному шаблону.
2. Агент, который желает послать некоторую последовательность пакетов, используя сервис первой сущности.
Возникает трудность в разработке языка описания таких последовательностей в XML. Уместно ли вообще описывать такие шаблоны в XML?
Если считать, что пакет полностью описан в XML, то, на мой взгляд, его можно записать примерно так:
<udp>
<src_port>100</src_port>
<dst_port>200</dst_port>
<length type="auto"/>
<checksum type="auto"/>
<payload><repeat value="0x34" num="23"></payload>
</udp>
Данный вариант очень просто использовать.
Предположим, что мы хотим описать не просто один пакет,а скорее некоторую последовательность пакетов, используя один шаблон и какие-то "итераторы" к нему. Первое что приходит в голову — это написать примерно следующее:
<traffic-template>
<packet-template name="pkt_template1">
<udp>
<src-addr>100</src-addr>
<!-- The next field must be iterated -->
<dst-addr type="iterate">%d<dst-addr>
<length type="auto"/>
<checksum type="auto"/>
<payload data="data_template.data"/>
</udp>
</packet-template>
<rules>
<!-- Assume that we want to send 3 packets with
destination port 1234, 1235 and 1238 -->
<rule name="pkt_template1">
<iterator field="dst_addr" values="1234 1235 1238">
<!-- Here might be some other nested
iterators (Here iterator like a "for"
statement in programming languages)-->
</iterator>
<rule>
</rules>
</traffic-template>
Возможны сложные комбинации правил (Дополнительно можно передавать интервалы времени, короые должны быть между посылкой пакетов)
Как вы думаете уместо ли здесь использование XML. Может быть существуют технологии родственные XML, позволяющие реализовать подобный механизм обмена информацией более "гладко". Как мне кажется, мой пример не очень хорошо согласуется с концепцией XML, так как он в качестве данных содержит так же инфрмацию по идее близкую к информации оф орматировнии.
(Может быть вы встречались с чем-то подобным)
Что вы можете сказать по этому поводу?