...
Contents
...
OPC-UA browser for Apache StreamPipes
Apache StreamPipes
Apache StreamPipes (incubating) is a self-service (Industrial) IoT toolbox to enable non-technical users to connect, analyze and explore IoT data streams. StreamPipes offers several modules including StreamPipes Connect to easily connect data from industrial IoT sources, the Pipeline Editor to quickly create processing pipelines and several visualization modules for live and historic data exploration. Under the hood, StreamPipes utilizes an event-driven microservice paradigm of standalone, so-called analytics microservices making the system easy to extend for individual needs.
Background
StreamPipes is grown significantly throughout recent years. We were able to introduce a lot of new features and attracted both users and contributors. Putting the cherry on the cake, we were graduated as an Apache top level project in December 2022. We will of course continue developing new features and never rest to make StreamPipes even more amazing.
StreamPipes really shines when connecting Industrial IoT data. Such data sources typically originate from machine controllers, called PLCs (e.g., Siemens S7). But there are also new protocols such as OPC-UA which allow to browse available data within the controller. Our goal is to make connectivity of industrial data sources a matter of minutes.
Currently, data sources can be connected using the built-in module `StreamPipes Connect` from the UI. We provide a set of adapters for popular protocols that can be customized, e.g., connection details can be added.
To make it even easier to connect industrial data sources with StreamPipes, we plan to add an OPC-UA browser. This will be part of the entry page of StreamPipes connect and should allow users to enter connection details of an existing OPC-UA server. Afterwards, a new view in the UI shows available data nodes from the server, their status and current value. Users should be able to select values that should be part of a new adapter. Afterwards, a new adapter can be created by reusing the current workflow to create an OPC-UA data source.
This is a really cool project for participants interested in full-stack development who would like to get a deeper understanding of industrial IoT protocols. Have fun!
Tasks
- [ ] get familiar with the OPC-UA protocol
- [ ] develop mockups which demonstrate the user workflow
- [ ] develop a data model for discovering data from OPC-UA
- [ ] create the backend business logic for the OPC-UA browser
- [ ] create the frontend views to asynchronously browse data and to create a new adapter
- [ ] write Junit, Component and E2E tests
- [ ] what ever comes in your mind 💡 further ideas are always welcome
Relevant Skills
- interest in Industrial IoT and procotols such as OPC-UA
- Java development skills
- Angular/Typescript development skills
Anyways, the most important relevant skill is motivation and readiness to learn during the project!
Learning Material
- StreamPipes documentation (https://streampipes.apache.org/docs/docs/user-guide-introduction.html)
- [ur current OPC-UA adapter (https://github.com/apache/streampipes/tree/dev/streampipes-extensions/streampipes-connect-adapters-iiot/src/main/java/org/apache/streampipes/connect/iiot/adapters/opcua)
- Eclipse Milo, which we currently use for OPC-UA connectivity (https://github.com/eclipse/milo)
- Apache PLC4X, which has an API for browsing (https://plc4x.apache.org/)
Reference
Github issue can be found here: https://github.com/apache/streampipes/issues/1390
Name and contact information
- Mentor: Dominik Riemer (riemer[at]apache.org).
- Mailing list: (dev[at]streampipes.apache.org)
- Website: streampipes.apache.org
RocketMQ
GSoC Implement python client for RocketMQ 5.0
Apache RocketMQ
Apache RocketMQ is a distributed messaging and streaming platform with low latency, high performance and reliability, trillion-level capacity and flexible scalability.
Page: https://rocketmq.apache.org
Background
RocketMQ 5.0 has released various language clients including Java, CPP, and Golang, to cover all major programming languages, a Python client needs to be implemented.
Related Repo: https://github.com/apache/rocketmq-clients
Task
The developer is required to be familiar with the Java implementation and capable of developing a Python client, while ensuring consistent functionality and semantics.
Relevant Skills
Python language
Basic knowledge of RocketMQ 5.0
Mentor
Yangkun Ai, PMC of Apache RocketMQ, aaronai@apache.org
Improving End-to-End Test Infrastructure of Apache StreamPipes
Apache StreamPipes
Apache StreamPipes (incubating) is a self-service (Industrial) IoT toolbox to enable non-technical users to connect, analyze and explore IoT data streams. StreamPipes offers several modules including StreamPipes Connect to easily connect data from industrial IoT sources, the Pipeline Editor to quickly create processing pipelines and several visualization modules for live and historic data exploration. Under the hood, StreamPipes utilizes an event-driven microservice paradigm of standalone, so-called analytics microservices making the system easy to extend for individual needs.
Background
StreamPipes has grown significantly over the past few years, with new features and contributors joining the project. However, as the project continues to evolve, e2e test coverage must also be improved to ensure that all features remain functional. Modern frameworks, such as Cypress, make it quite easy and fun to automatically test even complex application functionalities. As StreamPipes approaches its 1.0 release, it is important to improve e2e testing to ensure the robustness of the project and its use in real-world scenarios.
Tasks
- [ ] Write e2e tests using Cypress to cover most functionalities and user interface components of StreamPipes.
- [ ] Add more complex testing scenarios to ensure the reliability and robustness of StreamPipes in real-world use cases (e.g. automated tests for version updates)
- [ ] Add e2e tests for the new Python client to ensure its integration with the main system and its functionalities ([#774 | https://github.com/apache/streampipes/issues/774]])
- [ ] Document the testing infrastructure and the testing approach to allow for easy maintenance and future contributions.
❗ ***Important Note*** ❗
Do not create any account on behalf of Apache StreamPipes in Cypress or using the name of Apache StreamPipes for any account creation. Your mentor will take care of it.
Relevant Skills
- Familiarity with testing frameworks, such as Cypress or Selenium
- Experience with TypeScript or Java
- Basic knowledge of Angular is helpful
- Familiarity with Docker and containerization is a plus
Learning Material
References
You can find our corresponding issue on GitHub here
Name and Contact Information
Name: Philipp Zehnder
email: zehnder[at]apache.org
community: dev[at]streampipes.apache.org
website: https://streampipes.apache.org/
GSoC Integrate RocketMQ 5.0 client with Spring
Apache RocketMQ
Apache RocketMQ is a distributed messaging and streaming platform with low latency, high performance and reliability, trillion-level capacity and flexible scalability.
Page: https://rocketmq.apache.org
Github: https://github.com/apache/rocketmq
Background
RocketMQ 5.0 client has been released recently, we need to integrate it with Spring.
Related issue: https://github.com/apache/rocketmq-clients/issues/275
Task
- Familiar with RocketMQ 5.0 java client usage, you could see more details from https://github.com/apache/rocketmq-clients/tree/master/java and https://rocketmq.apache.org/docs/quickStart/01quickstart
- Integrate with Spring.
Relevant Skills
- Java language
- Basic knowledge of RocketMQ 5.0
- Spring
Mentor
Rongtong Jin, PMC of Apache RocketMQ, jinrongtong@apache.org
Yangkun Ai, PMC of Apache RocketMQ, aaronai@apache.org
Community Development
RocketMQ
GSoC Implement python client for RocketMQ 5.0
Apache RocketMQ
Apache RocketMQ is a distributed messaging and streaming platform with low latency, high performance and reliability, trillion-level capacity and flexible scalability.
Page: https://rocketmq.apache.org
Background
RocketMQ 5.0 has released various language clients including Java, CPP, and Golang, to cover all major programming languages, a Python client needs to be implemented.
Related Repo: https://github.com/apache/rocketmq-clients
Task
The developer is required to be familiar with the Java implementation and capable of developing a Python client, while ensuring consistent functionality and semantics.
Relevant Skills
Python language
Basic knowledge of RocketMQ 5.0
Mentor
Yangkun Ai, PMC of Apache RocketMQ, aaronai@apache.org
GSoC Integrate RocketMQ 5.0 client with Spring
Apache RocketMQ
Apache RocketMQ is a distributed messaging and streaming platform with low latency, high performance and reliability, trillion-level capacity and flexible scalability.
Improving End-to-End Test Infrastructure of Apache StreamPipes
Apache StreamPipes
Apache StreamPipes (incubating) is a self-service (Industrial) IoT toolbox to enable non-technical users to connect, analyze and explore IoT data streams. StreamPipes offers several modules including StreamPipes Connect to easily connect data from industrial IoT sources, the Pipeline Editor to quickly create processing pipelines and several visualization modules for live and historic data exploration. Under the hood, StreamPipes utilizes an event-driven microservice paradigm of standalone, so-called analytics microservices making the system easy to extend for individual needs.
Background
StreamPipes has grown significantly over the past few years, with new features and contributors joining the project. However, as the project continues to evolve, e2e test coverage must also be improved to ensure that all features remain functional. Modern frameworks, such as Cypress, make it quite easy and fun to automatically test even complex application functionalities. As StreamPipes approaches its 1.0 release, it is important to improve e2e testing to ensure the robustness of the project and its use in real-world scenarios.
Tasks
Page: https://rocketmq.apache.org
Github:
❗ ***Important Note*** ❗
Do not create any account on behalf of Apache StreamPipes in Cypress or using the name of Apache StreamPipes for any account creation. Your mentor will take care of it.
Relevant Skills
- Familiarity with testing frameworks, such as Cypress or Selenium
- Experience with TypeScript or Java
- Basic knowledge of Angular is helpful
- Familiarity with Docker and containerization is a plus
Learning Material
References
You can find our corresponding issue on GitHub here
Name and Contact Information
Name: Philipp Zehnder
email: zehnder[at]apache.org
community: dev[at]streampipes.apache.org
website: https://streampipes.apache.org/
Background
RocketMQ 5.0 client has been released recently, we need to integrate it with Spring.
Related issue: https://github.com/apache/rocketmq-clients/issues/275
Task
- Familiar with RocketMQ 5.0 java client usage, you could see more details from https://github.com/apache/rocketmq-clients/tree/master/java and https://rocketmq.apache.org/docs/quickStart/01quickstart
- Integrate with Spring.
Relevant Skills
- Java language
- Basic knowledge of RocketMQ 5.0
- Spring
Mentor
Rongtong Jin, PMC of Apache RocketMQ, jinrongtong@apache.org
Yangkun Ai, PMC of Apache RocketMQ, aaronai@apache.org
Apache ShenYu Gsoc 2023 - Design and implement shenyu ingress-controller in k8s
Background
Apache ShenYu is a Java native API Gateway for service proxy, protocol conversion and API governance. Currently, ShenYu has good usability and performance in microservice scenarios. However, ShenYu's support for Kubernetes is still relatively weak.
Tasks
1. Discuss with mentors, and complete the requirements design and technical design of shenyu-ingress-controller.
2. Complete the initial version of shenyu-ingress-controller, implement the reconcile of k8s ingress api, and make ShenYu as the ingress gateway of k8s.
3. Complete the ci test of shenyu-ingress-controller, verify the correctness of the code.
Relevant Skills
1. Know the use of Apache ShenYu
2. Familiar with Java and Golang
3. Familiar with Kubernetes and can use java or golang to develop Kubernetes Controller
Description
Issues : https://github.com/apache/shenyu/issues/4438
website : https://shenyu.apache.org/
SkyWalking
SkyWalking
[GSOC] [SkyWalking] AIOps Log clustering with Flink (Algorithm Optimization)
Apache SkyWalking is an application performance monitor tool for distributed systems, especially designed for microservices, cloud native and container-based (Kubernetes) architectures. This year we will proceed on log clustering implementation with a revised architecture and this task will require student to focus on algorithm optimiztion for the clustering technique.
[GSOC] [SkyWalking] AIOps Log clustering with Flink (Flink Integration)
Apache SkyWalking
[GSOC] [SkyWalking] AIOps Log clustering with Flink (Algorithm Optimization)
Apache SkyWalking is an application performance monitor tool for distributed systems, especially designed for microservices, cloud native and container-based (Kubernetes) architectures. This year we will proceed on log clustering implementation with a revised architecture and this task will require student to focus on algorithm optimiztion for the clustering techniqueFlink and its integration with SkyWalking OAP.
[GSOC] [SkyWalking]
AIOps Log clustering with Flink (Flink Integration)Python Agent Performance Enhancement Plan
Apache SkyWalking is an application performance monitor tool for distributed systems, especially designed for microservices, cloud native and container-based (Kubernetes) architectures. This year we will proceed on log clustering implementation with a revised architecture and this task will require student to focus on Flink and its integration with SkyWalking OAP.task is about enhancing Python agent performance, the tracking issue can be seen here -< https://github.com/apache/skywalking/issues/10408
[GSOC] [SkyWalking]
Python Agent Performance Enhancement PlanPending Task on K8s
Apache SkyWalking is an application performance monitor tool for distributed systems, especially designed for microservices, cloud native and container-based (Kubernetes) architectures. This task is about enhancing Python agent performance, the tracking issue can be seen here -< a pending task on K8s.
ShenYu
Apache ShenYu Gsoc 2023 - Design and implement shenyu ingress-controller in k8s
Background
Apache ShenYu is a Java native API Gateway for service proxy, protocol conversion and API governance. Currently, ShenYu has good usability and performance in microservice scenarios. However, ShenYu's support for Kubernetes is still relatively weak.
Tasks
1. Discuss with mentors, and complete the requirements design and technical design of shenyu-ingress-controller.
2. Complete the initial version of shenyu-ingress-controller, implement the reconcile of k8s ingress api, and make ShenYu as the ingress gateway of k8s.
3. Complete the ci test of shenyu-ingress-controller, verify the correctness of the code.
Relevant Skills
1. Know the use of Apache ShenYu
2. Familiar with Java and Golang
3. Familiar with Kubernetes and can use java or golang to develop Kubernetes Controller
Description
Issues : https://github.com/apache/skywalkingshenyu/issues/104084438
website : https://shenyu.apache.org/
[GSOC] [SkyWalking] Pending Task on K8s
Apache SkyWalking is an application performance monitor tool for distributed systems, especially designed for microservices, cloud native and container-based (Kubernetes) architectures. This task is about a pending task on K8s.
Commons Statistics
...