Тьюринга edu index php t. Машина Тьюринга и рекурсивные функции: Учебное пособие для вузов. ИИ в борьбе с мошенничеством

Искусственный интеллект (ИИ, англ. Artificial intelligence, AI) - наука и технология создания интеллектуальных машин, особенно интеллектуальных компьютерных программ. ИИ связан со сходной задачей использования компьютеров для понимания человеческого интеллекта, но не обязательно ограничивается биологически правдоподобными методами.

Что такое искусственный интеллект

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

В начале 1980-х гг. ученые в области теории вычислений Барр и Файгенбаум предложили следующее определение искусственного интеллекта (ИИ):


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

Основные свойства ИИ - это понимание языка, обучение и способность мыслить и, что немаловажно, действовать.

ИИ – комплекс родственных технологий и процессов, развивающихся качественно и стремительно, например:

  • обработка текста на естественном языке
  • экспертные системы
  • виртуальные агенты (чат-боты и виртуальные помощники)
  • системы рекомендаций.

Национальная стратегия развития искусственного интеллекта

  • Основная статья: Национальная стратегия развития искусственного интеллекта

Исследования в сфере ИИ

  • Основная статья: Исследования в сфере искусственного интеллекта

Стандартизация в области ИИ

2019: Эксперты ISO/IEC поддержали предложение о разработке стандарта на русском языке

16 апреля 2019 года стало известно, что подкомитет ISO /IEC по стандартизации в области искусственного интеллекта поддержал предложение Технического комитета «Кибер-физические системы », созданного на базе РВК , о разработке стандарта «Artificial intelligence. Concepts and terminology» на русском языке в дополнение к базовой английской версии.

Терминологический стандарт «Artificial intelligence. Concepts and terminology» является основополагающим для всего семейства международных нормативно-технических документов в области искусственного интеллекта. Кроме терминов и определений, данный документ содержит концептуальные подходы и принципы построения систем с элементами , описание взаимосвязи AI с другими сквозными технологиями, а также базовые принципы и рамочные подходы к нормативно-техническому регулированию искусственного интеллекта.

По итогам заседания профильного подкомитета ISO/IEC в Дублине эксперты ISO/IEC поддержали предложение делегации из России о синхронной разработке терминологического стандарта в сфере AI не только на английском, но и на русском языке. Ожидается, что документ будет утвержден в начале 2021 года.

Развитие продуктов и услуг на базе искусственного интеллекта требует однозначной трактовки используемых понятий всеми участниками рынка. Стандарт терминологии позволит унифицировать «язык», на котором общаются разработчики, заказчики и профессиональное сообщество, классифицировать такие свойства продуктов на базе ИИ, как «безопасность», «воспроизводимость», «достоверность» и «конфиденциальность». Единая терминология также станет важным фактором для развития технологий искусственного интеллекта в рамках Национальной технологической инициативы – алгоритмы ИИ используют более 80% компаний в периметре НТИ. Кроме того, решение ISO/IEC позволит укрепить авторитет и расширить влияние российских экспертов при дальнейшей разработке международных стандартов.

В ходе заседания эксперты ISO/IEC также поддержали разработку проекта международного документа Information Technology - Artificial Intelligence (AI) - Overview of Computational Approaches for AI Systems, в котором Россия выступает в качестве соредактора. Документ предоставляет обзор современного состояния систем искусственного интеллекта, описывая основные характеристики систем, алгоритмы и подходы, а также примеры специализированных приложений в области AI. Разработкой этого проекта документа займется специально созданная в рамках подкомитета рабочая группа 5 «Вычислительные подходы и вычислительные характеристики систем Искусственного интеллекта» (SC 42 Working Group 5 «Computational approaches and computational characteristics of AI systems»).

В рамках работы на международном уровне делегации из России удалось добиться ряда знаковых решений, которые будут иметь долгосрочный эффект для развития в стране технологий искусственного интеллекта. Разработка русскоязычной версии стандарта, еще и со столь ранней фазы – гарантия синхронизации с международным полем, а развитие подкомитета ISO/IEC и инициация международных документов с российским соредакторством – это фундамент для дальнейшего продвижения интересов российских разработчиков за рубежом», - прокомментировал.

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

