Google Developer Day 2008���W

Google App Engine
�|���ׂĂ�20���v���W�F�N�g����X�^�[�g����


Google App Engine�v���_�N�g�}�l�[�W���[ �s�[�g�E�N�[�������~
�u�����O�v�u�i�^���[�v�J���ҁA�i�^�[�V�� �������F��


��IT�ҏW��
2008/6/24
�v���_�N�g�}�l�[�W���[�ɕ����AApp Engine�̐��藧���ƌ���A�r�W�l�X�AAmazon EC2�Ƃ̈Ⴂ�A�����ē��{�l�ւ̊���

�@6��10���ɉ��l�p�V�t�B�R�ŁuGoogle Developer Day 2008�v���J�Â���AGoogle App Engine�i�ȉ��AGAE�j�`�[���̃v���_�N�g�}�l�[�W���[�̃s�[�g�E�N�[�����iPete Koomen�j���͓����̊�u���ŁA���Ѓ\�t�g�E�F�A�G���W�j�A�̉L�����q���ƂƂ���GAE���Љ���i�Q�ƁF�yGoogle Developer Day��u�����|�[�g�z�A���h���C�h��OpenSocial�Ȃǃf�������A�O�[�O���j�B���̌�̃Z�b�V�����ł́A���Ѓ\�t�g�E�F�A�G���W�j�A�̃u���b�g�E�X�g���L�����ƁAGAE��Web�A�v���P�[�V�������쐬���ē��삳����l�q���f���ŏЉ���B

ũs[gEN[
�u�����̃s�[�g�E�N�[������

�@�Z�b�V�����Ō�̒��u�҂���̎���R�[�i�[�ł́A��͂�GAE��Python�̎��ɃT�|�[�g����v���O���~���O����Ɋւ��鎿�₪���������i2008�N6�����݁AGAE�Ŏg���錾���Python�̂݁j�B�N�[�������́u����A�J���҂���̃t�B�[�h�o�b�N���Q�l��GAE�Ŏg����v���O���~���O��������낢��Ƒ��₵�Ă����\�肾�v�Ƃ̉񓚂ɂƂǂ߂Ă������APyAMF���g�����Ƃ�AMF�iAction Message Format�A���k���̍����o�C�i���f�[�^�t�H�[�}�b�g�j�ʐM�ɂ����GAE��Python�A�v���P�[�V������Flash�n�Z�p�iFlex��Adobe AIR�j�̃N���C�A���g�Ƃ̘A�g���”\�ƕt���������ʂ��������B

i^[V̗F
�i�^�[�V���̗������F��

�@���̌�́�IT�ҏW���ōs�����C���^�r���[�ŁA�����GAE�ɂ‚��Ă��܂��܂Șb������Ă��ꂽ�̂ŁA���̖͗l�����`�����悤�B�C���^�r���A�[�́A�u�����O�v�̊J���҂ŁA���݂́u�ŐV�^���y�j���[�X�T�C�g�v�Ƃ��Ė���y���Ă���u�i�^���[�v�ŋZ�p��C����Ă���i�^�[�V���̗������F���B

�@�������́A�l�⏬���ȉ�Ђ�Web�T�C�g���^�c���Ă����ۂ�GAE�͂ǂ̂悤�Ɋ��p�ł���̂��𒆐S�ɁAGAE�̐��藧���⌻��A�r�W�l�X�AAmazon EC2�Ƃ̈Ⴂ�A�T�|�[�g����v���O���~���O����A�ʃT�[�r�X�Ƃ̘A�g�A�v���g�R���Ȃǂɂ‚��ăN�[�������Ɏ��₵���B


Google App Engine�̐��藧���ƌ���

�������F�i�ȉ��A�����j�F�܂��́AGAE�̌���ɂ‚��Ă��������܂��B���\����2�J�������܂������A�J���҂���̔����͂������ł����H

�s�[�g�E�N�[�����i�ȉ��A�N�[�����j�F�t�B�[�h�o�b�N���������������Ă���B�傫�������āu���ɑf���炵���v�u�{���Ɏg���₷���v�u�т����肵�Ă���v�Ƃ��������ƁA�u�f���炵�����ǁA�K�v�ȋ@�\������v�Ƃ����������������B

�����F�J�������A�v���P�[�V�����̐��́H 1���ɂǂꂭ�炢�����Ă���Ǝv���܂����H

�N�[�����F��̓I�Ȑ����͕�����Ȃ����A��������̖ʔ����A�v���P�[�V�����������Ă��Ă���B���J�����A���p�ł���J���҂𒊑I��1���l�ɍi��Ɣ��\�������A����1���l����R�ꂽ�J���҂ɂ̓E�F�C�e�B���O���X�g�ɃT�C���A�b�v���đ҂��Ă��炤���ƂɂȂ����B���ʁA15���l�ȏオ�ҋ@����Ƃ����󋵂ɂȂ��Ă������A2�T�ԑO�Ɉ�ʌ��J���Ă��ׂĂ̊J���҂Ɏg���Ă��炦��󋵂ɂȂ����B

2008�N5��28���̈�ʌ��J�����AGAE��SDK�ō쐬�����A�v���P�[�V������GAE�Ƀf�v���C����ۂɕK�v��GAE�̃A�J�E���g�����炤�ɂ́ASMS�iShort Message Service�A�d�b�ԍ��Ōl�����ʂ��đ���Z�����[���T�[�r�X�j�Ō��؃R�[�h��������悤�ɂȂ��Ă����B�������A���{�̈ꕔ�g�ѓd�b�L�����A�͊C�O����SMS���󂯎��̂ɑΉ����Ă��Ȃ����߁A�ăO�[�O�������SMS���󂯎��Ȃ��Ƃ�����肪����A���{�̊J����]�҂����f������Ƃ������Ԃ������Ă����B

Google App EnginẽAJEg\݃tH[
Google App Engine�̃A�J�E���g�\�����݃t�H�[��

�N�[�������͖`���ŏЉ���Z�b�V�������Ɂu�ߓ����ɑΉ�����v�Ɣ��\�������ʁA2008�N6��24�����݁ASMS�ł͂Ȃ��g�ѓd�b�p���[���A�h���X����͂���t�H�[���ɕς���Ă������A���[���A�h���X��@�̒��O�܂ł̃��[�U�[������͂ł���̂�20�P�^�܂łɂȂ��Ă���ȂǁA�܂�GAE�Ƀf�v���C�ł��Ȃ����{�̊J����]�҂�����悤���B

�����FGAE���n�߂����������́A�ǂ�Ȃ��̂ł����H

�N�[�����F���Ƃ����Ă��d�v�Ȃ̂��A��������Web�A�v���P�[�V���������Ƃ������Ǝ��̂����ɓ���Ƃ������Ƃ��B���낢��ȉۑ肪����B�Ⴆ�΁A�z�X�e�B���O�A�T�[�o�̐ݒ�A�f�[�^�x�[�X�̕��́A���M���O������ă��j�^�����O�ȂǁA�܂��Z�b�g�A�b�v�ɑ΂���R�X�g������������B�����āA�A�v���P�[�V�������ł���������Ȃ�傫�ȃG�l���M�[���g��Ȃ���΂Ȃ�Ȃ��B�Ⴆ�΁A�g���t�B�b�N�������āA�������������z�X�g�}�V�����ς����Ȃ��Ȃ����ꍇ�́A�����̃z�X�g��p�ӂ��Ȃ���΂Ȃ�Ȃ����A�A�v���P�[�V������f�[�^�x�[�X�̕��ו��U�����Ȃ���΂Ȃ�Ȃ��B�{���ł���΁A�A�v���P�[�V�������̂ɂ����ƃR�X�g���|�������Ƃ��낾���A���ꂪ�ł��Ȃ��ŒQ���Ă���J���҂��������Ƃ��낤�B

�@GAE�͂܂��A2�‚̃S�[�����ӎ����ăT�[�r�X���n�߂��B1�‚̓A�v���P�[�V�������ł��邾���ŏ�����X�^�[�g�ł���悤�ɁB�����Ă���1�‚́A�g�������T�|�[�g���邱�ƁB���݁A���낢��ȃz�X�e�B���O�T�[�r�X��ėp�R���s���[�e�B���O�����邪�AGAE�͂����܂ł�Web�A�v���P�[�V�����̊J���ɏœ_���i���č�����B����̂ɁA�����̃X�^�b�N�̃��C���𒊏ۉ����ĊJ������؂藣�����Ƃ��ł����B�J���҂̕��ŃT�[�o��p�ӂ���K�v���Ȃ����A���ו��U���S�z����K�v���Ȃ��B

�����FGAE�̃v���W�F�N�g�͉�Ђ̕��j�Ƃ������́A�J���҂̒�Ă���n�܂����̂ł��傤���H

�N�[�����F���������Ƃ���I ���ۂɁA�����O�[�O���̊J���҂��\�����[�V����������Ă��������ł��Ȃ�̎��Ԃ��₵���BGAE�̓O�[�O���������Ă���C���t�����J���҂ɉ�����悤�Ƃ������ƂŊJ�n�����B

�����FGAE���瓾����O�[�O���̗��v�Ƃ͉��ł��傤���H ����ɘb���悤�ɂ��肢���܂��B

�N�[�����F����!? OK�A����������i�΁j�B ����GAE�͊��S�ɖ������B�����A���N�̔N���ɂ����āA�J���҂̕��X�ɂ�葽���̃R���s���[�e�B���O���\�[�X���w�����Ă��������@���񋟂��Ă����B�����ŁA���ۂɃf�B�X�N�X�y�[�X��ш�𔄂�”\�������邪�A�ŏ��͖������B�����ł��d�v�Ȃ��Ƃ́AWeb���v���b�g�t�H�[���Ƃ��Ăǂ�ǂ�ǂ�ǂ�O�ɐi�߂����Ƃ������Ƃ��B

�@GAE����������Ƃɂ���ĊJ���҂͎d�������₷���Ȃ��āA���ǂ��A�v���P�[�V��������邱�Ƃł���B���΍��قǗL�p�������܂�B�L�p�������܂�΍��܂�قǂ����ő����̎��Ԃ��g���Ă����B���������T�C�N�����ł��邱�Ƃɂ���āA�O�[�O���̗��v�ɂ‚Ȃ����Ă���B

���ySNS�́uiLike�v��Google App Engine�𗘗p

���ɁA��������GAE��Amazon EC2�̈Ⴂ�ւƎ���̓��e���ڍs���Ă������B

�����FAmazon EC2�́A�܂��܂����{�ł͐l�C���Ȃ��ł����A�C�O�ł͐V���T�[�r�X�̃r�W�l�X�̊�ՂƂ��Ďg���Ă��܂��BGAE�����̂悤�ȖړI��Amazon EC2�̂悤�Ɏg���邱�Ƃ��ӎ������̂ł��傤���B

�N�[�����FGAE�́A�ȒP�Ɏn�߂��邱�ƂƊȒP�Ɋg���ł��邱�ƂŁA���K�͂ȃO���[�v�ł̊J���Ƀt�B�b�g���Ă���B�Ȃ��Ȃ�A�K�͂���������Ώ������قǃC���t���̐����Ɏ��Ԃ�������̂�������炾�B����Ɠ����ɁA�����͔��Ƀp���t���ȃc�[����������Ƃ��v���Ă��āA����͑���GAE�̃p�[�g�i�[���o�Ă��邾�낤�B�Ⴆ�΁A���ySNS��iLike�B�ނ�̃K�W�F�b�g��GAE��ɍ���Ă���B

�@Amazon EC2�Ƃ́A���������v���_�N�g���قȂ�ƍl����BGAE�͔ėp�̃R���s���[�e�B���O�̃v���b�g�t�H�[���ł͂Ȃ��B�����܂ł�Web�A�v���P�[�V�����̊J���ɓ������Ă���BWeb�J���҂ɂ͔��ɕ]�����Ă��炦�邾�낤�B

�����F����́A���̎��₾������ł����i�΁j�ALinux�̃z�X�e�B���O�ł͂Ȃ�Web�A�v���P�[�V�����̃z�X�e�B���O�ɂ����̂͂Ȃ��ł����H

�N�[�����F�i�΂��āj�J��Ԃ��ɂȂ邪�O�[�O���Ƃ��Ă�Web���v���b�g�t�H�[����O�i�����������炾�B�����͕�����Ȃ����A���܂͂����܂ł�Web�A�v���P�[�V�����ɓ������Ă���B

�����FGAE�ɂł���Amazon EC2�ɂł��邱�Ƃ͉��ł��傤���B

�N�[�����F�Ⴆ�΁A��K�͂ȃR���s���[�e�B���O���Ƃ��A���Ȃ�̃f�[�^���\�[�X���K�v�ʼn����Ԃ����Z���������Ȃ���΂Ȃ�Ȃ����̂��BGAE�̓��N�G�X�g��������ď����ȏ������s���ă��X�|���X��Ԃ��Ƃ������N�G�X�g�쓮�̃A�v���P�[�V�����������B�I�t���C���̑�K�͂ȏ����ɂ͓K�؂ł͂Ȃ��B

�����F�t�ɁAAmazon EC2�ɂł���GAE�ɂł��邱�Ƃ͉��ł��傤���B

�N�[�����F�����܂ł��A�ȒP�ɃX�^�[�g�ł��ĊȒP�Ɋg���ł���Ƃ������Ƃ��B

�����F����ŁAAmazon EC2�̎���͏I���ł��B

�N�[�����F�t�[�i�΁j�B

Google App Engine��20���v���W�F�N�g���琶�܂ꂽ

�����FGAE�́A������u20�����[���v�i�Ζ����Ԃ�20���͎����̍D���Ȃ��Ƃ�����O�[�O���̎Г����[���j�̃v���W�F�N�g�Ŏn�܂����̂ł��傤���H

�N�[�����F�����B�ŏ��͎��͂��Ȃ��������A2�l�̃G���W�j�A��1�l�̃v���_�N�g�}�l�[�W���[�Ŏn�܂����B

�����F���܂͉��l���炢�̃v���W�F�N�g�ł����H

�N�[�����F��I�Ȑ����͂����Ȃ����A�����ȃ`�[���ł���Ă���B

�����F�`�[���̖������S�͂ǂ��Ȃ��Ă��܂����H

�N�[�����F�f���炵���G���W�j�A���������̃v���W�F�N�g�ɂ�������Ă���B�܂��A�u���b�g�i�u���b�g�E�X�g���L�����A�`���ŏЉ���\�t�g�E�F�A�E�G���W�j�A�j�����āA�ނ��u�N�H�[�^�iQuota�j�V�X�e���v��J���‹���������B�����ȃ`�[���ŁuDatastore API�v��S�����ABigTable���G�L�X�|�[�g����`�[��������BPython��������O�C�h�E���@�����b�T���iGuido Van Rossum���j�����낢��Ȏd�������Ă���B�ق��ɂ��u�Ǘ��҃R���\�[���v������Ă���J���҂�A2�l�̃v���_�N�g�}�l�[�W���[�ȂǁA�������S�͂������肵�Ă���B

�����FBigTable�͎Г��Ɠ������̂ł����H

�N�[�����F�����Ŏg���Ă���BigTable�̂����Ƀ��C��������A���̃��C�����G�L�X�|�[�g���āuDatastore API�v�Ƃ��Ďg���Ă���B

�u�N�H�[�^�V�X�e���v��GAE���݂��Ă���A�����Ŏg����͈́iQuota�j����CPU�̎g�p�ʂɐ������|����V�X�e���ŁAGAE�ɂ�������ɕ��ׂ��|����Ȃǂ̗��p��h���B�uBigTable�v�͑�ʂ̃f�[�^���g�����߂̃O�[�O���̃f�[�^�x�[�X�̂悤�ȕ��U�X�g���[�W�Z�p�B�uDatastore API�v�̓A�v���P�[�V�����̃f�[�^��BigTable���g�����ĕێ�����A����܂��f�[�^�x�[�X�̂悤��GAE�̎d�g�݂�1�BSQL���C�N��GQL�ŁiGoogle Query Language�j����ł���B

�����F���݊J�����Ă���l����A�u�N�H�[�^�V�X�e���̏���ɂЂ�������̂ł́H�v�ƐS�z���Ă���Ƃ������͂Ȃ��̂ł��傤���H

�N�[�����F�m���ɂ�����C�ɂ��Ă���J���҂����āA���낢��Ƌ��c���Ă���B���ׂĂ�GAE�̃A�v���P�[�V�����́u�N�H�[�^�V�X�e���v��CPU�����肵�Ă��邪�A�����ƕK�v���Ƃ����J���҂ɂ͎��́A�����ƃ��N�G�X�g�������ł���悤�ɁACPU�N�H�[�^�𑝂₷���@���P�[�X�E�o�C�E�P�[�X�ŕ]�����Ē񋟂��Ă���B

�ʃT�[�r�X�Ƃ̘A�g��HTTP�ȊO�̃v���g�R���ɂ‚���

�����F�����̃Z�b�V�����ŁA�u����A�J���҂���̃t�B�[�h�o�b�N���Q�l��GAE�Ŏg����v���O���~���O��������낢��Ƒ��₵�Ă����v�Ƙb���Ă��܂������A�Ȃ��ŏ���Python���T�|�[�g�����̂ł����H

�N�[�����F���ɁA�O�[�O������БS�̂Ƃ���Python���D���ł���Ƃ������ƁBPython�̓O�[�O���ł�������g���Ă��邵�A�O�C�h�E���@�����b�T����GAE�̃`�[���ɂ���B����͕ʂƂ��Ă��A���ɂ悢���ꂾ�Ǝv���B

�����FPython�͌���Ƃ��čD���Ȃ̂ł����H ����Ƃ��A�p�t�H�[�}���X����������H

�N�[�����F��������i�΁j�B���Ɋw�K���ȒP�Ń}�l�[�W�h�R�[�h�Ȃ̂ŁAGAE�ɓK���Ă���B

�����FHTTP�ȊO�̃v���g�R�����T�|�[�g����\��͂���܂����H

�N�[�����F����́A�����炭RPC��L���[�C���O�̂��Ƃ��܂߂Ă��낤�ˁB�������A�ق��̉”\��������B���܁A�I�t���C���̃v���Z�X�̊J�������Ă���B�Ⴆ�΁A�W���u�̃X�P�W���[�����Ƃ��A�o�b�`�������Ƃ��Ɋ֘A���Ĕ񓯊��@�\���J�����Ă���B

�����F����̗\��͊J���҂���̃��N�G�X�g�Ō��߂Ă����̂ł��傤���H

�N�[�����F���̂Ƃ���B�J���҂���̃t�B�[�h�o�b�N�ɂ͊ԈႢ�Ȃ����ڂ��Ă���B�Ⴆ�΁A�����̍u���Řb�����uImages API�v�͎��́A�J���҂���̃��N�G�X�g�𕷂��ăO�[�O���J���҂�1�l��20�����[�����Ń{�����e�B�A�ŊJ�������B

�����ŁA�������͓����̗F�l��Twitter���g����GAE��ɍ�����uTagtter�v���N�[�������ɏЉ�A�����̗F�l����̎�����Ԃ‚����B

�����F���̗F�l����̎���ł��B�uGAE��Google Docs�Ƃ�Gmail�Ȃǂ̃T�[�r�X�Ƀ}�N���̂悤�Ȍ`�ŐV�����@�\��lj�����̂Ɏg����̂ł͂Ȃ��ł��傤���H�v

�N�[�����FGData�iGoogle Data API�j���g���΁A�”\���낤�BGoogle Docs��Google Calendar�̃C���^�[�t�F�C�X�ƁA���‚����R�l�N�V�����Őڑ����ėL�p�����グ�邱�Ƃ��ł���Ǝv�����A����ɂ‚��Ă͂��������������K�v���낤�B

�����F�ނ������1�A��قǂ����Ă���HTTP�ȊO�̃v���g�R���ɂ‚��Ă̎��₪����܂��B�uHTTP�ł͂Ȃ��\�P�b�g�̂悤�Ȃ��̂��T�|�[�g���Ȃ��̂ł��傤���H�v

�N�[�����FPython�̕W�����C�u�����ɂ̓\�P�b�g�ʐM�͊O����Ă����ˁB����̓Z�L�����e�B���ӎ����ĊO�����̂����A���Ƃ��Ă�GAE�Ƀ\�P�b�g�ʐM�����Ж߂������ƍl���Ă��āA�Z�L���A�ł���Ȃ�����\�P�b�g�ʐM�������ł���悤�Ɍ����J�������B

�����F�ނ���u�t�@�C���̏������݂��ł���悤�ɂȂ�Ȃ��ł��傤���H�v�Ƃ������������܂����B

�N�[�����F�����A�������Ɍ��݂̓t�@�C���̏������݂͂ł��Ȃ����A�J���҂ɂ�GAE��DataStore API���g���ăf�[�^�̃p�[�V�X�e���X�i�i�����j��ێ�����悤�ɘb�����Ă���B��̓I�ɂ́A���Ȃ��̗F�l�͉������߂Ă���̂��낤���H

�����F�ނ������ɂ́A�u�傫�ȃf�[�^��GAE�̊O�ɃG�L�X�|�[�g�ł��Ȃ��̂ł��傤���H�v�ƁB

�N�[�����F�f�[�^���I�t���邱�Ƃ͂ł��邩������Ȃ��B�n���h���[�������Ă�����Ƃ��‚���Ă����B���N�G�X�g�𑗂��ăf�[�^��������Ă܂����N�G�X�g�𑗂�Ƃ�����������A���������Ƃ���ŁA�����ƌ�������K�v������B

�u���{�l�ɂ͒��N���G�C�e�B�u�ȃA�v�������҂��Ă���v

�����F�Ō�ɁA���{�̊J���҂�GAE�łǂ�ȃA�v���P�[�V����������Ăق����ł����H

�N�[�����F���낢��ȃA�v���P�[�V����������Ăق����Ǝv���Ă���B�n���͂���g���Ăق����B����GAE���g���Ă݂Ă��������B�����āA�t�B�[�h�o�b�N�₲�ӌ������肢���܂��B

�����F���{�l�Ȃ�ł͂̂��̂Ƃ����Ɖ����v��������܂����H �ق��̍��̐l�ɂ͂ł��Ȃ��悤�ȁB

�N�[�����F���{�͐��E�̒��ł��{���ɓ��̗ǂ��J���҂�����Ǝv���B���N���G�C�e�B�u�ȃA�v���P�[�V�������΂ɍl���Ă����Ɗ��҂��Ă���B�ǂ�Ȃ��̂����{�l�Ȃ�ł͂��ɂ‚��ẮA��̓I�ɂ͕�����Ȃ���B���߂�ˁi�΁j�B

InAΊŃC^r[ɉĂꂽs[gEN[
�I�n�A�Ί�ŃC���^�r���[�ɉ����Ă��ꂽ�s�[�g�E�N�[������

�� �֘A�L��

Google App Engine��Ajax�ւ̃n�[�h���������邩�H
Ajax �������� Watch�i32�j�@Ajax�ɒ��킷��Ȃ�A���R�Ƀv���O���~���O�ł���T�[�o�‹����K�{�BGoogle App Engine�́A����ȃn�[�h������蕥���Ă����͂��ł��c�c
�u���b�`�N���C�A���g �� ���[�v�t �H�[���� 2008/4/24

 



���b�`�N���C�A���g�����[ �S�L���ꗗ��



HTML5 + UX �t�H�[���� �V���L��
��IT���[���}�K�W���@�V������X�^�b�t�̃R���������[���œ͂��܂��i�����j

���ڂ̃e�[�}

HTML5�{UX �L�������L���O

�{�� ����