SlideShare a Scribd company logo
Actor based architecture for
world's largest telescope
Saloni Vithalani and Unmesh Joshi
We work with people and
organizations who have
ambitious missions
We are focused on helping
our industry improve.
We are strong believers in the
power of software and
technology as tools for social
change.
4500
Employees
15
Countries
42
Offices
● World's largest optical telescope
● Operational in 2027!
● Mauna Kea, Hawaii
● Five countries collaborating
○ USA
○ Canada
○ China
○ Japan
○ India
https://www.tmt.org/
From wikipedia
https://en.wikipedia.org/
wiki/Thirty_Meter_Teles
cope
The Program Summary
● A program more than 20 years long and more..
○ Started around 2007
○ Going to be operational in 2027 as per current plans
○ Telescope will be operational for 50 years from the first light
date.
● Software development is primarily happening in India.
○ ThoughtWorks working on ‘common software’ frameworks.
○ Built prototypes using Akka since 2014.
Overview of ‘Common Software’
● A Mechanism For Service Discovery
● Telescope Configuration Management Service.
● Centralized Logging
● Event and Telemetry data capture mechanism
● A Timer API with PTP setup.
● A Framework For Telescope control system development.
○ Using Typed Actors.
Logical Architecture
TCS
DevicesTCS
DevicesTCS
Devices
WFS
Probe
Inst
Devices
Inst
Devices
Inst
Devices
Inst
Devices
Detector
Devices
0: Observatory
Hardware
TCS HCD
TCS HCD
TCS HCD
WFS HCD
Instrument
Rotation HCD
Motion Control
HCD-1
Motion Control
HCD-2
Instrument
Service Detector
1: Hardware
Control Layer
TCP Pointing
Assembly
IFS WFS
Demand
Assembly
Instrument
Rotation
Assembly
Filter
Assembly
Slit mask
Assembly
Science
Detector
Assembly
Grating
Assembly
2: Assembly
Layer
Observing Mode
Telescope
Sequencer
Observing Mode
OCS Sequencer
Observing Mode
Instrument
Sequencer
3: Sequencing
Layer
4: Monitoring and
Control
Applications
TCS Assembly
Probe Arm
Assembly
(20, 35)
(10, 25)
(20, 35)
(10, 10)(10, 10)
Example Scenario
Probe HCD
Probe HCD
Probe HCD
multi-axis
motor
controller
multi-axis
motor
controller
motor
controller
Key Characteristics
● Peer to Peer system
○ Components like Assemblies, HCDs
■ Discover other components
■ Send commands
■ Subscribe to other components’ events
● Asynchronous Message Passing
● Components are stateful
○ They maintain device state or subsystem state etc.
Concurrency and Safety are important concerns
Actors!
● Message passing communication
● State management
○ Without synchronization hassles
○ Safety with supervision strategies
● Location transparency
Deployment and Discovery
Akka Cluster with
CRDTs
Service Discovery
Http and SSE
Component Actors
Machine 1 Machine 2
Anatomy of a TMT Component
Supervisor
Top Level Actor
spawn()
Handlers
initialize()
Worker
spawn()
Pub-Sub Manager
Command Response Manager
spawn()
spawn()
Worker
Worker
Provided by TMT
Framework
To be implemented by
component writers
publish()
complete()
Supervisor
● Registers itself with Akka CRDT
● Any communication to a component goes via supervisor
○ Filter and validate commands received
● Manages lifecycle of the component
○ Helps restart the component in case of exception encountered
during execution
○ Provide admin interface to restart, shutdown, change log level,
etc. for a component
Role of Typed Actors in TMT
● Helps in defining communication protocols between components
● Makes the communication protocol explicit at compile time
○ Currently using mutable typed actors
○ Actor refs are stored in akka CRDT
Learnings
● Sealed messages for typed actors turned out to be quite rigid
○ Union type support in the language could help
● We used mutable behaviour because of familiarity
○ Eventually realized that immutable actors can do everything
we wanted
● Type information of actor refs not preserved during serialization
○ No error is thrown when a deserialized actorRef is cast to
incorrect type
○ Carrying type information with the serialized actorref could be
useful
TCS Assembly
Probe Arm
Assembly
Probe HCD
(20, 35)
demandState = (20, 35)
currentState = (10, 10)
move = (10, 25)
(10, 25)
Timer of 50ms
Timer
of 50ms
(20, 35) (10, 10)(10, 10)
Update next move = (10, 25)
Demo
Team
ThoughtWorks, Pune
● Mushtaq Ahmed
● Unmesh Joshi
● Pritam Kadam
● Dolly Gyanchandani
● Bilal Fazlani
● Saloni Vithalani
● Shubham Jaybhaye
● Chhaya Yadav
● Gunjan Shukla
● Santosh Mahale
● Puneet Patwari
● Poorva Gokhale
● Bharat Singh
TMT, Pasadena
● Francisco Delgado
● Kim Gillies
● Allan Brighton
● Jason Weiss
IIA, Bangalore
● Rajalakshmi Karthik
● Annapurni Subramaniam
● Girish M
Thank you
https://tmtsoftware.github.io/csw/
https://github.com/tmtsoftware/csw