По направлению искусственный интеллект ТК «Кибер-физические системы» на базе РВК ведет разработку ряда национальных стандартов, утверждение которых запланировано на конец 2019 – начало 2020 года. Кроме того, совместно с рыночными игроками идет работа по формированию Плана национальной стандартизации (ПНС) на 2020 год и далее. ТК «Кибер-физические системы» открыт для предложений по разработке документов со стороны заинтересованных организаций.

2018: Разработка стандартов в области квантовых коммуникаций, ИИ и умного города

Технический комитет «Кибер-физические системы» на базе РВК совместно с Региональным инжиниринговым центром «СэйфНет» 6 декабря 2018 года начали разработку комплекса стандартов для рынков Национальной технологической инициативы (НТИ) и цифровой экономики . К марту 2019 года планируется разработать документы технической стандартизации в области квантовых коммуникаций , и , сообщили в РВК. Подробнее .

Влияние искусственного интеллекта

Риск для развития человеческой цивилизации

Влияние на экономику и бизнес

  • Влияние технологий искусственного интеллекта на экономику и бизнес

Влияние на рынок труда

Предвзятость искусственного интеллекта

В основе всего того, что является практикой ИИ (машинный перевод, распознавание речи, обработка текстов на естественных языках, компьютерное зрение , автоматизация вождения автомобилей и многое другое) лежит глубинное обучение. Это подмножество машинного обучения , отличающееся использованием моделей нейронных сетей , о которых можно сказать, что они имитируют работу мозга, поэтому их с натяжкой можно отнести к ИИ. Любая модель нейронной сети обучается на больших наборах данных , таким образом, она обретает некоторые «навыки», но то, как она ими пользуется - для создателей остается не ясным, что в конечном счете становится одной из важнейших проблем для многих приложений глубинного обучения. Причина в том, что такая модель работает с образами формально, без какого-либо понимания того, что она делает. Является ли такая система ИИ и можно ли доверять системам, построенным на основе машинного обучения? Значение ответа на последний вопрос выходит за пределы научных лабораторий. Поэтому заметно обострилось внимание средств массовой информации к явлению, получившему название AI bias. Его можно перевести как «необъективность ИИ» или «пристрастность ИИ». Подробнее .

Рынок технологий искусственного интеллекта

Рынок ИИ в России

Мировой рынок ИИ

Сферы применения ИИ

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

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

Развитие применения использования ИИ ведет к адаптации технологий в классических отраслях экономики по всей цепочке создания ценности и преобразует их, приводя к алгоритмизированию практически всего функционала, от логистики до управления компанией.

Использование ИИ в целях обороны и в военном деле

Использование в образовании

Использование ИИ в бизнесе

ИИ в борьбе с мошенничеством

11 июля 2019 года стало известно о том, что всего через два года искусственный интеллект и машинное обучение будут использоваться для противодействия мошенничеству в три раза чаще, чем на июль 2019 года. Такие данные были получены в ходе совместного исследования компании SAS и Ассоциации сертифицированных специалистов по расследованию хищений и мошенничества (Association of Certified Fraud Examiners, ACFE). На июль 2019 года такие антифрод -инструменты уже используют в 13% организаций, принявших участие в опросе, и в еще 25% заявили, что планируют их внедрить в течение ближайшего года-двух. Подробнее .

ИИ в электроэнергетики

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

ИИ в производственной сфере

  • На уровне проектирования: повышение эффективности разработки новых продуктов, автоматизированная оценка поставщиков и анализ требований к запчастям и деталям.
  • На уровне производства: совершенствование процесса исполнения задач, автоматизация сборочных линий, снижение количества ошибок, уменьшение сроков доставки сырья.
  • На уровне продвижения: прогнозирование объемов предоставления услуг поддержки и обслуживания, управление ценообразованием.
  • На уровне предоставления обслуживания: улучшение планирования маршрутов парка транспортных средств, спроса на ресурсы автопарка, повышение качества подготовки сервисных инженеров.

ИИ в банках

  • Распознавание образов - используется в т.ч. для узнавания клиентов в отделениях и передачи им специализированных предложений.

ИИ на транспорте

  • Автоиндустрия на пороге революции: 5 вызовов эры беспилотного вождения

ИИ в логистике

ИИ в пивоварении

ИИ в судебной системе

