• Request for comments: DOTS use cases

    By David Taieb 7 years ago

     

    After 18 months, many releases and lots of downloads, we are interested to hear from all the DOTS users about their use cases. What kind of projects are being built, whether you have plans to deploy some of your DOTS projects in production and a brief business value statement. Please reply to this post with your comments and don't hold back :-)
    
    Thank you.
    
    
        After 18 months, many releases and lots of downloads, we are interested to hear from all the DOTS users about their use cases. What kind of projects are being built, whether you have plans to deploy some of your DOTS projects in production and a brief business value statement. Please reply to this post with your comments and don't hold back :-)
    
        Thank you.
    
    
            After 18 months, many releases and lots of downloads, we are interested to hear from all the DOTS users about their use cases. What kind of projects are being built, whether you have plans to deploy some of your DOTS projects in production and a brief business value statement. Please reply to this post with your comments and don't hold back :-)
    
            Thank you.
    
    
                After 18 months, many releases and lots of downloads, we are interested to hear from all the DOTS users about their use cases. What kind of projects are being built, whether you have plans to deploy some of your DOTS projects in production and a brief business value statement. Please reply to this post with your comments and don&#39;t hold back :-)</div>
    
                Thank you.</div>
    
                &nbsp;</div>
        </div>
    </div>
    

  • use case: accessing legacy database via JPA

    By Harald Albers 7 years ago

     

        Introduction
    
        ------------
    
        &nbsp;
    
        I work in a mid-sized company (~200 employees) in the software developing business as a developer for internal applications.
    
        &nbsp;
    
        Our aged legacy customer management system consists of a client that directly works on a remote database via SQL.
    
        There is no application server and there are no client-side components that can be used in other contexts.
    
        &nbsp;
    
        In order to improve interoperability and open up a way to re-implement the system I created some domain objects that use JPA for persistence.
    
        These objects are made available in an OSGi framework as services in order to create a lightweight domain layer.
    
        &nbsp;
    
        I can use this infrastructure in the Notes client, e.g. in sidebar applications and Composite Application components.
    
        Deployment of the required infrastructure and application bundles can easily be achieved with update sites, widgets and policies.
    
        &nbsp;
    
        For use on a Domino server, I chose Javaddin/DOTS because it integrates in the Domino server console and gives me complete freedom in customizing my OSGi runtime environment.
    
        I added EclipseLink, Declarative Services (DS) and the Configuration Admin service.
    
        &nbsp;
    
        &nbsp;
    
        Current uses
    
        ------------
    
        We use it productively on an internal system for postprocessing web transaction log documents that come in via replication.
    
        A scheduled run creates entries in our customer database and marks the corresponding log documents als processed.
    
        The system went online in 05/2011 and never had any issues.
    
        &nbsp;
    
        &nbsp;
    
        Future plans
    
        ------------
    
        - replace more legacy extract-transform-load data transfers from notes to our customer database with DOTS tasklets and JPA-backed domain objects.
    
        - use remote services (OSGi Service Platform Enterprise Specification) to make customer data available on the web servers securely.
    
        - try to use DOTS for making OSGi services available in XForms
    
        &nbsp;
    
        &nbsp;
    
        Business value
    
        --------------
    
        DOTS allows you to use an existing OSGi-based infrastructure on a Domino server.
    
        This opens up new ways of reuse and integration.
    
        &nbsp;
    
        &nbsp;
    
        Discussion
    
        ----------
    
        &nbsp;
    
        As DOTS is still considered as experimental, I try to keep dependencies on it minimal.
    
        My bundles should also be able to run in the default OSGi environment that comes with the Domino server as well as standalone OSGi servers and RCP applications or Java Application Servers.
    
        &nbsp;
    
        &nbsp;
    
        That&#39;s where some conceptual problems come in:
    
        Although DOTS is OSGi based, it does not make use of standard OSGi features to full extent.
    
        It is very much focused on the Eclipse programming model:
    
        &nbsp;
    
        Tasklets are declared in the Extension Registry. They are not available as services, and services cannot be used as Tasklets.
    
        &nbsp;
    
        Configuration of bundles can be done via Eclipse Preferences that are backed up by Notes Documents with user-defined forms.
    
        This is a very cool and user-friendly feature.&nbsp;
    
        But compared to using the ConfigurationAdmin for managing configurations, it has the disadvantage that users of a configuration document are not automatically notified if it is modified.
    
        &nbsp;
    
        &nbsp;
    
        I come to the conclusion that DOTS works best when the tasklets are stand-alone (do not use OSGi services) and configuration is done with Notes Documents.
    
        &nbsp;
    
        &nbsp;
    
        In order to achieve my goal of reduced dependencies on the DOTS framework, I implemented the domain logic as services that are configured by the Configuration Admin service.
    
        The tasklets mainly function as schedulers that acquire Domino ressources (this aspect being configured with the DOTS configuration paradigma) and then use the service objects to work on them.&nbsp;
    
        I also considered using tasklets as real schedulers that use the Event Admin Service to propagate events and let the services react to those events.
    
    
            <strong>Introduction</strong></div>
    
            &nbsp;</div>
    
            I work in a mid-sized company (~200 employees) in the software developing business as a developer for internal applications.</div>
    
            &nbsp;</div>
    
            Our aged legacy customer management system consists of a client that directly works on a remote database via SQL.</div>
    
            There is no application server and there are no client-side components that can be used in other contexts.</div>
    
            &nbsp;</div>
    
            In order to improve interoperability and open up a way to re-implement the system I created some domain objects that use JPA for persistence.</div>
    
            These objects are made available in an OSGi framework as services in order to create a lightweight domain layer.</div>
    
            &nbsp;</div>
    
            I can use this infrastructure in the Notes client, e.g. in sidebar applications and Composite Application components.</div>
    
            Deployment of the required infrastructure and application bundles can easily be achieved with update sites, widgets and policies.</div>
    
            &nbsp;</div>
    
            For use on a Domino server, I chose Javaddin/DOTS because it integrates in the Domino server console and gives me complete freedom in customizing my OSGi runtime environment.</div>
    
            I added EclipseLink, Declarative Services (DS) and the Configuration Admin service.</div>
    
            &nbsp;</div>
    
            &nbsp;</div>
    
            <strong>Current uses</strong></div>
    
            &nbsp;</div>
    
            We use it productively on an internal system for postprocessing web transaction log documents that come in via replication.</div>
    
            A scheduled run creates entries in our customer database and marks the corresponding log documents als processed.</div>
    
            The system went online in 05/2011 and never had any issues.</div>
    
            &nbsp;</div>
    
            &nbsp;</div>
    
            <strong>Future plans</strong></div>
    
            &nbsp;</div>
    
            - replace more legacy extract-transform-load data transfers from notes to our customer database with DOTS tasklets and JPA-backed domain objects.</div>
    
            - use remote services (OSGi Service Platform Enterprise Specification) to make customer data available on the web servers securely.</div>
    
            - try to use DOTS for making OSGi services available in XForms</div>
    
            &nbsp;</div>
    
            &nbsp;</div>
    
            <strong>Business value</strong></div>
    
            &nbsp;</div>
    
            DOTS allows you to use an existing OSGi-based infrastructure on a Domino server.</div>
    
            This opens up new ways of reuse and integration.</div>
    
            &nbsp;</div>
    
            <strong>Discussion</strong></div>
    
            &nbsp;</div>
    
            As DOTS is still considered as experimental, I try to keep dependencies on it minimal.</div>
    
            My bundles should also be able to run in the default OSGi environment that comes with the Domino server as well as standalone OSGi servers and RCP applications or Java Application Servers.</div>
    
            &nbsp;</div>
    
            That&#39;s where some conceptual problems come in:</div>
    
            Although DOTS is OSGi based, it does not make use of standard OSGi features to full extent.</div>
    
            It is very much focused on the Eclipse programming model:</div>
    
            &nbsp;</div>
    
            Tasklets are declared in the Extension Registry. They are not available as services, and services cannot be used as Tasklets.</div>
    
            &nbsp;</div>
    
            Configuration of bundles can be done via Eclipse Preferences that are backed up by Notes Documents with user-defined forms.</div>
    
            This is a very cool and user-friendly feature.&nbsp;</div>
    
            But compared to using the ConfigurationAdmin for managing configurations, it has the disadvantage that users of a configuration document are not automatically notified if it is modified.</div>
    
            &nbsp;</div>
    
            &nbsp;</div>
    
            I come to the conclusion that DOTS works best when the tasklets are stand-alone (do not use OSGi services) and configuration is done with Notes Documents.</div>
    
            &nbsp;</div>
    
            &nbsp;</div>
    
            In order to achieve my goal of reduced dependencies on the DOTS framework, I implemented the domain logic as services that are configured by the Configuration Admin service.</div>
    
            The tasklets mainly function as schedulers that acquire Domino ressources (this aspect being configured with the DOTS configuration paradigma) and then use the service objects to work on them.&nbsp;</div>
    
            I also considered using tasklets as real schedulers that use the Event Admin Service to propagate events and let the services react to those events.</div>
    
            &nbsp;</div>
    </div>
    

  • Response: use case: scheduled code execution for server/application maintenance

    By Karsten Lehmann 7 years ago

    As discussed in the Design Partner forum, our use case for DOTS is to rebuild the same functionality with OSGi plugins that scheduled agents provide in the "pre-OSGi Domino era". With DOTS, as well as with our own scheduler plugins running in the HTTP OSGi container, we can execute Java code on a schedule.

    Currently, this code is running with server ID privileges when it accessed Lotus Notes data. Since we expect that a few customer administrators do not like this "openness" (by default, the server ID can open any database, although it cannot access encrypted data), we would like to be able to execute the code under a different security context (Notes session of a different user).

    This is currently only possible with workarounds/hacks. For example, we could create a session with NotesFactory.createSession(host, user, password), but that would required that the user's password is stored somewhere.

    Another workaround is to sign an XPage with the right Notes ID, open it from OSGi via http request and pass the sessionAsSigner back to OSGi through the XPages extensibility APIs. If the XPage is configured for anonymous access, this workaround would work without storing a password, but might lead to further security concerns.

    It would be great if DOTS could address this issue and provide a way to execute code under a different user ID.

    And to make it easier to deploy DOTS on customer servers, the project definitely needs to become a supported part of the standard Domino server.

  • use case: monitoring domino

    By Thomas TS Schneider 7 years ago

    looking for a simple way to extend triggered events in domino i used the triggered feature to monitor several domino actions like search, index update and some others.

    Having no experience with the C API i thought it well be impossible for me to solve that request - but OSGI Tasklet Service gave me an easy way to extend the triggered sample and make a running app.

    Thanks a lot!

    Thomas