It was certainly helpful to me Gaėtan.  Thank you for your time.

-ken

On Thu, Apr 5, 2012 at 6:24 PM, Gaëtan Pruvost <[email protected]> wrote:
> Hi Francesco,
>
> We haven't formally compared Youpi vs Cling.
>
> The reason for that is that if Cling had been out a few months earlier, we
> would not have wasted time creating a new implementation... Unfortunately, I
> think 2 or 3 projects simultaneously worked on UPnP without being aware of
> it. But in the end, I'm glad that we achieved similar features (like the
> annotation mechanism), it shows there was a real need for that.
>
>
> From what I've seen (I had taken a look at  it a few months ago), here are
> some differences I noted:
>
>  * The Cling project is a bit more modular, it relies on message
>   passing between modules that implement the different features:
>   registry, discovery, subscription... Though we decoupled many things
>   compared to Cyberlink, our implementation is more monolithic. It
>   means less message passing (possibly better performance but I can't
>   really say as there was no real comparison made until now) but maybe
>   it is less easy to understand.
>
>  * Defining UPnP actions through annotations:
>   - In Cling, you use basic data types to define action arguments
>   (boolean, int...)
>   - In Youpi, you use a wrapper type (e.g. Var<String>, Var<Boolean>)
>   The Cling way is less verbose, but what happens with the output
>   arguments? It's ok when there is only one (it is the return type of
>   the method) but the UPnP specs allow for multiple out args... For
>   that reason, I used a wrapper that allows to actually change the
>   value of arguments in the body of the method.
>   Moreover, this solution allows to enforce range and value
>   restrictions as defined in the UPnP specs. I'm not sure how Cling
>   handles those two important points of the spec.
>
>  * The licensing is different. Cling uses LGPL whereas Youpi is CeCILL
>   (i.e. BSD).
>
>  * The last point (but not the least, imho) is that Cling is a weighty
>   library of 3MB (I wonder why...) whereas Youpi is very lightweight
>   (600KB).
>
>  * Finally, concerning the graphical tools, Youpi and Cling seems to be
>   on the same level. Cling provides specific handling of Gateway
>   devices (which Youpi don't) and Youpi provides automatic java code
>   generation (which I don't think Cling proposes).
>
> Now, concerning the base driver re-factory, I don't think there is any need
> for an abstraction layer. The OSGi specs for UPnP already is such an
> abstraction layer. So ok, if you want to implement a wrapper for a new UPnP
> library, you have to rewrite it... But there is not magic, if you have a new
> abstraction layer, you will have the same amount of work wrapping your new
> library (be it Cling or Youpi) within this layer... So I wonder what's the
> point, but again, I'm not sure I've perfectly understood what you propose.
>
> On the other side, if you want to make evolve the OSGi specs for UPnP (which
> are very basic), then I understand that you could do it so that it is not
> too hard to wrap Youpi and Cling with it ;-) I would suggest to add some
> concepts: the control point and device server appear nowhere in the actual
> specs, so we cannot change their config in OSGi, which is a pity. Apart from
> that, I don't know how to improve the specs, I guess there is some work here
> to analyse the APIs of Youpi and Cling more in depth.
>
> I've been a bit long, but I hope this was helpful.
> Best regards,
>
>
> ***********************************
> Gaėtan PRUVOST
>
>
> LIMSI-CNRS BP 133
> 91403 Orsay Cedex France
> Tel:+33 1 69858110
>
> http://www.limsi.fr/Individu/pruvost/
> ***********************************
>
>
> Le 31/03/2012 10:08, Francesco Furfari a écrit :
>>
>> Hi Gaėtan,
>>
>>
>> nice to hear from you again,
>> I have a question.
>> Did you never compare your implementation with Cling?
>> Well not just in terms of performance but in terms  APIs and architecture.
>> One possible Base driver re-factory could be the inclusion of an
>> abstraction layer to be independent from both Yuopi and Cling.
>>
>> Francesco
>>
>>
>>
>> On 30/03/2012 9.57, Gaėtan Pruvost wrote:
>>>
>>> Hi guys,
>>>
>>> Yes indeed. I'm sorry but I've been a bit overwhelmed with the phd
>>> writing and my baby son... I would really like to participate to the felix
>>> apache project but unfortunately, I really don't have time right now.
>>>
>>> The Youpi library is already fully functional. It provides a stable
>>> kernel wrapped in a Cyberlink-like API.
>>> *It also features POJO definition of your UPnP devices using
>>> annotations*.
>>> Another important feature is the set of graphical tools it includes,
>>> especially the Network explorer that *can generate skeletons for your XML or
>>> Annotated Java code*.
>>>
>>> Compared to Cyberlink, we achieved better service discorvery (80+ devices
>>> in the atraco testbed) and a clean subscription mechanism. I also tried to
>>> limit the consumption of threads by using messages queues and thread pools.
>>> Finally, data passed to actions are typed checked and value constraints
>>> defined in the XML are automatically applied.
>>>
>>> Further details on the project webpage:
>>> http://perso.limsi.fr/pruvost/software-youpi--en
>>> A short documentation is already available. I will take some time off my
>>> sleep to make it more detailed.
>>>
>>> *If people inside felix-dev are eager to use Youpi with OSGi, Yiannis
>>> Liverezas wrote a bundle but as far as I know, it needed some cleanup. I
>>> can't write the new bundle myself but I will definitely be there to provide
>>> support (via mail or skype) and I can grant you access to the SVN.
>>> *
>>> Best Regards
>>> ***********************************
>>> Gaėtan PRUVOST
>>>
>>>
>>> LIMSI-CNRS BP 133
>>> 91403 Orsay Cedex France
>>> Tel:+33 1 69858110
>>>
>>> http://www.limsi.fr/Individu/pruvost/
>>> ***********************************
>>>
>>> Le 30/03/2012 07:11, Francesco Furfari a écrit :
>>>>
>>>> Hi,
>>>>
>>>> cybergarage seems again active, different e-mails exechanged recently.
>>>> By the way, I know about a new implementation derived from cybergareage
>>>> called YOUPI that  is available at http://sourceforge.net/projects/youpi/.
>>>> It is developed by Gaetan Pruvost and relesed with CeCILL-B license, and
>>>> should fix several issues there are with cybergarage.
>>>>
>>>> In the framework of the ATRACO project, Yiannis Liveresaz starting from
>>>> the Felix UPnP Basedriver wrapped the Youpi library to provide a more 
>>>> stable
>>>> version of the UPnP Base driver.
>>>>
>>>> We discussed a bit different months ago, but I have not heard for some
>>>> time.
>>>>
>>>> Francesco
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> On 30/03/2012 1.58, Loic Petit wrote:
>>>>>
>>>>> Hi,
>>>>>
>>>>> In OSGi, there is the concept of basedriver (which is standardized).
>>>>> Basically, all remote and local devices are registered on the service
>>>>> registry as org.osgi.service.upnp.UPnPDevice services.
>>>>> Then, it is just a matter of filtering on service properties to get the
>>>>> device you want and call actions on its service. A simple documentation is
>>>>> available here:
>>>>> http://dz.prosyst.com/pdoc/mbserver_5.2/um/upnp/developer/osgi_upnp/osgi_upnp.html
>>>>> Cling does have a basedriver wrapping (cling-osgi) which is working
>>>>> fine from the trunk (not released yet I think). Felix also have an
>>>>> implementation based on cybergarage which was less stable last time I 
>>>>> tested
>>>>> it, though I dunno if cyberlink is still maintaining this stack.
>>>>>
>>>>> LP
>>>>>
>>>>> Le 30 mars 2012 ą 01:48, Ken Gilmer a écrit :
>>>>>
>>>>>> Hi Maria,
>>>>>>
>>>>>>  I have used the Cling UPnP library, however not within an OSGi
>>>>>> context (Android).  The API is very clean and I did not have much
>>>>>> trouble in using it.  I'm not aware of any issues with OSGi or Felix
>>>>>> in particular and the library is actively maintained.
>>>>>> http://4thline.org/projects/cling/
>>>>>>
>>>>>> Hope that helps,
>>>>>> -ken
>>>>>>
>>>>>> On Thu, Mar 29, 2012 at 8:11 AM, Maria Luiza<[email protected]>
>>>>>>  wrote:
>>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> Has anyone used Felix to interact with UPnP devices? If yes, how do
>>>>>>> I?
>>>>>>> Regards,
>>>>>>>
>>>>>>> Maria
>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: [email protected]
>>>>>> For additional commands, e-mail: [email protected]
>>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: [email protected]
>>>>> For additional commands, e-mail: [email protected]
>>>>>
>>>>
>>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to