Разработки в области искусственного интеллекта помогут кардинально изменить судебную систему, сделать ее более справедливой и свободной от коррупционных схем. Такое мнение высказал летом 2017 года доктор технических наук, технический консультант Artezio Владимир Крылов.

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

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

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

Музыка

Живопись

В 2015 году команда Google тестировала нейронные сети на предмет возможности самостоятельно создавать изображения. Тогда искусственный интеллект обучали на примере большого количества различных картинок. Однако, когда машину «попросили» самостоятельно что-нибудь изобразить, то оказалось, что она интерпретирует окружающий нас мир несколько странно. Например, на задачу нарисовать гантели, разработчики получили изображение, в котором металл был соединён человеческими руками. Вероятно, произошло это из-за того, что на этапе обучения анализируемые картинки с гантелями содержали руки, и нейронная сеть неверно это интерпретировала.

26 февраля 2016 года в Сан-Франциско на специальном аукционе представители Google выручили с психоделических картин, написанных искусственным интеллектом, порядка $98 тыс. Данные средства были пожертвованы на благотворительность. Одна из наиболее удачных картин машины представлена ниже.

Картина, написанная искусственным интеллектом Google.

ТЬЮРИНГ

ТЬЮРИНГ (Turing) Алан (1912-54), английский математик и логик, который сформулировал теории, ставшие впоследствии основой компьютерной техники. В 1937 г. придумал машину Тьюринга - гипотетическую машину, способную преобразовывать набор вводимых команд. Она была предвестницей современных компьютеров. Тьюринг также использовал идею компьютера, чтобы дать альтернативное и более простое доказательство теоремы ГЕДЕЛЯ о неполноте. Тьюринг сыграл основную роль в разгадке «Энигмы» (Enigma) - комплексного метода шифрования, который использовала Германия во время Второй мировой войны. В 1948 г. участвовал в создании одного из первых в мире компьютеров. В 1950 г. придумал тест Тьюринга - предполагалось, что это тест на способность компьютера «мыслить». По существу в нем утверждалось, что человек не сможет отличить диалог с машиной от диалога с другим человеком. Это работа проложила путь к созданию ИСКУССТВЕННОГО ИНТЕЛЛЕКТА. Тьюринг также занимался теоретической биологией. В работе «Химическая основа морфогенеза» (1952) он предложил модель, описывающую происхождение различных схем строения организмов в биологии. С тех пор такие модели часто применяются для описания и объяснения многих систем, наблюдаемых в природе. Тьюринг покончил с собой, будучи официально обвинен в гомосексуализме.


Научно-технический энциклопедический словарь .

Смотреть что такое "ТЬЮРИНГ" в других словарях:

    Тьюринг, Алан Матисон Алан Тьюринг Alan Mathison Turing Памятник в Сэквиль Парке Дата рождения … Википедия

    - (Turing) Алан Матисон (1912 54), английский математик. В 1936 1937 ввел математическое понятие абстрактного эквивалента алгоритма, или вычислимой функции, получившее затем название машина Тьюринга … Современная энциклопедия

    - (Turing), Алан Матисон (23 июня 1912 – 7 июня 1954) – англ. логик и математик. В 1936–37 предложил идеализированную машинную модель вычислит. процесса – вычислительную схему, близкую к действиям человека, производящего вычисления, и выдвинул… … Философская энциклопедия

    Тьюринг А. - Тьюринг А. Английский математик. Тематики защита информации EN Turing … Справочник технического переводчика

    Алан Тьюринг Alan Turing Памятник в Сэквиль Парке Дата рождения: 23 июня 1912 Место рождения: Лондон, Англия Дата смерти: 7 июня 1954 … Википедия

    Тьюринг - английский математик Алан М.Тьюринг, один из создателей логических основ вычислительной техники, в частности, дал одно из формальных определений алгоритма; доказал, что существует класс вычислительных машин, которые могут имитировать… … Мир Лема - словарь и путеводитель

    - (Turing) Алан Матисон (23.6.1912, Лондон, 7.6.1954, Уилмслоу, близ Манчестера), английский математик. Член Королевского общества (1951). По окончании Кембриджского университета (1935) работал над докторской диссертацией в Принстонском… … Большая советская энциклопедия

    Тьюринг А. М. - ТЬЮ́РИНГ (Turing) Алан Матисон (1912–54), англ. математик. Осн. тр. по матем. логике, вычислит. математике. В 1936–37 ввёл матем. понятие абстрактного эквивалента алгоритма, или вычислимой функции, получившее затем назв. машина Т … Биографический словарь

    - (полн. Алан Матисон Тьюринг, Alan Mathison Turing) (23 июня 1912, Лондон 7 июня 1954, Уилмслоу, Великобритания), британский математик, автор трудов по математической логике, вычислительной математике. В 1936 1937 годах ввел математическое понятие … Энциклопедический словарь

