Target Communication Framework 1.1.0 Release Review

Type: 
Release
State: 
Successful
End Date of the Review Period: 

Reviews run for a minimum of one week. The outcome of the review is decided on this date. This is the last day to make comments or ask questions about this review.

Wednesday, June 12, 2013

Release Review

Release: 

Target Communication Framework 1.1.0

Description: 

TCF provides a standard API and protocol for communicating with embedded systems for debugging, tracing, file transfer, terminal access and other services.
The key benefits of TCF (compared to gdb, ssh and related tools) are its flexible componentized structure which allows vendor-neutral plugging of individual services, as well as performance and robustness for complex multi-core systems. The context hierarchy supports addressing and OS awareness on nested virtual machines in a generic way. TCF is lightweight and easy to port. The protocol supports auto-discovery of peers, transparent proxying / tunneling, and security via SSL if desired. A full C/C++ debugger and the "Target Explorer" System Management Suite are provided as exemplary tools on top of the framework.
The TCF 1.1 release is focused on bug fixes and quality, though several enhancements have made it in as per the New & Noteworthy here: http://wiki.eclipse.org/TCF/NewIn11

 

API Certification: 

The project leadership certifies that the APIs in this release are "Eclipse Quality".

Architectural Issues: 

The TCF core has been carefully designed from the ground up, and no architectural issues are known in the core.
In Target Explorer, standard Common Navigator extension points are used in order to customize the tooling. The ID’s and workflows for customization have not been documented so far but can be found in the code. Not all public Java API's are documented in Target Explorer.

Security Issues: 

None known at this time. TCF connections use a plaintext protocol based on JSON by default, but can optionally be routed over SSL ports for security.
Not all TCF server code that listens on TCP/IP ports has been reviewed for potential security issues (like DDoS attacks) though. Since TCF is primarily meant as deveopment-time tooling in the lab, this is not seen as an issue. Thanks to the protocol channel abstraction, TCF can always be tunneled over alternative communication channels (such as SSH) if desired.
A TCF server that runs with root privileges will provide root access to the target by default.

Non-Code Aspects: 

Documentation has been updated in this release. A long talk is given at EclipseCon france. Besides that, existing examples, tutorials and talks from previous releases are still valid.

Usability: 

A strong focus has been put on usability of end-to-end workflows in Target Explorer in this release. UI Labels and dialogs have been reviewed and updated.

End of Life: 

Nothing is end of lifed in this release.

Standards: 
  • The SSL support uses X.509 certificates.
  • Data structures are transferred using JSON encoding.
  • The Terminal integration supports SSH
  • Python code has been formatted using the latest PEP8 recommendations.
Communities: 

There was a strong increase in the number of contriburs in this release. 3 committers have been added, and 1 committer has been removed. In totoal there have been 42 contributors over the life of the project (31 in the past release cycle). There are 11 committers from 3 different organizations, with Wind River and Xilinx being the main project sponsors.
At EclipseCon 2013, there was strong interest from the M2M space, as well as several other potential adopters. Not much traffic from these has been seen on the mailing list though.
With the revamp of the TCF homepage, the end-to-end usable tools, and improved social media coverage we hope to further increase TCF adoption moving forward.