2011-08-11 25 views
5

Nó không hoàn toàn rõ ràng về cách sử dụng RProtoBuf để giao tiếp giữa R và các ngôn ngữ khác (Java, trong trường hợp của tôi).Gọi các hàm Java từ R bằng RProtoBuf (Bộ đệm giao thức)

Nhà phát triển RprotoBuf đã phát triển thứ gì đó vẫn còn ở đây - https://r-forge.r-project.org/scm/viewvc.php/java/?root=rprotobuf, nhưng có vẻ như đã lỗi thời. Tôi không chắc chắn nếu đây là con đường để đi. Dưới đây là hai cuộc trao đổi giữa các tác giả của RProtoBuf mà có thể giúp đỡ với sự hiểu biết về mã -

http://lists.r-forge.r-project.org/pipermail/rprotobuf-yada/2009-December/000116.html

http://lists.r-forge.r-project.org/pipermail/rprotobuf-yada/2009-December/000119.html

Dường như họ bắt đầu làm việc với Java và sau đó bỏ nó ủng hộ C++ 's!

Có ai đang sử dụng kết hợp R-RProtoBuf-Java không? Bạn làm nó như thế nào? Có hướng dẫn hoặc ví dụ có sẵn không?

Việc tiếp xúc với Java của tôi rất hạn chế. Tôi muốn sử dụng một vài chương trình được viết bằng Java.

Chỉnh sửa: Để làm rõ, tôi cho rằng tôi muốn xem ví dụ về ứng dụng khách R rpc đang được sử dụng với RProtobuf. Các con trỏ tới các máy chủ Java RPC sẽ được chào đón.

Chỉnh sửa2: Liên kết đầu tiên thực sự trỏ đến một số mã trình tạo tài liệu, như Dirk đã chỉ ra.

+1

Là điểm phụ; Bản thân protobuf không xác định bất kỳ chi tiết RPC cụ thể nào (chỉ định dạng tuần tự hóa) - vì vậy nếu bạn đang nói RPC, bạn cũng phải xem RPC có sẵn cho "đầu kia" (hoặc tự mình làm gì đó) –

+1

Không, Java thư mục chỉ dành cho trình tạo tài liệu. Và protobuf là * ngôn ngữ thuyết bất khả tri * nhưng Java được hỗ trợ bởi việc triển khai Google. –

+0

Xin lỗi, sai lầm của tôi. Tôi đọc cuộc hội thoại và sau đó giả định rằng thư mục phải có mã. Vậy mã đó có sẵn ở đâu không? Tôi thực sự muốn xem một ví dụ/tutorail/walk-through ở đâu đó. Và R có một khách hàng RPC? cran không tiết lộ. – Soumendra

Trả lời

1

Tôi không biết về RProtoBuf, nhưng nếu bạn chỉ muốn gọi Java từ R, thì bạn có thể quan tâm đến rJava.

Nó không lỗi thời và có các ví dụ (ngay trên trang chính, xem liên kết).

+0

Tôi đã được thông báo rằng với rJava, tôi phải bị bẩn tay với nhiều chi tiết hơn tôi muốn (nghĩa là nó ở mức thấp). Tôi đang tìm kiếm tất cả các giải pháp có thể trước khi tự đầu tư vào một trong số đó. – Soumendra

+0

@Soumendra Điều đó nghe có vẻ hợp lý. Trên thực tế tôi không biết làm thế nào khó khăn để gọi Java từ R. Tôi chỉ sử dụng rJava (JRI) để gọi R từ Java cho đến nay. JRI là cấp thấp, nhưng đơn giản tôi sẽ nói. –

0

Gần đây, chúng tôi đã xuất bản bản in trên arXiv của giấy JSS mà chúng tôi đã viết với các ví dụ khác về cách sử dụng RProtoBuf, bao gồm gửi yêu cầu RPC tới các dịch vụ web từ xa. Để biết thêm thông tin về chia sẻ dữ liệu giữa R và các ngôn ngữ khác với RProtoBuf, hãy xem RProtoBuf: Efficient Cross-Language Data Serialization in R.

Bạn có thể sử dụng RProtoBuf với bất kỳ cơ chế truyền tải nào, bạn có thể lưu bộ đệm giao thức được tuần tự hóa vào các ứng dụng khác được viết bằng ngôn ngữ khác hoặc gửi chúng qua kết nối/ổ cắm hoặc khác hệ thống RPC cấp cao hơn. Bộ đệm giao thức được sử dụng rộng rãi trong mọi thứ từ Sony Playstations đến các dịch vụ web quy mô lớn, nhưng chúng không bao gồm hệ thống RPC - bạn sử dụng chúng làm định dạng tuần tự với bất kỳ hệ thống giao thông nào bạn đang sử dụng.

Các vấn đề liên quan