Powered by SmartDoc

ELM-VE�̓���

2002�N2��13��
Kenji Saito
http://elm-ve.sourceforge.net
ELM�̍쐬��2000�N4���ɂ͂��܂�܂����B���̃v���O�����p�b�P�[�W�͕��������p�ɊJ�����ꂽ�l�I�ȃv���O�����ɁA�l�b�g���[�N���ߐ��̋@�\�̒lj����A�����A�[�L�e�N�`���ƃ��[�U�C���^�t�F�[�X�̊��S�ȕ������������邱�ƂŁA���z�����̊�{�I�ȋ@�\�ƁA�J���‹���񋟂ł���悤�ɍ쐬����Ă��܂��B

�ڎ�

What's ELM-VE

ELM-VE�̒񋟂���@�\

ELM-VE�͉��z�����𗘗p����A�v���P�[�V�������쐬���邽�߂� �p�b�P�[�W�ł��B�܂��A�}���`�G�[�W�F���g�c�c�c ���̐��E�ŋN�邳�܂��܂Ȍ��ۂ�A��z�̐��E�ł̏o�����A �ڂɌ����Ȃ��������ہA���ۂɂ͔�p��댯��������̋K�͂� ���Ŏ����s�”\�Ȏ����Ȃǂ��V�~�����[�g���邱�Ƃ��Ӑ}���� �쐬����Ă��܂��B

���z�������������邽�߂̃\�t�g�E�F�A�́A���łɐ����� ����܂����AELM�̍ۗ����������Ƃ����Ίg�����ɂ���Ƃ������܂��B �Ⴆ�Ίe�I�u�W�F�N�g�ɑ΂��āA�ɂ�����\������f�[�^�� �t��������Elm�̃G�[�W�F���g��Client���g������΁A�ɂ����� ���鉼�z��Ԃ������ł���ł��傤(���N�A�����J�̊�ƂŁA �R���s���[�^�ɐڑ����ē����H(������)�𔭐����� �f�o�C�X�������[�X�����\�肾�����ł�)�B

�ߔN��������Ă��鑽���̕���ł́A�Ɨ����������̗v�f�� �݂��ɉe�����y�ڂ������Ώە������ڂ���Ă���ƌ�����Ǝv���܂��B ELM�ł͂��̂悤�ȑΏۂ��V�~�����[�V��������̂ɓK���Ă��܂��B ���̂悤�ȑΏە��͕��񏈗���p�����A�v���O���~���O���L���ł����A ���̏ꍇ�}���`�X���b�h�v���O���~���O�Ȃǂ̍����ȃv���O���~���O �Z�p���K�v�ɂȂ��Ă��܂��BELM�ł́A�X���b�h���܂������ӎ� ���邱�ƂȂ��ɁA�}���`�X���b�h�I�ȃv���O���~���O���”\�ł��B

�X���b�h��p�����v���O���~���O�ɂ��A�\���I�� �����I�ȃI�u�W�F�N�g���쐬���邱�Ƃ��ł��܂��B

�Ƃ���ELM�͊w���������Ŏ������s�����߂̊‹��Ƃ��� ��������Ă��܂��B�V�~�����[�V�����̃f�[�^��ۑ�������A �N���C�A���g�̉摜��ۑ�������A�Ƃ����@�\�� �p�ӂ���Ă��܂��B

ELM�̒񋟂��鉼�z�����́A�ʏ�A�N���C�A���g���N�� �����Ƃ��Ɏ����I�ɍ쐬�����A�����̃}�V�����̃T�[�o �ɂ���Ĉێ�����Ă��܂��B�������A�N���C�A���g�Ƃ� �Ɨ������T�[�o���C���^�[�l�b�g�ɐڑ����ꂽ �}�V���ŋN�����邱�Ƃɂ���ĐV�������z������ ���邱�Ƃ��ł��܂��B�����̃T�[�o�Ԃ� �����N���͂邱�Ƃɂ���āA���U���ꂽ����� ���z�����������ł��܂��B

ELM�̉��p��

���z�����A�����V�~�����[�V����

ELM-VE�̃R���Z�v�g

Java�̓I�u�W�F�N�g�w����������A�v���b�g�t�H�[�����z�������s�t�@ �C�����x���ł̌݊�����񋟂��A�v�Z�@�l�b�g���[�N�̎������t���Ɋ��p�ł� ��v���O���~���O����Ƃ��Ĕ��ɗD��Ă���BJava�� �A�v���P�[�V�����J���҂̑��l�ȗv���ɂ������邽�߂̌���Ƃ��Ĕ��W���Ă���悤 �Ɍ�����BJava�ō쐬�����A�v���P�[�V�����������I�ȑ��x�œ��삵�A ���S�ȃZ�L�����e�B�@�\�������A�L�x��GUI�⑽���̃��f�B�A�ւ̑Ή��A ���܂��܂ȃf�[�^�\���̎�舵�����ȕւɂ���N���X�S�A�Ȃǂ�L�� �Ȃǂ�ڎw���Ă���A���ۂɎ�������Ă���B

Java�͗D�ꂽ����ł��邪�A�A�v���P�[�V�����̊J������ŃN���E�g���� �Ƃ����������ۂ߂Ȃ��BJava�ł͂��܂��܂ȋ@�\���񋟂���Ă��邪�A����� �̋@�\���g�����v���O�������s�����߂ɂ́A���̋@�\���������邽�߂̌ŗL�� �T�O�𗝉�����K�v������B�܂��A�����̏ꍇ���܂��܂Ȑݒ���l�����Ȃ��� �΁A���������삷��I�u�W�F�N�g���쐬���邱�Ƃ���ł��Ȃ��B�‚܂�A�v�� �O������g�ޑO�̒i�K�őS�Ă𗝉����Ă���K�v������B�ȒP��GUI������ �v���O������g�ޏꍇ�ł��������Ă��Ȃ���΂Ȃ�Ȃ����Ƃ́A�c��ł���B

�قƂ�ǂ̏ꍇ�A�w��������������Ƃ��ɏd�v�Ȃ̂́A�v���O���~���O�Z �p�ł͂Ȃ��A���̃v���O�����ʼn������邩�ł���B

ELM�ɂ͌v�Z�@�A�[�L�e�N�`������؎������܂Ȃ��B �Ⴆ�΁A�����̒P�ʂɃs�N�Z���͎������܂��A ���[�g����p����B

�N���X���Ɩ��O�����ŁA�܂��A�I�u�W�F�N�g���쐬�ł���B ���̃J�X�^�}�C�Y�ݒ��K�v�Ƃ��Ȃ��B �������A�J�X�^�}�C�Y�ł���B

�g�����A�͌����ɕK�v�ŁA�d�v�B

���ɁA���񏈗��[>�X���b�h�[>������o�O��肪���

�v���O������������Ƃ�������

�󓮓I���A�\���I��

�V�����T�O���o����K�v���Ȃ��A�G���Ă݂�΂悢�B �����̒��œ�����T�O�̃��^�t�@��p����

�q���ƁA�N��肻���āADisabled�̕����B

VESMA�̓���

�����ł�VESMA�̓������ȒP�ɂ܂Ƃ߂Ă��������Ǝv���܂��B VESMA���g�����ق����ǂ��̂��A�ʂ̃\�t�g�E�F�A���g���ق��� �ǂ����̔��f�ɖ𗧂Ăĉ������B�ł��A�‚��Ȃ����͂� �������������������A���ۂɎg���Ă݂Ĕ��f�������� �v���l�͎��̐߂́u�C���X�g�[���ƃZ�b�g�A�b�v�v�� �uVESMA���g���Ă݂悤!�v�̐߂ɐi�񂾂ق����ǂ���������܂���B

�ǂ�ł݂������ǎ��Ԃ������Ƃ����l�͉ӏ����̂Ƃ��낾���`�F�b�N ���Ă݂ĉ������B���̃}�[�N�����鍀�ڂ�VESMA���g�p����l�S�� �ɑ΂��Ċ֌W��������A���̃}�[�N�����鍀�ڂ�VESMA���v���O���� ���Ċg�����Ďg���Ă݂����Ƃ����l�ɓ��Ɋ֌W����������ɂȂ��Ă܂��B

���z�‹�

�܂��AVESMA�͉��z�‹���񋟂���V�X�e���ł����A ���z�‹��ƌ����Ă����܂��܂� �^�C�v������A���ꂼ��ɂ��܂��܂ȃV�X�e�����쐬����Ă��܂��B VESMA�Œ񋟂���鉼�z�‹��͊�{�I��3������ԂŁA�{���x�����l �ɂ����W���w�肷��̂Ō��q�Ȃǂ̃~�N���Ȑ��E���� �F���Ȃǂ̃}�N���Ȑ��E�܂ł��̂܂܂̃X�P�[���ŕ\���ł��܂��B �܂��A��Ԃ̒��ɋ�Ԃ���邱�Ƃ��ł��܂��B�‚܂�A�K�w�\���� ���‹�ԌQ���������Ƃ��ł��܂��B�K�w�I�Ƃ����Ă����ꂼ��̋�� �͓Ɨ�������ԂɂȂ��Ă���̂ŁA�T�C�G���X�t�B�N�V�����Ō��� �Ƃ���݂̌��ɗ��ꂽ���s�F���ƌ������ق����ʂ�₷����������܂���B �������A���̊K�w���𗘗p����΁A

[��w]--+--[�Z�ɓ�]----+--[101����]
        |              |
        |              +--[102����]
        |              :
        |
        +--[�}����]----+--[�ϗ���]
        |              |
        |              +--[����1]--+--[����1-1]
        |              |           |
        |              |           +--[����1-2]
        |              |
        |              +--[����2]--+--[����2-1]
        |              :           |
        |                          +--[����2-2]
        |
        +--[��������]--+--[101������]
        |              |
        |              +--[102������]
        |              :
        |
        +[�H��]--------+--[��K�H��]
                       |
                       +--[��K�H��]
�̂悤�Ȏ��R�ȍ\�����ȒP�ɍ쐬�ł��܂��B VESMA�̉��z��ԓ��ɁA���̃T�[�o���񋟂��鉼�z��Ԃւ� �����N���쐬�ł��܂��B���傤��Web�y�[�W�Ń����N�� �N���b�N����Ɛ��E���̑���Web�y�[�W�ɊȒP�Ɉړ��ł���̂Ɠ��� �悤�Ȋ����ł��B���̎d�g�ɂ���āA���E�K�͂̋���ȃn�C�p�[ ��Ԃ��쐬�ł��܂��B��‚̃}�V���ł̓}�V���p���[�̌��E�� �����s�”\�Ȃ悤�ȋ���ȉ��z��Ԃł������̃}�V����p����� ������ł�����ȉ��z��Ԃ��쐬�ł��܂��B �܂��A�ߔN�̉��z��ԋZ�p�ł͓��R�̂��Ƃł����AVESMA�ł� �C���^�[�l�b�g�Őڑ����ꂽ�����̃��[�U��������ԂɏW�܂� �R�~���j�P�[�V�������Ƃ�����l�X�ȃI�u�W�F�N�g�����L���� ���Ƃ��ł���悤�ɂȂ��Ă��܂��B

�T�[�o�ƃN���C�A���g�̊֌W

VESMA�̃V�X�e���ɂ̓T�[�o�ƃN���C�A���g�����ꂼ�ꂠ��܂��� ���̃T�[�o�ƃN���C�A���g�̊֌W�́AWeb�T�[�o��Web�N���C�A���g �̂悤�Ȓʏ�̃T�[�o-�N���C�A���g�V�X�e���̊֌W�Ƃ͔����� �قȂ�܂��BVESMA�̃T�[�o�͏�̐߂ł����������悤�ɁA3������� ��񋟂�����̂ł���A���̒��ł͗l�X�ȃI�u�W�F�N�g�������ł��܂��B VESMA�̃N���C�A���g�Ƃ́AVESMA�T�[�o���ɐ�������� ������Ɠ���ȃI�u�W�F�N�g�Ƃ����ʒu�t���ɂȂ��Ă��܂��B ����āAVESMA�̃N���C�A���g���N�����Ă��鎞�ɂ͕K��VESMA�T�[�o�� �N�����Ă��邱�ƂɂȂ�܂��B(����ȏꍇ�Ƃ��ăT�[�o�����𗧂��グ �邱�Ƃ��”\�ł��B)�����čŏ���VESMA�̃N���C�A���g�ɕ\�������̂́A ���̃N���C�A���g�����݂��Ă���T�[�o�̒��Ƃ������ƂɂȂ�܂��B

����́A���̃T�[�o�N���C�A���g�V�X�e���Ɋ���e���񂾃��[�U�ɂ� ���Ɋ�ȃV�X�e���Ɏv����ł��傤�B�������A���̂悤�ȃV�X�e���� �̗p�������Ƃɂ��ȉ��̂悤�ȓ����I�ȋ@�\���������邱�Ƃ��”\�� �Ȃ�܂��B

�܂���–ڂ́A�K�������l�̃v���C�x�[�g�ȃT�[�o�����‚��Ƃ��ł���Ƃ�������������܂��B���̃v���C�x�[�g�ȃT�[�o�̓N���C�A���g�Ɠ����}�V����ɂ���̂ŁA�قƂ�ǃ^�C�����O�����ŃT�[�o�̒����N���C�A���g�ɕ\������܂��B����𗘗p�����VESMA�V�X�e���𗘗p���ăA�N�V�����Q�[�����쐬������A�ȒP�ȕ����V�~�����[�V�����Ȃǂ����K�Ɏ����ł��܂��B�܂��A��ł��q�ׂ܂����A���̃T�[�o����W�߂Ă�������I�u�W�F�N�g�������̃v���C�x�[�g�ȃT�[�o�Ɏ����Ă��ăt�@�C���ɕۑ����Ă������Ƃ��”\�ɂȂ�܂��B

�ʏ�̃T�[�o�N���C�A���g�̎d�g�ł́A�N���C�A���g���T�[�o�ɏ���v�����A�T�[�o������ɓ����ď��𑗂�Ԃ��܂��B�T�[�o������̔��f�ŃN���C�A���g�Ɏ���������𑗂�o�����Ƃ͊�{�I�ɂł��܂���BVESMA�ł͏��̌����́u���b�Z�[�W�̓`�B�v�Ƃ����`�Ŏ�������܂����A����̓T�[�o���̊e�I�u�W�F�N�g���ǂ̃T�[�o�̂ǂ̃I�u�W�F�N�g�ɑ΂��Ăł����R�Ƀ��b�Z�[�W�𑗐M�ł��܂��B�C���^�[�l�b�g��C���g���l�b�g�ɏڂ����l�Ȃ�΁A����͕s�”\�Ȃ��Ƃ̂悤�Ɏv����ł��傤���A����͊e�C���g���l�b�g���Ɉ��Bridge�ƌĂ΂��T�[�o�𗧂Ă邱�ƂŎ����ł���悤�ɂȂ��Ă��܂��B(���Ȃ݂ɃC���g���l�b�g�������Ŏg�p����ꍇ�ɂ�Bridge�͕K�v����܂���)�����ŏd�v�Ȃ̂͒ʐM���Ώ̂ł���Ƃ������Ƃł��B�����炩�炠����A�����炩�炱����A�̂ǂ̕����ł������悤�ɏ���`�B�ł��܂��B

��ł��q�ׂ��悤�ɃI�u�W�F�N�g�Ԃ̂�����������́u���b�Z�[�W�̓`�B�v�Ƃ����d�g�݂�p���Ă���A�v���O������ł͏��̎󂯎�E�����̋�ʂ͂Ȃ��Ȃ蓝�ꂳ�ꂽ�`�ɂȂ��Ă��܂��B�܂��A���̎菇���”\�Ȃ�����Ȍ�������Ă���A(1)URL�̂悤�Ȍ`���ŒʐM������w�肵�āA(2)�`�B���郁�b�Z�[�W���쐬���A(3)����o�������ł��B�����̒P���ȏꍇ�ł͂�����1�s�̃v���O�����ɂȂ�܂��B�Ⴆ�΂���ȕ��ł��B

send(makeOrder(getElm("/room1/receiver"),"method1","data"));

��̃v���O�����́uroom1�v�Ƃ�����Ԃ̒��ɂ���ureceiver�v�Ƃ������O�̃I�u�W�F�N�g�́umethod1�v�Ƃ������O�̃��\�b�h�ɑ΂��āu"data"�v�Ƃ���������f�[�^�𑗂�܂��B�f�[�^�̕����͕����񂾂��łȂ�������A�I�u�W�F�N�g��Ȃɂ��̔z��ł�Ok�ł��B��̃v���O�����͊��ʂ�3�d�ɂȂ��Ă��āA������Ƃ����g���b�L�[�Ȃ̂œ����v���O�������킩��₷�������ƁA

ElmStub es = getElm("/room1/receiver");   // (1)�����̎擾
Order o = makeOrder(es,"method1","data"); // (2)���b�Z�[�W�����
send(o);                                  // (3)����

�ƂȂ�܂��B���������Ƃ���ƌJ��Ԃ��ʐM������̂Ȃ瑗���"es"�͍ė��p�ł���̂�(2)��(3)�̏��������J��Ԃ���OK�ł��B

�A�o�^�̓���

�A�o�^�Ƃ̓��[�U�����z��Ԃɓ���ۂɃ��[�U���g�̕��g�Ƃ��Ă��̊O����\�����A���̃��[�U�Ɏ��������z��ԓ��ɑ��݂��Ă��邱�Ƃ����������������܂��B���z��Ԃōs������Ƃ́A���̃A�o�^�𑀏c����Ƃ������Ƃɑ��Ȃ�܂���BVESMA�̃A�o�^�͂��̂悤�ȓ����ȊO�ɂ����̏d�v�ȓ��������܂��B

VESMA�̃A�o�^�̓��o�C���G�[�W�F���g�Ŏ�������Ă��܂��B�‚܂�A�o�^���\������v���O�������g���A�T�[�o��n��������Ƃ��”\�ł��B�Z�L�����e�B�̐ݒ�ɂ���ẮA�����Ŋg�������������A�o�^�̃v���O�������T�[�o�ɑ��荞�ނ��Ƃ��”\�Ȃ̂ŁA�l�X�ȉ��p���”\�ł��B�܂��AVESMA�̃A�o�^�̓T�[�o���ɂ���I�u�W�F�N�g�������̃|�P�b�g�̒��ɓ���邱�Ƃ��”\�ł��B�‚܂�A������茟���������I�u�W�F�N�g�̓|�P�b�g�ɓ���v���C�x�[�g�ȃT�[�o�Ɏ����A��A�C���^�[�l�b�g�Ƃ̐ڑ���؂�����ł����邱�Ƃ��ł��܂��B�܂��A�����̃}�V���̃n�[�h�f�B�X�N���ɕۑ����邱�Ƃ��”\�ł��B

������d�v�ȓ����́A�A�o�^�̓N���C�A���g�ɕ\�������邽�߂̏��������őI�����A�T�[�o������W�߂đ���Ԃ��Ƃ������Ƃł��BVESMA�ɂ̓e�L�X�g�x�[�X�̃N���C�A���gJavaSwing�x�[�X�̃N���C�A���gJava3D�x�[�X�̃N���C�A���g������܂����A���ꂼ��\���������̂��܂������قȂ�܂��B����̓A�o�^���e�L�X�g�x�[�X�̃N���C�A���g�ɂ͕��������ASwing�x�[�X�̃N���C�A���g�ɂ�JavaComponent�̏���Java3D�̃N���C�A���g�ɂ�3D�̏������W���đ���Ԃ����Ƃɂ��”\�ɂȂ��Ă��܂��B�����A���Ȃ������̃y�b�g�������Ă��āA���̌���VESMA���‚��킹�����Ǝv������A�A�o�^�Ɂu�����v�̏����W�߂�悤�Ɋg�����Ă�����Ɨǂ��ł��傤�B(�N���C�A���g�œ������Đ�����ɂ͍����ȋ@�ނ��K�v�ł��傤���c)

�I�u�W�F�N�g�̃A�C�R���ƃJ�X�^�}�C�U

�ʏ�̉��z��Ԃł̓I�u�W�F�N�g�͂����Ă��A�C�R���A�܂���3�����O���t�B�b�N�X�̂悤�Ȍ`�ŃN���C�A���g���ɕ\������܂��B�����āA���̃I�u�W�F�N�g�ɑ΂��ăA�N�V����������@�́u�̓��肷��v�u�����ӂ肨�낷�v�u���@���Ԃ����Ă�v�Ȃǂ̌��肳�ꂽ��@�����p�ӂ���܂���B��X�����C���ŊJ�����Ă���VESMA��JavaSwing��p�����N���C�A���g��p����΁AVESMA�̃I�u�W�F�N�g�̓A�C�R���̑��ɂ�����Swing�R���|�[�l���g���g�p�ł��܂��B�‚܂�A�I�u�W�F�N�g�ɕ����̃{�^����t������A�e�L�X�g�̓��͗���t���邱�ƂȂǂ��”\�ł��B���ہA�f�[�^�x�[�X�̓��͉�ʂȂǂ���肭�\���ł���悤�ɃJ�X�^�}�C�Y���ꂽ�N���C�A���g���쐬����΁A�f�[�^�x�[�X���͂̂��߂�GUI���ȒP�ɍ쐬�ł���悤�ɂȂ邩������܂���BSwing�̃N���C�A���g�͊g�����ɔ�d��u���Đ݌v����Ă��܂��B

GUI�ł�����‚̏d�v�ȋ@�\�́A�e�I�u�W�F�N�g�ɐݒ肳��Ă���J�X�^�}�C�U�ƌĂ΂��@�\�ł��B���z�����������ɋߕt����Ƃ����ϓ_���猩��΁A�N���C�A���g�̒��Ɏ��ۂɃA�o�^��������i�����̂܂ܕ\������悤�ɂ���̂��œK��������܂���B�������A���݂̃R���s���[�^�ł͈�‚̃N���C�A���g�̃E�B���h�E�����Ŕ�����3D�̌i�F��\��������A����̃f�[�^��\��������A��ʂ̕����f�[�^��\�����邱�Ƃ͖���������܂��B����⍂�𑜓x�̉摜�A�����f�[�^�Ȃǂ̓N���C�A���g�Ƃ͕ʃE�B���h�E�ɕ\������ق������ۓI�ł��B���̂悤�ȋ@�\��񋟂���̂�VESMA�̃J�X�^�}�C�U�Ƃ����@�\�ł��BSwing�̃N���C�A���g�ł̓I�u�W�F�N�g���_�u���N���b�N���邱�ƂŃE�B���h�E���\������܂��B���̃J�X�^�}�C�U�̓��[�U�����R�ɕύX���邱�Ƃ��ł��܂��B���͂��Ƃ��ƃJ�X�^�}�C�U�͂��̖��������悤�ɃI�u�W�F�N�g�̃p�����[�^�Ȃǂ��J�X�^�}�C�Y���邽�߂̋@�\�ł������A��̂悤�ȉ��p���”\�ł��B

��������̂悤�ȋ@�\��VESMA�̏������x���d�����܂��B���̂悤�ȋ@�\���g�p�������Ȃ��l�͎g��Ȃ���΁A���̕������Ȃ�Ǝv���܂��BVESMA�ɂ̓X�P�[���r���e�B������܂��B

���b�Z�[�W�����ɂ��ʐM

�\�t�g�E�F�A�Z�p�̐��p��ŃG�[�W�F���g�Ƃ������t������܂��B����ɂ͐��m�Ȓ�`�͂Ȃ��̂ł����A�u�����I�v�ł���Ƃ��u�‹��ɓK���v����@�\�����‚��ƂƂ��u�ړ��v����@�\�����邱�ƂȂǂ��G�[�W�F���g�ł�������ƌ����Ă��܂��BVESMA�̃I�u�W�F�N�g�͒P�Ȃ�I�u�W�F�N�g�Ƃ������̓G�[�W�F���g�ɂ��Ȃ�߂����݂ł��B���炩�琔���̃I�u�W�F�N�g���݂��ɓƗ��Ɏ����I�ɓ��삷�邱�Ƃ��”\�ł��B

�v���O���~���O�ɏڂ����l�Ȃ�΁A�u�f�[�^�̐������v�Ɓu�f�b�h���b�N�v�ƌĂ΂���肪���邱�Ƃ��䑶�m�ł��傤�B����̓}���`�X���b�h�v���O���~���O�ƌĂ΂��v���O�����������̗p����ƋN����ł��BVESMA�ł́u���}���`�X���b�h�v���O���~���O�v�Ƃł��ĂԂׂ����@���̗p����Ă��܂��B���ɑ�ʂ̃G�[�W�F���g�𓮍삳����ɂ͂ǂ����Ă��K�v�ɂȂ��Ă��܂��B��q��2�‚̖��́A�v���O�����㔭�����ɂ����o�O�𐶂ݏo���Ă��܂�������ł����AVESMA�ō̗p���郁�b�Z�[�W�̌��������ɂ��ʐM���g���΁A�w�ǂ��̖��͉���ł��܂��B(�ڂ�����VESMA�̊�ՋZ�p�ł���ELM-VE�̃}�j���A�����Q�Ƃ��ĉ������B)

VESMA�̃��b�Z�[�W�����ɂ��ʐM�́A��q�̕��G�Ȗ���������邾���łȂ��A�v���O���������鎞�ɕK���o���Ă����Ȃ���΂Ȃ�Ȃ��T�O�͒P���ŏ��Ȃ��ł��B�����ăv���O�����Ƃ��ċL�q���鎞�̃^�C�v�ʂ����Ȃ菭�Ȃ��Ǝv���܂��B

��{�I�ɂ̓��b�Z�[�W�̌����̎�@��������΂�����ʐM���”\�ł��邪�A�Ⴆ�Γ���̃��b�Z�[�W�ɑ΂��ĕԎ��̃��b�Z�[�W���~��������A�����̃I�u�W�F�N�g���������Ƃ��ē��삷��悤�ɓ����p�̐M�������b�Z�[�W�Ƃ��đ��鎞�ȂǁA�v���O�������ɎG�ɂȂ��Ă��܂��B���̂悤�ȃ^�C�v�̒ʐM���ȒP�Ƀv���O�����ł���悤�ɁARequest�@�\���p�ӂ���Ă���B������g�p����ɂ�(1)���b�Z�[�W�̑��M��̓���A(2)���b�Z�[�W�̍쐬�A(3)�Ԏ��̃��b�Z�[�W���󂯂Ƃ������̐U�������w�肷��A(4)���b�Z�[�W�𑗂�Ƃ����X�e�b�v�ɂȂ�܂��B(3)�̎菇�������ʏ�̒ʐM�ƈႤ�Ƃ���ł��B

���i�K�̃Z�L�����e�B

VESMA�̃��b�Z�[�W�`����3�i�K�̃Z�L�����e�B�`�F�b�N���󂯂܂��B�C���g���l�b�g�Ɉ��p�ӂ���Bridge�T�[�o�ɂ����ă`�F�b�N����AVESMA�̃T�[�o���̂����b�Z�[�W���`�F�b�N���A�Ō�ɁA�e�I�u�W�F�N�g�̃��\�b�h���ƂɃ`�F�b�N����܂��B���̂悤�Ƀ`�F�b�N�̉񐔂𑽂����Ă���̂́AVESMA�̃T�[�o�͒P�Ƀ��N�G�X�g�ɑ΂��ăf�[�^��Ԃ������̃T�[�o�ł͂Ȃ��A�O�̃v���O�������T�[�o���ɓ�������A���R�ɓ����܂�点��悤�ȃT�[�o������ł��B

�Z�L�����e�B��ݒ肷����������Ĉꌩ��ςɂȂ邾���Ɏv���܂����A���̂悤�ȗ��_������܂��B��‚ɂ͌l���x���̃Z�L�����e�B�ݒ肪�”\�ƂȂ邱�ƂŁA�Ǘ��҂̃~�X��Bridge�T�[�o�ł̃`�F�b�N���������s���Ȃ������ꍇ�ł��s���̎��Ԃ𖢑R�ɖh�����Ƃ��”\��������܂���B�܂��A�l�ŃZ�L�����e�B�̐ݒ�����邱�Ƃ͗ǂ��Z�L�����e�B�̋���ɂȂ�Ǝv���܂��BVESMA�͈�ԍŏ��ɋN���������_�ł͑��̃T�[�o�Ƃ܂������ʐM�ł��Ȃ��悤�Ȑݒ�ŋN�����܂��B���̃T�[�o��ڑ������݂�ɂ́A�����̐ӔC�Ŏ����ɕK�v�ȒʐM�����‚��Ă䂭��Ƃ��K�v�ɂȂ�܂��BSwing�x�[�X�̃N���C�A���g���g�p���Ă���΁A�Z�L�����e�B�ݒ�̂��߂�GUI���p�ӂ���Ă���̂ŁA�T�O�����o���Ă����Ύ����Őݒ�ł���͂��ł��B

VESMA�̃��b�Z�[�W���`�F�b�N���邽�߂Ɏg�p�ł���`�F�b�N���ڂ͔��ɖL�x�ŁA���b�Z�[�W�̑����A�󂯎�̂��ꂼ��ɑ΂��āAIP�A�h���X�A�T�[�o���A�I�u�W�F�N�g�̖��O�A�I�u�W�F�N�g�̃T�[�o���ł̏ꏊ�A�I�u�W�F�N�g�̃N���X���A�I�u�W�F�N�g�̃��[��(����)�A���b�Z�[�W�̎�ނȂǍׂ����ݒ�ł��܂��B

�Z�L�����e�B����������Ɨ��֐����]���ɂȂ�A���֐���D�悷��ƃZ�L�����e�B���キ�Ȃ�Ƃ������Ƃ́A�Z�L�����e�B���l����Ƃ��ɐ���m���Ă����ׂ����Ƃł��B������VESMA�ł�3�i�K�̃`�F�b�N�ƃ��b�Z�[�W�̃`�F�b�N���ڂ̖L�x�ȃZ�b�g�̂������ŁA�Z�L�����e�B�����܂�キ�����ɁA���֐���ۂ‚��Ƃ��ł���Ǝv���܂��B�ݒ�͓���Ȃ�Ǝv���܂������̍ە׋����ė��֐����l���ł���悤�Ƀ`�������W���Ă݂�Ɨǂ��Ǝv���܂��B

����VESMA�v���O�����S�ʂɊւ���������̂ł����A���ɃZ�L�����e�B�̋@�\�Ɋւ��Ă͎��n�e�X�g���\���ł͂���܂���B�Z�L�����e�B�z�[�������t�������͂��񍐂��肢���܂��B

�g����

�����܂ł̓�����ǂ�ł���ƁAVESMA�̓����̑������u�g�����v�ɋN��������̂ł���̂��킩��Ǝv���܂��B�������AVESMA�͊g�����Ȃ��Ƃ��\���u����I���z�‹��v�Ƃ��ċ@�\����悤�ɓw�͂��č���Ă��܂����A����I���z�‹��ł͂Ȃ��p�r�Ɏg�p�������l��A����I���z�‹��Ƃ��Ďg���ɂ��Ă��A�����ƈ�����ϓ_����g�p�������l��A�g���l�̗���ɂ���Ăǂ����Ă��C�ɂ���Ȃ������Ƃ����̂��o�Ă���͂��ł��BVESMA�͊g�����ɔ��ɋC���g���Đ݌v���܂����̂ŁAVESMA���x�[�X�ɂ��ď�����������邾���ŁAVESMA�̓������󂯌p���Ȃ���A����ɗǂ��V�X�e�����\�z�ł���Ǝv���܂��B

�g���@����ɂ́A����Java�Ńv���O���~���O�ŋ�J����������Ǝv���܂��������Ƃ��̋�J�Ɍ��������̂��ł���̂ł͂Ȃ����Ǝv���܂��BVESMA��GNU�Œ�߂�GPL�̃��C�Z���X�Ɋ�Â����J���Ă���̂ŁA���Ȃ���VESMA��p���č�����v���O�����͂ǂ�ǂ���J���邱�Ƃ��ł��܂��B����VESMA���‚����Ă݂āA���P�_�Ȃǂ���Ό�A���������B

���_

�Ō�Ɉ��������‚܂�u���_�v�ɂ‚��Ă��q�ׂĂ����˂΂Ȃ�܂���B�����_�ł̌��_�̑����́AVESMA���قƂ�ǂ���ɂ��g�p����Ă��Ȃ��Ƃ������ƂɊ֘A���Ă��܂��B���̂��߂Ƀt���[�\�t�g�E�F�A�ł��闘�_�̑����������Ă��܂��B��҂����J�ɂ��܂�ϋɓI�ł͂Ȃ������̂ł����A���ꂩ��͉��S���Ă䂫�����Ǝv���܂��̂ŁA�L�u�̕��X�A�ǂ����䋦�͂��肢���܂��B

�Z�p�I�ȓ_�ł̌��_�̈�‚Ƃ��āA�����X�s�[�h�̒x�����グ���܂��B�ʏ�̉��z��ԂƂ��Ă̎g�p��A�ȒP�ȃQ�[����V�~�����[�V�����ȂǂɎg�p����ꍇ�ɂ͂قǂ�ǖ��ɂȂ邱�Ƃ͂Ȃ��Ǝv���܂����A��ʂ̌v�Z�p���[��K�v�Ƃ���悤�ȕ����V�~�����[�V�����ɂ͕s�������Ǝv���܂��B�������A�����̃V�~�����[�V�����̏ꍇ�AVESMA�I�u�W�F�N�g�̎������𗘗p���ĒZ���ԂŃV�~�����[�V�����v���O�������쐬�ł��A�������r�W���A���ɃV�~�����[�V�������ʂ��m�F�ł���̂ŁA�{�i�I�ȃV�~�����[�V�����v���O�������쐬�O�ɂ��̎����̉��l�𔻒f����̂ɂ͖𗧂‚Ǝv���܂��B

�܂��AVESMA�̃v���O���~���O�ɂ����Ă̓N���X���g�����ă��\�b�h��lj������Ƃ��s�Ȃ����ƂɂȂ�܂����A����ɂ�VESMA���L�̖񑩎��␧������������܂��B�����ꏭ�Ȃ���A�����̃v���O�������g�p���ĉ������쐬����ꍇ�ɂ͖񑩎��͕K�v�ł����A����𗝉����Ȃ���΃v���O�����͑g�߂܂���BVESMA�ł̖񑩎��ɂ͂���قǓ�����͖̂����Ǝv���܂����A���̃v���O���~���O�ł͖����悤�ȓ����I�Ȑ�������������܂��B�ڂ�����VESMA�̊�ՋZ�p�ł���ELM-VE�̃}�j���A�����Q�Ƃ��ĉ������B

ELM-VE�̓��쌴��

Agent�w��?

ELM�̂��ƂƂȂ����v���O�����́A���ɑ����̒P���ȓ�������� �v�f���݂��ɉe�����y�ڂ������‹����V�~�����[�V�������邽�߂� �쐬����Ă��܂��B�����ŁAELM�‹����̗v�f�̐g�ɂȂ��čl���Ă� �Ă��������B�ȉ��ɂ�������悤�ȋ@�\�͕K�{�ł��邱�Ƃ��z���� ����͂��ł��B������Java�̃f�t�H���g�̃I�u�W�F�N�g�͂��̂悤�� �@�\���Ȃ��̂ł��B�����āA���̋@�\�́A�ߔN���ڂ����Agent�w�� �R���s���[�e�B���O�Ɣ��ɐe�a��������܂��B �ȉ�ELM�‹�����ELM�I�u�W�F�N�g�̋@�\�����Ă����܂��B

�\���I�ȓ���

�I�u�W�F�N�g�w������ł́A�e�I�u�W�F�N�g�ɂ̓��\�b�h�� ����A���\�b�h�̒��ɂ��̃I�u�W�F�N�g�̓��삪�L�q����܂��B Java�̃I�u�W�F�N�g�����\�b�h�������܂����A���ʂɃv���O���� ����ƁA�e�I�u�W�F�N�g�̃��\�b�h�����s����邩�ǂ����́A �قƂ�ǂ̏ꍇ�A���̃I�u�W�F�N�g���炻�̃��\�b�h���Ă� �o����邩�ǂ����ɂ������Ă��܂��B�������I�u�W�F�N�g ���̃��\�b�h���玩�����g�̃��\�b�h���Ăяo�����Ƃ��”\ �ł����A���̂悤�ȏꍇ�́A��ƂȂ郁�\�b�h�ׂ̍�������� �L�q���Ă���T�u���[�`���I�ȃ��\�b�h�ł��邱�Ƃ��قƂ�� �ł��B

�����ŁA�I�u�W�F�N�g�̐g�ɂȂ��čl���Ă݂Ă��������B �����̂ǂ̃��\�b�h�����s���āA�������ǂ̂悤�ɓ��� ���邩�����Ō��߂����A�‚܂�ǂ̃��\�b�h�����s���邩 ���߂镔���̃v���O�������������g�̒��Ɏ����Ǝ��� ���s�������ƁA�v���܂��񂩁H���̂悤�Ȃ��Ƃ��”\�� ����ɂ́A�X���b�h���悤���d�g�݂��ǂ����Ă� �K�v�ł��BELM�ł́A���������������@���Ă��Ă��܂��B

���̗v�f����̗v��

��Ő��������悤�ɁA�����̃��\�b�h�������ŁA �Ăяo���@�\�������Ă��A��͂�A���̃I�u�W�F�N�g���� �̗v�����󂯂邱�Ƃ��ł��Ȃ���ΈӖ�������܂���B �����ł́A���̃I�u�W�F�N�g����̗v�����󂯂�ꍇ�� �l���܂��B

��������̓����^�C�v�̃I�u�W�F�N�g���‚��� �����̊Ԃł̑��ݍ�p���V�~�����[�V��������ꍇ�� �l���Ă݂Ă��������B�I�u�W�F�N�g�w������ł� �I�u�W�F�N�g�͑S�ăN���X���琶������܂��B�����A �����̃I�u�W�F�N�g����‚̃N���X���琶�����ꂽ ���̂��Ƃ���ƁAJava�̃I�u�W�F�N�g�ł͂��܂��� ���Ƃ��N����܂��BJava�̃��\�b�h�ɂ�private, protected,public�Ȃǂ̎�ނ�����܂����A �����N���X���琶�����ꂽ�I�u�W�F�N�g�ǂ��� �Ȃ�΁A���̃I�u�W�F�N�g��private��protected�� ���\�b�h�����Ăяo���Ă��܂��̂ł��B

����ɁAJava�̃I�u�W�F�N�g�͑��̃I�u�W�F�N�g���� ���\�b�h���Ăяo���ꂽ�Ƃ��ɁA�ǂ̃I�u�W�F�N�g���� �Ăяo���ꂽ�̂���m���т������@������܂���B�‚܂�A �Ȃ�̍H�v���Ȃ��ʏ�̃v���O�����ł́A�N����Ăяo���ꂽ �Ƃ��Ă��A�����悤�ɓ����邵�����@���Ȃ��A�Ăяo���ꂽ����� ����ėv�������ۂ�����A�ԓ��̓��e��ύX���邱�Ƃ� �ł��܂���B�������͂��̂悤�Ȏd�g�݂������ō쐬���� �K�v������ł��傤�BELM��ł̃��b�Z�[�W�̓`�B��p����� ���̖��������ł��܂��B

�����̎���̏󋵂�m��

���̍H�v������Ă��Ȃ�Java�̃I�u�W�F�N�g�́A �����̒u���ꂽ�󋵂�c�����邱�Ƃ��ł��܂���B ���������A�����̎���̏󋵂Ƃ������̂����� ���Ȃ��̂ł��B�‚܂�A�f�t�H���g��Java�I�u�W�F�N�g�� �ڂ������Ȃ��������������Ȃ��̂ł��B

���ELM�̃I�u�W�F�N�g�͕K��ElmSet�I�u�W�F�N�g�� ���ɂ��܂�(��ԃg�b�v��ElmSet�I�u�W�F�N�g�͗�O)�B ���̎����̂���ElmSet�̂��Ƃ�"�e"�ƌĂсA ELM�I�u�W�F�N�g�̂���ꏊ�̃f�[�^�������Ă��܂��B ELM�I�u�W�F�N�g�͎����̐e�ɑ΂��āA����ɒN�� ����̂��������˂邱�Ƃ��ł��邵�A�����̂���΂��� �ɂ‚��Ă̂��܂��܂ȏ󋵂𒲂ׂ邱�Ƃ��ł��܂��B �ǂ̂悤�Ȃ��Ƃ����ׂ��邩��ElmSet�̋@�\�� ���܂��B��{�I�ȋ@�\��ElmSet�ɂ��łɂ���͂��ł����A ElmSet�̓��[�U�����R�Ɋg�����邱�Ƃ��”\�ł��B

�؍\��

�O�͂ŏq�ׂ��悤��ELM�̃I�u�W�F�N�g��ElmSet�N���X���� ���������ElmSet�I�u�W�F�N�g�� ���ɑ��݂��Ă��܂��B�����Ď��́AElmSet�N���X��Elm�N���X�� �T�u�N���X�ł��B����ǂ��l�͂��̎������炷���\�z�ł��� �Ǝv���܂����AELM�ł͉��z��Ԃ��K�w�I�ɍ\�z���A �v�Z�@�̃t�@�C���V�X�e���̂悤�ɖ؍\������邱�Ƃ��ł��܂��B ����ɂ�2�‚̗��_������܂��B1�‚́A�����ǂ���K�w�I�� ���z��Ԃ��쐬�ł���Ƃ������Ƃł��B���z�I�ȃo�[�`���� �V�e�B���\�z����ꍇ���l���Ă݂ĉ������B���̃o�[�`���� �V�e�B�ɂ͊w�Z�A�a�@�A�����Ȃǂ̂��낢��Ȍ��������Ă� ���Ƃ��ł��܂��B�w�Z�����Ă�Ȃ�΂��̊w�Z�̒��ɐ}���فA �̈�فA���y���A�����Ȃǂ̕�������邱�Ƃ��ł��܂��B ������‚̗��_�́A�Ȃɂ����G�ȃI�u�W�F�N�g���쐬����ꍇ�� �����̒P���ȃI�u�W�F�N�g��g�����āA����� ElmSet�I�u�W�F�N�g�ł܂Ƃ߂邱�Ƃɂ���āA�ȒP�ɍ쐬 �ł���Ƃ������Ƃł��B�����I�ɂ͏\���ȗʂ� ��{ELM�I�u�W�F�N�g��񋟂��邱�Ƃɂ���āA Java�̃v���O���~���O�̒m���������l�ł�ELM��ŕ��G�� �I�u�W�F�N�g���쐬�ł���悤�ɂ��Ă��������� �l���Ă��܂��B

�X���b�h�ɂ‚�

��ŏq�ׂ��悤�ɁA�I�u�W�F�N�g�ɔ\���I�ȓ���������邽�߂ɂ́A �X���b�h�̂悤�ȋ@�\���K�v�ɂȂ��Ă��܂��B�������AJava��Thread �̓R�X�g��������܂��B�‚܂�AThread����������邽�тɂ���� �ێ����邽�߂ɁA�X�^�b�N�̈悪�K�v�����AJava�̃f�t�H���g�� ����ł́A�v�Z�@��������l�C�e�B�u�ȃX���b�h�������܂��B ���S�A����̃X���b�h�𐶐�����̂́A�񌻎��I�ł��艺��� �v���O���~���O�ł��B

���̂悤�ȏ󋵂��ȒP�ɍ�������ɂ́A��‚̃X���b�h�� �p���āA����(���S�A����)�̃I�u�W�F�N�g�̃��\�b�h������ �ɌĂяo���悤�ȃv���O���~���O���l�����܂��B�������A ���̕��@�͂��܂��܂ȏ󋵂ɑΉ����邽�߂ɁA�����̊g���� �K�v�Ƃ���ł��傤�B�Ⴆ�΁A���Ԃ��o�߂���ɂ‚�ăI�u�W�F�N�g �̌�����������ꍇ��A�S�ẴI�u�W�F�N�g����ɓ��삷��� �ł͂Ȃ��A���ۂɓ��삷��I�u�W�F�N�g�Ƌx����Ԃ̃I�u�W�F�N�g �����݂��Ă���A�X�̃I�u�W�F�N�g���Ǝ��ɋx����Ԃ��� �o�߂���������肷��悤�ȏꍇ�ł��B ���������҂ɏ\���Ȏ��Ԃ��Ȃ���΁A�����̖{���� ��肽���������Ƃ�������߂Đ������ꂽ�v���O������g�� ���ƂɂȂ肩�˂܂���B�܂��A���̂悤�ȃv���O���������� �v���O���}�́A���ꂼ��̃I�u�W�F�N�g�������I�ɓ��� �����邽�߂̎d�g�݂��Ǝ��ɍl�Ă���K�v�����邩������܂���B

�ȏコ�܂��܂Ȗ��_���グ�āAELM�ł͂��ꂪ�����ł���Əq�ׂĂ��܂��� ���A���̍������@�͎��߂Ő�������҂��s��(�L���[)��p�������b�Z�[�W�̏��� �ɂ���Ď�������Ă��܂��BELM�̂��̕��@�́ASwing�p�b�P�[�W�̃C�x���g���� ��AJava3D�̃I�u�W�F�N�g�̋��������C�x���g�������̎�@�Ə������Ă��܂��B �����̎�@��ELM�̈Ⴂ��ELM�̑҂��s��̓I�u�W�F�N�g���Ƃɗp�ӂ���Ă��� �_�ł��BJava3D�̓R���s���[�^�Q�[���Ȃǂ�����悤�ɐ݌v����Ă��܂����A �R���s���[�^�Q�[������������Ƃ̂���l�Ȃ�΁A���̃Q�[���̒��ł͗l�X�ȃL�� ���N�^���ˑR�\���āA���ꂼ��ɕ��G�ȓ��������A�����䂭�ƌ������悤�Ȃ� �Ƃ����R�̂悤�ɍs�Ȃ��Ă��邱�Ƃ�m���Ă���ł��傤�B�����ELM�̖ڎw ���Ă��邱�ƂƓ����ł��B����炪�����悤�ȕ��@���̗p���Ă���̂͋��R�ł� ����܂���B�������AJava3D��Swing�̂���͖ړI�̐������ꂽ���̂ł��邵�A ELM�̕��@�̂ق������ȒP�Ŋg���������藝�������₷���Ǝv���܂��B������ �g�����U�N�V�����@�\���������邽�߂֗̕��ȋ@�\���񋟂��Ă��܂��BELM���g �����Ȃ����߂Ɏ��߂́A�������藝�����ĉ������B

�҂��s��(�L���[)

ELM�V�X�e���͑����̃N���X����\�������Java�̃p�b�P�[�W�ł����A �ł��d�v�� �N���X��Elm�N���X�ŁA���z��ԓ��̃I�u�W�F�N�g�A���[�U�A �����Ȃǂ̑S�Ă� �N���X�̃X�[�p�N���X�ł��BElm�N���X�͑҂��s�� (�L���[)�������Ă���A���̒��Ƀ��b�Z�[�W���i�[���邱�Ƃ��ł��܂��B ���̐}��ElmServer���Ŋ������Ă��镡����Elm�I�u�W�F�N�g�� �͎��I�ɕ\���Ă��܂��B

��̐}�����ĉ������B���̐}�ɂ�ELM�̎d�g�݂̏d�v�ȊT�O�̑����� ������Ă��܂��B���̐}�̑S�Ă̗v�f�ɂ‚��ēK�؂Ȑ������ł���悤 �ɂȂ�΁AELM�̎d�g�݂̊�b�𗝉��ł��Ă���ƌ�����ł��傤�B ��ԊO���̎l�p��ElmServer��\�킵�Ă��܂��B ���̒���"root(ElmSet)"�ƃ��x���̂���l�p������܂��B�����root�Ƃ��� ���O��ElmSet�I�u�W�F�N�g��\�킵�Ă��܂��B�H�߂ł����� �����悤�ɁA����ElmSet�I�u�W�F�N�g�͒��ɕ�����Elm�I�u�W�F�N�g��ElmSet �I�u�W�F�N�g���܂ނ��Ƃ��ł��܂��BElm��ElmSet���g�������A�G�[�W�F���g ��Ǝ��̃I�u�W�F�N�g���܂ނ��Ƃ��ł��܂��B�n�߂�ElmServer��P�Ƃ� �N���������ɂ�ElmServer�̒��ɂ�root�Ɩ��̒�����ElmSet�I�u�W�F�N�g�� ��‚������݂����ԂŋN�����܂��B

���̐}�̓f�t�H���g�ŗp�ӂ����root��ElmSet�̒��ɁA "Object1"�A"Object2"�A"Object3"���쐬������Ԃ�\�킵�Ă��܂��B Object1��Object2�͒ʏ��Elm�I�u�W�F�N�g�ł����A Object3��ElmSet�I�u�W�F�N�g�ł��̂ŁA���̒��ɂ܂�����Elm�I�u�W�F�N�g ���쐬�ł��܂��B���̐}�ł�Object3�̒��ɂ�"ObjectA"��"ObjectB"������܂��B �����ELM�����z�‹����K�w�I�ɍ쐬�ł��邱�Ƃ�}�ŕ\�����Ă��܂��B

�}�̒��ɂ͊D�F�̏����Ȏl�p�������‚�������Ă��܂��B�����̓��b�Z�[ �W�ł��B���b�Z�[�W��Elm�I�u�W�F�N�g��ElmSet�I�u�W�F�N�g�̒��Ő�������A �I�u�W�F�N�g�ԂŌ�������A�I�u�W�F�N�g�̒��ŏ���������ł��܂��B�e�I�u�W�F �N�g��ELM�̃O���t�B�J���ȃN���C�A���g�Ō��邱�Ƃ��ł��܂����A���b �Z�[�W�̓N���C�A���g�Ō�������̂ł͂���܂���B

���b�Z�[�W�̈ꕔ�́A�����̎l�p�̒��ɕ`����Ă�����̂�����܂��B���� �����̎l�p��"�҂��s��(�L���[)"�ł��B����̓��b�Z�[�W���󂯎�����I�u�W�F �N�g���ꎞ�I�Ƀ��b�Z�[�W��ۑ����Ă����ꏊ�ł��B�҂��s��̒��Ƀ��b�Z�[�W ���i�[������Elm�͑҂��s��̐擪�����ƒ��b�Z�[�W�����o���A�����I�� ���̃��b�Z�[�W�ɑΉ����郁�\�b�h���ďo���悤�ȂȂ��Ă��܂��BElm�V�X�e�� �ł́A�S�Ă̓��삪���b�Z�[�W�̑��M�Ƃ���ɑΉ����郁�\�b�h�̎��s�̃v���Z �X�ōs���܂��B

���b�Z�[�W�ɂ́A4�‚̗v�f���܂܂�܂��B�����́A���b�Z�[�W�̑����A �󂯎�A���\�b�h���A�����ł��B����ă��b�Z�[�W���󂯎����Elm�I�u�W�F�N �g�́A�����̓��e�����b�Z�[�W�̑����ɂ���ĕς��邱�Ƃ��ł��܂��B�܂��A ������Object�^�Ȃ̂ŁA���b�Z�[�W���g���Ă������ނ̃f�[�^��`�B�� �邱�Ƃ��”\�ł��B

�ȉ��Ɏ��ۂɃ��b�Z�[�W�𑗐M���邽�߂̃\�[�X�R�[�h�̗�������܂��B ���b�Z�[�W�̎��̂�Order�Ƃ����N���X��p���Ď�������܂��B

import ac.hiu.j314.elm.*;

// method1�Ƃ������b�Z�[�W�������ł���Elm�N���X
public class TestElm extends Elm {
    // �������g���ďo�����\�b�h(�������[�v�ɂȂ�)
    public void method1(Order o) {
        System.out.println(o.getStringArgAt(0));
        System.out.println(o.getDoubleArgAt(1));
        System.out.println(o.getIntArgAt(2));
        Object args[] = {"arg1",W.p(2.0),W.p(3)};
        sendMessage(makeOrder(this,"method1",args));
    }
}

�ڂ����������T���v�����Q�Ƃ��ĉ������B

�g�����U�N�V����

��{�I�ɂ̓��b�Z�[�W�̓`�B�̎d�g�݂�p�����ELM�̑S�Ă̋@�\�������”\ �ł����A�s�ւȓ_������܂��B��‚͑��̃I�u�W�F�N�g�Ƀ��b�Z�[�W�𑗂菈�� ���˗����邾���ł͂Ȃ��A�������ʂ�Ԏ��Ƃ��Ď󂯎�肽���ꍇ�ł��B������ �‚͑����̃I�u�W�F�N�g������������ē��삵�Ȃ���΂Ȃ�Ȃ��ꍇ�ł��BELM �ł́A���̓�‚̏ꍇ�����̂悤�ȓ�����‚̃e�N�j�b�N�ŏ������܂��B

�܂��A���܂Ń��b�Z�[�W�ƌĂ�ł������̂�Order��Request�̓�‚ɕ��ނ� �܂��B���̓�‚̃N���X�͂ǂ����Message�N���X�̃T�u�N���X�ŁA�@�\�͂܂� ���������ł��B������ELM�V�X�e����Request�ɂ͂���ɑΉ�����Ԏ����K������ ����Ɖ��肵�܂��B���Order�͕Ԏ���Ԃ��K�v�̂Ȃ����b�Z�[�W�ł���Ƃ��� �������܂��B

���ۂ�Request�𑗂�Ԏ����󂯎�邽�߂̃\�[�X�R�[�h�̗�����Ɏ����܂��B

private Elm elmObjectB;
public void method1(Order o) {
    Request r = makeRequest(elmObjectB,"cubicContent",W.p(2.0));
    prepareForReply(r,"method2",null);
    sendMessage(r);
}
public void method2(ReplySet sr) {
    System.out.println(sr.getReplyAt(0).getDoubleArgAt(0));
}

�ȉ��̃\�[�X�t�@�C���͏�̃\�[�X�t�@�C������ďo����郁�\�b�h�ł��B

// �����̂̑̐ς����߂郁�\�b�h
public void cubicContent(Request r) {
    double d = r.getDoubleArgAt(0);
    sendMessage(makeReply(r,W.p(d*d*d)));
}

����A���b�Z�[�W��Order��Request�̓��ނɕ��ނ��܂����B����� ���ꂼ��Ƀv���C�x�[�g�ȖړI�Ɏg�p���郁�b�Z�[�W��\�킷�N���X�� �p�ӂ��Ă���܂��BOrder�ɑ΂��Ă�MyOrder�ARequest�ɑ΂��Ă� MyRequest�ł��B

����ɏڂ���������[*unresolved*]�����ĉ������B

Server,Client,Mobile Agent

ELM�̓��[�J���}�V�������œ��삳���邱�Ƃ��ł��܂����AELM�T�[�o�������[ �g�}�V���ɗ����グ��Όv�Z�@�l�b�g���[�N���z���ĕ����̃��[�U�����L���鉼 �z��Ԃ��\�z���邱�Ƃ��”\�ł��B�����āAELM�̃T�[�o���̃f�[�^���N���C�A ���g�ɓ`�B���邽�߂Ƀ��o�C���G�[�W�F���g��p���Ă��܂��B

VESMA�̃T�[�o�́A�O�����̉��z�‹��𐶐��E�ێ����A�N���C�A���g����v�Z �@�l�b�g���[�N��ʂ��đ����Ă��郂�o�C���G�[�W�F���g���󂯓���T�[�o�� �̉��z�‹��ɓ�������܂��B�N���C�A���g�͉��z�‹����̃��o�C���G�[�W�F���g�� ���삷�郊���[�g�R���g���[���V�X�e���̖����ƃ��o�C���G�[�W�F���g�����z�� �����Ō��Ă��镗�i�����[�U�ɂ������铭���������܂��B

���o�C���G�[�W�F���g��p�������Ƃɂ��A���[�U�C���^�t�F�[�X�̋@�\�� �g�������ɗe�ՂɂȂ�܂��BELM�ɂ̓f�t�H���g�̃N���C�A���g�Ƃ��āA�e�L �X�g�x�[�X�̃N���C�A���g�ASwing�x�[�X�̃N���C�A���g�AJava3D�x�[�X�̃N�� �C�A���g��3��ނ̃N���C�A���g���p�ӂ���Ă��܂����A��������o�C���G�[�W�F ���g���T�[�o����N���C�A���g�ɑ���Ԃ��f�[�^�̎�ނ��R���g���[�����邱�� �ɂ���Ď�������Ă��܂��B

ElmCustomizer

ELM���z��ԓ��̃I�u�W�F�N�g�͓Ǝ��̃J�X�^�}�C�U��ݒ�ł��܂��BELM�� Swing�x�[�X��2�����N���C�A���g���AJava3D�x�[�X��3�����N���C�A���g������ �N���C�A���g�̉�ʂ����ł͑����̏���\������̂ɏ\���ȍL���������Ă��� ����B�܂��A��ɑS�Ă̏���\�����Ă����Ƌt�Ɍ��ɂ����Ȃ�܂��BSwing�x�[ �X�̃N���C�A���g�ł̓I�u�W�F�N�g���_�u���N���b�N���邱�Ƃɂ��J�X�^�}�C �U���J�����Ƃ��ł��܂��B�J�X�^�}�C�U�Ɩ��O���‚��Ă��܂����A���̃J�X�^�} �C�U�ɕ\��������͎̂��R�ł��B����͂����‚��̕K�v�ȃ��\�b�h���������ꂽ JComponent�N���X�̃T�u�N���X�ŁA���̒��ɗl�X��Swing�R���|�[�l���g���g�� �ĕ��G�ȃ��[�U�C���^�t�F�[�X���쐬�ł��܂��B���ɃJ�X�^�}�C�U��ݒ肵�Ȃ� ��΃f�t�H���g�̃J�X�^�}�C�U���g�p����܂��B

���ۂ̃J�X�^�}�C�U�̍쐬�@��[*unresolved*]�����ĉ��� ���B

���_

�ȏ�̂悤�ȃA�[�L�e�N�`�����g�p���邱�Ƃɂ��3�‚̗��_��������B�� ��͕���v���O���~���O�̃e�N�j�b�N�Ƃ��ď�ɖ��ƂȂ鎖���ł���B��–� �̓v���O���~���O�̐݌v��̌��ʂ��̉��P�A��–ڂ͕����̃X���b�h�ɂ��f�[ �^�������̔j��̉���A�O�–ڂ̓f�b�h���b�N���̔����̌y���ł���B

���_

ELM�̌��_���q�ׂ�O�ɁA��{�I�ɕ��񏈗��̃v���O������g�� �Ƃ����ꍇ�ɔ����邱�Ƃ̂ł��Ȃ����_������B�܂��́A������ �v���O�������悤�Ƃ��Ă�����͕��񏈗��������Ă���̂��A ���񏈗�����K�v������̂��𔻒f����K�v������B �Ⴆ�Ε��ʁACPU��1�‚̌v�Z�@�ł͕���A���S���Y���ɂ��Ă� �����X�s�[�h�������Ȃ�킯�ł͂Ȃ��B���̍\�������񏈗��� ����Ȃ����͕̂��񏈗��Ńv���O���~���O����̂͒P�ɕ����� �ɎG�ɂ��邾���ł���B

0.�f�[�^�����U����Ă��܂����߂ɁA�������܂Ƃ߂� �����������ꍇ�͕��U���ꂽ�f�[�^���W�߂Ȃ���΂Ȃ�Ȃ� �ꍇ������B 1.���񏈗��ł͑��̃X���b�h�̏�����Ԃ𒲂ׂ�K�v���� ���邩�����ꂸ�A����͔ɎG�ȏ����ɂȂ�”\��������B 2.ELM�̎d�g�����ŁA�f�b�h���b�N�����S�ɔ����邱�Ƃ� �ł��Ȃ��B