2011-10-17 3 views
0

플렉스에서 리모팅을 처음 사용했습니다. flex 4.5를 사용하고 AMF를 사용하는 팀의 다른 누군가가 만든 웹 응용 프로그램과 대화하고 있습니다. Zend_AMF를 사용하여 데이터를 직렬화하고 직렬화 해제했습니다.플렉스 4.5 리모팅 오브젝트

현재 내가 직면 한 주요 문제 중 하나는 많은 서비스 (약 60 개 정도)와 이야기해야한다는 것입니다.

원격에 대한 예제에서

나는 온라인 보았다 및 어도비에서, 내가 각 서비스에 대한 원격 객체를 정의 할 필요가 보인다 : 나는에 대해 정의 할 필요가 있다고 생각, 많은 서비스와

<mx:RemoteObject id="testservice" fault="testservice_faultHandler(event)" showBusyCursor="true" destination="account"/> 

을 그 중 60은 매우 우아하지 않다고 생각합니다.

동시에 나는 AMF 종점을 테스트하기 위해 핀타와 놀았습니다. 핀 타 (Pinta)는 이러한 제한없이 서비스, 방법 및 매개 변수의 임의의 양을 정의 할 수있을 것으로 보인다. 근원지를 파헤 치면서, 나는 그들이 실제로 리모팅에 깊이 관여하고 많은 낮은 수준의 것들을 다루고 있음을 발견했다.

로드 또는 원격 객체를 정의하지 않고 너무 심하게 내려야 만하고 저수준의 원격 이벤트를 직접 처리하지 않고도이 문제에 접근 할 수있는 방법이 있습니까?

건배

+0

"나는 그 중 약 60 개를 정의해야한다고 생각하는데, 나는 그것이 매우 우아하다고 생각하지 않는다." 이것이 사실이 아닌 경우 어떤 기술을 사용합니까? 어떤 시점에서 액세스하려는 모든 서비스의 세부 정보를 코드에 알려야합니다. 나는 Pinta가 어떻게 이것을 우회하는지 당신의 원본에서 불분명하다; 핀타가 일하는 서비스를 정의하는 데 한계가 없습니다. – JeffryHouser

답변

1

응용 프로그램이 많은 RemoteObjects을 필요로하는 것이 이상한 것 같다. 저는 매우 큰 응용 프로그램을 작업 해 왔으며 일반적으로 ~ 6-10 개의 RemoteObject 선언으로 끝납니다.

게시물에서 RemoteObject의 변형에 대해 자세히 설명하지는 않지만 RemoteObjectOperation을 혼동시킬 수 있습니다.

일반적으로 응용 프로그램의 모든 끝점에 대해 RemoteObject 인스턴스를 선언합니다. 그러나 해당 끝점은 호출 할 여러 가지 메서드를 노출 할 수 있습니다. 이러한 각 서버 측 메서드는 클라이언트 측 Operation에서 결과를 얻습니다. 당신이 그들을 선언하지 않으면 원하는 경우 명시 적으로 다음을 선언 할 수

는, 그러나 RemoteObject는 당신을 위해 Operation들 빌드 :

var remoteObject:RemoteObject; 
// creates an operation for the saveAccount RPC call, and invokes it, 
// returning the AsyncToken 
var token:AsyncToken = remoteObject.saveAccount(account); 
token.addResponder(this); 
    //... etc 

단일 서버 계층과 상호 작용하는 경우가 종종 있습니다 하나의 RemoteObject를 사용하여 API의 단일 대상을 지정하면 많은 메소드가 노출됩니다. 이것은 API Façade라고도 불리는 접근 방식으로, API에 대한 의존성 주입 규칙을 지원하면 매우 유용 할 수 있습니다.

또 다른 일반적인 접근 방식은 논리 비즈니스 영역 (예 : AccountService, ShoppingCartService)으로 API 메소드를 분리하는 것입니다. 이는 서비스간에 일치 프로토콜을 조합 할 수 있다는 이점이 있습니다 (예 : AccountService가 HTTPS).

이러한 RemoteObject를 분할하는 방법은 귀하에게 달려 있습니다. 그러나 단일 응용 프로그램에서 60 조금 나를 용의자 소리.

관련 문제