SlideShare uma empresa Scribd logo
1 de 16
Systems Design Experiences
                   or
 Just Some War Stories…

           Abhay Ghaisas
     Product Architect, BMC Software




                                       1
Iridium – Background
   Satellite telephony project
     • 66 polar LEO satellites in six orbital planes
     • Provides telephony and messaging
     • Satellites have straight and cross links for
        communication
    •   System control segment on ground with
        multiple gateways
    •   Software development began in 1995



                                                       2
System Challenges
 Huge software system
 Interacting components

 Frameworks in nascent stage: CORBA

 Immature development processes: no
  UML
   • Experiment with different OOAD methods
   • Invent some of your own
 New language: C++


                                              3
Messaging Subsystem
   Function
     • Get messages (pages) with subscriber id
     • Locate the subscriber from HLR / VLR
     • Choose satellites and schedule of delivery
        • Multiple deliveries form different angles
     • Create transaction record




                                                      4
Messaging Subsystem
   Expectations
     • High throughput
        • Live system to support all messaging
     • High availability
        • Downtime has direct business impact
     • Fault tolerance
        • No single point of failure



                                                 5
Challenges
 No standard way of horizontal scaling
 No off-the-shelf distributed architecture
  • No application servers
 No distributed or clustered databases

 No off-the-shelf components really…




                                              6
Solution
   Build it yourself!




                               7
HA and FT Architecture
 Live and hot stand-by systems
   • Identical H/W and S/W
 Connected over two LANs
   • To avoid single point of failure




                                        8
HA and FT Architecture
   Hand-written demons to maintain health
    • Exchange heart-beat on both LANs
    • Watch for all processes to be alive
    • Declare switch-over in case of failure and
        initiate power recycle
    •   Take over from other system in case of a
        switch-over
    •   Hand shake on start-up to elect active and
        stand-by

                                                 9
HA and FT Architecture
    Cannot lose in-flight data
     • Relay each incoming message to stand-by
       system1
     • Stand-by to hold on to the data till active
       finishes transaction
     • Allows for quick take over by stand-by system in
       case of failure
    Ensure DB replication
      • No feature in DB itself
      • Active to relay DB changes to stand-by
      • Re-play DB changes on stand-by through code
1.   Log Updates

                                                     10
Other Fun Challenges
 Regularly test the limits of C++ compiler
   • C++ far off from standardization
 Test the limits of the source code control
  system




                                          11
Mobile Browser
 For early mobile phones – c. 2000
 No standard operating system
   • No standard memory management
   • No processes / scheduler
   • Memory mapped I/O
   • No file system
 Limited resources
   • Low memory
   • Poor horsepower
   • Limited real estate

                                      12
Re-invent
   How to parse HTML?
    • Cannot use standard parsers – none
        available
    •   Cannot write one with Lex and Yacc – too
        heavy
  •     Hand-write the parser – first principles
 What about data structures?
  • Hand-write all the data structures
  • Use statically allocated memory – manage
        it yourself

                                                   13
Re-invent
    Custom-made display framework
     • Memory mapped display
     • Interfaces that let you draw to the glass
     • Hand written layered XML display
         framework1
     •   Messaging to handle dynamic parts of the
         display
          • Animation, blink, and marquee!

1.   Use brute force

                                                   14
Small World
    Cannot assume a lot of resources
     • Use static limits1
     • Parse only what you can2
     • Display only what gets parsed




1.   Split resources
2.   Shed load

                                        15
Verification
 No devices available for early
  verification
 Components still to be manufactured!

 Some kits, some emulation

 Tap the display memory for automation




                                      16

Mais conteúdo relacionado

Mais procurados

Mais procurados (7)

Session 7362 Handout 427 0
Session 7362 Handout 427 0Session 7362 Handout 427 0
Session 7362 Handout 427 0
 
The survey on real time operating systems (1)
The survey on real time operating systems (1)The survey on real time operating systems (1)
The survey on real time operating systems (1)
 
PNUTS: Yahoo!’s Hosted Data Serving Platform
PNUTS: Yahoo!’s Hosted Data Serving PlatformPNUTS: Yahoo!’s Hosted Data Serving Platform
PNUTS: Yahoo!’s Hosted Data Serving Platform
 
I Know What You Did THIS Summer
I Know What You Did THIS SummerI Know What You Did THIS Summer
I Know What You Did THIS Summer
 
HBase Snapshots
HBase SnapshotsHBase Snapshots
HBase Snapshots
 
