2009-11-29 4 views
2

Linux 및 BSD 용 SNMP 및 Netflow 도구를 작성하고 언어 선택, C 또는 Java에 대한 조언을 얻으 려합니다.Linux BSD 네트워크 프로그래밍

이 도구는 Netflow를 수집하고 SNMP 쿼리를 송수신하며 Postgresql 데이터베이스에 연결하고 웹 인터페이스 (PHP)를 접하게 될 것이며 나중에 웹 서비스를 사용하는 장치와 인터페이스 할 것입니다.

일반적으로 위의 구현을 위해서는 C가 네트워크 라이브러리에 대한 강력한 라이브러리와 낮은 수준의 액세스를 구현할 수 있지만 데이터베이스 액세스와 웹 서비스는 Java에서 더 쉽게 구현 될 수 있습니다.

질문은 Java가로드 된 상태에서이 네트워크 정보를 모두 처리해야하는지 아니면 C가 제공하는 저수준 액세스를 사용해야합니까?

추가 질문, 나는 이것을 하이브리드 응용 프로그램으로 만드는 것을 고려해 왔습니다. C로 무거워지고 Java에서 더 높은 수준의 작업을 수행합니다. 경험과 이것에 대한 생각은 환영합니다.

답변

3

오늘날 Java 구현은 강력하고 성숙하므로 "처리 중 ... 부하가 될 때까지"걱정할 필요가 없습니다. C는 장점 (가장 작은 메모리 풋 프린트, 가장 빠른 시작 시간)을 갖고 있지만, 자신의 메모리 관리를 수행하는 데 필요한 프로그래밍 작업 측면에서 유리합니다. 어쨌든 메모리를 최소화하거나 빈번한 재시동을 최적화하는 것이이 애플리케이션에 큰 영향을 미친다는 말에는 나타나지 않습니다. Java (또는 가장 익숙한 다른 고급 언어)에서 시작하여 C에서 일부 부품을 코딩하는 것을 고려해보십시오. 일 경우, 프로파일 링에서 발생하는 CPU 또는 메모리 병목 현상이 발생하는 경우 고급 언어 사용? (나는 당신이 그런 기록을 필요로하지 않을 가능성이 높습니다. btw).

1

나는 이것으로 Java를 사용합니다. 그것은 "로드"를 완전히 처리 할 수 ​​있습니다. 나는 대용량의 데이터를 실시간으로 문제없이 처리 할 책임이있는 Java 프로젝트를 작업합니다.

자바는 당신이 여기에서하고 무엇에 관해 얘기하는지에 대해 하나 개의 비트를 투쟁 실 거예요에서 개발

0

모든 사람이 못을 박았다있어 훨씬 쉽고 빠르게 될 것입니다.; 현대 JVM 구현은 직접적인 하드웨어 액세스를하지 않는 한 속도와 동일한 C 야합니다.

PHP 프론트 엔드에서 Java 백엔드를 사용하는 이유가 궁금합니다. C/PHP는 의미가 있지만, 백엔드에서 Java를 사용한다면 유지 관리가 쉽도록 동일한 언어를 사용하는 것이 도움이 될 수 있습니다.

+0

예 백엔드 용 Java를 사용한다면 웹 인터페이스 측면에서도 사용할 수 있습니다. 각 구성 요소의 구성을 위해 백만 가지의 종속성과 xml 파일을 요구하지 않고 무언가 빛을 선호하십시오. – ServerMonkey

+0

이런 소리는 자바가있는 첫 번째 로데오가 아닙니다. 웹 측면에서 DAO 레이어를 만드는 한, 백엔드 용으로 DAO 레이어를 재사용하고 그 동안 일부 코드를 저장할 수 있습니다. 어쨌든, 그것이 어떻게 진행되는지 알려주십시오. –