Presentation is loading. Please wait.

Presentation is loading. Please wait.

© 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.

Similar presentations


Presentation on theme: "© 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."— Presentation transcript:

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


Download ppt "© 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."

Similar presentations


Ads by Google