Description
beysims, juliaw, tmajest and yingdachen have developed a .NET API for REEF to allow applications to mix-and-match JVM and CLR code: The application code in a Driver can be either CLR or Java, while the application can consist of any mixture of CLR and JVM Evaluators.
This issue is to track our progress in contributing this code to the REEF project. The remainder of this descriptions provides an overview of the work, which consists of several key components, in addition to a complete mirror of the REEF API into a C# class library:
- Tang.NET: A complete implementation of Tang for the CLR. By design, it is capable of creating and validating configurations in a cross-language manner. That is: Given a Configuration and ClassHierarchy from C#, Tang/Java can validate whether e.g. a Task can be instantiated. Of course, the same is true with the roles of C# and Java being reversed.
- Wake.NET: Wake/Java took great inspiration from the Rx framework in .NET. Wake.NET uses this "happy coincidence" to provide event remoting between Wake/Java and Rx on the CLR. This allows events to originate on the JVM and be processed by a (potentially remote) CLR.
- A complete Evaluator implementation in .NET: This provides the runtime for Tasks implemented for .NET without any local overheads: The only thing running in a container is this CLR process, no Java is necessary there.
- An event bridge for the Driver: The core of the Driver is Java even when executing event handlers written in .NET. The Java and .NET portions of a Driver co-exist within the same Container (e.g. a YARN Application Master). The bridge performs event and API marshalling between these two worlds.
Attachments
Issue Links
- blocks
-
REEF-17 Remove DLL in the repository
- Closed
-
REEF-33 Support pushing Task messages from Evaluator to Driver.
- Open
-
REEF-111 Provide continuous integration for the .NET Code
- Resolved
-
REEF-113 Integrate .NET API documentation with our website
- Resolved
-
REEF-114 Trigger .NET build from Maven build
- Closed
-
REEF-117 Provide build instructions for the .NET code
- Closed
- relates to
-
REEF-97 Moving .Net Reef to Apache Git
- Resolved
-
REEF-50 Creating driver config for .Net clients
- Closed
1.
|
Moving Java Reef code under lang\java | Closed | Julia Wang | |
2.
|
Update .Net namesapce used in java Reef | Closed | Julia Wang | |
3.
|
Moving .Net Reef to Apache Git | Resolved | Julia Wang | |
4.
|
Move pom.xml back to root | Closed | Brian Cho |