More Related Content

PDF
Storytelling For The Web: Integrate Storytelling in your Design Process
PDF
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
PDF
How to Leverage AI to Boost Employee Wellness - Lydia Di Francesco - SocialHR...
PDF
2024 Trend Updates: What Really Works In SEO & Content Marketing
PPTX
Android Jam - Activity Lifecycle & Databases - Udacity Lesson 4a
PDF
Sub conf 2010
PDF
Android Jam - Services & Notifications - Udacity Lesson 6
PDF
2024 State of Marketing Report – by Hubspot
Storytelling For The Web: Integrate Storytelling in your Design Process
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
How to Leverage AI to Boost Employee Wellness - Lydia Di Francesco - SocialHR...
2024 Trend Updates: What Really Works In SEO & Content Marketing
Android Jam - Activity Lifecycle & Databases - Udacity Lesson 4a
Sub conf 2010
Android Jam - Services & Notifications - Udacity Lesson 6
2024 State of Marketing Report – by Hubspot

Recently uploaded (20)

PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PPTX
Tartificialntelligence_presentation.pptx
PPTX
1. Introduction to Computer Programming.pptx
PDF
1 - Historical Antecedents, Social Consideration.pdf
PPTX
The various Industrial Revolutions .pptx
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
DP Operators-handbook-extract for the Mautical Institute
PPTX
cloud_computing_Infrastucture_as_cloud_p
PDF
A novel scalable deep ensemble learning framework for big data classification...
PDF
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
PDF
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PPTX
TLE Review Electricity (Electricity).pptx
PPTX
OMC Textile Division Presentation 2021.pptx
PDF
A contest of sentiment analysis: k-nearest neighbor versus neural network
PDF
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
PDF
WOOl fibre morphology and structure.pdf for textiles
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PPTX
observCloud-Native Containerability and monitoring.pptx
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Univ-Connecticut-ChatGPT-Presentaion.pdf
Tartificialntelligence_presentation.pptx
1. Introduction to Computer Programming.pptx
1 - Historical Antecedents, Social Consideration.pdf
The various Industrial Revolutions .pptx
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
DP Operators-handbook-extract for the Mautical Institute
cloud_computing_Infrastucture_as_cloud_p
A novel scalable deep ensemble learning framework for big data classification...
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
Group 1 Presentation -Planning and Decision Making .pptx
TLE Review Electricity (Electricity).pptx
OMC Textile Division Presentation 2021.pptx
A contest of sentiment analysis: k-nearest neighbor versus neural network
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
WOOl fibre morphology and structure.pdf for textiles
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
observCloud-Native Containerability and monitoring.pptx
Ad
Ad

