7
Rigorous Engineering of Mainstream Systems EPSRC Programme Grant Cambridge, Imperial & others 2014-2020 iCore -- 20 Apr 2015 Team Jon

Rigorous Engineering of Mainstream Systems EPSRC Programme Grant Cambridge, Imperial & others 2014-2020 iCore -- 20 Apr 2015 Team Jon

Embed Size (px)

Citation preview

Page 1: Rigorous Engineering of Mainstream Systems EPSRC Programme Grant Cambridge, Imperial & others 2014-2020 iCore -- 20 Apr 2015 Team Jon

Rigorous Engineering of Mainstream Systems

EPSRC Programme GrantCambridge, Imperial & others

2014-2020

iCore -- 20 Apr 2015

Team Jon

Page 2: Rigorous Engineering of Mainstream Systems EPSRC Programme Grant Cambridge, Imperial & others 2014-2020 iCore -- 20 Apr 2015 Team Jon

Communications Systems Complexity

•The Internet&Cellular Networks are quite big

•They contain many protocols (e.g. >5000 RFCs)

•Much code….for each one

•Interactions are complex…

Page 3: Rigorous Engineering of Mainstream Systems EPSRC Programme Grant Cambridge, Imperial & others 2014-2020 iCore -- 20 Apr 2015 Team Jon

Programming Languages• Written (at best) in C and Java (and Javascript)

– Very bad idea

• E.g. TLS (you know, when https is green – had >50 vulnerabilities reported in 2014

– Most were preventable if….

• Language Babel – C doesn’t have type safety

– C11 and Java definitions aren’t complete on concurrency (see next)

– Prejudice amongst low level engineers is • functional languages arent efficient (wrong)

• even if they are (more verifiable

Page 4: Rigorous Engineering of Mainstream Systems EPSRC Programme Grant Cambridge, Imperial & others 2014-2020 iCore -- 20 Apr 2015 Team Jon

Communications and Concurrency• Communications is inherently concurrent

– And non-deterministic

– And error prone (including fail silent, or out-of-thin-air)

• Very hard to test all cases– Even “corner cases” ill defined

– Interactions very complex indeed

• Disconnect between layers– TCP (IP) meets RAN

– Terrible plethora of problems

• Interaction between Admin Domains– Intra v. Inter-AS

– End Systems, Routers, and Middle Boxes…..

Page 5: Rigorous Engineering of Mainstream Systems EPSRC Programme Grant Cambridge, Imperial & others 2014-2020 iCore -- 20 Apr 2015 Team Jon

Specification and Model

• Most systems specified in “English”• Not exactly world’s most precise definitions• Amenable/Accessible to lots of people• No matter how few skills… (ASN.1)• Or how many (SIP)

Page 6: Rigorous Engineering of Mainstream Systems EPSRC Programme Grant Cambridge, Imperial & others 2014-2020 iCore -- 20 Apr 2015 Team Jon

Culture Clash

• We have better languages&tool chains:– Modelling approaches &– Verification tools

• But we have legacy code– And legacy coders

• So we’re tackling on both fronts– Re-engineer systems in safer languages w/ models– Try to fix languages (&compilers) (C11, JS)

Page 7: Rigorous Engineering of Mainstream Systems EPSRC Programme Grant Cambridge, Imperial & others 2014-2020 iCore -- 20 Apr 2015 Team Jon

Conclusions

• It’s very bad out there• Testing won’t cut it• Its critical infrastructure• Stop using perl, ever ever ever