The document provides an introduction and overview of the Domino OSGi Tasklet Service (DOTS). DOTS allows developers to create tasklets outside of the Domino environment in Eclipse that can then run on a Domino server. The document outlines how to set up the DOTS development environment, create a simple "Hello World" tasklet, debug tasklets, deploy tasklets to the server, and offers tips for using annotations and progress monitoring in tasklets.
Java and in particular OSGi are now very important parts of the Notes/Domino app dev model. In this session, you will learn what techniques can be utilized to process background jobs for XPages applications. Whether you want to replace your existing agents with Domino OSGi Tasklet Services (DOTS) or use Eclipse Jobs to run time-consuming routines without interrupting the use of your application - we will show you real life examples of why and how. You should also consider attending this session to hear about some suprises you don't want to miss...
ICONUK 2013 - An XPager's Guide to Process Server-Side Jobs on IBM® Domino®Serdar Basegmez
Java and in particular OSGi are now very important parts of the Notes/Domino app dev model. In this session, you will learn what techniques can be utilized to process background jobs for XPages applications. Whether you want to replace your existing agents with Domino OSGi Tasklet Services (DOTS) or use Eclipse Jobs to run time-consuming routines without interrupting the use of your application - we will show you real life examples of why and how.
Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!ddrschiw
This session gives you the grand tour of XPages in the Lotus Notes client. You'll discover how easy it is to take your XPages Web apps offline, and then add custom client behaviors that really adapt your application to Lotus Notes client platform. Spread your wings and integrate your application with other client components using real-world use cases that can make a real difference to your business. Learn how to test and debug your XPages client app along the way, and see how XPages supports traditional Lotus Notes client features and get a glimpse of where these integration points will lead in the future. If you have plans for XPages on the Lotus Notes client, this session is a must for you!
Dr. Strangelove, or how I learned to love plugin developmentUlrich Krause
Building a plugin for the Notes client is hard and you need to be a rocket scientist to write a simple menu extension. This is exactly, what I thought, when I first heard of plugin development. In this session, you will learn, how to setup an Eclipse environment, connect it to your Notes Client for debugging and testing, and finally deploy your plugin to your users. Become familiar with the basics, and you will no longer be scared.
Java and in particular OSGi are now very important parts of the Notes/Domino app dev model. In this session, you will learn what techniques can be utilized to process background jobs for XPages applications. Whether you want to replace your existing agents with Domino OSGi Tasklet Services (DOTS) or use Eclipse Jobs to run time-consuming routines without interrupting the use of your application - we will show you real life examples of why and how. You should also consider attending this session to hear about some suprises you don't want to miss...
ICONUK 2013 - An XPager's Guide to Process Server-Side Jobs on IBM® Domino®Serdar Basegmez
Java and in particular OSGi are now very important parts of the Notes/Domino app dev model. In this session, you will learn what techniques can be utilized to process background jobs for XPages applications. Whether you want to replace your existing agents with Domino OSGi Tasklet Services (DOTS) or use Eclipse Jobs to run time-consuming routines without interrupting the use of your application - we will show you real life examples of why and how.
Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!ddrschiw
This session gives you the grand tour of XPages in the Lotus Notes client. You'll discover how easy it is to take your XPages Web apps offline, and then add custom client behaviors that really adapt your application to Lotus Notes client platform. Spread your wings and integrate your application with other client components using real-world use cases that can make a real difference to your business. Learn how to test and debug your XPages client app along the way, and see how XPages supports traditional Lotus Notes client features and get a glimpse of where these integration points will lead in the future. If you have plans for XPages on the Lotus Notes client, this session is a must for you!
Dr. Strangelove, or how I learned to love plugin developmentUlrich Krause
Building a plugin for the Notes client is hard and you need to be a rocket scientist to write a simple menu extension. This is exactly, what I thought, when I first heard of plugin development. In this session, you will learn, how to setup an Eclipse environment, connect it to your Notes Client for debugging and testing, and finally deploy your plugin to your users. Become familiar with the basics, and you will no longer be scared.
AD113 -- IBM Lotus Notes Discussion Template: Next Generation and Other OpenN...ddrschiw
Come to this session to learn about how developers can benefit from OpenNTF. We'll start with an overview and show how you can leverage various assets within your projects, then focus on the next generation of the Lotus Notes Discussion template and demonstrate the improved user experience for both Web and rich client. In the main part of this session, we'll then describe how the application has been built technically, and we'll explain how we've used the JavaViews in the client. Finally, we'll walk you through the XPages design and show how you can take home the techniques and custom controls to re-use in your applications.
A document about what we learnt while introducing Docker at the Tribal Nova company, and the migration of our backend projects as containers.
The layout is really not my strength...
Not leading edge but bleeding edge experience Dockerizing Domino server and running XPages applications. Lotus Notes applications run just fine as well.
In the future IBM will make standing up Domino servers more automated. We do have a configuration step that is manual once the server starts... but it is dockerized and replicates with on prem Domino Domain.
Java Developer Intro to Environment Management with Vagrant, Puppet, and Dock...Lucas Jellema
Creating and managing environments for development and R&D activities can be cumbersome. Quickly spinning up databases and web servers, using physical resources in a smart way, installing application components, and having all the elements talk to each other can take a lot of time. This session takes you by the hand and introduces you to Vagrant and Oracle VM VirtualBox for quickly provisioning VMs in which Docker containers run platform components, applications, and microservices—all set up by use of Puppet and interacting with Git(Hub). You’ll start from zero on your laptop and end with both local and public cloud environments in which to develop, test, and run various types of applications. Lean governance and evolution of the environments are discussed too.
Using Docker to build and test in your laptop and JenkinsMicael Gallego
Docker is changing the way we create and deploy software. This presentation is a hands-on introduction to how to use docker to build and test software, in your laptop and in your Jenkins CI server
Satyajit Tripathi has presented and evangelized OpenSolaris and Its Advanced Technologies at MSC OS Conference 2009 at KL Malaysia. He is also blogging on http://blogs.sun.com/stripathi.
Xavi Carrillo's talk "Puppet and Telefonica R&D" from Puppet Camp Barcelona 2013. Learn about upcoming Puppet Camps at http://puppetlabs.com/community/puppet-camp/
AD113 -- IBM Lotus Notes Discussion Template: Next Generation and Other OpenN...ddrschiw
Come to this session to learn about how developers can benefit from OpenNTF. We'll start with an overview and show how you can leverage various assets within your projects, then focus on the next generation of the Lotus Notes Discussion template and demonstrate the improved user experience for both Web and rich client. In the main part of this session, we'll then describe how the application has been built technically, and we'll explain how we've used the JavaViews in the client. Finally, we'll walk you through the XPages design and show how you can take home the techniques and custom controls to re-use in your applications.
A document about what we learnt while introducing Docker at the Tribal Nova company, and the migration of our backend projects as containers.
The layout is really not my strength...
Not leading edge but bleeding edge experience Dockerizing Domino server and running XPages applications. Lotus Notes applications run just fine as well.
In the future IBM will make standing up Domino servers more automated. We do have a configuration step that is manual once the server starts... but it is dockerized and replicates with on prem Domino Domain.
Java Developer Intro to Environment Management with Vagrant, Puppet, and Dock...Lucas Jellema
Creating and managing environments for development and R&D activities can be cumbersome. Quickly spinning up databases and web servers, using physical resources in a smart way, installing application components, and having all the elements talk to each other can take a lot of time. This session takes you by the hand and introduces you to Vagrant and Oracle VM VirtualBox for quickly provisioning VMs in which Docker containers run platform components, applications, and microservices—all set up by use of Puppet and interacting with Git(Hub). You’ll start from zero on your laptop and end with both local and public cloud environments in which to develop, test, and run various types of applications. Lean governance and evolution of the environments are discussed too.
Using Docker to build and test in your laptop and JenkinsMicael Gallego
Docker is changing the way we create and deploy software. This presentation is a hands-on introduction to how to use docker to build and test software, in your laptop and in your Jenkins CI server
Satyajit Tripathi has presented and evangelized OpenSolaris and Its Advanced Technologies at MSC OS Conference 2009 at KL Malaysia. He is also blogging on http://blogs.sun.com/stripathi.
Xavi Carrillo's talk "Puppet and Telefonica R&D" from Puppet Camp Barcelona 2013. Learn about upcoming Puppet Camps at http://puppetlabs.com/community/puppet-camp/
In here I am talking about Amainoglycosides, its classification, mechanism of action, adverse effect, clinical uses of aminoglycoside, Pharmacokinetics..
OpenNTF Webinar - October 2021: Return of the DOTSSerdar Basegmez
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
Containers, Docker, and Microservices: the Terrific TrioJérôme Petazzoni
One of the upsides of Microservices is the ability to deploy often,at arbitrary schedules, and independently of other services, instead of requiring synchronized deployments happening on a fixed time.
But to really leverage this advantage, we need fast, efficient, and reliable deployment processes. That's one of the value propositions of Containers in general, and Docker in particular.
Docker offers a new, lightweight approach to application portability.It can build applications using easy-to-write, repeatable, efficient recipes; then it can ship them across environments using a common container format; and it can run them within isolated namespaces which abstract the operating environment, independently of the distribution,versions, network setup, and other details of this environment.
But Docker can do way more than deploy your apps. Docker also enables you to generalize Microservices principles and apply them on operational tasks like logging, remote access, backups, and troubleshooting.This decoupling results in independent, smaller, simpler moving parts.
This presentation by Andrew Aslinger discusses best practices and pitfalls of integrating Docker into Continuous Delivery Pipelines. Learn how Andrew and his team used Docker to replace Chef to simplify their development and migration processes.
Introduction to Docker for NodeJs developers at Node DC 2/26/2014lenworthhenry
This was my presentation to the Node DC meetup on using Docker for Node JS projects. The code for the demonstration is available at github: https://github.com/lenworthhenry/Docker-Example
Dockerizing Symfony2 application. Why Docker is so cool And what is Docker? And what are Containers? How they works? What are the ecosystem of Docker? And how to dockerize your web application (can be based on Symfony2 framework)?
Not leading edge but bleeding edge experience Dockerizing Domino server and running XPages applications. Lotus Notes applications run just fine as well.
In the future IBM will make standing up Domino servers more automated. We do have a configuration step that is manual once the server starts... but it is dockerized and replicates with on prem Domino Domain.
It is the understanding of docker and how it was useful in day-to-day tasks, some basic difference between old and new. At last my learnings and mistake while doing it all.
IBM Think Session 8598 Domino and JavaScript Development MasterClassPaul Withers
Session from IBM Think 2018. Note: the architecture used is an extreme case of what's possible (and it could go further), rather than a real-world expectation
5/13/13 presentation to Austin DevOps Meetup Group, describing our system for deploying 15 websites and supporting services in multiple languages to bare redhat 6 VMs. All system-wide software is installed using RPMs, and all application software is installed using GIT or Tarball.
In this talk John Zaccone will present tips and best practices for developing dockerized applications. We will start with the simple question: "Why Docker?", then dive into practical knowledge for developers to apply on their own. John will cover best practices concerning Dockerfiles and the best tools to use for developing. We will also talk about the "hand-off" between developer and operations and how the two roles can work together to address broad issues such as CI/CD and security. After John's talk, stay tuned for Scott Coulton's talk that will dive deeper into Docker for Ops.
Our tech process, how we make apps using React Native on Gitlab with Gitlab CI (Continuous Integration) and CD (Continuous Delivery)
Reveal JS source on GitHub: https://github.com/Lingvokot/gitlab-and-lingvokot
From development environments to production deployments with Docker, Compose,...Jérôme Petazzoni
In this session, we will learn how to define and run multi-container applications with Docker Compose. Then, we will show how to deploy and scale them seamlessly to a cluster with Docker Swarm; and how Amazon EC2 Container Service (ECS) eliminates the need to install,operate, and scale your own cluster management infrastructure. We will also walk through some best practice patterns used by customers for running their microservices platforms or batch jobs. Sample code and Compose templates will be provided on GitHub afterwards.
At Engage 2019 I did a session about a not so objective view on frontend development, where I compared the big 3 frontend technologies: Angular, ReactJs and VueJS.
Now it's 2024: Let me explain my latest view on these frameworks.
Is Angular still my preferred frontend technology?
Are there new kids on the block?
Let's discuss the good, bad and the ugly of each frontend technology.
Engage 2020: Hello are you listening, There is stream for everythingFrank van der Linden
The world is changing in a event driven world
Event driven architecture is not a new technology. IBM MQ is already 25 years old.
The popularity is increasing, because it is a robust, decoupled way to exchange data.
Today there are new popular 'new kids on the block'. Kafka is one of them and gets lots of attention also in the enterprise.
The principle however are still the same, called Pub Sub principle.
HCL will add to the App Dev pack the possibility to consume and produce to a broker/stream.
There are frameworks who helps you to focus on the business logic.
In this session I will explain this principle and show you that is not that difficult to make use of it. Connect your existing code to a service bus or queue, producing and consuming.
Today almost every product has an API, to integrate in other products or to made the data available to the outside world. Most API’s are using traditional patterns and technology. With the rise of Angular, React and other modern frameworks there is a need for non blocking API’s. Meet Reactive streams, like Spring Webflux, to super charge your API.
In this session I will tell about and show you Reactive API’s and more
NCUG 2019: Spring forward: an introduction to Spring boot and Thymeleaf for (...Frank van der Linden
The world of (XPages) developer is moving fast. Customers rethinking platforms and solutions. Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run". In combination with Thymeleaf can it be good alternative for your XPages applications.
In this session I give an introduction of Spring Boot and Thymeleaf and how to get started. I will show the differences and similarities between Spring Boot in combination with Thymeleaf and XPages.
I will explain the challenges I faced when moving an application.
Engage 2019: The good, the bad and the ugly: a not so objective view on front...Frank van der Linden
In the front end development world there are 3 dominant players, Angular, ReactJS and VueJs.
Every framework has a strong fan base. And of course lots of pros and cons The best way to learn more about the strengths and weaknesses of the frameworks, I have build the same application with all these frameworks. In this session I will explain my experience with each framework and try to highlight the good the bad and the ugly. Expect to see code
The demo application can be found on GitHub, https://github.com/flinden68/my-events-demo-application
Icon UK 2018 - Spring forward: an introduction to Spring boot and Thymeleaf f...Frank van der Linden
The world of (XPages) developer is moving fast. Customers rethinking platforms and solutions. Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run". In combination with Thymeleaf can it be good alternative for your XPages applications.
In this session I give an introduction of Spring Boot and Thymeleaf and how to get started. I will show the differences and similarities between Spring Boot in combination with Thymeleaf and XPages.
I will explain the challenges I faced when moving an application.
DEV-1129 How Watson, Bluemix, Cloudant, and XPages Can Work Together In A Rea...Frank van der Linden
The role of a human resources employee can be hard work when it comes to filtering hundreds or thousands of job applications. Often, the cover letters are submitted in unstructured formats, making data organization and identification of interesting job applications difficult. In this session, we will share a look behind the scenes of the award-winning HR Assistant application, which uses a combination of IBM Bluemix, Watson and a Cloudant database to improve the recruitment process. See how we integrate these different technologies and display the content graphically using XPages, along with how the development progressed and the challenges we faced.
How to create a OSGi Servlet that runs on a Domino server using code from another plugin. Extra is a web app servlet which runs on every other Java Server
Let's dive deeper into the world of ODC! Ricardo Alves (OutSystems) will join us to tell all about the new Data Fabric. After that, Sezen de Bruijn (OutSystems) will get into the details on how to best design a sturdy architecture within ODC.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
5. Introduction of OSGi
Open Services Gateway initiative
– Started in 1999
– Still improved
– module system and service platform
OSGi bundles
– Can be installed remotely.
– No reboot required
– Lifecycle
6. Introduction of OSGi
OSGi and IBM Notes/Domino 9+
– Since 8.5.2
– Extension points
– Extension Library
– DOTS (Domino OSGi Tasklet Service)
– OpenSocial Container
8.5.3
8.5.2
7. Introduction of DOTS
Domino OSGi Tasklet Service
– Easy development
– Outside in Eclipse IDE
– Tasklets can run: scheduled, manual
Next generation agents for Domino
OpenNTF project by IBM since April, 2011 (replaced JAVADDIN project)
Included in IBM Domino 9 Social Edition
9. Introduction of DOTS
DOTS Tasklets outperforms over Java Agents!
AMGR Prepare Java
JVM Load Agent
Java Agent: launches a
Initializes
and JNI
Bytecode
Run!
Thread interfaces
Run!
DOTS tasklet:
Everything is ready to run
> tell amgr run "testXPagescrash.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 'testXPagescrash.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 'testXPagescrash.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...
10. Introduction of DOTS
DOTS versus Agents
– AMGR is old and complicated
– Range
̶ Agents are database depended
̶ DOTS run server wide
– DOTS are more flexible
̶ Precise timing
12. Setup your environment
DOTS should be installed into a local IBM Domino server
– For IBM Domino 9 Social Edition Public Beta, you don’t need to do anything.
– For versions 8.5.2 and 8.5.3,
̶ Download DOTS package from OpenNTF
̶ You will also need some Eclipse plugins from Eclipse 3.6.2+
13. Setup your environment
Create some folders inside your Domino folder
– [Domino Program Files]osgi-dotsrcpeclipseplugins
– [Domino Program Files]osgi-dotssharedeclipseplugins
Copy files from Eclipse install directory
These plugins will be
copied from Eclipse
installation
[Eclipse]plugins
14. Setup your environment
The DOTS package contains the executables
– The jar files in the newly created directories
– The executables in the Domino program directory
Copy to
[Domino]osgi-dotssharedeclipseplugins
Copy to
[Domino]osgi-dots
15. Setup your environment
Download Eclipse
– http://www.eclipse.org/downloads
– Eclipse >3.6.2(Eclipse IDE for Java EE Developers)
Download projects from OpenNTF
– Domino Debug Plug-in from XPages SDK for Eclipse RCP:
http://tiny.cc/XPagesSDK
16. Setup the Domino Debug Plugin
Accept all next steps
Restart Eclipse
17. Setup the Domino Debug Plugin
Check Prefences,if Domino Debug Plugin is installed
18. Setup the target platform
[Domino Program Files]osgi-dotsrcpeclipse
[Domino Program Files]osgi-dotssharedeclipse
23. My First DOTS tasklet
Import DOTS extensions
– Deselect «Show only extension points from the required plug-ins»
– Find & pick «com.ibm.dots.task» extension from the list
– Correct the warning in the Manifest.mf tab, then Save & Close Manifest
view.
26. My First DOTS tasklet
Add some code.In this case a log statement, which will printed to the console.
27. My First DOTS tasklet
Modify the plugin.xml
name of the class
tasklet id
28. My First DOTS tasklet
Now we can run our tasklet
DOTS will run on the Domino server.
There are two ways to run from Eclipse IDE
– Run
– Run and debug
29. My First DOTS tasklet
Create a “run configuration”
30. My First DOTS tasklet
PDE Configuration file should be created, the first time
PDE file is created in the dots workspace
37. Deploy your tasklet
DOTS plugins can be deployed as OSGi bundle
– As jar file in OSGi plugins folder
– As update site
Disable debug parameters
– Delete PDE runtime configuration (pde.launch.ini)
– Disable suspend feature in debugging (DOTS_DEBUGSUSPEND)
38. Deploy the DOTS Tasklet
Create a jar file from the plugin
̶ Right Click Export Deployable plug-ins and fragments...
39. Deploy the DOTS Tasklet
Select the plugin and destination
Place exported JAR file into plugins folder, then restart DOTS task
[Domino Program Files]osgi-dotssharedeclipseplugins
40. Deploy the DOTS Tasklet
Another deploy method, DOTS profiles
– It can stored inside a Notes database
– Can run in is own profile container
– With his own security settings
– Can started seperatly “tell profilename run abc”
41. Deploy the DOTS Tasklet
Creating Profile Repository as NSF
– Create an empty Notes database, set ACL as required
– Configure DOTS to use profiles database
̶ tell dots quit
̶ set config OSGI_CONFIGURATION_DB=dotsprofiles.nsf
̶ load dots
̶ tell dots profileCreate dots
– DOTS profile is created
– You can import an updatesite in the profile
42. Deploy the DOTS Tasklet
Create a Feature project in Eclipse
43. Deploy the DOTS Tasklet
Create the update site project in Eclipse
48. Tips and tricks
Some tips
– Schedule tasks
– OSGi allows you to refresh bundles without restart, here is how:
̶ Find out the «bundle-id» for the plug-in
̶ Refresh the bundle
49. Tips and tricks
More tips...Annotations
– Annotations is supported in DOTS.
– Powerfull way of specify for each method, what to do
@RunOnStart
public void runOnStart( IProgressMonitor monitor ){
logMessage("Annotated onStart method");
}
@Run( id="manual")
public void runManual( String[] args, IProgressMonitor monitor ){
logMessage("Annotated run method with id=manual");
}
@RunOnStart
@RunEvery( every=60, unit=RunUnit.second )
@HungPossibleAfter( timeInMinutes=1 )
public void runEvery60seconds( IProgressMonitor monitor ){
logMessage( "Called from annotated method every 60 seconds");
}
50. Multiple profiles
You may create more than one profiles.
– For testing
– Tasklets that you use occasionally
– Tasklets with different security needs
– Heavily loaded Tasklets
51. Life-cycle for a scheduled Tasklet
When a tasklet runs on schedule, DOTS class loader will create an instance from your tasklet class. This
instance will not be disposed until DOTS process stops.
52. Multiple purpose Tasklet
Same Tasklet, different Java instances
In multiple scheduled runs
– persistent objects, stays in memory
In multiple manual runs
– unloaded from memory afterwards
53. Tips and tricks
Logging
– Try not to use System.out.println. (No output to
log.nsf)
– Instead, use logMessage(...) and
logException(...)
Progress Monitoring
– IProgressMonitor monitor argument passed on tasklet Vector<?> views = db.getViews();
methods. monitor.beginTask( "List the views",
views.size() ); Init with # of steps
– Very useful for tasklets running long time.
for ( Object view : views ){
if ( monitor.isCanceled() ){
break;
Break if canceled.
}
logMessage("t" +
((View)view).getName() );
try {
Thread.sleep( 1000
);
} catch (InterruptedException e)
{
e.printStackTrace();
}
monitor.worked( 1 );
One step
completed
}