Actor based architecture for world's largest telescope

  • 1. Actor based architecture for world's largest telescope Saloni Vithalani and Unmesh Joshi
  • 2. We work with people and organizations who have ambitious missions We are focused on helping our industry improve. We are strong believers in the power of software and technology as tools for social change. 4500 Employees 15 Countries 42 Offices
  • 3. ● World's largest optical telescope ● Operational in 2027! ● Mauna Kea, Hawaii ● Five countries collaborating ○ USA ○ Canada ○ China ○ Japan ○ India https://www.tmt.org/
  • 5. The Program Summary ● A program more than 20 years long and more.. ○ Started around 2007 ○ Going to be operational in 2027 as per current plans ○ Telescope will be operational for 50 years from the first light date. ● Software development is primarily happening in India. ○ ThoughtWorks working on ‘common software’ frameworks. ○ Built prototypes using Akka since 2014.
  • 6. Overview of ‘Common Software’ ● A Mechanism For Service Discovery ● Telescope Configuration Management Service. ● Centralized Logging ● Event and Telemetry data capture mechanism ● A Timer API with PTP setup. ● A Framework For Telescope control system development. ○ Using Typed Actors.
  • 8. TCS DevicesTCS DevicesTCS Devices WFS Probe Inst Devices Inst Devices Inst Devices Inst Devices Detector Devices 0: Observatory Hardware TCS HCD TCS HCD TCS HCD WFS HCD Instrument Rotation HCD Motion Control HCD-1 Motion Control HCD-2 Instrument Service Detector 1: Hardware Control Layer TCP Pointing Assembly IFS WFS Demand Assembly Instrument Rotation Assembly Filter Assembly Slit mask Assembly Science Detector Assembly Grating Assembly 2: Assembly Layer Observing Mode Telescope Sequencer Observing Mode OCS Sequencer Observing Mode Instrument Sequencer 3: Sequencing Layer 4: Monitoring and Control Applications
  • 9. TCS Assembly Probe Arm Assembly (20, 35) (10, 25) (20, 35) (10, 10)(10, 10) Example Scenario Probe HCD Probe HCD Probe HCD multi-axis motor controller multi-axis motor controller motor controller
  • 10. Key Characteristics ● Peer to Peer system ○ Components like Assemblies, HCDs ■ Discover other components ■ Send commands ■ Subscribe to other components’ events ● Asynchronous Message Passing ● Components are stateful ○ They maintain device state or subsystem state etc. Concurrency and Safety are important concerns
  • 11. Actors! ● Message passing communication ● State management ○ Without synchronization hassles ○ Safety with supervision strategies ● Location transparency
  • 12. Deployment and Discovery Akka Cluster with CRDTs Service Discovery Http and SSE Component Actors Machine 1 Machine 2
  • 13. Anatomy of a TMT Component Supervisor Top Level Actor spawn() Handlers initialize() Worker spawn() Pub-Sub Manager Command Response Manager spawn() spawn() Worker Worker Provided by TMT Framework To be implemented by component writers publish() complete()
  • 14. Supervisor ● Registers itself with Akka CRDT ● Any communication to a component goes via supervisor ○ Filter and validate commands received ● Manages lifecycle of the component ○ Helps restart the component in case of exception encountered during execution ○ Provide admin interface to restart, shutdown, change log level, etc. for a component
  • 15. Role of Typed Actors in TMT ● Helps in defining communication protocols between components ● Makes the communication protocol explicit at compile time ○ Currently using mutable typed actors ○ Actor refs are stored in akka CRDT
  • 16. Learnings ● Sealed messages for typed actors turned out to be quite rigid ○ Union type support in the language could help ● We used mutable behaviour because of familiarity ○ Eventually realized that immutable actors can do everything we wanted ● Type information of actor refs not preserved during serialization ○ No error is thrown when a deserialized actorRef is cast to incorrect type ○ Carrying type information with the serialized actorref could be useful
  • 17. TCS Assembly Probe Arm Assembly Probe HCD (20, 35) demandState = (20, 35) currentState = (10, 10) move = (10, 25) (10, 25) Timer of 50ms Timer of 50ms (20, 35) (10, 10)(10, 10) Update next move = (10, 25) Demo
  • 18. Team ThoughtWorks, Pune ● Mushtaq Ahmed ● Unmesh Joshi ● Pritam Kadam ● Dolly Gyanchandani ● Bilal Fazlani ● Saloni Vithalani ● Shubham Jaybhaye ● Chhaya Yadav ● Gunjan Shukla ● Santosh Mahale ● Puneet Patwari ● Poorva Gokhale ● Bharat Singh TMT, Pasadena ● Francisco Delgado ● Kim Gillies ● Allan Brighton ● Jason Weiss IIA, Bangalore ● Rajalakshmi Karthik ● Annapurni Subramaniam ● Girish M

Editor's Notes

  • #2: Will be talking about
  • #4: A program more than 20 years long. Started i guess back in 2007. Going to be live in 2027 as per current plans. 30 meters of diameter for primary mirror. Its not possible to have single mirror this big. So its made up of 500 mirror segments. Huge structure like a 5 storey building. Has hundreds of hardware and software components coordinating the telescope. Different countries and industrial partners are contributing to different parts of the work. India is software development responsible for most of common softwre development..
  • #10: Lets take a scenario. You want to schedule an observation. Point the telescope to a particular part a sky. Calibrate the telescope. Take pictures. Continue for next 8 hours, continuously adjusting the telscope. Moving the telescope needs to coordinate several subsystems. Sequencer sends the command to Telescope control system assembly, calculates the next position. It communicates with a probe arm assembly, which talks to hardware control of the daemons to communicate with the motors to rotate.
  • #11: State management makes concurrency an important aspect. Safety in failure scenarios is another important aspect
  • #13: CRDT based service discovery
  • #14: Component - Seq, Assembly, Hcd Assembly needs to discover hcd, send comands and handle response This are pretty common actions in telescope, So we have extracted the common protocol in a framework Developed by Thoghtworks India Different teams will use our framework Supervisor - actor by framework, first thing, spawns TLA TLA - initialize handlers TLA- handler template pattern Code display Action in handlers Execution sequence decided by TLA Handlers delegate to workers to execute a command Workers publish events while executing Worker mark command complete after execution
  • #15: Front facing of component Exception in initialize bubble up to TLA to Supervisor Sup applies restart strategy Brings the component in clean state So, if I have to reason why sup is exposed as comp address instead of TLA, then it is because TLA’s ref gets chaned when it restarts and exposing a short lived address is not going to be a preferred way
  • #16: Explain Typed actors All framework actors are typed actors