Kết nối output của python với input của java

Hello mọi người, mình đang làm 1 project, trong đó mình dùng nhiều mã nguồn mở khác nhau, mỗi mã nguồn mở lại được viết bằng 1 ngôn ngữ khác nhau, cụ thể là python và java! Nhưng project tổng thể cần phải kết nối chúng lại với nhau, có nghĩa là lấy dữ liệu từ java đẩy sang bên python tính toán, xong rồi lại lấy kết quả tính toán bên python đẩy sang cho bên java, kiểu vậy
Mình mới chỉ nghĩ tới phương pháp dùng socket, bên java tạo một server socket, python client socket hoặc ngược lại, để kết nối hai thằng này lại với nhau.
Bạn nào đã gặp vấn đề tương tự có thể cho mình thêm cao kiến không? Cảm ơn các bạn!

Những bài toán case by case thế này thì không có giải pháp tổng quan cho bạn đâu. Nếu bạn muốn một giải pháp tổng quan, bạn phải trả tiền.

1 Like

HI Vu Van Chung.
Mình chưa làm python - java bao giờ mới làm hỗn hợp C/C++ - C# và C/C++ - java thôi.
Thường thì sẽ có một loại ngôn ngữ để bản viết các interface gọi hàm từ java/C# xuống C/C++. Không khó lắm nhưng cần người biết cả hai ngôn ngữ. Với python thì mình nghĩ sẽ đơn giản hơn vì nó là ngôn ngữ kịch bản. Bạn có thể nhúng một máy python vào project để dùng. Quan trọng là phải tự tìm hiểu.

Bạn đang làm 1 project, mà trong 1 project có nhiều mã nguồn mở, mà mã nguồn mở lại viết trên nhiều ngôn ngữ khác nhau (Python + Java). Mình giả định rằng kiến thức về Python+Java của bạn chưa đủ để làm Polyglot programming, cho nên có quá nhiều rủi ro khi thực hiện project này.

Tuy nhiên, b cũng có thể viết 1 protocol riêng, sử dụng API để giao tiếp giữa Java và Python apps. Việc thiết kế API có thể qua RESTful hoặc RPC(gRPC).

1 Like

Việc sử dụng 2 ngôn ngữ khác nhau, ngoài cách xây dựng thành file DLL để chạy trên Windows ra, thường sẽ xây dựng thành 2 ứng dụng riêng biệt.
Việc giao tiếp giữa 2 ứng dụng sẽ dựa trên:

  1. Socket. Cách này chi phí phát triển cao, bù lại được cái tối ưu đường truyền
  2. Text (qua web service)
1 Like

Cảm ơn bạn, bạn có thể nói rõ hơn về cách thứ 2 text(web service) được không. Cho mình từ khóa với

Khi bạn dùng truy cập vào API dưới dạng web service, API này sẽ trả về một text, bạn đọc nó ra rồi lấy thông tin. Đây là một ví dụ về web service trả về json.
https://openweathermap.org/current

1 Like

cảm ơn bạn. Đã hiểu!!!

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?