SlideShare a Scribd company logo
Opentalk at Large Martin Kobetic Cincom Smalltalk Development Smalltalk Solutions 2005
Overview Multicasting IP Multicasting Opentalk-Groups Grid Computing Introduction Framework
Join the GRID Demo ! Wireless AP SSID: Blitzz DHCP Browse:  http://192.168.1.3/pub Dowload: grid.im grid.cha VM otminstaller.exe
IP Multicasting: Intro IP range: 224.0.0.0-239.255.255.255 API: datagram sockets (UDP) join/drop multicast group loopback: on/off multicast routing, IGMP, ttl
IP Multicasting: Sender ( SocketAccessor family: SocketAccessor AF_INET type: SocketAccessor SOCK_DGRAM ) bindTo: IPSocketAddress thisHostAnyPort
IP Multicasting: Sending group := IPSocketAddress hostAddress: #[224 5 6 7] port: 4242. (sender writeWaitWithTimeoutMs: 100) ifFalse: [  sender sendTo: group buffer: ‘Hello’ asByteArray ]
IP Multicasting: Receiver ( SocketAccessor family: SocketAccessor AF_INET type: SocketAccessor SOCK_DGRAM ) soReuseAddr: true; bindTo: (IPSocketAddress hostAddress: #[0 0 0 0] port: 4242); join: (IPMulticastRequest toAddress: #[224 5 6 7])
IP Multicasting: Receiving sa := IPSocketAddress new. buf := ByteArray new: 5. (receiver readWaitWithTimeoutMs: 100) ifFalse: [ size := receiver receiveFrom: sa buffer: buf (buffer copyFrom: 1 to: size) asString ]
Opentalk-Groups: Intro Object Group brokers running on the same port brokers join the same mcast address receivers exported under the same OID group proxy #(mcast-address, port, OID) Remote Group Request STSTOnewayRequest
Opentalk-Groups: Broker (BrokerConfiguration standard adaptor: (AdaptorConfiguration  objectGroups transport: (TransportConfiguration  mcast mcastAddresses:  #([224 5 6 7]); marshaler: MarshalerConfiguration stst ))) newAtPort:  4242
Opentalk-Groups: Receiver receivers exported under the same OID broker1 objectAdaptor export: Transcript oid: #group. broker2 objectAdaptor export: Transcript oid: #group. …
Opentalk-Groups: Sender group proxy #(mcast-address, port, OID) group := broker groupById: #group. group show: ‘Hello World!’
Opentalk-Groups: Sender multiple mcast addresses group := broker groupAt: (IPSocketAddress hostAddress: #[224 5 6 7] port: 4242) id: #group. group show: ‘Hello World!’
OpenChat: Unicast server: parties, sessions add/remove parties session management (invite/accept/decline…) client: server, parties, session messages (send/receive – via session) session: server, parties message broadcasting party management (joining/leaving session)
OpenChat: Multicast group #all joining:, alreadyIn:, leaving: startSession: id for: originator with: party on: topic session groups accepting: id / declining: id displayMessage: aString from: id leavingSession: id
Opentalk-Groups one-way messages Group Refs => multicasted messages ObjRefs => unicasted messages groups tied to the object table constraints (only one export per object) weakness (exported objects may get GCed) packet size / fragmentation (UDP)
Grid: Intro complex task & distributed resources [email_address] resource discovery resource configuration task distribution result collection
Grid: Demo code breaking: RC4_40_MD5 brute force but randomly selected ranges ranges searched sequentially looking for a known pattern ‘GET /’
Grid: Demo Setup http://192.168.1. 3/pub grid.im, grid.cha, VM start the image (chmod u+x VM) launcher menu: Tools / Open Grid Drone set #id inst var inst var menu: Connect If asked for IP => 192.168.1.2:7777
Grid: Framework Controller task specific maintains the grid configures drones distributes tasks collects results Drones generic looks for controller joins/leaves grid gets configured executes tasks
Grid: Task [ :range :size :ct | (range to: range + size - 1) detect: [ :i || dt | arc setKey: i asByteArray. dt := arc decrypt: ct. dt “starts with ‘GET /’ ?” ] ifNone: [nil] ]
Grid: Configuration task:  <String> prerequisites: #(('ARC4' '')) imports: 'private Security.*' defaults: #(nil  2**task  ct) bindings:  #(#arc -> ‘ARC4 new’)
Grid: Execution task parameters: chosen range callback selector: #reply:from:in: (default) callback recipient: controller (default)
Grid: Execution [ | drone | drone := self next. key ifNil: [ | range | range := “random unchecked range” drone goWith: range. count < tasks ifNotNil: [ false ] ] whileTrue. ^((ARC4 key: key) decrypt: ct) asString.
Grid: Result Collection reply: anObject from: aDrone in: ms count := count + 1 anObject ifNotNil: [ key := anObject. winner := aDrone ]. self return: aDrone
Grid: Challenges code in Strings task binding initializers concurrency control thread working threads
Thank You! [email_address] com irc.parcplace.net /join #smalltalk (mk) public Store repository bundles OpentalkBase OpenChat Grid

More Related Content

PPT
Tcp sockets
PPT
Socket System Calls
PPTX
Socket programming
PPTX
Socket programming
PPT
Ppt of socket
PDF
Twisted logic
PDF
Java- Datagram Socket class & Datagram Packet class
PDF
Network Sockets
Tcp sockets
Socket System Calls
Socket programming
Socket programming
Ppt of socket
Twisted logic
Java- Datagram Socket class & Datagram Packet class
Network Sockets

What's hot (20)

PDF
Advanced Sockets Programming
PPTX
Socket programming
PDF
Socket programming using C
DOCX
network programing lab file ,
PDF
Docker-OVS
PPT
Pemrograman Jaringan
PPT
Socket programming in C
PPT
Socket Programming
PDF
Lecture10
PDF
Programming TCP/IP with Sockets
PPTX
Socket programming in c
PDF
Docker and Fargate
DOCX
Chatting dengan beberapa pc laptop
PDF
Lecture6
PPTX
Elementary TCP Sockets
PPT
Socket programming-tutorial-sk
PDF
Sockets
PDF
PPTX
Blockchain Cryptography for Developers (Nakov @ BlockWorld 2018, San Jose)
PPT
Easy Steps to implement UDP Server and Client Sockets
Advanced Sockets Programming
Socket programming
Socket programming using C
network programing lab file ,
Docker-OVS
Pemrograman Jaringan
Socket programming in C
Socket Programming
Lecture10
Programming TCP/IP with Sockets
Socket programming in c
Docker and Fargate
Chatting dengan beberapa pc laptop
Lecture6
Elementary TCP Sockets
Socket programming-tutorial-sk
Sockets
Blockchain Cryptography for Developers (Nakov @ BlockWorld 2018, San Jose)
Easy Steps to implement UDP Server and Client Sockets
Ad

Viewers also liked (20)

PPT
Cryptography and SSL in Smalltalk - StS 2003
PDF
Secure Communications with VisualWorks - CSTUC 2006
PPT
Cryptography for Smalltalkers 2 - ESUG 2006
PPT
CVST - Smalltalk Solutions 2001
PDF
Adding Tree and Tree
DOCX
Protecting Students On and Off Campus- Expanding The Jeanne Clery Act
PPT
WordCamp Utah 2010 Presentation
PPTX
Maycafotos2 eviita
PPTX
Maycafotos2 eviita
PDF
Xtreams - ESUG 2010
PPTX
Jane Austen Can Get You A Job
PDF
VisualWorks Security Reloaded - STIC 2012
PPT
Secure Socket Layer (SSL)
PPT
Cryptography for Smalltalkers - ESUG 2004
PDF
What Would You Like To Grow... Community Values
PPTX
1 overview pkg-pkb versi 5 12 mei 12
PDF
What Can Private Businesses Do to Attract and Retain Talent?
PPTX
La photographie est un art
PPTX
L'institution culturelle de la photographie HP3
Cryptography and SSL in Smalltalk - StS 2003
Secure Communications with VisualWorks - CSTUC 2006
Cryptography for Smalltalkers 2 - ESUG 2006
CVST - Smalltalk Solutions 2001
Adding Tree and Tree
Protecting Students On and Off Campus- Expanding The Jeanne Clery Act
WordCamp Utah 2010 Presentation
Maycafotos2 eviita
Maycafotos2 eviita
Xtreams - ESUG 2010
Jane Austen Can Get You A Job
VisualWorks Security Reloaded - STIC 2012
Secure Socket Layer (SSL)
Cryptography for Smalltalkers - ESUG 2004
What Would You Like To Grow... Community Values
1 overview pkg-pkb versi 5 12 mei 12
What Can Private Businesses Do to Attract and Retain Talent?
La photographie est un art
L'institution culturelle de la photographie HP3
Ad

Similar to Opentalk at Large - StS 2005 (11)

PDF
Teach your (micro)services talk Protocol Buffers with gRPC.
PDF
Lindsay distributed geventzmq
PPT
Suman's PhD Candidacy Talk
PDF
Ccag gossip based reliable multicast protocol
PPTX
CocoaConf: The Language of Mobile Software is APIs
PDF
Scalable Socket Server by Aryo
PDF
Distributed Ruby and Rails
PDF
Building Distributed Systems
PDF
Taming Cloud APIs with Swift
PPT
TCP IP
PPTX
session6-Network Programming.pptx
Teach your (micro)services talk Protocol Buffers with gRPC.
Lindsay distributed geventzmq
Suman's PhD Candidacy Talk
Ccag gossip based reliable multicast protocol
CocoaConf: The Language of Mobile Software is APIs
Scalable Socket Server by Aryo
Distributed Ruby and Rails
Building Distributed Systems
Taming Cloud APIs with Swift
TCP IP
session6-Network Programming.pptx

Recently uploaded (20)

PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Empathic Computing: Creating Shared Understanding
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Electronic commerce courselecture one. Pdf
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
KodekX | Application Modernization Development
PPT
Teaching material agriculture food technology
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
Per capita expenditure prediction using model stacking based on satellite ima...
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Review of recent advances in non-invasive hemoglobin estimation
Empathic Computing: Creating Shared Understanding
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
20250228 LYD VKU AI Blended-Learning.pptx
Electronic commerce courselecture one. Pdf
MYSQL Presentation for SQL database connectivity
Spectral efficient network and resource selection model in 5G networks
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
KodekX | Application Modernization Development
Teaching material agriculture food technology
Understanding_Digital_Forensics_Presentation.pptx
Encapsulation_ Review paper, used for researhc scholars
Building Integrated photovoltaic BIPV_UPV.pdf
Unlocking AI with Model Context Protocol (MCP)

Opentalk at Large - StS 2005

  • 1. Opentalk at Large Martin Kobetic Cincom Smalltalk Development Smalltalk Solutions 2005
  • 2. Overview Multicasting IP Multicasting Opentalk-Groups Grid Computing Introduction Framework
  • 3. Join the GRID Demo ! Wireless AP SSID: Blitzz DHCP Browse: http://192.168.1.3/pub Dowload: grid.im grid.cha VM otminstaller.exe
  • 4. IP Multicasting: Intro IP range: 224.0.0.0-239.255.255.255 API: datagram sockets (UDP) join/drop multicast group loopback: on/off multicast routing, IGMP, ttl
  • 5. IP Multicasting: Sender ( SocketAccessor family: SocketAccessor AF_INET type: SocketAccessor SOCK_DGRAM ) bindTo: IPSocketAddress thisHostAnyPort
  • 6. IP Multicasting: Sending group := IPSocketAddress hostAddress: #[224 5 6 7] port: 4242. (sender writeWaitWithTimeoutMs: 100) ifFalse: [ sender sendTo: group buffer: ‘Hello’ asByteArray ]
  • 7. IP Multicasting: Receiver ( SocketAccessor family: SocketAccessor AF_INET type: SocketAccessor SOCK_DGRAM ) soReuseAddr: true; bindTo: (IPSocketAddress hostAddress: #[0 0 0 0] port: 4242); join: (IPMulticastRequest toAddress: #[224 5 6 7])
  • 8. IP Multicasting: Receiving sa := IPSocketAddress new. buf := ByteArray new: 5. (receiver readWaitWithTimeoutMs: 100) ifFalse: [ size := receiver receiveFrom: sa buffer: buf (buffer copyFrom: 1 to: size) asString ]
  • 9. Opentalk-Groups: Intro Object Group brokers running on the same port brokers join the same mcast address receivers exported under the same OID group proxy #(mcast-address, port, OID) Remote Group Request STSTOnewayRequest
  • 10. Opentalk-Groups: Broker (BrokerConfiguration standard adaptor: (AdaptorConfiguration objectGroups transport: (TransportConfiguration mcast mcastAddresses: #([224 5 6 7]); marshaler: MarshalerConfiguration stst ))) newAtPort: 4242
  • 11. Opentalk-Groups: Receiver receivers exported under the same OID broker1 objectAdaptor export: Transcript oid: #group. broker2 objectAdaptor export: Transcript oid: #group. …
  • 12. Opentalk-Groups: Sender group proxy #(mcast-address, port, OID) group := broker groupById: #group. group show: ‘Hello World!’
  • 13. Opentalk-Groups: Sender multiple mcast addresses group := broker groupAt: (IPSocketAddress hostAddress: #[224 5 6 7] port: 4242) id: #group. group show: ‘Hello World!’
  • 14. OpenChat: Unicast server: parties, sessions add/remove parties session management (invite/accept/decline…) client: server, parties, session messages (send/receive – via session) session: server, parties message broadcasting party management (joining/leaving session)
  • 15. OpenChat: Multicast group #all joining:, alreadyIn:, leaving: startSession: id for: originator with: party on: topic session groups accepting: id / declining: id displayMessage: aString from: id leavingSession: id
  • 16. Opentalk-Groups one-way messages Group Refs => multicasted messages ObjRefs => unicasted messages groups tied to the object table constraints (only one export per object) weakness (exported objects may get GCed) packet size / fragmentation (UDP)
  • 17. Grid: Intro complex task & distributed resources [email_address] resource discovery resource configuration task distribution result collection
  • 18. Grid: Demo code breaking: RC4_40_MD5 brute force but randomly selected ranges ranges searched sequentially looking for a known pattern ‘GET /’
  • 19. Grid: Demo Setup http://192.168.1. 3/pub grid.im, grid.cha, VM start the image (chmod u+x VM) launcher menu: Tools / Open Grid Drone set #id inst var inst var menu: Connect If asked for IP => 192.168.1.2:7777
  • 20. Grid: Framework Controller task specific maintains the grid configures drones distributes tasks collects results Drones generic looks for controller joins/leaves grid gets configured executes tasks
  • 21. Grid: Task [ :range :size :ct | (range to: range + size - 1) detect: [ :i || dt | arc setKey: i asByteArray. dt := arc decrypt: ct. dt “starts with ‘GET /’ ?” ] ifNone: [nil] ]
  • 22. Grid: Configuration task: <String> prerequisites: #(('ARC4' '')) imports: 'private Security.*' defaults: #(nil 2**task ct) bindings: #(#arc -> ‘ARC4 new’)
  • 23. Grid: Execution task parameters: chosen range callback selector: #reply:from:in: (default) callback recipient: controller (default)
  • 24. Grid: Execution [ | drone | drone := self next. key ifNil: [ | range | range := “random unchecked range” drone goWith: range. count < tasks ifNotNil: [ false ] ] whileTrue. ^((ARC4 key: key) decrypt: ct) asString.
  • 25. Grid: Result Collection reply: anObject from: aDrone in: ms count := count + 1 anObject ifNotNil: [ key := anObject. winner := aDrone ]. self return: aDrone
  • 26. Grid: Challenges code in Strings task binding initializers concurrency control thread working threads
  • 27. Thank You! [email_address] com irc.parcplace.net /join #smalltalk (mk) public Store repository bundles OpentalkBase OpenChat Grid

Editor's Notes

  • #8: sender can be receiver
  • #17: OT constraints =&gt; wrapped Chat instance in a Proxy OT weakness =&gt; have to hold onto the proxies strongly, otherwise they get GCed
  • #22: range &lt;Integer&gt; starting point of a key range size &lt;Integer&gt; size of the key range (constant) ct &lt;ByteArray&gt; encrypted text arc &lt;ARC4&gt; instance of ARC4 (preconfigured for reuse) dt &lt;ByteArray&gt; decrypted text
  • #23: task: code from previous slide as a String (will be compiled on the Drone) prerequistes: parcel names and versions that need to be loaded in order to run the task imports: namespaces to import into the private namespace of the drone defauts: default values for task parameters bindings: private, task specific, variables of the drone (from its private namespace) can be used either for constant values or to carry state between the task runs
  • #24: parameters: actual parameters for given task run callback: used by drone to report results of a task run each task run is executed in its own worker process
  • #25: get a drone out of the pool (wait if there is none) was the key found yet ? if not, find the next unchecked key range, get the drone search it
  • #26: was the key found ? if yes, set the ‘key’ to allow the control thread to break out of the loop return the drone to the pool, so that its available for another task