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]