Xen Hypervisor Update 2011
Xen Hypervisor Update 2011Xen Hypervisor Update 2011
Xen Hypervisor Update 2011
 
What's in the Box?: An Intro to HFM System Utilities
What's in the Box?: An Intro to HFM System Utilities What's in the Box?: An Intro to HFM System Utilities
What's in the Box?: An Intro to HFM System Utilities
 

Destaque

Shortness of Breath and back pain
Shortness of Breath and back painShortness of Breath and back pain
Shortness of Breath and back pain
donvance
 
NAPCNewsbreak_TOXE_article
NAPCNewsbreak_TOXE_articleNAPCNewsbreak_TOXE_article
NAPCNewsbreak_TOXE_article
Edward Berkovich
 
Astrid correa cancer intervencion
Astrid correa cancer intervencionAstrid correa cancer intervencion
Astrid correa cancer intervencion
Francisco Sepulveda
 
Web membership brochure working file new layout rv1
Web membership brochure working file new layout rv1Web membership brochure working file new layout rv1
Web membership brochure working file new layout rv1
Alexandra Chavez
 

Destaque (15)

Analisis dafo
Analisis dafoAnalisis dafo
Analisis dafo
 
Shortness of Breath and back pain
Shortness of Breath and back painShortness of Breath and back pain
Shortness of Breath and back pain
 
Heidi lpac-photo07
Heidi lpac-photo07Heidi lpac-photo07
Heidi lpac-photo07
 
YUI 3 菜鳥救星
YUI 3 菜鳥救星YUI 3 菜鳥救星
YUI 3 菜鳥救星
 
Diet
DietDiet
Diet
 
NAPCNewsbreak_TOXE_article
NAPCNewsbreak_TOXE_articleNAPCNewsbreak_TOXE_article
NAPCNewsbreak_TOXE_article
 
Astrid correa cancer intervencion
Astrid correa cancer intervencionAstrid correa cancer intervencion
Astrid correa cancer intervencion
 
Web membership brochure working file new layout rv1
Web membership brochure working file new layout rv1Web membership brochure working file new layout rv1
Web membership brochure working file new layout rv1
 
Enabling Spatial Decision Support and Analytics on a Campus Scale with FME Te...
Enabling Spatial Decision Support and Analytics on a Campus Scale with FME Te...Enabling Spatial Decision Support and Analytics on a Campus Scale with FME Te...
Enabling Spatial Decision Support and Analytics on a Campus Scale with FME Te...
 
CAD Standards by the Use of Civil 3D to Enterprise GIS
CAD Standards by the Use of Civil 3D to Enterprise GISCAD Standards by the Use of Civil 3D to Enterprise GIS
CAD Standards by the Use of Civil 3D to Enterprise GIS
 
The Latino list poster
The Latino list posterThe Latino list poster
The Latino list poster
 
Task 4
Task 4Task 4
Task 4
 
Using FME to Automate Lidar QA\QC Processes
Using FME to Automate Lidar QA\QC ProcessesUsing FME to Automate Lidar QA\QC Processes
Using FME to Automate Lidar QA\QC Processes
 
My screencast workshop4
My screencast workshop4My screencast workshop4
My screencast workshop4
 
DUSS Activities
DUSS ActivitiesDUSS Activities
DUSS Activities
 

Semelhante a Systems Design Experiences or Just Some War Stories…

Distributed Erlang Systems In Operation
Distributed Erlang Systems In OperationDistributed Erlang Systems In Operation
Distributed Erlang Systems In Operation
Andy Gross
 
Xldb2011 wed 1415_andrew_lamb-buildingblocks
Xldb2011 wed 1415_andrew_lamb-buildingblocksXldb2011 wed 1415_andrew_lamb-buildingblocks
Xldb2011 wed 1415_andrew_lamb-buildingblocks
liqiang xu
 
VoltDB and Erlang - Tech planet 2012
VoltDB and Erlang - Tech planet 2012VoltDB and Erlang - Tech planet 2012
VoltDB and Erlang - Tech planet 2012
Eonblast
 
Multi Layer Monitoring V1
Multi Layer Monitoring V1Multi Layer Monitoring V1
Multi Layer Monitoring V1
Lahav Savir
 
Lahav Savir - Massively Scaleable Mobile Gateways
Lahav Savir - Massively Scaleable Mobile GatewaysLahav Savir - Massively Scaleable Mobile Gateways
Lahav Savir - Massively Scaleable Mobile Gateways
Lahav Savir
 

