You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@teaclave.apache.org by sh...@apache.org on 2022/11/11 05:18:27 UTC

[incubator-teaclave-java-tee-sdk] 47/48: [misc] Add proposal.md file for donation to Apache Teaclave

This is an automated email from the ASF dual-hosted git repository.

shaojunwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-teaclave-java-tee-sdk.git

commit e4406f83a18cd28e346c4fe5a3170511b9395568
Author: jeffery.wsj <je...@alibaba-inc.com>
AuthorDate: Fri Oct 14 11:31:02 2022 +0800

    [misc] Add proposal.md file for donation to Apache Teaclave
    
    Summary: Add proposal.md file for donation to Apache Teaclave.
    
    Test Plan: all tests pass
    
    Reviewers: lei.yul, cengfeng.lzy, sanhong.lsh
    
    Issue: https://aone.alibaba-inc.com/task/45491707
    
    CR: https://code.aone.alibaba-inc.com/java-tee/JavaEnclave/codereview/10408127
---
 Proposal.md                                        | 103 +++++++++++++++++++++
 README.md                                          |  27 ++++--
 .../JavaEnclave_Application_Dependency.png         | Bin 93938 -> 93093 bytes
 docs/resources/JavaEnclave_Architecture.png        | Bin 121478 -> 143242 bytes
 4 files changed, 123 insertions(+), 7 deletions(-)

diff --git a/Proposal.md b/Proposal.md
new file mode 100644
index 0000000..09d9a73
--- /dev/null
+++ b/Proposal.md
@@ -0,0 +1,103 @@
+======== Proposal =======
+
+## Abstract
+
+JavaEnclave is a Java confidential computing programming framework. It follows the host-and-enclave partition programming model defined by Intel-SGX SDK. 
+JavaEnclave provides an elegant way to divide a java project into host and enclave modules, where the enclave module is a provider of a user-defined service interface which is similar to the Java SPI model. JavaEnclave could help you to develop and build a Java confidential computing project with high efficiency.
+
+## Proposal
+
+JavaEnclave is a pure Java SDK for Java confidential computing. It eases the interactions between secured and unsecured environment with a few concise APIs.
+From user's aspect, creating an enclave environment and invoking confidential computing services would be as simple as invoking SPI services.
+
+### Background
+
+The JavaEnclave project is being actively developed within Alibaba Cloud.
+
+### Rationale
+
+JavaEnclave is a Java confidential computing programming framework. The goal of Teaclave is to provide a universal secure computing platform for multiple programming languages. Teaclave currently supports Rust, Python and WebAssembly, but Java is still missing. JavaEnclave would be an important piece of the puzzle.
+
+### Initial Goals
+
+- Transfer the repository to the Apache Incubator under the Teaclave project
+- Code cleanup and more documentation
+
+#### Meritocracy:
+
+JavaEnclave project was originally developed and reviewed by Shaojun Wang/Ziyi Lin/Lei Yu/Sanhong Li within Alibaba Cloud. We encourage everyone to ask questions and create pull requests for the project.
+
+#### Community:
+
+JavaEnclave was developed and applied within Alibaba Cloud before it was donated to Teaclave.
+
+#### Core Developers:
+
+The core developers are:
+- Shaojun Wang (jeffery.wsj@alibaba-inc.com)
+- Ziyi Lin (cengfeng.lzy@alibaba-inc.com)
+
+#### Alignment:
+
+The project is complimentary of Teaclave's TEE backends.
+
+### Known Risks
+
+An exercise in self-knowledge. Risks don't mean that a project is unacceptable. If they are recognized and noted, then they can be addressed during incubation.
+
+#### Project Name
+
+Since the project will be accepted as a subproject in Teaclave, the project is renamed Teaclave-java-tee-sdk.
+
+#### Inexperience with Open Source:
+
+JavaEnclave has been reviewed by Mingshen Sun, who is from the Teaclave community. He's familiar with The Apache Way for the open-source community.
+
+#### Length of Incubation:
+
+The project will be in incubation with Apache Teaclave (incubating) project.
+
+### Documentation
+
+- N/A
+
+### Initial Source
+
+- N/A
+
+### Source and Intellectual Property Submission Plan
+
+We will submit a Software Grant for this project later.
+
+#### External Dependencies:
+
+The dependencies have Apache compatible license, which is provided under the BSD 2-Clause license and GPL2.0 license.
+
+#### Cryptography:
+
+N/A
+
+### Required Resources
+
+#### Mailing lists:
+
+The project shares the same mailing list of Teaclave.
+
+#### Git Repositories:
+
+- N/A
+
+#### Issue Tracking:
+
+Same with Teaclave.
+
+#### Other Resources:
+
+N/A
+
+### Initial Committers
+
+- Shaojun Wang (jeffery.wsj@alibaba-inc.com)
+- Ziyi Lin (cengfeng.lzy@alibaba-inc.com)
+- Lei Yu (lei.yul@alibaba-inc.com)
+- Sanhong Li (sanhong.lsh@alibaba-inc.com)
\ No newline at end of file
diff --git a/README.md b/README.md
index e2fbb77..2960229 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,10 @@
 ## What's Teaclave-java-tee-sdk?
 
