deep zoom++ : build dynamic deep zoom applications with open source

49
Deep Zoom ++ Build Dynamic Deep Zoom application with Open Source Ken Azuma Director/Senior Experience Architect 2ndfactory co., ltd/Japan

Upload: goodfriday

Post on 21-Jun-2015

3.311 views

Category:

Technology


0 download

DESCRIPTION

Find out about Jellyfish, a collection of modules that you can install on your server to give your customers the ability to build, modify, and create Deep Zoom collections and provide useful Silverlight functions to developers. Hear about how the service has been used on real Web sites, and learn how to build your own server-side, scalable, easy to use enterprise Deep Zoom Solution.

TRANSCRIPT

Page 1: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

Deep Zoom ++Build Dynamic Deep Zoom application with Open Source

Ken AzumaDirector/Senior Experience Architect2ndfactory co., ltd/Japan

Page 2: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

Agenda

Intro: About usWhat is “Deep Zoom” ?How to make Deep Zoom files ?Needs for deep zoom app (and problem)What is Jellyfish?Demo

Page 3: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

Agenda

Developing Deep Zoom app with Jellyfish

Hello world (client side only)SkinningFull screenOther features

Developing dynamic generated Deep Zoom app with Jellyfish

Dynamic VS “Semi-Dynamic”Semi-Dynamic Deep Zoom applicationDynamic Deep Zoom application

Page 4: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

Agenda

Partner demo: Deep Zoom PixFuture plan of JellyfishConclusion

Page 5: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

About us2ndfactory , Japan

We provide application with innovative interface based on our years of RIA development and our original production process.

Rich Experiences can be brought from usability and Omotenashi. We consider software and web service as a user friendly “tool”. Because they are everyday use, Rich Experience is very important.

2ndfactory will maximize your ROI and business success, and Rich Experience to the end user through RIA.

We provide “Omotenashi”, Japanese way of thinking about hospitality, into application.

Page 6: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

About usKen Azuma (東 賢 )

Senior Experience Architect of 2ndfactory

[email protected]://www.syncrare.com/Twitter / BrightKite / FriendFeed: kenazumaLinkedIn : http://www.linkedin.com/in/kenazumaMicrosoft MVP https://mvp.support.microsoft.com/profile=BDE5E9FE-2703-4846-A5AA-0247C32632DA

Adobe Community Experthttp://www.adobe.com/communities/experts/members/KenAzuma.html

Page 7: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

About usTatsushi "TA-2-C" Kuramoto (蔵元 達志 )

Manager of Interaction design and development group

[email protected] Certified Solution Developer Adobe Certified Expert- Rich Internet Application Specialist -

Page 8: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

What is "Deep Zoom"?

“Deep Zoom” is “Seeing is Believing”“Deep Zoom” is technology“Deep Zoom” is one of Silverlight Features“Deep Zoom” is in UI control“Deep Zoom” is cross platform

Page 9: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

How to make Deep Zoom files?

Deep Zoom ComposerStructure of Deep Zoom files

“Pyramid” of tiny sliced imagesXMLs“Single” and “Sparse” image

DZC and DZIDZC = Deep Zoom CollectionDZI = Deep Zoom (single) Image

Page 10: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

Deep Zoom Files

Every images is slicing into tiny tilesYou don’t have to fetch all of image tiles but only those tiles required for the current size of the image on screen

Page 11: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

Deep Zoom Pyramid

Sparse image store data only where there is resolution

Page 12: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

Needs of Deep Zoom App

“We want to develop our own Hard Rock Memorabilia!”

Files are easy to slice by Deep Zoom Composer, but hard to develop smooth feature rich app

“We already have existing picture on server. Can we convert these into Deep Zoom dynamically?”

Deep Zoom Composer is client side tool. We have to prepare server side deep zoom file generator

Page 13: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

What is Jellyfish?

Jellyfish is an open source toolkit for deep zoom application that is open to public through codeplexJellyfish has two major part1.Client side class library2.Server side image slicing toolJellyfish also include sample server side web application for image administration