Semelhante a Systems Design Experiences or Just Some War Stories… (20)

Distributed Erlang Systems In Operation
Distributed Erlang Systems In OperationDistributed Erlang Systems In Operation
Distributed Erlang Systems In Operation
 
Jay Kreps on Project Voldemort Scaling Simple Storage At LinkedIn
Jay Kreps on Project Voldemort Scaling Simple Storage At LinkedInJay Kreps on Project Voldemort Scaling Simple Storage At LinkedIn
Jay Kreps on Project Voldemort Scaling Simple Storage At LinkedIn
 
Life After Sharding: Monitoring and Management of a Complex Data Cloud
Life After Sharding: Monitoring and Management of a Complex Data CloudLife After Sharding: Monitoring and Management of a Complex Data Cloud
Life After Sharding: Monitoring and Management of a Complex Data Cloud
 
Xldb2011 wed 1415_andrew_lamb-buildingblocks
Xldb2011 wed 1415_andrew_lamb-buildingblocksXldb2011 wed 1415_andrew_lamb-buildingblocks
Xldb2011 wed 1415_andrew_lamb-buildingblocks
 
VoltDB and Erlang - Tech planet 2012
VoltDB and Erlang - Tech planet 2012VoltDB and Erlang - Tech planet 2012
VoltDB and Erlang - Tech planet 2012
 
Cpphtp4 ppt 01
Cpphtp4 ppt 01Cpphtp4 ppt 01
Cpphtp4 ppt 01
 
Latest (storage IO) patterns for cloud-native applications
Latest (storage IO) patterns for cloud-native applications Latest (storage IO) patterns for cloud-native applications
Latest (storage IO) patterns for cloud-native applications
 
Multi Layer Monitoring V1
Multi Layer Monitoring V1Multi Layer Monitoring V1
Multi Layer Monitoring V1
 
Hadoop Operations: Keeping the Elephant Running Smoothly
Hadoop Operations: Keeping the Elephant Running SmoothlyHadoop Operations: Keeping the Elephant Running Smoothly
Hadoop Operations: Keeping the Elephant Running Smoothly
 
Lahav Savir - Massively Scaleable Mobile Gateways
Lahav Savir - Massively Scaleable Mobile GatewaysLahav Savir - Massively Scaleable Mobile Gateways
Lahav Savir - Massively Scaleable Mobile Gateways
 
Introduction to Cloud Data Center and Network Issues
Introduction to Cloud Data Center and Network IssuesIntroduction to Cloud Data Center and Network Issues
Introduction to Cloud Data Center and Network Issues
 
High Scalability Toronto: Meetup #2
High Scalability Toronto: Meetup #2High Scalability Toronto: Meetup #2
High Scalability Toronto: Meetup #2
 
Large Scale Computing Infrastructure - Nautilus
Large Scale Computing Infrastructure - NautilusLarge Scale Computing Infrastructure - Nautilus
Large Scale Computing Infrastructure - Nautilus
 
Get the Facts: Oracle's Unbreakable Enterprise Kernel
Get the Facts: Oracle's Unbreakable Enterprise KernelGet the Facts: Oracle's Unbreakable Enterprise Kernel
Get the Facts: Oracle's Unbreakable Enterprise Kernel
 
Opening last bits of the infrastructure
Opening last bits of the infrastructureOpening last bits of the infrastructure
Opening last bits of the infrastructure
 
Kafka 0.8.0 Presentation to Atlanta Java User's Group March 2013
Kafka 0.8.0 Presentation to Atlanta Java User's Group March 2013Kafka 0.8.0 Presentation to Atlanta Java User's Group March 2013
Kafka 0.8.0 Presentation to Atlanta Java User's Group March 2013
 
Deploying Maximum HA Architecture With PostgreSQL
Deploying Maximum HA Architecture With PostgreSQLDeploying Maximum HA Architecture With PostgreSQL
Deploying Maximum HA Architecture With PostgreSQL
 
Simics - Break the Rules of Product Development
Simics - Break the Rules of Product DevelopmentSimics - Break the Rules of Product Development
Simics - Break the Rules of Product Development
 
Architecture to Scale. DONN ROCHETTE at Big Data Spain 2012
Architecture to Scale. DONN ROCHETTE at Big Data Spain 2012Architecture to Scale. DONN ROCHETTE at Big Data Spain 2012
Architecture to Scale. DONN ROCHETTE at Big Data Spain 2012
 
