SlideShare a Scribd company logo
w w w . l d c v i a . c o m
Finding your way
out of the Domino maze
Julian Woodward | LDC Via
w w w . l d c v i a . c o m
Looking for the
perfect answer to
a difficult question…
is like the blind man…
in the dark room…
looking for the black cat…
… that isn’t there.
w w w . l d c v i a . c o m
The session is NOT about…
• Persuading anybody to leave Domino
• Persuading anybody to stay on Domino
• Persuading anybody to move to Domino
• An LDC Via sales pitch
• Email migration
w w w . l d c v i a . c o m
The session is about…
• Examining a difficult issue
• From all sides
• Casting some light into the darkness
• Sharing some ideas
w w w . l d c v i a . c o m
About Me
• UK – London – Oxfordshire
• 80s/90s – C, Assembler, Prolog, Clipper, SQL
• 90s/00s – Notes/Domino (1993), MS Access,
Visual Studio, VB, Java, Professional classical
singer
• 2005 – Independent / freelance
• 2008 – London Developer Coop -> “LDC”
• 2014+ – LDC Via and KEEP.WORKS
w w w . l d c v i a . c o m
What we will cover
• Where we are now
• Technical considerations
• Migration approaches
• How to get started
• How to design the project
• Relevant technologies and platforms
w w w . l d c v i a . c o m
Where are we now?
w w w . l d c v i a . c o m
Where are we now?
• Two parts to this question
• Business
• Technical
w w w . l d c v i a . c o m
Business context
• Budgetary constraints
• Major business events
• Political considerations
• Regulatory changes
• Notes/Domino woven throughout business
• Often unaware of scale
w w w . l d c v i a . c o m
IT Context
• Trend: Virtualisation -> Cloud -> PaaS/SaaS
• Old platforms (R6? R7?)
• Off-the-shelf vs bespoke software
• Restructuring
• Offshoring
• Personalities
w w w . l d c v i a . c o m
Defining the challenge
w w w . l d c v i a . c o m
What is “migrating”?
• Single application or entire installation
• Notes vs Domino
• “Everything is going to SharePoint”
w w w . l d c v i a . c o m
Technical landscape
• Notes applications
• ‘Classic’ Domino applications
• XPages Domino applications
w w w . l d c v i a . c o m
Notes/Domino challenges
• Scheduled agents
• Triggered agents
• Server-side integration
• API access and server add-ins
w w w . l d c v i a . c o m
Notes/Domino challenges
• Mail-out functionality
• Mail-in functionality
• Rich text editor capabilities
• Readers and authors fields
• Response hierarchies
• Folders
w w w . l d c v i a . c o m
Domino challenges
• Classic Domino applications
• Complex interlinked code base
• Forgotten Domino ‘hacks‘
• XPages applications
• Domino version-specific behaviour
• Use of OpenNTF projects
• Code base can be similarly complex
w w w . l d c v i a . c o m
Notes client challenges
• Rich client environment
• Client-side integration
• Doclinks
• Offline use
• User habits and working practices
• Copy/paste between
applications/databases
• Copy/paste to/from email
w w w . l d c v i a . c o m
Summary
• A lot of factors to consider
• High-level (business, strategy)
• Environmental (regulation, policy)
• Technological (complexity of challenge)
w w w . l d c v i a . c o m
Where do we go from here?
w w w . l d c v i a . c o m
Where do we go from here?
Wholesale “big-bang"
or
“best fit” approach
w w w . l d c v i a . c o m
“Big bang” approach
• Normally business-led decision
• Single destination platform
• Salesforce
• SharePoint
• Not really a big bang – long-term work
w w w . l d c v i a . c o m
“Best fit” approach
• No single destination platform
• Need to select appropriate route for each
application
• An IT-led approach
• A lot more decisions to take
• Possibly a ‘better' outcome
w w w . l d c v i a . c o m
Options
• Mothball
• Archive
• Re-skin
• Abstract
• Start fresh
• Application migration
• Data migration
w w w . l d c v i a . c o m
Option 1: Mothball
• PROs
• Quick
• No investment
• CONs
• Still running Domino
• Application is ‘dead’
• Not a migration
Make application read-only and leave it running
w w w . l d c v i a . c o m
Option 2: Archive
• PROs
• Low cost
• Quick
• Getting off Domino
• CONs
• Application is ‘dead’
• Limited access
• Not a migration
Extract data to static store
w w w . l d c v i a . c o m
Option 3: Re-skin
• PROs
• Easy transition
• May solve a problem
• Existing skills(?)
• CONs
• Still using Domino
• Significant
investment in a
temporary solution
• Not a migration
Data stays on Domino but through a new UI
w w w . l d c v i a . c o m
Option 4: Start fresh
• PROs
• Clean
• Re-scope
• No data migration
• CONs
• Still need to mothball
or archive
• Loss of access to
data
• Not a migration
Leave existing data behind and build new application
w w w . l d c v i a . c o m
Option 5: Abstract
• PROs
• Good architecture
• Half-way house
• No data migration
• CONs
• Data still on Domino
• Not a migration
Data stays on Domino but as data store only
w w w . l d c v i a . c o m
Option 6: App Migration
• PROs
• Quick
• Comprehensive(?)
• Move off Domino
• CONs
• Options limited
• Complexity of code
• Code maintainability
• Data model
• Completion work
Machine migration of full application: both data and code
w w w . l d c v i a . c o m
Option 7: Data migration
• PROs
• Flexible
• Good architecture
• Genuine migration
• CONs
• Maximum effort
• How to do the data
migration?
• Challenges with
messy Domino data
Migrate data, and rewrite application
w w w . l d c v i a . c o m
Options
w w w . l d c v i a . c o m
Data migration
• Database type
• SQL: Oracle, MySQL, DB2, SQL Server, …
• NoSQL: MongoDB, Cloudant, Couch, …
• Data migration approach
• Manual – maximum control, maximum work
• Tool-based – less control, less work
• Data gotchas
• Multi-value fields, Readers/Authors, response
hierarchies, doclinks, dirty data, …
w w w . l d c v i a . c o m
How do we begin?
w w w . l d c v i a . c o m
How do we begin?
• Take the “eat an elephant” approach
• Get a sense of scale, early
• It’s a programme of work …
• … consisting of multiple workstreams …
• … consisting of multiple projects.
• It’s just Another Thing To Do
• Emotion and psychology
w w w . l d c v i a . c o m
Start with 2 vital questions
1. What are the most important applications?
2. What are the most urgent needs?
w w w . l d c v i a . c o m
Question 1: what are the most
important applications?
• “Important” could mean:
• Revenue-generating
• High-profile
• Used by C-level
• Mission-critical
• Dependency-laden
• Who knows…
w w w . l d c v i a . c o m
Question 1: what are the most
important applications?
• Who knows what’s important?
• Engage with the business
• Use tools to give ‘scientific’ answers re apps
• TeamStudio
• Panagenda
• Others(?)
• Remember:
Business priorities are more “important” than
IT priorities
w w w . l d c v i a . c o m
Question 2: what are the
most urgent needs?
• Often the same as the ‘important’ ones
• But: “important” <> “urgent"
• Focus on the “important but not urgent”
• Drivers:
• Acquisition
• Restructuring
• Hard deadlines
• Managerial ‘decisiveness‘
• Political (promises made)
w w w . l d c v i a . c o m
Remember: it’s just a
project
• Normal project management rules apply
• Engage stakeholders
• Sponsors
• Evangelists
• Build a team
• Clarity of goals, timescales, objectives, CSFs
• Change management
w w w . l d c v i a . c o m
Taking the first steps
w w w . l d c v i a . c o m
Taking the first steps
• Audit the applications
• Categorise the applications
• Ascertain preferred option(s) per application
• Evaluate technologies
w w w . l d c v i a . c o m
Auditing applications
• What you need to know (a suggestion):
Urgent: Y / N (reason)
Important: Y / N (reason)
Business sponsor: (name)
Department/function: (name)
Type(s): Notes / Classic / XPages
Complexity rating: (score)
Deadline: (date) (details)
Used offline?: Y / N (details)
Related application(s) (details)
w w w . l d c v i a . c o m
Auditing applications
• Complexity
• Size (Gb, document count)
• Number of forms, views
• Number of agents, script libraries, subforms,
roles, etc
• Lines of Java/LotusScript
• Size of an empty template copy (Mb)
• Age
• Number of users
• Geography (users, number of replicas)
• Use tooling to help with this
w w w . l d c v i a . c o m
Categorising applications
• Analyse top-down by
• Urgency
• Importance
• Department
• Complexity
• Deadline
• User base
w w w . l d c v i a . c o m
Ascertain options
• Outcome, per application
• Bin / Archive / Merge / Migrate
• Consider
• Lifespan
• ROI
• Quick wins?
• Identify the quick wins, get early success
• Pay attention to the urgent vs important
w w w . l d c v i a . c o m
Options
w w w . l d c v i a . c o m
Evaluate Technologies
• Languages
• Frameworks
• Databases
• Tools
w w w . l d c v i a . c o m
Languages / Frameworks
• Java
• Vaadin
• C#
• .NET MVC
• Javascript
• Node.js + Express
• Angular
• React
• Be realistic
w w w . l d c v i a . c o m
Relational databases
• Options
• DB2
• Oracle
• SQL Server
• MySQL
• PostgreSQL
• Best for some applications
• Cleaning and restructuring
• Data migration likely to be a major project
w w w . l d c v i a . c o m
NoSQL databases
• “Not only SQL”
• Non-relational
• Distributed
• Open-source
• Horizontally scalable
• Schema-less
• Replicating
• Several types
• Characterised by scalability and flexibility
w w w . l d c v i a . c o m
NoSQL database types
• Key-Value stores
• Redis, Dynamo, Oracle NoSQL
• Wide-column stores
• Cassandra, Hadoop Hbase
• Graph databases (based on graph theory)
• Neo4J, ArangoDB
• Document stores
• MongoDB, LDC Via, Couchbase, CouchDB,
Azure DocumentDB, Cloudant
w w w . l d c v i a . c o m
NoSQL Document Store
“Designed for storing, retrieving, and managing document-oriented
information, also known as semi-structured data. Document-
oriented databases are one of the main categories of NoSQL
databases, and the popularity of the term "document-oriented
database" has grown with the use of the term NoSQL itself. XML
databases are a subclass of document-oriented databases that are
optimized to work with XML documents.”
• Document-centric
• Familiar concepts
• Most popular
w w w . l d c v i a . c o m
NoSQL databases
w w w . l d c v i a . c o m
NoSQL vs SQL databases
w w w . l d c v i a . c o m
Where does LDC Via fit?
w w w . l d c v i a . c o m
About LDC Via
• NoSQL “Document store” database
• Specifically optimised for Domino migrations
• Cloud-based Platform-as-a-Service
• Ireland, Switzerland (US soon)
• On-premises also available
• Simple tiered pricing model
• Built on top of MongoDB
w w w . l d c v i a . c o m
About LDC Via
• Domino-like functionality
• Documents
• Response hierarchies
• Readers/Authors fields
• Rich text
• File attachments
• Doclinks
• Dirty/inconsistent data
w w w . l d c v i a . c o m
About LDC Via
• Migration tools
• Web-based tool for web-facing servers
• Installable tool
• Simplest and quickest data migration
• No cleaning or remodelling
• Data is recognisably “the same”
• You can focus on developing the application
w w w . l d c v i a . c o m
About LDC Via
• RESTful API
• JSON-based
• Covers all aspects
of LDC Via including
user management
• Sample code
• KEEP.WORKS
w w w . l d c v i a . c o m
About LDC Via
API example, to read a “collection”
https://<endpoint>/collections/<database>/<collect
ion>?<options>
e.g.
https://eu.ldcvia.com/1.o/collections/my-
crm/person?count=30&sortasc=surname
Pass authenticated credentials with each
request: an apikey or a session cookie.
w w w . l d c v i a . c o m
About LDC Via
• Data browser
• Standard templates
• Discussion, TeamRoom, Document Library
• Email (read-only)
• Export to Excel, PDF, EML
• LDC Via Lens: point-and-click simple apps
w w w . l d c v i a . c o m
Summary
• Different meanings of “migration”
• Big-bang vs best-fit
• Analysis, planning, and proper project
management
• Change management
• Lots of decisions to take
• NoSQL now mainstream
• It’s an opportunity…
w w w . l d c v i a . c o m
Useful Links
• Webinar recordings: “Introducing LDC Via”
and ”Developing with LDC Via”
• https://www.youtube.com and search for “LDC Via”
• http://nosql-database.org
• http://db-engines.com
• https://code.visualstudio.com
• https://vaadin.com
• https://nodejs.org
• https://github.com/reactjs
• https://angularjs.org
• http://ldcvia.com
• http://api.ldcvia.com
w w w . l d c v i a . c o m
Contact Me
• @woowar
• julian@ldcvia.com
• Download slides
http://blog.ldcvia.com

