Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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

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


Difficulty: Major
Project size: ~350 hour (large)
Potential mentors:
Dominik Riemer, mail: riemer (at) apache.org
Project Devs, mail: dev (at) 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

Difficulty: Major
Project size: ~350 hour (large)
Potential mentors:
Yangkun Ai, mail: aaronai (at) apache.org
Project Devs, mail: dev (at) rocketmq.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/

Difficulty: Major
Project size: ~350 hour (large)
Potential mentors:
Philipp Zehnder, mail: zehnder

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

  1. 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
  2. Integrate with Spring.

Relevant Skills

  1. Java language
  2. Basic knowledge of RocketMQ 5.0
  3. Spring

Mentor

Rongtong Jin, PMC of Apache RocketMQ, jinrongtong@apache.orgImage Removed

Yangkun Ai, PMC of Apache RocketMQ, aaronai@apache.orgImage Removed

Difficulty: Major
Project size: ~175 hour (medium)
Potential mentors:
Yangkun Ai, mail: aaronai (at) apache.org
Project Devs, mail: dev (at) rocketmqstreampipes.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

Difficulty: Major
Project size: ~350 hour (large)
Potential mentors:
Yangkun Ai, mail: aaronai (at) apache.org
Project Devs, mail: dev (at) rocketmq.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

  • [ ] 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 |

    Page: https://rocketmq.apache.org
    Github:

    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/

    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

    1. 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
    2. Integrate with Spring.

    Relevant Skills

    1. Java language
    2. Basic knowledge of RocketMQ 5.0
    3. Spring

    Mentor

    Rongtong Jin, PMC of Apache RocketMQ, jinrongtong@apache.orgImage Added

    Yangkun Ai, PMC of Apache RocketMQ, aaronai@apache.orgImage Added

    Difficulty: Major
    Project size: ~175 hour (medium)
    Potential mentors:
    Yangkun Ai, mail: aaronai
    Difficulty: Major
    Project size: ~350 hour (large)
    Potential mentors:
    Philipp Zehnder, mail: zehnder (at) apache.org
    Project Devs, mail:

    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/

    Difficulty: Major
    Project size: ~350 hour (large)
    Potential mentors:
    Yu Xiao, mail: xiaoyu (at) apache.org
    Project Devs, mail:

    SkyWalking

    dev (at) rocketmq.apache.org

    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.

    Difficulty: Major
    Project size: ~350 hour (large)
    Potential mentors:
    Yihao Chen, mail: yihaochen (at) apache.org
    Project Devs, mail: dev (at) skywalking.apache.org

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

    Difficulty: Major
    Project size: ~350 hour (large)
    Potential mentors:
    Yihao Chen, mail: yihaochen (at) apache.org
    Project Devs, mail: dev (at) skywalking.apache.org

    [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

    Difficulty: Major
    Project size: ~350 hour (large)
    Potential mentors:
    Yihao Chen, mail: yihaochen (at) apache.org
    Project Devs, mail: dev (at) skywalking.apache.org

    [GSOC] [SkyWalking]

    Python Agent Performance Enhancement Plan

    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 enhancing Python agent performance, the tracking issue can be seen here -< a pending task on K8s.

    Difficulty: Major
    Project size: ~350 hour (large)
    Potential mentors:
    Yihao Chen, mail: yihaochen (at) apache.org
    Project Devs, mail: dev (at) skywalking.apache.org

    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

    Difficulty: Major
    Project size: ~350 hour (large)
    Potential mentors:
    Yihao Chen, mail: yihaochen (at) apache.org
    Project Devs, mail: dev (at) skywalking.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.

    Difficulty: Major
    Project size: ~350 hour (large)
    Potential mentors:
    Yihao ChenYu Xiao, mail: yihaochen xiaoyu (at) apache.org
    Project Devs, mail: dev (at) skywalkingshenyu.apache.org

    Commons Statistics

    ...