Introduction to failover clustering with sql server
Introduction to failover clustering with sql serverIntroduction to failover clustering with sql server
Introduction to failover clustering with sql server
 

Mais de Persistent Systems Ltd.

Mais de Persistent Systems Ltd. (20)

Skilling for SMAC by Anand Deshpande, Founder, Chairman and Managing Director...
Skilling for SMAC by Anand Deshpande, Founder, Chairman and Managing Director...Skilling for SMAC by Anand Deshpande, Founder, Chairman and Managing Director...
Skilling for SMAC by Anand Deshpande, Founder, Chairman and Managing Director...
 
Embedded Linux Evolution | Turing Techtalk
Embedded Linux Evolution | Turing TechtalkEmbedded Linux Evolution | Turing Techtalk
Embedded Linux Evolution | Turing Techtalk
 
Life and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk
Life and Work of Ken Thompson and Dennis Ritchie | Turing TechtalkLife and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk
Life and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk
 
Life and Work of Ivan Sutherland | Turing100@Persistent
Life and Work of Ivan Sutherland | Turing100@PersistentLife and Work of Ivan Sutherland | Turing100@Persistent
Life and Work of Ivan Sutherland | Turing100@Persistent
 
Evolution of the modern graphics architectures with a focus on GPUs | Turing1...
Evolution of the modern graphics architectures with a focus on GPUs | Turing1...Evolution of the modern graphics architectures with a focus on GPUs | Turing1...
Evolution of the modern graphics architectures with a focus on GPUs | Turing1...
 
