활성화와 프록시 객체의 개요 원격 객체 활성화 방법 서버 활성화 객체(SAO: Server Activated Object) - Well Known 객체라고도 함 SingleCall 방식 함수 호출 요청이 있을 때마다 객체 생성 Singleton 방식 클라이언트 함수 호출 요청이 있을 때 단 하나의 객체를 생성한 후 하나의 객체를 공유 클라이언트 활성화 객체(CAO: Client Activated Object) 서버 활성화와 클라이언트 활성화 서버에 의해서 원격 객체가 자동으로 만들어지면 서버 활성화 기법이라고 한다. 클라이언트에서 프록시 객체를 만들 때 원격 객체가 만들어지면 클라이언트 활성화 기법이라고 한다. 클라이언트의 프록시 클라이언트에서는 원격 객체를 참조하기 위한 가상의 객체를 만들게 되는데 이..
클라이언트에서 원격 객체를 호출하기 위해서 필요한 모든 정보를 묶어서 클라이언트에게 전송한다. 이러한 정보를 묶는 작업을 마샬링(Marshaling)이라고 부른다. ■ 마샬링(Marshaling)의 종류와 구현 ▷ 참조 마샬링(Mashal By Reference) - MarshalByRefObject를 상속 ▶ 참조 마샬링(MBR)을 위한 클래스 - public class MarshalSample : MarshalByRefObject {} ▷ 값 마샬링(Mashal By Value) - Serializable Attribute를 지정하거나 ISerializable 인터페이스를 구현 ▶ 값 마샬링(MBV)을 위한 클래스 - public class SerialSample {}
기존 리모팅 예제코드를 보셨다면 추가적으로 다음 예제를 해보면 도움이 될 것이다. http://net2.tistory.com/entry/XFile-4 1. 리모팅을 이용하여 계산을 처리하는 Calc.dll을 윈도우즈 Service에 등록시키고, 서비스를 시작시킨 상태에서 윈 폼으로 리모팅을 호출하여 계산값을 얻어낸다. (계산을 간단히 코드상에서 처리할 수 있지만 예제로 리모팅을 사용하는 방법을 배워보도록 하자.) 2. 리모팅을 이용하여 Database에 ADO.NET으로 연결해 쿼리 데이터를 DataSet으로 반환하는 *.dll 을 작성한다. 이 dll을 윈도우즈 서비스에 등록시키고 시작시킨 상태에서 윈폼에 DataGridView 컨트롤에 리모팅으로 받아온 DataSet을 뿌려주는 예제이다. 예제코드의 ..