Книги

  • Может ли машина мыслить? Общая и логическая теория автоматов. Выпуск 14 , Тьюринг А. , Настоящая книга, содержащая работы Алана Тьюринга и Джона фон Неймана, стоявших у истоков создания первых&171;мыслящих машин&187;ЭВМ, относится к классике философско-кибернетического… Категория: Базы данных Серия: Науки об искусственном Издатель: URSS , Производитель: URSS ,
  • Может ли машина мыслить? Общая и логическая теория автоматов. Выпуск № 14 , Тьюринг А. , Настоящая книга, содержащая работы Алана Тьюринга и Джона фон Неймана, стоявших у истоков создания первых «мыслящих машин» ЭВМ, относится к классике философско-кибернетического направления… Категория:

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

Решение задачи по составлению программы для компьютера для того, чтобы он прошел этот тест, требует большого объема работы. Запрограммированный таким образом компьютер должен обладать перечисленными ниже возможностями:

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

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

  • Машинное зрение для восприятия объектов.
  • Средства робототехники для манипулирования объектами и перемещения в пространстве.

Шесть направлений исследований, перечисленных в данном разделе, составляют основную часть искусственного интеллекта, а Тьюринг заслуживает нашей благодарности за то, что предложил такой тест, который не потерял своей значимости и через 50 лет. Тем не менее исследователи искусственного интеллекта практически не занимаются решением задачи прохождения теста Тьюринга, считая, что гораздо важнее изучить основополагающие принципы интеллекта, чем продублировать одного из носителей естественного интеллекта. В частности, проблему "искусственного полета" удалось успешно решить лишь после того, как братья Райт и другие исследователи перестали имитировать птиц и приступили к изучению аэродинамики. В научных и технических работах по воздухоплаванию цель этой области знаний не определяется как "создание машин, которые в своем полете настолько напоминают голубей, что даже могут обмануть настоящих птиц".

We see it all the time. “RESTful” this, “REST” protocol that, etc. However, a lot of us don’t really understand exactly what it means. We’ll fix exactly that gap in this article!

State

In computer science (and mathematics, to some extent), there is a concept of state. A certain system can be in state A or it can be in state B or it can be a bunch of other states (usually, a finite list of states).

As an example, let us say that you write a program which turns the screen red if the temperature is more than 80 degreees farenheit or turns it blue if the temperature is less than 80 degrees farenheit.

We can call the first state (temp > 80 degrees) state “A” and the second state (temp < 80 degrees) state “B”. We’ll call the middling state (temp = 80 degrees) state “C”. As we can see, we have defined behaviours of the programs at state A and state B, but not at state C.

That is the general idea of state. Here’s the definition given by the all-knowing Wikipedia:

“In computer science and automata theory, the state of a digital logic circuit or computer program is a technical term for all the stored information, at a given point in time, which is used by the circuit or program.”

In short, it is a sort of “combination” of all the information that the program takes into account.

Now, we’re going to make a leap into something that’s considered largely theoretical and useless and then somehow connect to the very practical world of REST.

Turing machines

There was this man named Alan Turing, and he was quite a smart mathematician with an interest in the workings of computers. He conceived an imaginary computer (which, as we will see, is actually impossible to actually build) which he used to reason about things that happen in real computers.

The computer consists of a tape of infinite length, with a head through which the tape passes. The tape has “cells”, to which information can be written (numbers, colors, etc.) The tape moves through this machine, left or right, one cell at a time. The machine scans in whatever is already on the tape and, depending on what state it is in, it writes something back onto the tape then, subsequently, changes its state.

