2016-06-13 5 views
0

Я довольно новичок в AllJoyn и пытаюсь использовать Java API для разработки совместимого с AllJoyn приложения. Я прошел через все образцы Java и Android App, и я могу запустить их без каких-либо проблем. Но во всех образцах я заметил, что они следуют модели клиента/услуги. Во время компиляции клиент должен знать об интерфейсе, который реализует сервис. Ниже приведены несколько снимков из демонстрационного кода.Автоматическое обнаружение и взаимодействие над AllJoyn

// From ObserverSample for Android 
ProxyBusObject obj = (ProxyBusObject) msg.obj; 
Door door = obj.getInterface(Door.class); 

// From JavaSDKDocAboutClient 
mProxyObj = mBus.getProxyBusObject (busName, "/example/path". sessionId.value, new Class<?>[] { SampleInterface.class}); 

Я пытаюсь разработать сервис, который имеет определенные свойства, BusMethods и BusSignals. Я хочу, чтобы эта служба была доступна для обнаружения и контроля из стороннего приложения AllJoyn (приложение панели инструментов AllJoyn в качестве примера), не зная о том, как приложение начнет работать с моим клиентским интерфейсом.

Я не могу узнать, как этого добиться, поскольку, где бы я ни выглядел, кажется, что интерфейс, который я буду использовать для моей службы, клиент должен знать об этом уже для поддержки моего сервиса. Как это возможно с точки зрения масштабирования? В будущем могут появиться многочисленные службы, которые могут появиться или могут появиться, но уже не будет известно об их интерфейсах.

Будет полезно, если кто-то может указать мне на ресурсы, где я могу найти больше информации о разработке такого сервиса.

Заранее спасибо.

ответ

0

Если ваше клиентское Java-приложение не имеет информации об интерфейсе службы, вам необходимо создать собственную C++-библиотеку, которая связывается с вашей java-частью и использует всестную интроспекцию alljoyn. С помощью C++ вы можете программным способом вызывать методы или получать свойства, не имея такой жесткой информации, как у вас есть Java.

Для получения дополнительной информации, посмотрите на образец eventaction в/alljoyn_core/образцы https://git.allseenalliance.org/cgit/core/alljoyn.git/snapshot/alljoyn-16.04.zip

+0

Спасибо Лино для указания в правильном направлении. Я смог разработать приложение для обнаружения в C++, а приложение панели управления - очень полезный ресурс. –