Архивы по Категориям: Программирование

SOAP за 5 минут

SOAP предназначен для обмена данными между приложениями.

SOAP работает поверх http.

Структура SOAP-документа:

<?xml version="1.0"?><soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

<soap:Header>
...
</soap:Header>

<soap:Body>
...
  <soap:Fault>
  ...
  </soap:Fault>
</soap:Body>
</soap:Envelope>

Простая формула биндинга: XML + HTTP = SOAP

SOAP запрос:

POST /InStock HTTP/1.1Host: www.example.org
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn

<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

<soap:Body xmlns:m="http://www.example.org/stock">
  <m:GetStockPrice>
    <m:StockName>IBM</m:StockName>
  </m:GetStockPrice>
</soap:Body>
</soap:Envelope>

SOAP ответ:

HTTP/1.1 200 OKContent-Type: application/soap+xml; charset=utf-8
Content-Length: nnn

<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Body xmlns:m="http://www.example.org/stock">
  <m:GetStockPriceResponse>
    <m:Price>34.5</m:Price>
  </m:GetStockPriceResponse>
</soap:Body>

XML за 5 минут

Для тех, кто хочет понять, что такое XML за 5 минут.

XML, в отличии от HTML, был создан для хранения, транспортировки и обмена данными.

В XML нет каких-либо изначально заданных тэгов. Все тэги «выдумываются» автором конкретного файла.

Любой новый xml-файл начинается с заголовка <?xml version="1.0" encoding="UTF-8"?>

В XML все элементы должны иметь закрывающийся тэг. Регистр имеет значение.

Все xml-документы должны иметь единственную пару тэгов, задающую корневой элемент.

Значение атрибутов тэгов всегда должны быть заключены в кавычки.

Есть 2 альтернативных способа для валидации XML: DTD и XML Schema.

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

XML-файлы могут подключать стили для отображения свого содержимого.

Вместо css можно использовать xslt. XSLT — рекомендованные таблицы стилей для XML.

Для разрешения конфликта имён в xml используются пространства имён (namespaces, ns). Они описываются через их атрибуты. Декларация указывается по определённому URL'у:

<root>
<h:table xmlns:h="http://www.w3.org/TR/html4/"]]>
  <h:tr>
    <h:td>Apples</h:td>
    <h:td>Bananas</h:td>
  </h:tr>
</h:table>

<f:table xmlns:f="http://www.w3schools.com/furniture"]]>
  <f:name>African Coffee Table</f:name>
  <f:width>80</f:width>
  <f:length>120</f:length>
</f:table>
</root>

Облачный хостинг от ep.io. Настройка

Давно, знаете ли, хотел попробовать что-то облачное в боевом режиме. http://ep.io — радует больше всех. У них есть специальная консольная утилита, которая позволяет в несколько команд развернуть весь мой django, flask или даже просто python-проект через mod_wsgi. Читать далее »

Алгоритм Катхилла-Макки. Реализация на Python

Нижеприведённый код работает для не очень больших матриц. Почему он плохо обрабатывает большие матрицы (порядка больше 300)? Дело в том, что существуют разные способы выбора первоначального узла графа (нулевая итерация). Самый просто и самый неэффективный — выбирать первый попавшийся узел наименьшего порядка. Это, собственно, и делается в программе. По этому когда размер матрицы оказывается сильно больше, необходимо использовать другой способ.

Набор матриц разной размерности для проверки программы + программа.

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

Читать далее »

Парадигмы программирования

Парадигмы программирования развивались параллельно с развитием компьютерной техники. Их общая история насчитывает не более 70-ти лет и берет своё начало в теоретических изысканиях фон Неймана и Алана Тьюринга.

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