You may want to read that definition again for it to sink in completely. The essence of the idea is that it makes operations on memory based on state and states changes according to operations on memory.

This seems like a fairly useless theoretical fantasy (although, there is absolutely nothing wrong with that, read A Mathematician’s Apology if you’re wondering why people care to take an interest in theoretical stuff). However, it is quite possibly the most fundamental concept of computer science.

Using the Turing Machine, computer scientists are able to reason about any algorithm that can be run on a computer. In fact, the Turing machine has led to many advances in computer science.

So, the Turing Machine shows us that today (note: I’m not considering graph reduction processors), literally everything in computer science is based off the idea of state.

The Network

Then came along the concept of the internet. This is a place where packets can go haywire and are resent until they reach their destination. In general, there is never a complete transmission of full data.

Clients come in quickly and leave twice as fast. As such, holding onto client state doesn’t make much sense when working on a network system.

Also, in general, holding too much state in a system has been a cause for major pain (which also leads to funcitonal programming languages, which do not allow for the holding of state in a large portion of your code).

Now, people needed a network protocol for the internet which was simple, fast and handled management of state well in an extremely dynamic environment.

That protocol was HTTP, and the theory that grew out of the work on HTTP was labelled REST.

REST

REST stands for: REpresentational State Transfer. It is a system built around the “client-server” concept that networks are built on top of (well, ther are also peer to peer type networks, but, client-sever is arguably the simplest and most tested architecture). The name itself is slightly misleading, since the server is completely state-free!

There are a few constraints that all systems that claim to be “RESTful” must follow.

First of all, it must be a client-server system. This constraint has been modified in the past, but in the formal definition (and, for the theory of REST to work properly), we have servers to which clients can connect.

The server is fully stateless. This means that for each client request to the server, no state is reserved on the server. For example, if a client (using HTTP), requests the index page and subsequently requests the /user/home page, the two requests are completely independent of each other. The client holds all of the state of the system (hence, we have the back button).

Responses from the server must be cacheable, which means that there must be a system on the server which identifies respones as cacheable or not, so that clients (e.g. web browsers) can take advantage of the cache.

Finally, we must have a simple, clean, and uniform interface. If you have had some experience with how HTTP works, the request forms are very simple. They are largely verbs and nouns with a very easy to parse and human-readable format. SOAP is another form of a network protocol which absolutely obliterates this requirement and, therefore, is often very difficult to work with.

Now, what do all of these properties, when taking together, entail?

Implications of REST

They let us build systems that are cleanly seperated, scalable, and debugged easily.

Let us consider the restriction of statelessness on the server first, it may well be the most important (and, also, the most often violated by so-called RESTful architectures) bit.

As previously mentioned, in a client-server architecture the clients are very nimble; they fire requests and suddenly kill all communication. In this kind of a situation, it is much cleaner to not save state about the client on the server. This lets us reason about HTTP servers very easily; each client request may be treated as if it is a completely new client, and it wouldn’t make a penny of a difference.

Secondly, cacheable responses mean that the clients are able to get data much faster, because often times, the data can be retrieved from the client’s memory. This immediately increases client performance and, in some systems, server scalability.

The uniform interface may just be the most important. Having worked with SOAP, I can tell you that HTTP’s simple format is a blessing when trying to debug server code and the same applies to other RESTful systems.

Designing a RESTful System

Let’s say we need to write a server that returns stock quotes, as well as retaining a list of stock quotes to monitor (and, the user can either add to or clear the list).

This is an excellent case for a RESTful system, because it is inherently independent of identity of client. Therefore, the server need not hold any state about the client.

We first start by defining how the protocol language will work (a bit like the GET and POST verbs of HTTP):

GETQUOTE ticker - gives the price for a particular stock
ADDTICKER ticker - adds the given stock to the list
GETLIST - gets a comma seperated list of stocks in the list

That’s a fairly simple protocol, and, doesn’t hold any state on the server. Now, as for caching, we may say that we update the prices every hour, so caches more than one hour old may be thrown away.

And, that’s all there is to it! Of course, we still have to implement this, but, the general idea of the system is quite simple and clean!

Conclusion

Hopefully, this article gave you a solid understanding of REST.

Also, I hope that you will now be able to call out people who throw around the term “RESTful” too much - I can tell you, there’s a lot of them!