2016-06-13 17 views
0

Ich bin ziemlich neu bei AllJoyn und habe versucht, Java APIs zu verwenden, um eine AllJoyn kompatible App zu entwickeln. Ich habe die ganze Beispiel-Java- und Android-App durchgegangen und kann sie ohne Probleme ausführen. Aber in allen Beispielen habe ich beobachtet, dass sie einem Client/Service-Modell folgen. Zur Kompilierungszeit muss der Client wissen, welche Schnittstelle der Dienst implementiert. Im Folgenden sind einige Schnappschüsse aus Demo-Code.Auto entdecken und interagieren über 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}); 

Ich versuche, einen Dienst zu entwickeln, die bestimmte Eigenschaften hat, BusMethods und BusSignals. Ich möchte, dass dieser Dienst von einer AllJoyn-Anwendung von Drittanbietern (AllJoyn Dashboard App als Beispiel) erkannt und kontrolliert werden kann, ohne dass die Anwendung von Anfang an von meiner Client-Schnittstelle weiß.

Ich bin nicht in der Lage herauszufinden, wie dies zu erreichen ist, wie auch immer ich sehe, dass die Schnittstelle ich für meinen Service verwenden werde, muss der Client schon wissen, um meinen Service zu unterstützen. Wie ist dies vom Standpunkt der Skalierung möglich? Es kann viele Dienste geben, die jetzt vorhanden sind oder in Zukunft kommen werden, es wird nicht machbar sein, bereits über ihre Schnittstellen zu wissen.

Es wird hilfreich sein, wenn jemand mich bitte auf Ressourcen verweisen kann, wo ich weitere Informationen über die Entwicklung eines solchen Dienstes finden kann.

Vielen Dank im Voraus.

Antwort

0

Wenn Ihre Client-Java-Anwendung keine Informationen zur Service-Schnittstelle enthält, müssen Sie eine native C++ - Bibliothek erstellen, die mit Ihrem Java-Teil kommuniziert und die Alljoyn-Introspektion nutzt. Mit C++ können Sie Methoden programmgesteuert aufrufen oder Eigenschaften abrufen, ohne dass diese Informationen wie Java codiert sind.

Für weitere Informationen, werfen Sie einen Blick auf die eventaction Probe in/alljoyn_core/samples https://git.allseenalliance.org/cgit/core/alljoyn.git/snapshot/alljoyn-16.04.zip

+0

Danke Lino in die richtige Richtung. Ich war in der Lage, eine auffindbare Anwendung in C++ zu entwickeln, und die Controlpanel-Beispiel-App war eine sehr hilfreiche Ressource. –