2005년 6월 15일 수요일

Universal Marshaller

Prototype
= type에 관한 정보, C언어의 경우 Header file에 적혀 있다.

Variant
= Type이 맘대로인 값

type과 variable
= class와 object
= Class(Java에 사용하는 개념)와 class

C가 대문자인 것에 주의.

Marshalling = Serialize
Object를 byte stream으로 만드는 일

Unmarshalling = Unserialize
Byte stream이 된 것을 다시 object로 만드는 일.

Marshalling을 쓰는 이유
Object를 Network으로 쉽게 넘기고 받고, 쉽게 파일에 저장하는 등.
여러가지를 알아서 해준다.
Delimiter를 정의하고 개발자가 직접 짜려고 하면 귀찮으니,
Java, PHP, COM은 그런 걸 지원한다.

Universal marshalling
Marshalling인데, prototype없이도 가능하다.

Universal marshalling이 필요한 이유?
client code와 server code가 source를 share할 필요가 없으므로
어떤 내용이 추가되어도 재컴파일 할 필요가 없다.
Library 배포시, 소스 배포(or header 배포)없이 바이너리 배포만 하면 된다.
혹은 PHP처럼 type이 자동으로 바뀌는 언어와 C언어 간에서
자동 type conversion시에 유용하다.

Java.lang.reflect
Universal marshaller등을 쓸 때 meta적인 개념이 많이 나와서 쓰는 사람은 귀찮다.
reflect를 쓰면 client는 그런 걸 잊고 기존과 비슷하게 사용할 수 있다.

참고)
Hessian
http://www.caucho.com/

댓글 없음:

댓글 쓰기