Page 14: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

Ayumi Hamasaki10th anniversary special siteMSN Japan

demo

Page 15: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

Developing Deep Zoom Application with Jellyfish1. Hello World2. Skinning Button3. Full Screen Experience4. Implement other Jellyfish features

Page 16: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

Hello World!

Preparation to use JellyfishMake static deep zoom fliesAdd files to Silverlight solutionAdd reference to jellyfish.dll

Write simple XAMLHit F5 !

Page 17: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

Skinning for Button

Set skin for Next/Previous button

Page 18: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

Full Screen Experience

Leverage full screen feature of Silverlight

Add support features to UIWith full screen, you cannot

Type anything from keyboardControl image by mouse wheel

Page 19: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

Implement Other Jellyfish Features

Built-in layoutSlide showSubimage manipulation (position, size)Zoom level limitationSynchronize XAML with subimage

Page 20: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

Developing “Dynamic” Deep Zoom Application with Jellyfish1. Dynamic VS “Semi-Dynamic”2. Semi-Dynamic DZ application3. Dynamic DZ application

Page 21: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

Dynamic VS "Semi-Dynamic"

Dynamic generation takes time dynamicallyIf you could avoid real time file generation with your scenario, use “semi-dynamic”

Page 22: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

"Dynamic"

.jpg (picture)

Execute SDI Converter

Convert picture into DZI

It has its own URL named by rule , and stored in DBAdministrator -

“UPLOAD Image”

SDI Converter(.exe)

DZI Folder/Jellyfish/sl/out/collection_images/

Deep zoom image structure

DZI

Administration API

(ASP.NET / IIS)

DZC Converter

(.exe)

Dynamic Search API(ASP.NET /

IIS)

DZC

collection.xml

collection files

“Dynamic Search”

Silverlight

Deep zoom image structure

DZI

Deep zoom image structure

DZI

Deep zoom image structure

DZI

DB

Page 23: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

"Dynamic"

.jpg (picture)

Searching Requests from

Users

Search API queries to DB to

retrieve URLs and Info.

Administrator -“UPLOAD Image”

DZC Converter

(.exe)

Dynamic Search API(ASP.NET /

IIS)

SDI Converter(.exe)

DZC

collection.xml

collection files

collection_files has merged image files which are associated with DZI

collection.xml includes URLs of

multi DZI

“Dynamic Search”

DZI Folder/Jellyfish/sl/out/collection_images/

Search API passes these info to DZC Converter

Silverlight

Deep zoom image structure

DZI

Deep zoom image structure

DZI

Deep zoom image structure

DZI

Deep zoom image structure

DZI

Administration API

(ASP.NET / IIS)

DB

Page 24: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

"Semi-Dynamic"

.jpg (picture)

Convert picture into DZIAdministrator -

“UPLOAD Image”

SDI Converter

(.exe)

DZC

collection.xml

collection files

“Semi-Dynamic Search”

DZI Folder/Jellyfish/sl/out/collection_images/

Silverlight

Deep Zoom Image structure

DZI

Deep zoom image structure

DZI

Deep zoom image structure

DZI

Deep Zoom Image structure

DZI

Semi-Dynamic Search API

(ASP.NET / IIS)

Pre-GeneratedDZC Folder/Jellyfish/sl/out/collections/

Administrator -“Image Manager”

Administration API

(ASP.NET / IIS)

DB

DZC Converter

(.exe)Administration API

(ASP.NET / IIS)Deep Zoom

Collection structure

Execute SDI Converter

Page 25: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

"Semi-Dynamic"

.jpg (picture)

Administrator -“UPLOAD Image”

SDI Converter

(.exe)

DZC

collection.xml

collection files

Pre-Generated DZC

“Semi-Dynamic Search”

DZI Folder/Jellyfish/sl/out/collection_images/

Silverlight

Deep Zoom Image structure

DZI

Deep zoom image structure

DZI

Deep zoom image structure

DZI

Deep Zoom Image structure

DZI

Semi-Dynamic Search API

