SlideShare una empresa de Scribd logo
1 de 19
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

Más contenido relacionado

Similar a Actor based architecture for world's largest telescope

Webinar: Code Faster on Kubernetes
Webinar: Code Faster on KubernetesWebinar: Code Faster on Kubernetes
Webinar: Code Faster on KubernetesAmbassador Labs
 
Istio as a Service Mesh
Istio as a Service MeshIstio as a Service Mesh
Istio as a Service MeshKnoldus Inc.
 
AULT : Agent based User simulation
AULT : Agent based User simulationAULT : Agent based User simulation
AULT : Agent based User simulationOm Narayan
 
Dive into Akka Actors
Dive into Akka ActorsDive into Akka Actors
Dive into Akka ActorsKnoldus Inc.
 
Docker microservices and the service mesh
Docker microservices and the service meshDocker microservices and the service mesh
Docker microservices and the service meshDocker, Inc.
 
Triangle Devops Meetup 10/2015
Triangle Devops Meetup 10/2015Triangle Devops Meetup 10/2015
Triangle Devops Meetup 10/2015aspyker
 
Expanding Interoperability in the CD ecosystem - CDCon - Austin, TX - 2022
Expanding Interoperability in the CD ecosystem - CDCon - Austin, TX -  2022 Expanding Interoperability in the CD ecosystem - CDCon - Austin, TX -  2022
Expanding Interoperability in the CD ecosystem - CDCon - Austin, TX - 2022 Mauricio (Salaboy) Salatino
 
Devoxx Belgium 2017 - easy microservices with JHipster
Devoxx Belgium 2017 - easy microservices with JHipsterDevoxx Belgium 2017 - easy microservices with JHipster
Devoxx Belgium 2017 - easy microservices with JHipsterJulien Dubois
 
Easy Microservices with JHipster - Devoxx BE 2017
Easy Microservices with JHipster - Devoxx BE 2017Easy Microservices with JHipster - Devoxx BE 2017
Easy Microservices with JHipster - Devoxx BE 2017Deepu K Sasidharan
 
DevOps State of the Union 2015
DevOps State of the Union 2015DevOps State of the Union 2015
DevOps State of the Union 2015Ernest Mueller
 
Introduction to concurrent programming with akka actors
Introduction to concurrent programming with akka actorsIntroduction to concurrent programming with akka actors
Introduction to concurrent programming with akka actorsdatamantra
 
Introduction to concurrent programming with Akka actors
Introduction to concurrent programming with Akka actorsIntroduction to concurrent programming with Akka actors
Introduction to concurrent programming with Akka actorsShashank L
 
Docker, Microservices, and the Service Mesh
Docker, Microservices, and the Service MeshDocker, Microservices, and the Service Mesh
Docker, Microservices, and the Service MeshTony Pujals
 
BISSA: Empowering Web gadget Communication with Tuple Spaces
BISSA: Empowering Web gadget Communication with Tuple SpacesBISSA: Empowering Web gadget Communication with Tuple Spaces
BISSA: Empowering Web gadget Communication with Tuple SpacesSrinath Perera
 
Final project report format
Final project report formatFinal project report format
Final project report formatMasud Sarkar
 
Telemetry Display and Archival on Linux Platform
Telemetry Display and Archival on Linux PlatformTelemetry Display and Archival on Linux Platform
Telemetry Display and Archival on Linux PlatformCristi Onofrei
 
TaskMan-Middleware 2011
TaskMan-Middleware 2011TaskMan-Middleware 2011
TaskMan-Middleware 2011Andrea Tino
 
Understanding concurrency
Understanding concurrencyUnderstanding concurrency
Understanding concurrencyAnshul Sharma
 

Similar a Actor based architecture for world's largest telescope (20)

Webinar: Code Faster on Kubernetes
Webinar: Code Faster on KubernetesWebinar: Code Faster on Kubernetes
Webinar: Code Faster on Kubernetes
 
Bitcoin Price Prediction
Bitcoin Price PredictionBitcoin Price Prediction
Bitcoin Price Prediction
 
Istio as a Service Mesh
Istio as a Service MeshIstio as a Service Mesh
Istio as a Service Mesh
 
AULT : Agent based User simulation
AULT : Agent based User simulationAULT : Agent based User simulation
AULT : Agent based User simulation
 
Dive into Akka Actors
Dive into Akka ActorsDive into Akka Actors
Dive into Akka Actors
 
Docker microservices and the service mesh
Docker microservices and the service meshDocker microservices and the service mesh
Docker microservices and the service mesh
 
Triangle Devops Meetup 10/2015
Triangle Devops Meetup 10/2015Triangle Devops Meetup 10/2015
Triangle Devops Meetup 10/2015
 
Expanding Interoperability in the CD ecosystem - CDCon - Austin, TX - 2022
Expanding Interoperability in the CD ecosystem - CDCon - Austin, TX -  2022 Expanding Interoperability in the CD ecosystem - CDCon - Austin, TX -  2022
Expanding Interoperability in the CD ecosystem - CDCon - Austin, TX - 2022
 
Devoxx Belgium 2017 - easy microservices with JHipster
Devoxx Belgium 2017 - easy microservices with JHipsterDevoxx Belgium 2017 - easy microservices with JHipster
Devoxx Belgium 2017 - easy microservices with JHipster
 
Easy Microservices with JHipster - Devoxx BE 2017
Easy Microservices with JHipster - Devoxx BE 2017Easy Microservices with JHipster - Devoxx BE 2017
Easy Microservices with JHipster - Devoxx BE 2017
 
DevOps State of the Union 2015
DevOps State of the Union 2015DevOps State of the Union 2015
DevOps State of the Union 2015
 
Introduction to concurrent programming with akka actors
Introduction to concurrent programming with akka actorsIntroduction to concurrent programming with akka actors
Introduction to concurrent programming with akka actors
 
Introduction to concurrent programming with Akka actors
Introduction to concurrent programming with Akka actorsIntroduction to concurrent programming with Akka actors
Introduction to concurrent programming with Akka actors
 
Answers
AnswersAnswers
Answers
 
Docker, Microservices, and the Service Mesh
Docker, Microservices, and the Service MeshDocker, Microservices, and the Service Mesh
Docker, Microservices, and the Service Mesh
 
BISSA: Empowering Web gadget Communication with Tuple Spaces
BISSA: Empowering Web gadget Communication with Tuple SpacesBISSA: Empowering Web gadget Communication with Tuple Spaces
BISSA: Empowering Web gadget Communication with Tuple Spaces
 
Final project report format
Final project report formatFinal project report format
Final project report format
 
Telemetry Display and Archival on Linux Platform
Telemetry Display and Archival on Linux PlatformTelemetry Display and Archival on Linux Platform
Telemetry Display and Archival on Linux Platform
 
TaskMan-Middleware 2011
TaskMan-Middleware 2011TaskMan-Middleware 2011
TaskMan-Middleware 2011
 
Understanding concurrency
Understanding concurrencyUnderstanding concurrency
Understanding concurrency
 

Último

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 

Último (20)

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 

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

Notas del editor

  1. Will be talking about
  2. 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..
  3. 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.
  4. State management makes concurrency an important aspect. Safety in failure scenarios is another important aspect
  5. CRDT based service discovery
  6. 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
  7. 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
  8. Explain Typed actors All framework actors are typed actors