Develop and run OSGi level server Tasklets for Domino • Run background tasks in a lightweight scalable container • Tasklet: A lightweight server task • Manual (console commands / socket trigger) • Scheduled or on server start • Triggered (Hooks through data events) • Tooling: Eclipse IDE + OpenNTF XPagesSDK • Leverage existing OSGi assets
Named as JAVADDIN project in 2010 • Renamed as OSGi Tasklet Service in 2011 • Added to IBM Domino 9 Social Edition in 2013 • Installed with the OpenSocial add-on • For internal use (Out of Support) • Removed in version 10 in 2018
Separate JVM and OSGi Container • Supports multiple profiles • Virtual containers • Separate service threads • Great for scalability Source: Domino OSGi Tasklet Service (DOTS) Documentation
your application? • Accessing Domino resources • Long-running • Unattended • Scalable • High performance • Great alternative to Java agents • More compatible • Much faster / scalable • Less buggy
• More time consuming to develop/maintain/deploy • Steep learning curve • Java, OSGi, Eclipse, Deployment, etc. • Attended background tasks • If not scheduled or not triggered by internal event • Some form of user interaction
• Easy development/maintenance/deployment • Well-integrated into Domino Designer • Wide range of triggers • Scheduling • Web/XPages/Notes actions • High level database events • Good Security • Code signing, ACL, etc. • Runs on Notes client too… • However, they are not perfect!
• Old and Buggy • Incompatible with many modern libraries • Design limitations (SSL, reflection, etc) • Buggy behaviours (Memory leak in JAR files) • Java Agents are not scalable • A resource-intensive agent can block other agents
• “DOTS tasklets within XPages” (credits to Paul Withers) • Part of the OpenNTF Domino API • Differences: • XOTS: Shares context and code base with XPages apps • Developed as Java classes right in the DDE • Utilises all functionalities of ODA (logging, auto-recycling, etc.) • Disadvantages • Shares the same resources with XPages apps. • XOTS is a community-driven effort
• Curators adding news stories manually • Find the news story • Adjust title, summary, etc. • Publish • Manual import is a time consuming process • Curator might save huge time if some blog posts were imported automatically!
and Marketing Automation apps • Notes Client apps • Multiple facilities, multiple Domino servers • Campaign and Newsletter e-mails • A third party E-mail Marketing service • Upload CSV file to a secure FTP (SCP) server • All uploads are transient.
• Watching queue every minute • Very small footprint for queue monitoring • Reuse Java code already developed before User builds a target query for the campaign Predefined target lists for newsletters UploadJob Queue DOTS Tasklet (Scheduled / Manual) • Fetch next UploadJob • Run query • Convert to CSV file • Compress • Upload to SCP Server Upload Job #1 Upload Job #2 … Upload Job #N
for development • Minimum Eclipse 4.6.2 (Neon 2) • Designer might be used with a few unsupported settings. • “Unsupported” means “exciting” (like bungee jumping) • Install the latest OpenNTF XPagesSDK for testing/debugging • Local Domino Server for development is recommended • File-level access between Eclipse and Domino is needed • For Mac users, Linux/Windows VM works well • Development setup is easy. • DOTS documentation by HCL • BP207 slides from IBM Connect 2013 • Notesin9 - Episode 93: Introduction to DOTS