h1. Интерфейс приложений ICE "ICE":http://zeroc.com/ice.html (от "Internet Communications Engine":http://ru.wikipedia.org/wiki/Internet_Communications_Engine) - является объектно-ориентированной системой промежуточного слоя (middleware), использующей механизм удаленного вызова процедур. "Smartswitch":http://streamco.org.ua/ru/products/smartswitch использует "ICE":http://zeroc.com/ice.html для предоставления "API":http://ru.wikipedia.org/wiki/API к своему функционалу. Этот API позволяет вызывать функции "Smartswitch":http://streamco.org.ua/ru/products/smartswitch из внешних программ путем "удаленного вызова процедур":http://ru.wikipedia.org/wiki/Remote_Procedure_Call. При этом внешние программы просто вызывают функции в нативном исполнении, как если бы они вызывали функции из стандартных библиотек. Всю остальную работу берет на себя библиотека ICE. Внешними программами могут быть (но не ограничены ими): * веб-сайты * call-shop приложения * сторонние биллинговые приложения * приложения для колл-центров * итп. _ICE_ содержит: * разнообразие поддерживаемых языков для разработки * встроенные средства защиты передачи данных, основанные на "SSL":http://ru.wikipedia.org/wiki/SSL * интуитивно понятный для программиста объектно ориентированный API в генерируемых интерфейсах * собственный язык описания интерфейсов Slice, который позволяет легко добавлять новые интерфейсы и изменять старые * автоматизированную систему генерации заголовочных файлов и объектных модулей для использования с выбранным языком на основании единого описания интерфейса Slice * жесткую систему типизации, которая содержит код в описанных интерфейсах Slice постоянно синхронизированным с кодом сервера и, при правильной конфигурации, клиента. Доступные языки разработки для ICE API: * C++ * C# * Java * PHP * Python * Ruby Пошаговая инструкция по разработке с использованием ICE API находится в разделе [[Использование ICE API]]. h3. Файлы !ice.gif! В каждой установке _Smartswitch_ соответствующей редакции ICE API содержится на Вашем сервере Smartswitch по ссылке https://имя.вашего.сервера/ice/. Например, https://demo.streamco.org/ice/. При обновлении версии ПО эта директория автоматически обновляется актуальными файлами, соответствующими установленной версии. Мануал по функциям актуальной версии API содержится по ссылке https://имя.вашего.сервера/ice/html/ и генерируется автоматически при сборке новой версии ПО. Таким образом, мануал постоянно синхронизирован с выкладываемой версией ПО, например https://demo.streamco.org/ice/html/. В файлах .ice находящимся в корневой директории находится описание интерфейсов на языке Slice. Вы можете сгенерировать из них заголовочные файлы и объектные модули для линковки для вашего языка программирования самостоятельно, имея установленную библиотеку ICE у себя на хосте. Либо же можете воспользоваться уже сгенерированными интерфейсами на Вашем сервере Smartswitch, которые находятся в директориях, соответствующих названию языка программирования. Например, https://имя.вашего.сервера/ice/cpp/, https://имя.вашего.сервера/ice/php/ итп. Сгенерированные интерфейсы генерируется автоматически при сборке ПО, потому они постоянно синхронизированы с установленной версией Smartswitch. Также есть примеры, они находятся в директории https://имя.вашего.сервера/ice/examples/ (например, https://demo.streamco.org/ice/examples/). См. также: * [[Интерфейс приложений HTTP]] * [[Интерфейс приложений AMI]] [[ICE API|English translation]]