(ASP.NET / IIS)

Pre-GeneratedDZC Folder/Jellyfish/sl/out/collections/

Administrator -“Image Manager”

Administration API

(ASP.NET / IIS)

DZC Converter

(.exe)Administration API

(ASP.NET / IIS)Deep Zoom

Collection structure

DB

Page 26: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

"Semi-Dynamic"

.jpg (picture)

Get Requests from Users

Search API queries to DB to retrieve DZC’S

URLs and additional Info.

Administrator -“UPLOAD Image”

SDI Converter

(.exe)

DZC

collection.xml

collection files

Pre-Generated DZC

“Semi-Dynamic Search”

DZI Folder/Jellyfish/sl/out/collection_images/

Silverlight

Deep Zoom Image structure

DZI

Deep zoom image structure

DZI

Deep zoom image structure

DZI

Deep Zoom Image structure

DZI

Semi-Dynamic Search API

(ASP.NET / IIS)

Pre-GeneratedDZC Folder/Jellyfish/sl/out/collections/

Administrator -“Image Manager”

Administration API

(ASP.NET / IIS)

DZC Converter

(.exe)Administration API

(ASP.NET / IIS)Deep Zoom

Collection structure

DB

Page 27: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

Semi-Dynamic DZ Application

Add “list” for pre-defined collectionsShow metadata informationOther features

SortFilterSelect subimage

Thumbnails

Page 28: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

Dynamic DZ Application

Search data to make collection

Page 29: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

Show case with Jellyfish"DeepZoomPix"Allan Li (李 超 )Director, Creative DevelopmentNEXT.EXPERIENCE

partner

Page 30: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

Allan LiNEXT EXPERIENCE INTERACTIVEBeijing, China

Page 31: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

Ni hao(你好 ) Hello

Page 32: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

Our office…

Page 33: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

Inside…

Page 34: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

Recent Silverlight Projects

Page 35: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

DeepZoomPix.com

Page 36: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

DeepZoomPix.com

demo

Page 37: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

Tile Processor

Image

DeepZoom image tiles

DeepZoomPix.com

Client viewer: Silverlight DeepZoom

Jellyfish.dll

Image upload

RSS, Atom

DeepZoom Composer

Architecture of DeepZoomPix

Client module

Server module

Cloud storage module

Client module

Page 38: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

The Design Process of DeepZoomPix

Code name of the application is ”Mooncake” (a traditional Chinese delicacy)First phase focused on learning jellyfish library and experimenting with web services APIsSecond phase focused on UI and user experience

Page 39: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

Wireframe of Mooncake

demo

Page 40: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

Expression Blend 3 SketchFlow Prototype

demo

Page 41: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

Conclusion

Leveraged existing code library Jellyfish to greatly speedup implementation; focused in stead on user experience designBlend 3 provides great new prototyping features; works with our existing design processSilverlight’s DeepZoom provides a very rich user experience

Page 42: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

Xie xie(谢谢 ) Thanks!

Try DeepZoomPix todayhttp://www.DeepZoomPix.com

My blog (Chinese)http://www.experience10.com

NEXT EXPERIENCE INTERACTIVEhttp://www.nxmix.com

[email protected]

Page 43: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

Future Plan of Jellyfish

.dll-ize server sideNew blend “behavior” integrationImage blend supportToday’s build will be “1.1 beta”, soon to be open at codeplex.

Page 44: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

Conclusion/note

Deep Zoom need to generate many files, so be sure about storage size and cache server like CDN

Cloud works perfectly with Deep Zoom!With Jellyfish, or anything you can use reusable component, you can focus more about UX side. UX matter.

Page 45: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

Questions?

Page 46: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

Please Complete an Evaluation FormYour feedback is important!

Evaluation forms can be found on each chairTemp Staff at the back of the room have additional evaluation form copies

Page 47: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.

The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after

the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Page 48: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source

Our Team ModelBusiness Domain

Presentation DomainSystem Domain

Page 49: Deep Zoom++ : Build Dynamic Deep Zoom Applications with Open Source