2014-12-28 2 views
1

Отрывок из моей архитектуры книги:Что такое гражданская мобильность и безгражданство?

Если программный модуль, который должен быть сменен содержит состояние выполнения, то миграция модуля известна как динамическая подвижность

Если только код должен быть перенесен, что известен как апатрид мобильность

Что такое состояние выполнения в этом контексте? может ли кто-нибудь дать мне пример для каждого случая?

+0

Это, вероятно, относится к http://programmers.stackexchange.com/, а не к StackOverflow - как бы о понятиях, лежащих в основе программирования, а не кода. –

+1

Функциональные языки, как правило, заставляют много думать о состоянии и о том, как он управляется, между прочим, если вы хотите хорошо управлять состоянием, используя язык, на котором почти все неизменно (и любое обновление до состояния явная - и атомная - операция) - эффективный способ изучить набор навыков, даже если вы в конечном итоге используете более традиционные инструменты позже. Написание кода традиционный способ OO имеет тенденцию приводить к тому, что состояние усеяно повсюду с небольшой координацией - очень беспорядок в сравнении. –

+0

@CharlesDuffy Есть ли способ переместить вопрос? – Sobiaholic

ответ

2

«Состояние выполнения» - это только информация, известная во время работы.

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

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

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

Кэширование поведения немного грязно водах, поскольку они являются состояниями, но не обязательно нужно заботиться о том, когда вы переходите между серверами (за исключением риска получить некоторый удар по производительности). Таким образом, для удобства мобильности услуг можно не считать тайники как состояние.

+0

Я не знаю, как поблагодарить вас, кроме как отметить правильный ответ! Пример кэширования - это именно то, что мне нужно, чтобы сделать всю картину понятной! – Sobiaholic

Смежные вопросы