More Related Content

Viewers also liked

Manifesto Blogibarometri 2013
Manifesto Blogibarometri 2013Manifesto Blogibarometri 2013
Manifesto Blogibarometri 2013
ManifestoPR
 
STORYBOARD..
STORYBOARD.. STORYBOARD..
STORYBOARD..
Bekah3000
 
Brand image
Brand imageBrand image
Brand image
Bekah3000
 
Mentoria Startup Farm / Ahead Visa - Go to Market e Canais
Mentoria Startup Farm / Ahead Visa - Go to Market e CanaisMentoria Startup Farm / Ahead Visa - Go to Market e Canais
Mentoria Startup Farm / Ahead Visa - Go to Market e Canais
Rodrigo Dantas
 
20130912_mit _geordie_rose
20130912_mit _geordie_rose20130912_mit _geordie_rose
20130912_mit _geordie_rose
Geordie Rose
 
20130911 idc hpc_geordie_rose_final
20130911 idc hpc_geordie_rose_final20130911 idc hpc_geordie_rose_final
20130911 idc hpc_geordie_rose_final
Geordie Rose
 

Viewers also liked (6)

Manifesto Blogibarometri 2013
Manifesto Blogibarometri 2013Manifesto Blogibarometri 2013
Manifesto Blogibarometri 2013
 