-Teaclave-java-tee-sdk is a Java confidential computing programming model. It follows the host-and-enclave partition programming model defined by Intel-SGX SDK. Teaclave-java-tee-sdk provides an elegant way to divide a java project into host and enclave modules, the enclave module is a provider of a user-defined service interface, it's similar to the SPI development model. Teaclave-java-tee-sdk could help you to develop and build a Java confidential computing project with high efficiency.
+Teaclave-java-tee-sdk is a Java confidential computing programming framework. It follows the host-and-enclave partition programming model defined by Intel-SGX SDK. Teaclave-java-tee-sdk provides an elegant way to divide a java project into host and enclave modules, where the enclave module is a provider of a user-defined service interface which is similar to the Java SPI model. Teaclave-java-tee-sdk could help you to develop and build a Java confidential computing project with high efficiency.
 
 ## Why do we need Teaclave-java-tee-sdk?
 
-Occlum and Gramine libOS solutions run the entire Java application inside the enclave. Although it's much easier for end users, it suffers from a large TCB(Trusted Computing Base) that may compromise the security to some degree. On the other hand, Intel-SGX and OpenEnclave SDKs are more secure by only running the sensitive code inside the enclave, but they are limited to C/C++ ecosystem, and the development experience for programmers is unfriendly. For Example, it requests the programmer [...]
+Occlum and Gramine libOS solutions run the entire Java application inside the enclave. Although it's much easier for end users, it suffers from a large TCB(Trusted Computing Base) that may compromise the security to some degree. On the other hand, Intel-SGX and OpenEnclave SDKs are more secure by only running the sensitive code inside the enclave, but they are limited to C/C++ ecosystem, and the development experience for programmers is unfriendly. For Example, it requests the programmer [...]
 
 ## Teaclave-java-tee-sdk architecture
 
@@ -24,15 +24,28 @@ Teaclave-java-tee-sdk provides seven components:
 
 - Teaclave-java-tee-sdk Docker, provides a standard build and execution environment for Java confidential computing applications.
 
-![avatar](./docs/resources/JavaEnclave_Architecture.png)
+<br />
+<div  align="center">
+<img src="./docs/resources/JavaEnclave_Architecture.png" width = "400" height = "400" alt="Teaclave-java-tee-sdk Architecture" align=center />
+</div>
+<center>Teaclave-java-tee-sdk Architecture</center>
+<br />
 
 ## Confidential computing Java project structure based on Teaclave-java-tee-sdk
 
 A Java confidential computing application project based on Teaclave-java-tee-sdk is a maven project which consists of three submodules, they are host submodule, enclave submodule, and common submodule. The common submodule contains the service interface definition, the enclave submodule implements the interface defined in the common submodule, host submodule contains the management of the enclave instance and service instance. We can view the enclave submodule as an SPI provider, Teaclav [...]
 
-![avatar](./docs/resources/JavaEnclave_Application_Dependency.png)
-
-![avatar](./docs/resources/JavaEnclave_Project_Structure.png)
+<br />
+<div  align="center">
+<img src="./docs/resources/JavaEnclave_Application_Dependency.png" width = "400" height = "300" alt="Teaclave-java-tee-sdk Application Dependency" align=center />
+</div>
+<center>Teaclave-java-tee-sdk Application Dependency</center>
+<br />
+<div  align="center">
+<img src="./docs/resources/JavaEnclave_Project_Structure.png" width = "400" height = "400" alt="Teaclave-java-tee-sdk Project Structure" align=center />
+</div>
+<center>Teaclave-java-tee-sdk Project Structure</center>
+<br />
 
 ## Getting started
 
@@ -42,7 +55,7 @@ A Java confidential computing application project based on Teaclave-java-tee-sdk
 
 `apt install cpuid && cpuid -1 -l 0x12`
 
-![avatar](./docs/resources/SGX2_Supported_Check.png)
+<img src="./docs/resources/SGX2_Supported_Check.png" width = "300" height = "100" alt="Teaclave-java-tee-sdk Application Dependency" align=center />
 
 if SGX2 is not supported, only MOCK_IN_JVM and MOCK_IN_SVM enclave modes in Teaclave-java-tee-sdk could be run normally.
 
diff --git a/docs/resources/JavaEnclave_Application_Dependency.png b/docs/resources/JavaEnclave_Application_Dependency.png
index c5783eb..fc2e972 100644
Binary files a/docs/resources/JavaEnclave_Application_Dependency.png and b/docs/resources/JavaEnclave_Application_Dependency.png differ
diff --git a/docs/resources/JavaEnclave_Architecture.png b/docs/resources/JavaEnclave_Architecture.png
index 1b8b6c7..fd77d3f 100644
Binary files a/docs/resources/JavaEnclave_Architecture.png and b/docs/resources/JavaEnclave_Architecture.png differ


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@teaclave.apache.org
For additional commands, e-mail: commits-help@teaclave.apache.org