IoTivity vs AllJoyn - what is the difference? - frameworks

Open Interconnect Consortium has just released IoTivity, an open source framework for IoT, similar to AllSeen Alliance's AllJoyn framework. What are the differences between them, apart from IoTivity being based on CoAP and AllJoyn based on D-Bus? Are they interoperable?

This is a community wiki, so please expand it if you can.
Architecture
IoTivity
IoTivity provides 4 basic components:
Discovery
Data transmission
Data Management
Device management
AllJoyn
AllJoyn provides the following components:
App Code
Service Frameworks Libraries
Core Library
Router
It also provides the Thin variant without the Router.
Protocols
IoTivity
IoTivity will be using multiple protocols, but for now it uses CoAP. IT also has a MQTT plugin.
AllJoyn
AllJoyn provides its own bus based on D-Bus Wire protocol. AllJoyn Gateway Agent will have connectors for REST, MQTT, XMPP and TR-069.
Supported platforms
IoTivity
IoTivity currently supports:
Android
Arduino
darwin/iOS
Linux
Tizen
Windows
Yocto
AllJoyn
AllJoyn currently supports:
Android
Arduino
iOS
Linux
OS X
Windows

As explained at OpenIoT 2016 :
Full presentation at :
http://events.linuxfoundation.org/sites/events/files/slides/OpenIoT%20Summit%20Greg%20Burns.pdf
https://www.youtube.com/watch?v=siT2TPnTRHY&list=PLq2bxbH0KVGmtGRUQ4G7RfxsDeGtc9Yxz

When it comes to supported transports, AllJoyn now supports more. It supports IP-related physical layers like WiFi, WiFi-Direct, Ethernet and Powerline. Also, it can support bluetooth with their gateway agent. Other radios such as Bluetooth LE, 6LowPan, ZigBee or Z–Wave are encouraged to be added.
The following is a snapshot from the QA session in Allseen official website.
Reference: https://allseenalliance.org/alliance/faq#n142

One additional difference between these frameworks is how they treat Intellectual Property rights. AllSeen require from members not to sue other vendors which used AllJoyn for their product (Patent Non-Assertion Pledge).

Iotivity is easy to use, it provides C and C++ sdk for developing application on constrained devices. Quite easy to use for a basic application, provides GET,PUT ,POST and Observe functionality. Compared to Alljoyn it is faster and easier to develop apps on it.

Theyre completely different frameworks made by different companies that are both trying to achieve the same (or similar) thing. Its like comparing iOS to android.
They are not interoperable.

Related

Measuring cellular strength in Ionic Framework

In the Ionic framework, is there a way to read the current cellular signal strength & other data (currently connected tower, band, etc..) via the Ionic APi?
Thanks!
Ionic is a frontend framework so no you can't read low level network related data via its API. Also if you are referring to ionic-native, thats only a wrapper around the APIs exposed by different cordova plugins to provide some convenience features such as autocomplete, promise-callbacks and change-detection out of the box.
What you can do is searching for a cordova-plugin which can deliver this kind of information (for example: cordova-plugin-signal-strength (Android only)). Another possibility is to create your own plugin and implement the native parts yourself.

Any advice for iPhone Wireless Comms with Embedded Linux Device?

I am looking for advice on protocols for use in LAN comms between an iPhone and an embedded Linux device. The embedded Linux device requires the following functionality...
Connectible to Wireless LAN.
Discoverable as a device on the Wireless LAN.
(Virtually) connectible with iPhone.
Remotely Callable API provided to the iPhone.
Able to remotely call back functions on the iPhone.
I am looking to use platform independent protocols to achieve this functionality because the mobile application will be ported from the iPhone to other mobile platforms like Android. Since I am a newbie with Embedded Linux, my research (and possibly naivety) suggests that said functionality could be realised with the following protocols...
DHCP for obtaining dynamic IP address.
DNLA? (Bonjour is native to iOS right?)
Connection-oriented communication implies TCP.
SOAP or REST architecture on HTTP.
SOAP or REST architecture on HTTP.
Can you suggest other, more suitable protocols? Am I barking up the wrong tree? Is there a much more simple way I could achieve this functionality? For example, providing the remote API using only a TCP socket?
Any advice you can offer is welcome...
Look into 0mq. It's a scalable messaging library that provides a message queue without requiring a message broker.
-Has objective-c bindings to help you implement in iOS
-Has java bindings to help you implement in Android.
-Small footprint.
I did something similar - an Arduino that streams data to an iPhone app connected over WiFi using the UDP protocol.

Bluetooth Application development using Microsoft XP SP2