STORYBOARD..
STORYBOARD.. STORYBOARD..
STORYBOARD..
 
Brand image
Brand imageBrand image
Brand image
 
Mentoria Startup Farm / Ahead Visa - Go to Market e Canais
Mentoria Startup Farm / Ahead Visa - Go to Market e CanaisMentoria Startup Farm / Ahead Visa - Go to Market e Canais
Mentoria Startup Farm / Ahead Visa - Go to Market e Canais
 
20130912_mit _geordie_rose
20130912_mit _geordie_rose20130912_mit _geordie_rose
20130912_mit _geordie_rose
 
20130911 idc hpc_geordie_rose_final
20130911 idc hpc_geordie_rose_final20130911 idc hpc_geordie_rose_final
20130911 idc hpc_geordie_rose_final
 

Similar to The domino maze

Minimal Viable Architecture - Silicon Slopes 2020
Minimal Viable Architecture - Silicon Slopes 2020Minimal Viable Architecture - Silicon Slopes 2020
Minimal Viable Architecture - Silicon Slopes 2020
Randy Shoup
 
Monoliths, Migrations, and Microservices
Monoliths, Migrations, and MicroservicesMonoliths, Migrations, and Microservices
Monoliths, Migrations, and Microservices
Randy Shoup
 
Cleaning Code - Tools and Techniques for Large Legacy Projects
Cleaning Code - Tools and Techniques for Large Legacy ProjectsCleaning Code - Tools and Techniques for Large Legacy Projects
Cleaning Code - Tools and Techniques for Large Legacy Projects
Mike Long
 
