2013-09-05 2 views
0

더 많은 디자인 및 아키텍처 문제입니다.

이전 시스템을위한 새로운 UI 레이어를 개발 중입니다. 이 시스템은 특정 xml 형식의 요청을 받아들입니다. 현재 새로운 UI 레이어의 요청은 컨트롤러를 통해 데이터 마사지 클래스로 이동합니다.

Translator/Massaging class은 UI 요청 xml을 원하는 요청 형식으로 변환합니다. UI 레이어에서받은 XML에 더 이상 사용되지 않는 요소와 상수를 추가하지 않습니다.

UI의 요청 XML은 부분적으로 실제 백엔드와 유사합니다. 그러나 실제 요청으로 변환하려면 Translator/Massaging 클래스로 가야합니다.

제 질문은 UI가 부분적으로 실제 요청과 비슷한 요청 XML 인 경우 걱정해야합니까? UI 레이어는 JSON 형식의 데이터를 Translator/Massaging으로 보낼 수 있으며 번역기 클래스는이를 실제 요청 XML로 변환 할 수 있습니까?디자인 문제 : UI 레이어가 백엔드에 대해 걱정해야합니까?

답변

0

내 질문에 대한 질문은 UI가 실제 요청과 부분적으로 비슷합니까? UI 레이어는 JSON 형식의 데이터를 마사지 클래스에 보낼 수 있으며 마사지 클래스는이를 실제 요청 XML로 변환 할 수 있습니까?

분명히 할 수 있습니다. 그러나 그것은 "마사지"수업이 더 할 일이 있음을 의미합니다.

내 마음에, 당신은 아마 여기에 잘못된 질문을하고 있습니다. 내가 신발에 앉아 있었다면 왜 "이전"시스템에 대한 요청 형식을 직접 사용할 수 없으며 왜 "이전"시스템을 "새로운"시스템에서 요청을 받아들이도록 변경할 수 없는지 스스로에게 물어볼 것입니다. 형식으로 직접.

또 다른 말로 표현하면, 새로운 형식을 구현하는 목적과 "마사지"의 모든 추가 코딩과 성능에 중점을 둔다.

당신이 우리에게 말하지 않은 다른 일이 없다면,이 모든 것이 나에게 불필요하게 들립니다.

+0

이유 1 : 오래된 시스템은 변경할 수 없습니다. 그것은 거대하고 완고합니다. 변경 사항의 영향을 파악하는 데 많은 시간이 소요됩니다. 이유 2 : 받아들이는 요청 XML은 꽤 크고 일정하고 비추천 된 요소가 많이 있습니다. 새로운 UI를 가능한 한 가볍게 유지하여 더 작은 장치에서도 작동 할 수 있도록 노력했습니다. –

0

서비스를 생각하십시오! 서버가 제공하고 클라이언트가 사용하는 모든 기능은 서비스 인터페이스에 의해 추상화되어야하므로이 서비스를 사용하는 코드 은 해당 구현이나 관련된 프로토콜을 걱정하지 않아도됩니다.. , 외관은 다음 XML로 인수를 변환 할 수 있습니다

interface SomeService { 
    public SomeResult doSomething(SomeArguments) throws SomeException; 
} 

class SomeServiceServerImpl implements SomeService { 
    // server-side implementation 
} 

class SomeServiceClientFacade implements SomeService { 
    // client-side facade, forwards the request, for example to a web service 
} 

: 그런 다음 서버의 실제 구현, 서버에 요청을 전달합니다 클라이언트에 대한 원격 외관 구현이 또한 응답을 처리 할 수 ​​있습니다 웹 서비스를 호출하고 XML 응답을 구문 분석 한 다음 결과 개체 또는 예외로 다시 변환합니다.

당신은 표준화 된 RPC (원격 프로 시저 호출) 프로토콜 (예 : JSON-RPC SOAP이나),이 요청을 marshalling 및 응답 비 정렬 화를 않는 InvocationHandlerProxy을 사용하는 것입니다 처리 할 수있는 가장 우아한 방법을 사용하는 경우 일반적으로 원격 서비스 프록시를 저렴하게 만들 수 있습니다.

+0

나는 그것이 특권을 가진 클라이언트라고 말할 것이다. 이 UI 레이어는 EAR의 일부이기 때문입니다. –

1

내 질문에 UI가 레이어의 요청 XML이 실제 요청과 부분적으로 유사 할 경우 걱정할 필요가 있습니까?

아니요. 다음 질문에서 제안했듯이 메시징 클래스는 GUI 데이터를 실제 XML 요청으로 변환 할 수 있습니다.

UI 레이어가 JSON 형식의 데이터를 메시징 클래스로 보내고 메시징 클래스가이를 실제 요청 XML로 변환 할 수 있습니까?

수 있습니다. 그러나 GUI에는 데이터 모델이 있어야합니다. GUI는 데이터 모델과 상호 작용합니다. 데이터 모델은 메시징 클래스와 상호 작용합니다. 우리에게 말하지 않는 몇 가지 요구 사항이 없으면 다른 데이터 형식이 필요하지 않습니다.

+0

예, 데이터 모델에 대해 절대적으로 맞습니다. 이 양식들은 데이터 모델을 따르고 있으며, 저는 이것을 UIModels이라고 부릅니다. 각 UIModel을 VO 객체라고 생각하십시오. 현재'Translator' 또는'Massaging' 클래스는 이러한 'UIModel' XML을 요청 XML에 일치하는 일정한 요소로 적절한 위치에 배치합니다. 좋은 데? –

+1

@Himanshu Yadav : GUI 구성 요소가 UIModels의 필드를 가져 오거나 설정할 수있는 한 그렇습니다. –

+0

한 번 더 의심됩니다. 이러한 UI 모델은 실제로 VO 객체를 나타내는 UIModel XML입니다. 현재 모든 필드'name' 속성 값이 UIModel XML 요소와 일치하는지 확인합니다.
그런 다음 xml을 양식 값과 함께 작성합니다. 이 양식 XML은 모델 XML과 동일합니다. 모델 XML과 일치하는 양식 값을 사용하여 JSON 객체를 작성할 수 있습니까? 적절한 것으로 들리는가? –

관련 문제