Download presentation
Presentation is loading. Please wait.
Published bySybil Parsons Modified over 9 years ago
1
© 2008 by Wind River; made available under the EPL v1.0 | 19-Nov-2008 TCF The Target Communication Framework Michael Scharf, Wind River wiki.eclipse.org/DSDP/TM/TCF_FAQ
2
2TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 Credits Idea: Felix Burton (Wind River), Eugene Tarassov (Wind River) Original implementation Eugene Tarassov
3
3TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 Cross Development Communication with “target”: Download (of executables) Start/Stop Execution Debugging Tracing Monitoring …
4
4TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 Today: Incompatible Agent Solutions UI Target Tool ATool BTool CTool D Agent AAgent BAgent C Value Add B Value Add C Host P1 P3 P2
5
5TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 Bad for the User UI Target Tool ATool BTool CTool D Agent AAgent BAgent C Value Add B Value Add C Host P1 P3 P2 ?? ?
6
6TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 Bad Design! UI Target Tool ATool BTool CTool D Agent AAgent BAgent C Value Add B Value Add C Host
7
7TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 Limited eco system Too many different tools agents and protocols
8
8TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 Design Goals of TCF Framework provides common infrastructure communication protocol Agent: “Service container” Proxying Tools can use services in uniform way Service implementers can focus on functionality
9
9TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 TCF - Core Design Ideas Service knows best how to represent the system get information from there and data-drive layers above If not possible, put the knowledge in the lowest possible layer and data drive the layers above Use the same protocol end-to-end allow value-adding servers to intercept select services Services as building blocks E.g. target agent, OCD, simulator Avoid tools specific agents Support high latency communication links
10
10TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 Service 4 Service 5 TCF: Common agent and protocol Tool A Tool BTool CTool D TCF Agent Value Add UI Target Host Service 1Service 2Service 3
11
11TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 Peer is a Communication endpoint Service 4 Service 5 Tool A Tool BTool CTool D Value Add UI Target Host Service 1Service 2Service 3 TCF Agent
12
12TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 Service Service 4 Service 5 Tool A Tool BTool CTool D TCF Agent Value Add UI Target Host Service 1Service 2Service 3
13
13TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 Message Channel Service 4 Service 5 Tool A Tool BTool CTool D TCF Agent Value Add UI Target Host Service 1Service 2Service 3 TCF Channel
14
14TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 Channels and Messages Communication between peers use channels Channels abstract/hide the transport layer Currently TCP Possible: RS232, JTAG, USB etc Channels transmit Messages
15
15TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 TCF Communication Protocol Message A packet of data Transmitted over communication channel Multiple channels per peer Proxying/Tunneling Message forwarding “Decorator” can intercept communication “Value-add” services (e.g. debug info) No protocol conversion needed
16
16TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 The TCF Message Types Command (send) Request some action on remote peer Progress Long running commands may send “progress ticks” Result (reply) Remote peer sends one result for each command! Event Notify a change Flow control prevent congestion
17
17TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 Command Command is a message Sent to remote peer Remote peer must send one Result for each Command!
18
18TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 Result Result is a message Data, Errors Sent as a response to a command Remote peer sends one Result per Command!
19
19TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 Commands are Asynchronous Sender of a command returns immediately Fast on high latency connections Sender receives results asynchronously
20
20TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 Event Event is a message Notification about state changes
21
21TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 Message order guaranteed on channel Keep state of remote peer Without message ordering no consistent state Ordering per channel and direction Command X=1 Result X=1 Event X=2 Command X=3 Event X=4 Result X=3 Event X=5
22
22TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 Flow Control Prevent congestion
23
23TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 Service 4 Service 5 TCF: Layered View Tool A Tool BTool CTool D TCF Agent Value Add UI Target Host Service 1Service 2Service 3
24
24TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 Communication Layers Channel Messages Services Transport Layer (e.g. TCP/IP)
25
25TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 Transport Layer: Byte Stream Channel Messages ????????????????????????????????????????????? Services Transport Layer (e.g. TCP/IP)
26
26TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 Channel: Message Stream Messages ????? ?????????????????????????????? ??????? Channel Services ?????????????????????????????????????????????? Transport Layer (e.g. TCP/IP)
27
27TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 Messages: Command Result Event Flow Messages ????? ?????????????????????????????? ??????? C 17 SysMonitor getChildren ?????? ?????????????????????????????????????????????? Channel Transport Layer (e.g. TCP/IP) Services
28
28TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 Message Type Messages C 17 SysMonitor getChildren ?????? Message Type ????? ?????????????????????????????? ??????? ?????????????????????????????????????????????? Channel Transport Layer (e.g. TCP/IP) Services
29
29TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 Token Messages C 17 SysMonitor getChildren ?????? Token: Channel Unique To identify Result ????? ?????????????????????????????? ??????? ?????????????????????????????????????????????? Channel Transport Layer (e.g. TCP/IP) Services
30
30TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 Service Id Messages C 17 SysMonitor getChildren ?????? Service id ????? ?????????????????????????????? ??????? ?????????????????????????????????????????????? Channel Transport Layer (e.g. TCP/IP) Services
31
31TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 Command Name Messages C 17 SysMonitor getChildren ?????? Command name ????? ?????????????????????????????? ??????? ?????????????????????????????????????????????? Channel Transport Layer (e.g. TCP/IP) Services
32
32TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 Arguments (byte array) Messages C 17 SysMonitor getChildren ?????? Arguments (byte array) ????? ?????????????????????????????? ??????? ?????????????????????????????????????????????? Channel Transport Layer (e.g. TCP/IP) Services
33
33TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 Argument Representation: e.g. JSON Messages C 17 SysMonitor getChildren [“p123”] C 17 SysMonitor getChildren ?????? ????? ?????????????????????????????? ??????? ?????????????????????????????????????????????? Channel Transport Layer (e.g. TCP/IP) Services Marshalling: JSON
34
34TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 getChildren in Java C 17 SysMonitor getChildren [“p123”] R 17 [“p124”, “p125”]
35
35TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 The 5 TCF Messages Command C Progress P Result R Event E Flow F
36
36TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 Value-add Service 4 Service 5 Tool A Tool BTool CTool D TCF Agent Value Add UI Target Host Service 1Service 2Service 3
37
37TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 Required service: Locator Used to discover peers Peer lifecycle events When connected peers can list its services
38
38TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 Auto Discovery Discovers Peers and Services Simplifies setup Client UI can easily find peers and discover services TCF comes with a simple UDP auto discovery Other mechanisms possible and optional
39
39TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 Prototype implementation Lightweight C-based agent Minimal agent has < 4000 lines of C code Minimal impact on the target Eclipse plug-ins Java TCF implementation to access service
40
40TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 TCF Services Run Control Service Breakpoints Service Memory Service Registers Service Processes Service Stack Trace Service System Monitor Service File System Service
41
41TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 Use Case: SimpleJtagDevice Protocol TCP/IP Services Service Manager (returns fixed list of services) Debug (run-control, breakpoint, memory access) Possibly Others (flash programming, download, etc) No Dynamic Addition or Removal of Services No Multiplexing (single client) No Forwarding No Dynamic Discovery 41
42
42TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 Use Case: TestExceutionAgent Protocol Depends on OS configuration and board Services Service Manager (returns fixed list of services) Process launch and kill Standard I/O redirection File system access No Dynamic Addition or Removal of Services No Multiplexing (multiple clients) No Forwarding No Dynamic Discovery 42
43
43TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 Use Case: LinuxUserModeAgent Protocol Typically TCP/IP, but depends on OS configuration and hardware Services Service Manager Debug (run-control, breakpoint, memory access) OS Awareness (process/thread list, CPU utilization, etc) Process launch and kill Standard I/O redirection File system access Possibly Dynamic Addition or Removal of Services Possibly Multiplexing (multiple clients) Possibly Forwarding Possibly Dynamic Discovery 43
44
44TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 RSE sample Process service File service
45
45TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 TCF Debugging example
46
46TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 Specification Status Review of current and specification of additional services in power.org and Eclipse
47
47TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 Links TCF source repository http://www.eclipse.org/dsdp/tm/development/tcf-anonymous.psf http://www.eclipse.org/dsdp/tm/development/tcf-anonymous.psf svn://dev.eclipse.org/svnroot/dsdp/org.eclipse.tm.tcf/trunk svn://dev.eclipse.org/svnroot/dsdp/org.eclipse.tm.tcf/trunk http://dev.eclipse.org/viewsvn/index.cgi/org.eclipse.tm.tcf/?root=DSD P_SVN http://dev.eclipse.org/viewsvn/index.cgi/org.eclipse.tm.tcf/?root=DSD P_SVN FAQ http://wiki.eclipse.org/DSDP/TM/TCF_FAQhttp://wiki.eclipse.org/DSDP/TM/TCF_FAQ Has links to all Documentation: Getting Started (less than what we did) Protocol Specification (messages, events, JSON) Services description Agent description 47
48
48TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 ? ?
49
49TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008
50
50TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 TCF vs. ECF TCF is a Protocol independent of API ECF is an API independent of Protocol
51
51TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 TCF and the OSI Layers 7 Application Layer 6 Presentation Layer 5 Session Layer 4 Transport Layer 3 Network Layer 2 Data Link Layer 1 Physical Layer Channel + Messages JSON Services
52
52TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 TCF as Layer 3 and 4 7 Application Layer 6 Presentation Layer 5 Session Layer 4 Transport Layer 3 Network Layer 2 Data Link Layer 1 Physical Layer JSON Services Channel + Messages
53
53TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008
54
54TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 Use Case: SimpleJtagDevice Debug (run-control, breakpoint, memory register) Possibly Others (flash programming, download, etc)
55
55TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 Use Case: TestExceutionAgent Process launch and kill Standard I/O redirection File system access
56
56TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008 Use Case: LinuxUserModeAgent Debug (run-control, breakpoint, memory, register) OS Awareness (process/thread list, CPU utilization, etc potentially with value-add) Process launch and kill Standard I/O redirection File system access Monitoring (event-config, event-log)
57
57TCF: The Target Communication Framework | © 2008 Wind River; made available under the EPL v1.0 | Eclipse Summit Europe | Nov 2008
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.