Документация

General documentation

Введение (Features)

Cyclos - это многофункциональное решение для интернет-банкинга, которое легко использовать и поддерживать, гибкое, безопасное и высоконастраиваемое. Cyclos поставляется с набором банковских и платежных опций, полной системой электронной коммерции и каналами доступа для мобильных устройств любого уровня. Мобильный канал предлагает масштабируемую и дешевую возможность для банков расширить свой охват и предложить банковское обслуживание без отделений. Cyclos используется местными банками, сетями C3, MFI, бартерными системами, community currencies и time banks. Динамическая структура Cyclos позволяет организациям «строить» выделенную платежную систему с нуля, просто изменяя конфигурацию (без необходимости вносить изменения в код).

Этот документ предоставляет вам углубленный обзор наборов функций Cyclos:

Список функций Cyclos 4

Предоставляет подробный обзор множества функций Cyclos 4. Звездочка помещается после функции, чтобы указать:

Системная информация Cyclos 4

Информация о структурных вопросах, касающихся Cyclos (архитектура, безопасность, тестирование, совместимость и хостинг)

Список функций

Пользовательские интерфейсы

Пользовательские функции

Удобство использования

Платежи

Банкинг

Информация о счете

Операторы счета

Конфигурация системы

Агенты / Брокеры

Управление пользователями

Онлайн-маркетплейс

Подарочные ваучеры / Баллы лояльности

Управление контентом

Переводы

Аналитика и отчетность

Управление системой

Обмен сообщениями

Корзина покупок

Пароли и аутентификация

SMS-банкинг

Мобильное приложение

Мобильный POS (Точка продаж)

Оповещения и логирование

Функции бартерной сети

Архитектура

Cyclos 4 построен на корпоративных технологиях Java. Клиент подключается к фронтенд-приложению Google Web Toolkit (GWT) или через один из интерфейсов (см. ниже). Сервер приложений защищен надежным слоем безопасности и использует Spring Framework. Службы на сервере приложений используют JPA (с помощью Querydsl) для связи с сервером базы данных PostGres. Все транзакции хранятся как двойные записи в бухгалтерской системе. Cyclos может работать как автономная система независимо от других валютных систем.
Страницу с обзором инструментов и фреймворков, используемых для проекта Cyclos, можно посмотреть на этой странице.
Бизнес-партнеры и клиенты Cyclos могут запросить доступ к углубленной архитектурной странице.

Совместимость (интерфейсы)

Весь уровень сервисов в Cyclos доступен как API веб-сервисов. Это сделает все функции Cyclos доступными для третьих сторон. Нативные Java-клиенты могут подключаться напрямую через Java remoting по HTTP(S). Клиенты на других языках могут использовать API с сообщениями JSON по HTTP(S). Также доступна клиентская библиотека PHP, которая отражает API сервисов, что значительно упрощает интеграцию.
Более подробную информацию об API, веб-сервисах и скриптинге можно посмотреть на странице документации Cyclos.

Безопасность

С самого начала команда разработчиков Cyclos следовала рекомендациям по безопасности, определенным стандартом ISO 27002. Код постоянно тестируется с помощью расширенного набора автоматизированных тестов безопасности. Разрешения и роли проверяются при каждом запросе на уровне внутренних служб. Были рассмотрены следующие области безопасности / моменты:

Для получения подробной информации, пожалуйста, просмотрите страницу безопасности

Тестирование

Перед любым программированием пишутся спецификации. Разработка Cyclos работает в соответствии с процессом «разработки через тестирование» (test driven development). Сначала разработчик пишет тестовые случаи (JUnit), а затем код реализации. Тестовые случаи Junit охватывают интеграционные и функциональные тесты, а также исключения. Мы используем фреймворки Maven и Jenkins для запуска тестов и автоматической сборки и развертывания Cyclos три раза в день. Если возникает какая-либо проблема, как программист, так и координатор уведомляются Jenkins.

Онлайн-среда для тестирования сборки доступна по адресу https://test.cyclos.org, различные партнеры имеют свою собственную среду (сеть) в этом экземпляре, чтобы они могли тестировать полную функциональность Cyclos с последними коммитами кода. Jenkins также предоставляет инструмент отчетности для покрытия тестирования, который помогает нам улучшать тестовые случаи.

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

Мы используем Loadsophia для тестирования производительности. Этот сервис позволяет сравнивать результаты тестов производительности с течением времени, что помогает нам точно настраивать производительность.

В зависимости от проекта мы передаем серое и черное тестирование на аутсорсинг внешним компаниям, занимающимся безопасностью. Мобильное приложение и мобильные браузеры тестируются на всех мобильных телефонах, которые нам удается получить. Различные партнеры и внешние тестовые пользователи тестируют мобильное приложение. Как правило, мы сталкиваемся с несколькими ошибками, специфичными для телефона. Благодаря использованию GWT сгенерированный код на стороне клиента хорошо работает со всеми известными веб-браузерами.

Требования к хостингу

Cyclos может работать на веб-контейнере, таком как Apache Tomcat и Jetty, или на серверах приложений, таких как Glassfish, JBoss, IBM Websphere и Oracle Weblogic. Базой данных для Cyclos является база данных с открытым исходным кодом PostgreSQL. Минимальные требования к объему памяти для запуска одного экземпляра Cyclos составляют 500 Мб. Руководство по установке проведет вас через процесс установки.

Масштабируемость и доступность

База данных Cyclos была оптимизирована для поддержки кластеризации баз данных и синхронной репликации. Существуют различные подходы к обеспечению высокой доступности и решениям отказоустойчивости для Cyclos.

Синхронная репликация
В настоящее время мы используем для нашего хостинга решение, которое использует как синхронную, так и асинхронную репликацию. Оно предлагает отказоустойчивость, но не балансировку нагрузки, но с мощным главным сервером базы данных оно может обслуживать высокие нагрузки.
Amazon cloud с RDS
Cyclos может быть развернут в облачных сервисах Amazon с кластеризацией postgres.
Docker swarm
Мы планируем поддержку docker swarm, который предлагает встроенную кластеризацию. Начиная с версии 4.5, Cyclos можно развернуть как контейнер для платформы Docker.
Pgpool-II
Мы также работаем над полным решением для кластеризации баз данных с pgpool.

Примечание: Начиная с версии Cyclos 4.5 все изображения/картинки, документы и файлы могут храниться на внешнем файловом сервере или в сервисе хранения Amazon S3 (по умолчанию они хранятся в базе данных).

Технологии и фреймворки

Technologies & Frameworks

Основные инструменты, используемые для проекта Cyclos: