Upgrade to Pro — share decks privately, control downloads, hide ads and more …

OpenNTF Webinar - October 2021: Return of the DOTS

Avatar for sbasegmez sbasegmez
October 14, 2021

OpenNTF Webinar - October 2021: Return of the DOTS

My part of the OpenNTF Webinar session - October 2021: "What we like about Domino/Notes 12, recommended new features to try"

Complete Session: https://www.youtube.com/watch?v=d6Aoa_YcOLM

Avatar for sbasegmez

sbasegmez

October 14, 2021
Tweet

More Decks by sbasegmez

Other Decks in Programming

Transcript

  1. RETURN OF THE DOTS! Now in the Domino v12… Serdar

    Basegmez Twitter: @serdar_basegmez Blog: http://lotusnotus.com
  2. WHAT IS DOTS? • DOTS: Domino OSGi Tasklet Services •

    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
  3. HISTORY OF DOTS • OpenNTF project contributed by IBM •

    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
  4. DOTS RETURNED TO DOMINO V12! • Installed with the Core

    product • Support: Windows 64 and Linux 64 • Upgraded to Eclipse OSGi 4.6.2 (Neon 2)
  5. OVERVIEW OF DOTS • DOTS task coordinate its tasklets/threads •

    Separate JVM and OSGi Container • Supports multiple profiles • Virtual containers • Separate service threads • Great for scalability Source: Domino OSGi Tasklet Service (DOTS) Documentation
  6. WHEN SHOULD YOU USE DOTS? • Need Background processing in

    your application? • Accessing Domino resources • Long-running • Unattended • Scalable • High performance • Great alternative to Java agents • More compatible • Much faster / scalable • Less buggy
  7. WHEN SHOULDN’T YOU USE DOTS? • Expensive for simple tasks

    • 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
  8. DOTS OR JAVA AGENTS? • Agents are easier to develop

    • 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!
  9. DOTS OR JAVA AGENTS? • Java Agents are inherently slow…

    Run! DOTS tasklet: Everything is ready to run > tell amgr run "test\XPagescrash.nsf" 'LongJobAgent' 
 09.11.2012 19:38:39 JVM: Java Virtual Machine initialized. 
 09.11.2012 19:38:39 AMgr: Start executing agent 'LongJobAgent' in 'test\XPagescrash.nsf' 
 09.11.2012 19:38:39 Agent Manager: Agent printing: 181349 
 09.11.2012 19:41:02 Agent Manager: Agent printing: 2227 
 09.11.2012 19:41:02 Agent Manager: Agent printing: Finished in 143 secs... - 
 09.11.2012 19:41:02 AMgr: Agent 'LongJobAgent' in 'test\XPagescrash.nsf' completed execution > load dots > Listening for transport dt_socket at address: 8001 09.11.2012 19:42:40 Domino OSGi Tasklet Container started ( profile DOTS ) > 181349 > 2227 09.11.2012 19:43:22 [DOTS] (annotated) Finished in 41 secs... AMGR launches a Thread JVM Initializes Prepare Java and JNI interfaces Load Agent Bytecode Run! Java Agent:
  10. DOTS OR JAVA AGENTS? • Java Agents are inherently slow…

    • 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
  11. DOTS OR XOTS? • XOTS might be a feasible alternative…

    • “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
  12. FEEDMONSTER • DOTS module in OpenNTF Collaboration Today • Problem:

    • 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!
  13. FEEDMONSTER • DOTS module designed to pre-fetch new blog posts

    Blog Feeds Queue Documents Feed URL #1 Feed URL #2 … Feed URL #N Feed Monster Manual Fetch Scheduled Queue Refresh Manual Queue Refresh Scheduled Fetch Domino Console Commands Blogs
  14. E-MAIL MARKETING INTEGRATION • A customer case • CRM, Sales

    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.
  15. E-MAIL MARKETING INTEGRATION • Tasklet can handle long-running upload process

    • 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
  16. HOW TO START? - UPGRADERS • Update Eclipse 4.6.2 or

    later • Recompile your plugins • Upgrade to Domino v12 • Removes existing DOTS plugins • Resets everything
  17. HOW TO START? - NEWBIES • Eclipse IDE is needed

    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