Erlang по сравнению с Реальным / Внешним миром, как связаться?

Это будет в духе

file1 = dir("c:\rootdir\" & "*" & "ASFC" & "*" &".xlsx")
Workbooks.Open Filename:= file1

Но если у вас есть более 1 файла в этом каталоге с «ASFC», кто знает, что он получит

13
задан Cœur 16 July 2017 в 15:03
поделиться

6 ответов

Решение для порта / сокета является хорошей идеей и не так сложно, как может показаться. Буферы протокола Google - это то, что вам нужно. Это очень простой в использовании, эффективный и ремонтопригодный. Он имеет реализации для C #, erlang, java, python и многих других (см. Руководство разработчика OtherLanguages ​​ и )

Вы можете использовать буферы протокола для определения структуры протокола запроса и ответа. Затем используйте его для связи между erlang и любым другим поддерживаемым языком. Учебник объяснит все это. После этого все, что вам нужно сделать, это отправить ответ через порт.

Преимущество этого подхода состоит в том, что:

  1. Вы можете легко расширять и изменять протокол в будущем
  2. Он намного эффективнее, чем Подход REST
  3. В настоящее время он используется Google для почти все его внутренние RPC протоколы и форматы файлов
16
ответ дан 1 December 2019 в 21:25
поделиться

Хотя я согласен с тем, что какое-то решение REST полезно, используете ли вы Yaws или Mochikit, вы обнаружите, что пытаетесь определить некоторый промежуточный «язык» для генерации запросов, которые Mnesia сможет выполнить. процесс.

Поэтому я предлагаю этот совет; какой бы проект вы ни имели в виду для себя, просто внедрите его в erlang и используйте доступные инструменты. Вы будете вознаграждены разными способами.

Опять же, вы всегда можете попробовать CouchDB.

2
ответ дан 1 December 2019 в 21:25
поделиться

Конечно, вы можете сделать REST с Erlang, см., Например, http://www.infoq.com/articles/vinoski-erlang-rest - если это подходит для ваших приложений Потребности, ОТДЫХ - отличный подход. (Pycon Italia Tre, на следующей неделе во Флоренции, проведет сессии по сотрудничеству Erlang / Python, см. Www.pycon.it, если вы рядом с Тосканой; -).

2
ответ дан 1 December 2019 в 21:25
поделиться

Существует также библиотека JSON для Erlang, которую вы, возможно, захотите изучить. Я этим не пользовался, поэтому ничего не могу сказать по опыту.

2
ответ дан 1 December 2019 в 21:25
поделиться

If you want to implement a REST API in Erlang there is only one thing to do. Use the excellent MochiWeb Kit to build your own HTTP server that implements your protocol.

Don't panic, it really is easier than it would appear.

There are a number of tutorials about how to do it including a screencast set from the Pragmatic Programmers.

It comes with a complete set of json libraries, so you'll be fine!

4
ответ дан 1 December 2019 в 21:25
поделиться

Мы делаем это с помощью YAWS и простой реализации HTTP-запроса / ответа на стороне клиента. Реализация YAWS просто делегирует вызов соответствующему процессу gen_server после извлечения аргументов.

Единственным недостатком этого подхода является то, что он не такой быстрый (буферы протокола Google были бы лучше) - и поддерживая соединение "живым" на языке HTTP помогло снизить все затраты на установку и уменьшить количество устаревших соединений сокетов. Если вы возвращаете большие наборы данных, вам нужно проявить немного больше творчества в потоковой передаче результатов обратно. Для большинства наших запросов данных это не было проблемой - ответ мог легко уместиться в памяти.

Некоторые преимущества, если чистая производительность протокола не является большой проблемой:

  • Вы можете подключиться к модели безопасности ( HTTPS или аутентификация)
  • Вы можете вызвать API из всего, что может сделать веб-запрос (у нас было много старого кода на Perl и листов Excel, сортировка которых была тривиальной)
0
ответ дан 1 December 2019 в 21:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: