Публикация

Интеграция с Flash

Добрый день всем,

В данном примере опишу возможность интеграции Terrasoft 3.3.0 с Adobe Flash.

Система представляет собой использование встроенных в Террасофт веб-сервисов... т.е. конечно интегрировать Flash c базой Террасофт не так уж и сложно, но в данном случае ничего изобретать не надо - используется внутренний движок Террасофт с встроенными пользователями, правами, сессиями и т.д. и т.п.

В архиве приложен пример проекта на FleshDevelop, который реализует данный функционал.
Ядро проекта - библиотека TerraConnectivity.swc в которой реализовать класс, terra.Connector, в котором реализованы кое-какие функции для получения/модификации данных. В файле Main.mxml показан пример его использования:
- invokeLogin создает соединение с базой, после чего можно выполнять запросы с помощью invokeSelect или invokeExecuteSQL. Параметризированные запросы тоже можно использовать.

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

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

С Уважением,
Я.

Нравится

Поделиться

7 комментариев

Интересно. Только демка у меня не работает, говорит:

Channel.Security.Error;Security error accessing url; Unable to load WSDL. If currently online, please verify the URI and/or format of the WSDL (http://192.168.85.13/Terrasoft2/TSWebServicesServerLibrary.dll/wsdl/ISe…);

Путь к wsdl какой-то локальный )

Хм... реально провтыкал... день тяжелый... подправлю в ближайшее время...

Here you go!
Если уже загружали - не забывайте про браузерный кеш :)

А вот, например, во Flex портировать сервис - пару кликов. В 4ом Flex там можно портировать любые ajax-soap-rest операции с любым методом передачи данных, там даже можно генерить пхп-классы для работы с БД и все это "программирование мышкой". В чем собственно плюсы этого подхода?

Добрый день, Андрей.
А можно ли посмотреть хотя бы фрагменты библиотеки TerraConnectivity.swc или это закрытая информация? Было бы интересно посмотреть как именно происходит обращение к объектам Terrasoft.
И совсем глупый вопрос. Я правильно понимаю, что раз это Flash, то все объекты создаются на стороне клиента?

To Юрий: я собственно велосипед не изобретал. Да и написать клиент веб-сервиса "кликами" может не только Flex. Своим сообщением я просто привожу пример как это можно сделать с конкретной, а не абстрактной реализацией.
Плюс, если Вы знаете как работает обмен через Веб-сервисы в Террасофт, то кроме самого обмена данных там присутствует кодировка/декодировка данных как на стороне клиента, так и на стороне сервера, что собственно одним кликом во Flex не сделаешь, так как кодировка не стандартная.
Плюс, поддержка параметров и некоторые удобные фичи, как сериализация полученного набора данных в JSON для передачи его JScript.
Плюс, я упоминал, что написать вебсервис, который будет работать с БД Террасофт можна из без непосредственного использования веб-сервисов Террасофт - это не сложно. Но в данном случае нужно будет парится с продумыванием вещей, которые уже реализованы, такие как права, пользователи, сессии.
И последний плюс - я привел пример на FleshDevelop, который является безплатным продуктом в отличие от Flex.
Я ответил на Ваш вопрос?

То Артем: Привет :)
В библиотеке ничего сложного не происходит - идет обращение к сервису http://example.com/TSWebServicesServerLibrary.dll/wsdl/IServer. Создается клиент веб-сервиса, посылаются асинхронные операции. Я не сильно парился с библиотекой, так что я бы не говорил, что она сделана супер-качественно. На стороне клиента создаются и кодируются запросы и парсятся ответы.

"Кихтенко Андрей" написал:Я ответил на Ваш вопрос?

Полностью, спасибо )
Я все время забываю, что и за средства разработки иногда надо кому-то давать денег )

Показать все комментарии