What is wrong with the Internet? [On the foundations of internet security, fu...
What is wrong with the Internet? [On the foundations of internet security, fu...What is wrong with the Internet? [On the foundations of internet security, fu...
What is wrong with the Internet? [On the foundations of internet security, fu...
 
Life and Work of Ronald L. Rivest, Adi Shamir & Leonard M. Adleman | Turing10...
Life and Work of Ronald L. Rivest, Adi Shamir & Leonard M. Adleman | Turing10...Life and Work of Ronald L. Rivest, Adi Shamir & Leonard M. Adleman | Turing10...
Life and Work of Ronald L. Rivest, Adi Shamir & Leonard M. Adleman | Turing10...
 
Life and Work of Judea Perl | Turing100@Persistent
Life and Work of Judea Perl | Turing100@PersistentLife and Work of Judea Perl | Turing100@Persistent
Life and Work of Judea Perl | Turing100@Persistent
 
Early History of Fortran: The Making of a Wonder | Turing100@Persistent
Early History of Fortran: The Making of a Wonder | Turing100@PersistentEarly History of Fortran: The Making of a Wonder | Turing100@Persistent
Early History of Fortran: The Making of a Wonder | Turing100@Persistent
 
Life and Work of Dr. John Backus | Turing100@Persistent
Life and Work of Dr. John Backus | Turing100@PersistentLife and Work of Dr. John Backus | Turing100@Persistent
Life and Work of Dr. John Backus | Turing100@Persistent
 
Life and Work of Jim Gray | Turing100@Persistent
Life and Work of Jim Gray | Turing100@PersistentLife and Work of Jim Gray | Turing100@Persistent
Life and Work of Jim Gray | Turing100@Persistent
 
Software Faults, Failures and Their Mitigations | Turing100@Persistent
Software Faults, Failures and Their Mitigations | Turing100@PersistentSoftware Faults, Failures and Their Mitigations | Turing100@Persistent
Software Faults, Failures and Their Mitigations | Turing100@Persistent
 
System Anecdotes | Turing100@Persistent
System Anecdotes | Turing100@PersistentSystem Anecdotes | Turing100@Persistent
System Anecdotes | Turing100@Persistent
 
Life & Work of Butler Lampson | Turing100@Persistent
Life & Work of Butler Lampson | Turing100@PersistentLife & Work of Butler Lampson | Turing100@Persistent
Life & Work of Butler Lampson | Turing100@Persistent
 
Life & Work of Robin Milner | Turing100@Persistent
Life & Work of Robin Milner | Turing100@PersistentLife & Work of Robin Milner | Turing100@Persistent
Life & Work of Robin Milner | Turing100@Persistent
 
Life & Work of Dr. Vinton Cerf and Dr. Robert Kahn | Turing100@Persistent
Life & Work of Dr. Vinton Cerf and Dr. Robert Kahn | Turing100@PersistentLife & Work of Dr. Vinton Cerf and Dr. Robert Kahn | Turing100@Persistent
Life & Work of Dr. Vinton Cerf and Dr. Robert Kahn | Turing100@Persistent
 
Net Neutrality | Turing100@Persistent Systems
Net Neutrality | Turing100@Persistent SystemsNet Neutrality | Turing100@Persistent Systems
Net Neutrality | Turing100@Persistent Systems
 
Alan Turing Scientist Unlimited | Turing100@Persistent Systems
Alan Turing Scientist Unlimited | Turing100@Persistent SystemsAlan Turing Scientist Unlimited | Turing100@Persistent Systems
Alan Turing Scientist Unlimited | Turing100@Persistent Systems
 
Life and work of E.F. (Ted) Codd | Turing100@Persistent
Life and work of E.F. (Ted) Codd | Turing100@PersistentLife and work of E.F. (Ted) Codd | Turing100@Persistent
Life and work of E.F. (Ted) Codd | Turing100@Persistent
 
Alan Turing Centenary @ Persistent Systems
Alan Turing Centenary @ Persistent SystemsAlan Turing Centenary @ Persistent Systems
Alan Turing Centenary @ Persistent Systems
 

Último

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
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
vu2urc
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Último (20)

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
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
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
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
 
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...
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
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
 

Systems Design Experiences or Just Some War Stories…

  • 1. Systems Design Experiences or Just Some War Stories… Abhay Ghaisas Product Architect, BMC Software 1
  • 2. Iridium – Background  Satellite telephony project • 66 polar LEO satellites in six orbital planes • Provides telephony and messaging • Satellites have straight and cross links for communication • System control segment on ground with multiple gateways • Software development began in 1995 2
  • 3. System Challenges  Huge software system  Interacting components  Frameworks in nascent stage: CORBA  Immature development processes: no UML • Experiment with different OOAD methods • Invent some of your own  New language: C++ 3
  • 4. Messaging Subsystem  Function • Get messages (pages) with subscriber id • Locate the subscriber from HLR / VLR • Choose satellites and schedule of delivery • Multiple deliveries form different angles • Create transaction record 4
  • 5. Messaging Subsystem  Expectations • High throughput • Live system to support all messaging • High availability • Downtime has direct business impact • Fault tolerance • No single point of failure 5
  • 6. Challenges  No standard way of horizontal scaling  No off-the-shelf distributed architecture • No application servers  No distributed or clustered databases  No off-the-shelf components really… 6
  • 7. Solution  Build it yourself! 7
  • 8. HA and FT Architecture  Live and hot stand-by systems • Identical H/W and S/W  Connected over two LANs • To avoid single point of failure 8
  • 9. HA and FT Architecture  Hand-written demons to maintain health • Exchange heart-beat on both LANs • Watch for all processes to be alive • Declare switch-over in case of failure and initiate power recycle • Take over from other system in case of a switch-over • Hand shake on start-up to elect active and stand-by 9
  • 10. HA and FT Architecture  Cannot lose in-flight data • Relay each incoming message to stand-by system1 • Stand-by to hold on to the data till active finishes transaction • Allows for quick take over by stand-by system in case of failure  Ensure DB replication • No feature in DB itself • Active to relay DB changes to stand-by • Re-play DB changes on stand-by through code 1. Log Updates 10
  • 11. Other Fun Challenges  Regularly test the limits of C++ compiler • C++ far off from standardization  Test the limits of the source code control system 11
  • 12. Mobile Browser  For early mobile phones – c. 2000  No standard operating system • No standard memory management • No processes / scheduler • Memory mapped I/O • No file system  Limited resources • Low memory • Poor horsepower • Limited real estate 12
  • 13. Re-invent  How to parse HTML? • Cannot use standard parsers – none available • Cannot write one with Lex and Yacc – too heavy • Hand-write the parser – first principles  What about data structures? • Hand-write all the data structures • Use statically allocated memory – manage it yourself 13
  • 14. Re-invent  Custom-made display framework • Memory mapped display • Interfaces that let you draw to the glass • Hand written layered XML display framework1 • Messaging to handle dynamic parts of the display • Animation, blink, and marquee! 1. Use brute force 14
  • 15. Small World  Cannot assume a lot of resources • Use static limits1 • Parse only what you can2 • Display only what gets parsed 1. Split resources 2. Shed load 15
  • 16. Verification  No devices available for early verification  Components still to be manufactured!  Some kits, some emulation  Tap the display memory for automation 16

Notas do Editor

  1. Make actions restartable
  2. Log updates
  3. Use brute force
  4. Use static limit: Split resourcesParse only what you can: Shed load