Slide 1

Slide 1 text

RETURN OF THE DOTS! Now in the Domino v12… Serdar Basegmez Twitter: @serdar_basegmez Blog: http://lotusnotus.com

Slide 2

Slide 2 text

LONG TIME AGO…

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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)

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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!

Slide 10

Slide 10 text

DOTS OR JAVA AGENTS? • Java Agents are inherently slow…

Slide 11

Slide 11 text

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:

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

EXAMPLE PROJECTS OpenNTF Collaboration Today - FeedMonster

Slide 15

Slide 15 text

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!

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

EXAMPLE PROJECTS Customer Case: CRM - E-Mail Marketing integration

Slide 18

Slide 18 text

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.

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

START USING DOTS TODAY!

Slide 21

Slide 21 text

HOW TO START? - UPGRADERS • Update Eclipse 4.6.2 or later • Recompile your plugins • Upgrade to Domino v12 • Removes existing DOTS plugins • Resets everything

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

THANK YOU!