2011-01-16 4 views
2

분산 응용 프로그램 구축을 목표로하는 기술을 찾고 있습니다. 내 친구는 CORBA (Java & C++ 조합)를 사용하라고 권했다. 그러나 나는 그것을 쓸데없는 것들이라고 읽었습니다. 오히려 단순한 분산 응용 프로그램을 작성할 계획입니다. 어떤 솔루션을 사용 하시겠습니까? 감사!Distributed Programming Technology

답변

1

Appistry에서 CloudIQ Platform을 권하고 싶습니다. 프레임 워크에 Java, .NET 및 C/C++ 코드를 배포 할 수 있습니다. 관리적인 관점에서 보면 서버는 작동하고 하나의 역할을합니다. 실행 요청을 제출하면 프레임 워크가로드 균형 조정을 수행하여 가장 적합한 작업자에게 요청을 배포합니다. 이 프레임 워크를 사용하면 생산자/소비자, 분산/수집 및 기타 병렬 유형의 작업을 수행 할 수 있습니다.

프레임 워크는 작업 실행도 모니터링하므로 어떤 유형의 하드웨어 오류가 발생하면 다른 시스템에서 오류가 발생한 서버에서 실행중인 작업이 할당됩니다.

0

SOAP 웹 서비스를 사용할 수 있습니다. 저는 현재 Python & .NET에서 분산 테스트 시스템을 개발하고 있습니다. SOAP를 사용하여 작성하고 배포하기 쉽습니다.

언어 및 플랫폼에 따라 다양한 SOAP 서버/클라이언트 라이브러리가 있습니다.

+0

하지만 웹을 목표로하지 않는다면? SOAP을 계속 사용할 수 있습니까? – lexeme

+0

예, 할 수 있습니다. – Elalfer

1

CORBA는 꽤 오래되었습니다. 라이브러리 또는 프레임 워크를 선택하려면 다음과 같은 질문을해야합니다. 왜 배포하려고합니까? (성능/병렬화, 확장 성, 시스템 부분의 위치에 대한 물리적 제약은 무엇입니까?) 여러 부분을 실행할 노드는 어떤 종류입니까? 어떤 언어를 사용 하시겠습니까?

+0

나의 목표는 단지 ​​약간의 연습과 지식을 얻는 것입니다. 오름차순으로 C#을 누른 다음 Java를 누른 다음 C++. – lexeme

+0

네트워크 분산 응용 프로그램 (로컬로 병렬 처리하지 않음)을 원한다고 가정합니다. 먼저 기본 네트워킹 개념을 이해하고 시간을 보냅니다. 그런 다음 C#으로 시작하려면 웹 서비스를 구현 한 다음 해당 서비스에서 메서드를 호출하는 응용 프로그램을 구현하는 것이 좋습니다. 주제에 대한 자습서를 찾으려고 할 수 있습니다. http://www.codeproject.com/KB/webservices/myservice.aspx – sinelaw

0

예, CORBA 및 COM 및 DCOM과 같은 기술은 모두 거의 쓸모가 없습니다 ... 정확히 무엇을 수행하고 싶은지 잘 모르겠지만 분산 응용 프로그램을 빌드 할 때 .NET Remoting을 사용할 것입니다. 응용 프로그램이 정말 단순하다면 메일 슬롯이나 명명 된 파이프를 사용하여 네트워크 전체에서 간단한 데이터를 전달할 수도 있습니다.

+0

하지만 C#을 사용하면 다른 컴퓨터의 Windows OS가 아닌 응용 프로그램에서 작동하지 않습니다. 크로스 플랫폼 솔루션을 사용하는 것이 어렵지 않을까요? 어쨌든 많은 Windows가 주위에 있으므로, 귀하의 조언을 주셔서 감사합니다. C#에서 간단한 파이프 응용 프로그램을 작성했습니다. – lexeme

+1

수정 ... remoting을 사용하여 호환성 문제가 발생할 수 있습니다. 따라서 리모팅은 크로스 플랫폼 솔루션을위한 방법이 아닙니다. 웹 서비스는 원격 솔루션보다 사용하기 쉽고 배포 가능성이 큰 훌륭한 솔루션이라고 생각합니다. 그러나 원격 처리는 TCP/IP를 통해 사용할 수 있으므로 웹 서비스보다 성능이 우수합니다. 여기 좋은 기사입니다 : http://msdn.microsoft.com/en-us/library/ms978420.aspx – Zunandi

1

ICE (Internet Communications Engine)를 사용하면 ICE가 여러 운영 체제 플랫폼 (Windows, Linux, Solars, Mac OS, iOS, Android ...), 다중 개발 언어 (C++, Java, .NET, Python , Ruby, PHP), 더 간단합니다.

+0

Thanks! 나는 그것에 대해 읽었습니다. 나는 그것을 사용해 볼 것이라고 생각한다. – lexeme

0

sinelaw에서 언급했듯이 좋은 제안을하기 전에 많은 질문이 있지만 응용 프로그램간에 데이터를 전송하는 방법으로 REST (http://en.wikipedia.org/wiki/Representational_State_Transfer)를보고 싶을 수 있습니다. REST는 받아 들일 수 있고 반환 할 수있는 것이 유연하다는 점에서 훌륭하다. 예를 들어, 파일을 업로드하고 PDF를 반환 할 수있다. 그것은 http에서 사용되지만, 유일하게 허용 된 프로토콜은 아닙니다. 그것은 언어/플랫폼에 무관심합니다.

표준화 된 무언가를 갖고 싶다면 플랫폼 독립적 일 때 SOAP 또는 REST가 가장 좋은 방법 일 것입니다. Java/JVM 또는 .NET에 제한되지 않는다면 다른 옵션이 있지만 매우 제한적입니다.

어떤 유형의 데이터가 전달되고 있습니까? 보안은 얼마나 중요합니까? 사용 가능한 플랫폼/언어는 무엇입니까? 프로그램의 목적은 무엇입니까? 목표는 무엇입니까?

0

당신은 또한 다른 프로토콜을 사용할 수있는 휴대용 솔루션을 원하는 경우에, 모노에서 WCF는 잘 맞는에게 수 있습니다

여러 서버에 코드 논리를 배포하려는 그것은 하나의 엔티티로 관리하는 경우
0

For .Net WCF는 구현하기가 매우 쉽고 매우 유연하며 CORBA는 깊이 분산 된 응용 프로그램을 이해하는 것이 목표이지만 실제 프로젝트에는 권장하지 않는 것이 현재로서는 매우 좋습니다. CORBA를 마스터하는 개발자를 찾기가 어렵습니다.

관련 문제