Effective Microservices In a Data-centric World
Effective Microservices In a Data-centric WorldEffective Microservices In a Data-centric World
Effective Microservices In a Data-centric World
Randy Shoup
 
Architectural Considerations for Startups
Architectural Considerations for StartupsArchitectural Considerations for Startups
Architectural Considerations for Startups
Niall Roche
 
Minimum Viable Architecture - Good Enough is Good Enough
Minimum Viable Architecture - Good Enough is Good EnoughMinimum Viable Architecture - Good Enough is Good Enough
Minimum Viable Architecture - Good Enough is Good Enough
Randy Shoup
 
MagNet 2013 - PR1 2013
MagNet 2013 - PR1 2013MagNet 2013 - PR1 2013
MagNet 2013 - PR1 2013
Kim Latreille
 
Building a Data Ingestion & Processing Pipeline with Spark & Airflow
Building a Data Ingestion & Processing Pipeline with Spark & AirflowBuilding a Data Ingestion & Processing Pipeline with Spark & Airflow
Building a Data Ingestion & Processing Pipeline with Spark & Airflow
Tom Lous
 
THE PLEASURES OF ON-PREM, TOMER GABEL
THE PLEASURES OF ON-PREM, TOMER GABELTHE PLEASURES OF ON-PREM, TOMER GABEL
THE PLEASURES OF ON-PREM, TOMER GABEL
DevOpsDays Tel Aviv
 
Moving Fast At Scale
Moving Fast At ScaleMoving Fast At Scale
Moving Fast At Scale
Randy Shoup
 
Scaling Your Architecture with Services and Events
Scaling Your Architecture with Services and EventsScaling Your Architecture with Services and Events
Scaling Your Architecture with Services and Events
Randy Shoup
 
Migrate all the things!
Migrate all the things!Migrate all the things!
Migrate all the things!
Dave Vasilevsky
 
Large Scale Architecture -- The Unreasonable Effectiveness of Simplicity
Large Scale Architecture -- The Unreasonable Effectiveness of SimplicityLarge Scale Architecture -- The Unreasonable Effectiveness of Simplicity
Large Scale Architecture -- The Unreasonable Effectiveness of Simplicity
Randy Shoup
 
