Towards a Portable Networking Library
N. Bouraqadi and L. Fabresse ESUG 13 sept 2010
Pharo/Squeak Networking Support
VM
Image
OS Network API
Network Library
Socket plugin
VM
Socket plugin
TCP+ UDP+…
IPv4 +IPv6
VM
Socket plugin
TCP+ UDP+…
IPv4 +IPv6
Hard to port
Socket
HTTPSocket SocksSocket
SocketAdress
ByteArray
Imag
e
TCP+ UDP+…
IPv4 +IPv6 IPv4
+IPv6
Socket
HTTPSocket SocksSocket
SocketAdress
ByteArray
Imag
e
TCP+ UDP+…
IPv4 +IPv6 IPv4
+IPv6
Dirty!
Network Kernel Test Coverage
Imag
e
0%
100% tested
OOP
Let's redo it!
0% tested
Dirty!
Hard to port
Wrap OS Lib.
VM
Image
OS
OCEAN idea
Network API
Ocean Library
Alien plugin
Alien Library
Wrap OS Lib.
OCEAN Library Im
age
OOP
100% tested
OOP
OCEAN Library Latest
version
Imag
e
100% tested
Hard time writing tests!
Socket connected?
Data received?
Data sent?
Socket closed?
Concurrency!!!
VM
Image
OS
OSProcess for tests
Network API
Ocean Library
Alien plugin
Alien Library
OSProcess Library
OSProcess plugin
SystemAPI?
OCEAN early evaluation
0
50
100
150
200
250
300
350
Receive 10MB Send 10MB
ms Ocean
OldSocket
100% tested
OOP Portab
le
100% tested
OOP Portab
le
To do
Smaller VM
Ocean-based OO Middleware
Clean up Pharo
100% tested
OOP Portab
le
To do
Smaller VM
Ocean-based OO Middleware
Clean up Pharo
100% tested
OOP Portab
le
To do
Smaller VM
Ocean-based OO Middleware
Clean up Pharo