I am looking for vendor independent way of accessing Bluetooth profiles like A2DP, AVRCP , MAP, HFP on XP either using SP2 or winsock.
I am in process of finalizing way to create application for Bluetooth.
I would need to use following profiles apart from service discovery : HFP, A2DP , AVRCP ,MAP.
Till date my study is :
Microsoft XP SP2 provides a basic stack.
I have figured out following ways to do it after going through MSDN:
Winsock.
Winsock support for Bluetooth as a network protocol suite includes the Bluetooth Personal Area Network (PAN) and Dial up Networking (DUN) profiles. Bluetooth support in Windows also includes Bluetooth Human Interface Device (HID) profiles for connecting to keyboards, pointing devices, and other input devices which are unrelated to network protocols. However I don't know how to access profiles of my interest using Winsock.
Microsoft XP SP2 which provides basic stack. It says that profile drivers need to be installed from other vendors. However then these vendors will provide their interface. This will make my application vendor dependent.I am not sure if there is some standard way for communicating with profiles. A From where can we buy profile drivers to build a vendor independent application for accessing profiles as well
So I am trying to figure out that is their some way by which i can make a vendor independent Bluetooth application on Windows XP? How can we access profiles independent of vendor we choose for profile driver installation.
Bth_FAQ.docx (http://msdn.microsoft.com/en-us/windows/hardware/gg487349.aspx)
What is new in Windows Vista?
[...]
• Synchronous connection-oriented (SCO) link support. This support is necessary for the headset and hands-free profiles.
• Kernel-mode device driver interface (DDI) support for Logical Link Control and Adaptation Protocol (L2CAP), Service Discovery Protocol (SDP), and SCO.
[...]
So, in XP there's no API for L2CAP, and apparently there is no SCO support at all. So most of the profiles you list there can't be implemented. :-( MAP is ok as it uses GOEP (i.e. RFCOMM) afaik.
Other stacks may have support: either support for the profiles in-box, and/or an API. Widcomm/Broadcom has API support for L2CAP and apparently Audio too, don't know abut build-in profile support. BlueSoleil doesn't have a L2CAP API but does have built-in support for various of the audio profiles. I don't know much about Toshiba.
As you wrote the supported in-box profiles in Windows XP are: SPP (Serial Port Profile), DUN (Dial-Up Networking), HID and HRCP (Hard-Copy Replacement Profile). The response to your question lays in Microsoft statement: profiles vendors can be added, so what you can do is write your own profiles. The specification of those profiles are public on Bluetooth SIG website, and interoperability should be guaranteed this way between devices.

How to do peer-to-peer communication in an iPhone app?

I'm trying to write a simple chat application for the iPhone (as an experiment). Is there a simple way for two devices to discover each others' IP addresses, and given the addresses is there a simple API or protocol that would let me send text messages back and forth?
I've investigated SIP (specifically Sofia and eXosip), but these tools exist as C libraries and are beyond my current ability to port them to the iPhone.
Update: I'm trying to connect two devices over the Internet (i.e. not over Bluetooth or a local wireless network, which is what GameKit does).
You're going to need a server that provides the match making service. Game Center makes this pretty easy, but your users will have to have Game Center accounts.
Alternatively, you can set up an XMPP (formerly Jabber, it's what powers Google Chat) server (I've never done this, but there are several available) and use the XMPP Framework for Cocoa. There are instructions for using it in iPhone apps here.
I'm sure there are other chat servers and client source also available. IRC and Mobile Colloquy come to mind.
Finally, you could write your own server using your favorite server language / framework. This isn't too hard (I've done it myself), but it's far from what I'd call simple, and I wouldn't use it for a production system.
There is support for exactly this kind of ad-hoc peer-to-peer networking in GameKit. Have a look at the second half of the GameKit documentation for details:
http://developer.apple.com/library/ios/#documentation/...
NSNetService is a good option.
Take a look at WebRTC Datachannels. WebRTC is a newer option with native iOS support a standard that is still being finalized, but it is more flexible should the iOS app need to communicate with browser or even android peers

What are the j2me bluetooth frameworks available?

I am new to J2ME. I am working on a software which will send a image (taken from the camera) to a pc for further processing and am looking for a bluetooth framework. What are the ones, with good documentation and examples, available ?
Bluetooth APIs for J2ME are defined JSR 82: Java APIs for Bluetooth.
For usage information you can read for example:
Using the Java APIs for Bluetooth Wireless Technology, Part 1 - API Overview
Using the Java APIs for Bluetooth, Part 2 - Putting the Core APIs to Work