SharePoint Custom Development
SharePoint Custom DevelopmentSharePoint Custom Development
SharePoint Custom Development
C/D/H Technology Consultants
 
Final spiralmodel97
Final spiralmodel97Final spiralmodel97
Final spiralmodel97
akshay8835
 
Building SharePoint Enterprise Platforms - Off the beaten path
Building SharePoint Enterprise Platforms - Off the beaten pathBuilding SharePoint Enterprise Platforms - Off the beaten path
Building SharePoint Enterprise Platforms - Off the beaten path
Andy Talbot
 
Microservices - Scaling Development and Service
Microservices - Scaling Development and ServiceMicroservices - Scaling Development and Service
Microservices - Scaling Development and Service
Paulo Gaspar
 
Software architecture houstontechfest2020
Software architecture houstontechfest2020Software architecture houstontechfest2020
Software architecture houstontechfest2020
Jane Prusakova
 
Store, Extract, Transform, Load, Visualize. Untagged Conference
Store, Extract, Transform, Load, Visualize. Untagged ConferenceStore, Extract, Transform, Load, Visualize. Untagged Conference
Store, Extract, Transform, Load, Visualize. Untagged Conference
Ani Lopez
 
(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects
(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects
(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects
Amazon Web Services
 

Similar to The domino maze (20)

Minimal Viable Architecture - Silicon Slopes 2020
Minimal Viable Architecture - Silicon Slopes 2020Minimal Viable Architecture - Silicon Slopes 2020
Minimal Viable Architecture - Silicon Slopes 2020
 
Monoliths, Migrations, and Microservices
Monoliths, Migrations, and MicroservicesMonoliths, Migrations, and Microservices
Monoliths, Migrations, and Microservices
 
Cleaning Code - Tools and Techniques for Large Legacy Projects
Cleaning Code - Tools and Techniques for Large Legacy ProjectsCleaning Code - Tools and Techniques for Large Legacy Projects
Cleaning Code - Tools and Techniques for Large Legacy Projects
 
Effective Microservices In a Data-centric World
Effective Microservices In a Data-centric WorldEffective Microservices In a Data-centric World
Effective Microservices In a Data-centric World
 
Architectural Considerations for Startups
Architectural Considerations for StartupsArchitectural Considerations for Startups
Architectural Considerations for Startups
 
Minimum Viable Architecture - Good Enough is Good Enough
Minimum Viable Architecture - Good Enough is Good EnoughMinimum Viable Architecture - Good Enough is Good Enough
Minimum Viable Architecture - Good Enough is Good Enough
 
MagNet 2013 - PR1 2013
MagNet 2013 - PR1 2013MagNet 2013 - PR1 2013
MagNet 2013 - PR1 2013
 
Building a Data Ingestion & Processing Pipeline with Spark & Airflow
Building a Data Ingestion & Processing Pipeline with Spark & AirflowBuilding a Data Ingestion & Processing Pipeline with Spark & Airflow
Building a Data Ingestion & Processing Pipeline with Spark & Airflow
 
THE PLEASURES OF ON-PREM, TOMER GABEL
THE PLEASURES OF ON-PREM, TOMER GABELTHE PLEASURES OF ON-PREM, TOMER GABEL
THE PLEASURES OF ON-PREM, TOMER GABEL
 
Moving Fast At Scale
Moving Fast At ScaleMoving Fast At Scale
Moving Fast At Scale
 
Scaling Your Architecture with Services and Events
Scaling Your Architecture with Services and EventsScaling Your Architecture with Services and Events
Scaling Your Architecture with Services and Events
 
Migrate all the things!
Migrate all the things!Migrate all the things!
Migrate all the things!
 
Large Scale Architecture -- The Unreasonable Effectiveness of Simplicity
Large Scale Architecture -- The Unreasonable Effectiveness of SimplicityLarge Scale Architecture -- The Unreasonable Effectiveness of Simplicity
Large Scale Architecture -- The Unreasonable Effectiveness of Simplicity
 
SharePoint Custom Development
SharePoint Custom DevelopmentSharePoint Custom Development
SharePoint Custom Development
 
Final spiralmodel97
Final spiralmodel97Final spiralmodel97
Final spiralmodel97
 
Building SharePoint Enterprise Platforms - Off the beaten path
Building SharePoint Enterprise Platforms - Off the beaten pathBuilding SharePoint Enterprise Platforms - Off the beaten path
Building SharePoint Enterprise Platforms - Off the beaten path
 
Microservices - Scaling Development and Service
Microservices - Scaling Development and ServiceMicroservices - Scaling Development and Service
Microservices - Scaling Development and Service
 
Software architecture houstontechfest2020
Software architecture houstontechfest2020Software architecture houstontechfest2020
Software architecture houstontechfest2020
 
Store, Extract, Transform, Load, Visualize. Untagged Conference
Store, Extract, Transform, Load, Visualize. Untagged ConferenceStore, Extract, Transform, Load, Visualize. Untagged Conference
Store, Extract, Transform, Load, Visualize. Untagged Conference
 
(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects
(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects
(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects
 

Recently uploaded

Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
Mariano Tinti
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
SitimaJohn
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
CAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on BlockchainCAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on Blockchain
Claudio Di Ciccio
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 

Recently uploaded (20)

Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
CAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on BlockchainCAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on Blockchain
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 

The domino maze

  • 1. w w w . l d c v i a . c o m Finding your way out of the Domino maze Julian Woodward | LDC Via
  • 2. w w w . l d c v i a . c o m Looking for the perfect answer to a difficult question… is like the blind man… in the dark room… looking for the black cat… … that isn’t there.
  • 3. w w w . l d c v i a . c o m The session is NOT about… • Persuading anybody to leave Domino • Persuading anybody to stay on Domino • Persuading anybody to move to Domino • An LDC Via sales pitch • Email migration
  • 4. w w w . l d c v i a . c o m The session is about… • Examining a difficult issue • From all sides • Casting some light into the darkness • Sharing some ideas
  • 5. w w w . l d c v i a . c o m About Me • UK – London – Oxfordshire • 80s/90s – C, Assembler, Prolog, Clipper, SQL • 90s/00s – Notes/Domino (1993), MS Access, Visual Studio, VB, Java, Professional classical singer • 2005 – Independent / freelance • 2008 – London Developer Coop -> “LDC” • 2014+ – LDC Via and KEEP.WORKS
  • 6. w w w . l d c v i a . c o m What we will cover • Where we are now • Technical considerations • Migration approaches • How to get started • How to design the project • Relevant technologies and platforms
  • 7. w w w . l d c v i a . c o m Where are we now?
  • 8. w w w . l d c v i a . c o m Where are we now? • Two parts to this question • Business • Technical
  • 9. w w w . l d c v i a . c o m Business context • Budgetary constraints • Major business events • Political considerations • Regulatory changes • Notes/Domino woven throughout business • Often unaware of scale
  • 10. w w w . l d c v i a . c o m IT Context • Trend: Virtualisation -> Cloud -> PaaS/SaaS • Old platforms (R6? R7?) • Off-the-shelf vs bespoke software • Restructuring • Offshoring • Personalities
  • 11. w w w . l d c v i a . c o m Defining the challenge
  • 12. w w w . l d c v i a . c o m What is “migrating”? • Single application or entire installation • Notes vs Domino • “Everything is going to SharePoint”
  • 13. w w w . l d c v i a . c o m Technical landscape • Notes applications • ‘Classic’ Domino applications • XPages Domino applications
  • 14. w w w . l d c v i a . c o m Notes/Domino challenges • Scheduled agents • Triggered agents • Server-side integration • API access and server add-ins
  • 15. w w w . l d c v i a . c o m Notes/Domino challenges • Mail-out functionality • Mail-in functionality • Rich text editor capabilities • Readers and authors fields • Response hierarchies • Folders
  • 16. w w w . l d c v i a . c o m Domino challenges • Classic Domino applications • Complex interlinked code base • Forgotten Domino ‘hacks‘ • XPages applications • Domino version-specific behaviour • Use of OpenNTF projects • Code base can be similarly complex
  • 17. w w w . l d c v i a . c o m Notes client challenges • Rich client environment • Client-side integration • Doclinks • Offline use • User habits and working practices • Copy/paste between applications/databases • Copy/paste to/from email
  • 18. w w w . l d c v i a . c o m Summary • A lot of factors to consider • High-level (business, strategy) • Environmental (regulation, policy) • Technological (complexity of challenge)
  • 19. w w w . l d c v i a . c o m Where do we go from here?
  • 20. w w w . l d c v i a . c o m Where do we go from here? Wholesale “big-bang" or “best fit” approach
  • 21. w w w . l d c v i a . c o m “Big bang” approach • Normally business-led decision • Single destination platform • Salesforce • SharePoint • Not really a big bang – long-term work
  • 22. w w w . l d c v i a . c o m “Best fit” approach • No single destination platform • Need to select appropriate route for each application • An IT-led approach • A lot more decisions to take • Possibly a ‘better' outcome
  • 23. w w w . l d c v i a . c o m Options • Mothball • Archive • Re-skin • Abstract • Start fresh • Application migration • Data migration
  • 24. w w w . l d c v i a . c o m Option 1: Mothball • PROs • Quick • No investment • CONs • Still running Domino • Application is ‘dead’ • Not a migration Make application read-only and leave it running
  • 25. w w w . l d c v i a . c o m Option 2: Archive • PROs • Low cost • Quick • Getting off Domino • CONs • Application is ‘dead’ • Limited access • Not a migration Extract data to static store
  • 26. w w w . l d c v i a . c o m Option 3: Re-skin • PROs • Easy transition • May solve a problem • Existing skills(?) • CONs • Still using Domino • Significant investment in a temporary solution • Not a migration Data stays on Domino but through a new UI
  • 27. w w w . l d c v i a . c o m Option 4: Start fresh • PROs • Clean • Re-scope • No data migration • CONs • Still need to mothball or archive • Loss of access to data • Not a migration Leave existing data behind and build new application
  • 28. w w w . l d c v i a . c o m Option 5: Abstract • PROs • Good architecture • Half-way house • No data migration • CONs • Data still on Domino • Not a migration Data stays on Domino but as data store only
  • 29. w w w . l d c v i a . c o m Option 6: App Migration • PROs • Quick • Comprehensive(?) • Move off Domino • CONs • Options limited • Complexity of code • Code maintainability • Data model • Completion work Machine migration of full application: both data and code
  • 30. w w w . l d c v i a . c o m Option 7: Data migration • PROs • Flexible • Good architecture • Genuine migration • CONs • Maximum effort • How to do the data migration? • Challenges with messy Domino data Migrate data, and rewrite application
  • 31. w w w . l d c v i a . c o m Options
  • 32. w w w . l d c v i a . c o m Data migration • Database type • SQL: Oracle, MySQL, DB2, SQL Server, … • NoSQL: MongoDB, Cloudant, Couch, … • Data migration approach • Manual – maximum control, maximum work • Tool-based – less control, less work • Data gotchas • Multi-value fields, Readers/Authors, response hierarchies, doclinks, dirty data, …
  • 33. w w w . l d c v i a . c o m How do we begin?
  • 34. w w w . l d c v i a . c o m How do we begin? • Take the “eat an elephant” approach • Get a sense of scale, early • It’s a programme of work … • … consisting of multiple workstreams … • … consisting of multiple projects. • It’s just Another Thing To Do • Emotion and psychology
  • 35. w w w . l d c v i a . c o m Start with 2 vital questions 1. What are the most important applications? 2. What are the most urgent needs?
  • 36. w w w . l d c v i a . c o m Question 1: what are the most important applications? • “Important” could mean: • Revenue-generating • High-profile • Used by C-level • Mission-critical • Dependency-laden • Who knows…
  • 37. w w w . l d c v i a . c o m Question 1: what are the most important applications? • Who knows what’s important? • Engage with the business • Use tools to give ‘scientific’ answers re apps • TeamStudio • Panagenda • Others(?) • Remember: Business priorities are more “important” than IT priorities
  • 38. w w w . l d c v i a . c o m Question 2: what are the most urgent needs? • Often the same as the ‘important’ ones • But: “important” <> “urgent" • Focus on the “important but not urgent” • Drivers: • Acquisition • Restructuring • Hard deadlines • Managerial ‘decisiveness‘ • Political (promises made)
  • 39. w w w . l d c v i a . c o m Remember: it’s just a project • Normal project management rules apply • Engage stakeholders • Sponsors • Evangelists • Build a team • Clarity of goals, timescales, objectives, CSFs • Change management
  • 40. w w w . l d c v i a . c o m Taking the first steps
  • 41. w w w . l d c v i a . c o m Taking the first steps • Audit the applications • Categorise the applications • Ascertain preferred option(s) per application • Evaluate technologies
  • 42. w w w . l d c v i a . c o m Auditing applications • What you need to know (a suggestion): Urgent: Y / N (reason) Important: Y / N (reason) Business sponsor: (name) Department/function: (name) Type(s): Notes / Classic / XPages Complexity rating: (score) Deadline: (date) (details) Used offline?: Y / N (details) Related application(s) (details)
  • 43. w w w . l d c v i a . c o m Auditing applications • Complexity • Size (Gb, document count) • Number of forms, views • Number of agents, script libraries, subforms, roles, etc • Lines of Java/LotusScript • Size of an empty template copy (Mb) • Age • Number of users • Geography (users, number of replicas) • Use tooling to help with this
  • 44. w w w . l d c v i a . c o m Categorising applications • Analyse top-down by • Urgency • Importance • Department • Complexity • Deadline • User base
  • 45. w w w . l d c v i a . c o m Ascertain options • Outcome, per application • Bin / Archive / Merge / Migrate • Consider • Lifespan • ROI • Quick wins? • Identify the quick wins, get early success • Pay attention to the urgent vs important
  • 46. w w w . l d c v i a . c o m Options
  • 47. w w w . l d c v i a . c o m Evaluate Technologies • Languages • Frameworks • Databases • Tools
  • 48. w w w . l d c v i a . c o m Languages / Frameworks • Java • Vaadin • C# • .NET MVC • Javascript • Node.js + Express • Angular • React • Be realistic
  • 49. w w w . l d c v i a . c o m Relational databases • Options • DB2 • Oracle • SQL Server • MySQL • PostgreSQL • Best for some applications • Cleaning and restructuring • Data migration likely to be a major project
  • 50. w w w . l d c v i a . c o m NoSQL databases • “Not only SQL” • Non-relational • Distributed • Open-source • Horizontally scalable • Schema-less • Replicating • Several types • Characterised by scalability and flexibility
  • 51. w w w . l d c v i a . c o m NoSQL database types • Key-Value stores • Redis, Dynamo, Oracle NoSQL • Wide-column stores • Cassandra, Hadoop Hbase • Graph databases (based on graph theory) • Neo4J, ArangoDB • Document stores • MongoDB, LDC Via, Couchbase, CouchDB, Azure DocumentDB, Cloudant
  • 52. w w w . l d c v i a . c o m NoSQL Document Store “Designed for storing, retrieving, and managing document-oriented information, also known as semi-structured data. Document- oriented databases are one of the main categories of NoSQL databases, and the popularity of the term "document-oriented database" has grown with the use of the term NoSQL itself. XML databases are a subclass of document-oriented databases that are optimized to work with XML documents.” • Document-centric • Familiar concepts • Most popular
  • 53. w w w . l d c v i a . c o m NoSQL databases
  • 54. w w w . l d c v i a . c o m NoSQL vs SQL databases
  • 55. w w w . l d c v i a . c o m Where does LDC Via fit?
  • 56. w w w . l d c v i a . c o m About LDC Via • NoSQL “Document store” database • Specifically optimised for Domino migrations • Cloud-based Platform-as-a-Service • Ireland, Switzerland (US soon) • On-premises also available • Simple tiered pricing model • Built on top of MongoDB
  • 57. w w w . l d c v i a . c o m About LDC Via • Domino-like functionality • Documents • Response hierarchies • Readers/Authors fields • Rich text • File attachments • Doclinks • Dirty/inconsistent data
  • 58. w w w . l d c v i a . c o m About LDC Via • Migration tools • Web-based tool for web-facing servers • Installable tool • Simplest and quickest data migration • No cleaning or remodelling • Data is recognisably “the same” • You can focus on developing the application
  • 59. w w w . l d c v i a . c o m About LDC Via • RESTful API • JSON-based • Covers all aspects of LDC Via including user management • Sample code • KEEP.WORKS
  • 60. w w w . l d c v i a . c o m About LDC Via API example, to read a “collection” https://<endpoint>/collections/<database>/<collect ion>?<options> e.g. https://eu.ldcvia.com/1.o/collections/my- crm/person?count=30&sortasc=surname Pass authenticated credentials with each request: an apikey or a session cookie.
  • 61. w w w . l d c v i a . c o m About LDC Via • Data browser • Standard templates • Discussion, TeamRoom, Document Library • Email (read-only) • Export to Excel, PDF, EML • LDC Via Lens: point-and-click simple apps
  • 62. w w w . l d c v i a . c o m Summary • Different meanings of “migration” • Big-bang vs best-fit • Analysis, planning, and proper project management • Change management • Lots of decisions to take • NoSQL now mainstream • It’s an opportunity…
  • 63. w w w . l d c v i a . c o m Useful Links • Webinar recordings: “Introducing LDC Via” and ”Developing with LDC Via” • https://www.youtube.com and search for “LDC Via” • http://nosql-database.org • http://db-engines.com • https://code.visualstudio.com • https://vaadin.com • https://nodejs.org • https://github.com/reactjs • https://angularjs.org • http://ldcvia.com • http://api.ldcvia.com
  • 64. w w w . l d c v i a . c o m Contact Me • @woowar • julian@ldcvia.com • Download slides http://blog.ldcvia.com