2009-08-31 2 views
2

이전에 데스크톱 응용 프로그램을 사용했지만 물리적으로 또는 원격으로 서버에 액세스하는 것이 클라이언트에게 바람직하지 않음을 고려하면 windows 서비스 (이론적으로는 24 시간 연중 무휴)로 실행됩니다.SOA를 사용하여 원격 UI를 구현해야합니까?

이제는 이전 기능과 이전 인터페이스를 유지하기 위해 해당 서비스에 대한 원격 사용자 인터페이스를 제공해야합니다.

우리는 WCF를 사용하여 여러 SOA 서비스를 개발해 왔습니다. 우리는 구성을위한 하나의 서비스, 예를 들어 네트워크 정보, 통계 등을위한 또 하나의 서비스를 가질 것입니다. 그래서 모든 서비스의 합계는 이전 인터페이스와 동일한 기능을 제공하지만 다른 기능 영역으로 분리됩니다.

SOA에서 많은 경험이 없으므로이 디자인이 맞습니까? SOA가 원격 UI에 적합한가? 하나의 서비스 만 있거나 논리 그룹이 있어야합니까?

참고 : 우리는 서비스에 대한 정보의 일부를 액세스하는 여러 응용 프로그램을 가지고 있습니다. 그래서 우리는이 논리적 구분을 만듭니다.

편집 : 접속할 수있는 사람과 조기에 액세스 할 수있는 사람에 대한 보안을 구현하는 것이 가치가 있습니까? 나는 큰 YAGNI 경고와 함께 그것을 보았다. 그러나 아마 나는 틀렸다.

나는 등, 원격 UI를 구현하는 방법에 대한 제안, 기존의 프레임 워크, 최선의 접근 방법, 장점과 SOA를 사용하는 단점의 모든 종류의에 관심이 있어요 당신이 올바른 궤도에있는 것처럼

답변

2

"원격 UI"라고 말하면 실제로 원격 서버에서 실행되지만 API를 통해 원격으로 호출되는 일부 작업이 있다고 생각합니다.

원격 UI는 서비스 컴퓨터에서 사용자 인터페이스가 실행 중이며 사용자가 투영 된 UI를 통해 서비스와 상호 작용하고 있음을 의미합니다. 터미널 서비스와 같은 것.

서비스가 SOA API에서하는 작업을 드러내는 것이 아마도 당신이 원하는 최상의 경로 일 것입니다. 그런 다음 Winforms, Silverlight, ASP.Net 또는 향후 다른 어떤 곳에서 UI를 구현할 수 있습니다. SOA는 많은 사람들에게 많은 것들이 있지만, 나는 각 당사자가 상대방의 구현 세부 사항에 대한 지식이없는 시스템의 경계 지점으로 생각하고 싶다.

서비스의 세분성을 결정하는 것이 항상 명확하지는 않지만 현재 구현중인 UI 응용 프로그램뿐만 아니라 서비스 소비자에게 제공하는 기능에 대해 생각해 보는 것이 좋습니다. 물론 이러한 것들은 돌로되어 있지 않으며, 상황이 진행됨에 따라 리팩토링 할 수 있습니다. 단일 응용 프로그램은 여러 서비스를 사용할 수 있으므로 해당 점에 문제가 없습니다.

내가 일하는 곳에서는 기능을 먼저 구현 한 다음 나중에 보안 질문을합니다. 보안 요구 사항은 물론 구체적이지만 액세스 할 데이터의 민감도 나 사용자가 서비스를 통해 호출 할 수있는 기능을 고려해야합니다. 서비스가 네트워크에서 내부적으로 사용되거나 인터넷을 통해 공개되면 사용자가 악의적으로 행동하려고 시도 할 가능성이 높습니다. 예를 들어 비즈니스 사용자가 Visual Studio 사본을 다운로드하고 혼란을 야기하기 위해 자신의 WCF 클라이언트를 만들 가능성은 거의 없지만 무엇이든 가능합니다.

1

소리가 난다. 문제는 본질적으로 내가 가진 것과 동일한 문제이며, 앞서 설명한 것과 거의 같은 방식으로 광산을 설계했습니다. Windows 서비스는 3 가지 WCF 서비스 (현재까지)를 호스팅하고 프런트 엔드 응용 프로그램은 사용자와 상호 작용하기 위해 사용합니다. WCF 서비스를 로컬 또는 원격으로.

설명하는 논리적 구분이 실제로 서로 독립적 인 경우 각 논리적 구분이 자체 WCF 서비스 모듈이 될 경우 많은 의미가 있습니다. 그러나 일부 겹치는 부분이있는 경우 (예를 들어 구성 서비스가 네트워크 정보 서비스와 어떤 방식으로 상호 작용해야하는 경우) 반드시 WCF 계약 수준에서 논리적 구분을 부과해야하며 완전히 별도의 WCF 모듈이 아니어야합니다. Windows 서비스 내부를 다루기가 쉽습니다.

Juval Lowy의 저서 Programming WCF Services이 없으면 사본을 받으실 것을 적극 권장합니다. 위대한 WCF 참고서입니다. 자유롭게 사용할 수있는 많은 WCF 코드 예제를 보려면 자신의 사이트 IDesign.net을 방문하십시오.

+0

http://stackoverflow.com/questions/9553267/soa-design-parameter-decision에 답변 해 주시겠습니까? – Lijo

0

내 의견은 프런트 엔드 사용자 인터페이스에 대한 것입니다. SOAP 기반 웹 서비스는 무거울 수 있으며 부하가 증가하면 성능이 중요해질 수 있습니다. 대신 프런트 엔드 용 사용자 REST 기반 서비스 및 비즈니스 로직 및 오케스트레이션을위한 SOAP 기반 서비스 좋은 성능으로 확장 성이 뛰어난 응용 프로그램을 얻을 수 있습니다.

WCF는 SOAP와 REST 서비스를 모두 지원한다고 생각합니다. REST 서비스는 일반 HTTP를 기반으로하므로 빛과 기술 중립적입니다.

+0

WCF SOA는 기술 중립적 인 XML을 기반으로합니다. 다른면에서 SOAP이 무겁고 성능에 문제가 있다고 말하는 이유는 무엇입니까? 그것에 정성을 기울이는 배려? 왜 그것이 REST보다 무거울까요? –

+0

예 SOAP은 XML의 과도한 사용으로 인해 성능면에서 무겁습니다. 모든 객체 (순진한 언어)는 모든 요청과 응답에 대해 XML로 직렬화해야하며 그 반대의 경우도 필요합니다. 순전히 xml로 재생하는 경우 자체는 무겁습니다. 프로그래밍 언어의 특정 객체를 사용하면 케이스가 조금 더 좋습니다. 그냥이 성능 벤치 마크 http://www.lynchconsulting.com.au/blog/index.cfm/2008/3/13/CFMX--SOAP-vs-REST-benchmarks I 살펴보고 SOAP에 반대하는 것이 아니지만 사용자 인터페이스에 사용하는 것에 반대하지만 최종 사용자의 기술은 중요하지 않지만 성능 문제가 있습니다! – shivaspk

관련 문제