Well done guys! Excellent.
  
On Mar 10, 2015, at 20:23, Scott Lewis < slewis@xxxxxxxxxxxxx> wrote: 
  
    Hi Folks,
     
     
    I was recently engaged by Tim Vogel,  a consumer of ECF's Remote
    Services/RSA implementation.  Tim is using ECF to create
    standardized remote services for the cloud hosted by a Karaf server,
    and consumed by an Eclipse-RCP-based applicaton.  I think Tim has
    some plans to describe this work on blogs and/or postings to this
    mailing list (he is a member of ecf-dev list), so I won't try to
    describe it further.
     
     
    Due to firewall constraints, Tim's requirements included
    hosting/consuming remote services using http and/or https over
    standard ports (80/443).  This made the recently-standardized
    websockets attractive, and so Tim approached me about
    enhancing/extending one of the ECF distribution providers so that
    websockets transports could be used to expose and consume his remote
    services.
     
     
    ECF's implementation of OSGi Remote Services/RSA standards is
    modular, allowing new distribution (or discovery) providers to be
    introduced easily, eliminating the need to re-implement the RS/RSA
    specifications with new distribution providers.   That is, with
    ECF's impl, new distribution providers can be created by enhancing
    or extending existing providers...or implementing one's own if
    desired...and all of these providers are *guaranteed*
    to be RS/RSA specification compliant.
     
     
    What this means is that for remote service creators (like Tim) is
    that they have the ability to move to other/new providers without
    changing their application or their remote services, and even have
    the ability to move to other impls of RS/RSA if they wish.   In
    other words:  no lock-in.  In my view, this comes from a
    happy-for-ECF-consumer combination of specification (RS/RSA/OSGi
    Services), extensibility and modularity (ECF's implementation), and
    open source/open frameworks (ECF's RS/RSA implementation and
    supporting APIs).
     
     
    In January, Tim engaged me to create a websockets-based distribution
    provider.   With a code/technical contribution from Jan Rellermeyer,
    original author of r-osgi (one of the existing ECF distribution
    providers), I then implemented two new providers:  one for r-osgi
    over websockets http, and one for r-osgi over websockets https. With
    Jan's contribution, and taking advantage of ECF's modularity and
    extensibility, this was a very modest technical effort, requiring a
    total of less than 10 classes, less than a month of very part-time
    effort (including testing, examples development, and both service
    and client integration), and zero changes to the ECF RSA
    implementation.
     
     
    The r-osgi enhancement bundles are available via this github project
    [1].   It's Jan's desire and intention to contribute these to ECF's
    EF project (to be built and deployed as part of ECF's EF releases),
    but things have to go through the EF IP process before they can be
    added to ECF's EF repo.   The rest of things required for these two
    new providers are already part of ECF 3.9.3.
     
     
    Thanks are due to Tim for allowing this work to be contributed to
    ECF.   He/his product development is an immediate beneficiary of
    this work, but he has allowed me to contribute it to ECF, and
    thereby allowing others to use/benefit from that.  Thanks much Tim.
    I hope that Tim will have a chance to say more here about his use of
    remote services and his application, and encourage him to do so.
     
     
    I would also like to highlight for ECF consumers what I think of as
    a new model for supporting/contributing to the ECF project:   
    Directly engaging ECF committers for
     
     
    a) sponsored open-source development in areas of specific need.
    Websockets transport was the need in this case, but there are plenty
    of other RS/RSA use cases that imply other needs...e.g. custom
    discovery providers, remote services tooling, custom topology
    managers, custom/additional transports...e.g. MQTT, COAP, better
    releng/integration/packaging/deployment for other runtime
    environments, use of asynchronous remote services, use of java8
    capabilities, and others.
     
    b) technical support on
     
        i)  the integration/use of 'a'
     
        ii) both server and client-side effective usage and integration
    of ECF RS/RSA
     
        iii) designing, developing, testing, deploying, updating,
    managing, optimizing distributed applications based upon RS/RSA 
     
    Thanks,
     
     
    Scott
     
     
    [1] https://github.com/ECF/Websockets
     
  
  ecf-dev mailing list ecf-dev@xxxxxxxxxxx To change your delivery options, retrieve your password, or unsubscribe from this list, visit https://dev.eclipse.org/mailman/listinfo/ecf-dev
   |