SlideShare una empresa de Scribd logo
1 de 38
Descargar para leer sin conexión
“Restful User Experience”
         Unconventional views on
  user experience vs. architectural design



             Wayne Lee, May 2009
           http://trilancer.wordpress.com/
What is this all about?
                                To share
                           my humble opinions
                    on user experience designs with
              insights from representational state transfer
       studies as well as inspecting software architectural design
 with user experience philosophy to improve overall system design …



                 Or simply put, to study


                       through
         UX                               REST LENS
                          and
                       through
       REST                                 UX LENS


          to better system designs

                           Image Source: http://www.flickr.com/photos/danielgreene/344196890/
                                           http://www.flickr.com/photos/surstubben/475404411/
Background
• Representational state transfer (REST)
  – A software architecture style for distributed
    hypermedia systems, e.g., the World Wide Web
  – Introduced by Roy Fielding in 2000



• User experience (UX)
  – The overarching experience a person has as a result
    of interactions with a product or service, its delivery,
    and related artifacts, according to their design
The REST Triangle
[Post, Get, Put, Delete],                                               Hypermedia: HTML, XML,
 [Post, Get, Put, Delete],                                              Hypermedia: HTML, XML,
                                                             Represe
      [C R U D] …                                                         JSON, JPG, GIF …
       [C R U D] …                                                         JSON, JPG, GIF …
                             Verbs
Constrained Set                                                          Constrained Set
                                                             ntations
Constrained Set                                                          Constrained Set


                                     RESOURCES




                                           Nouns




                                      Universal URI, XRI …
                                      Universal URI, XRI …
                                     Unconstrained Set
                                     Unconstrained Set
REST vs. RPC
• Resource-centric view       • Command-centric view
   – ONE uniform set of         – Custom, unique sets of
     methods (verbs)              methods (verbs)

   – Standard media types       – Custom media types

   – Lots resources (nouns)     – Fewer objects (nouns)

   – Some common knowledge      – Prior specific knowledge
     required to access ALL       required to locate / access
     resources                    each object
REST vs. SOAP
• REST simplicity =         • WS-* Complexity =
  freedom from choice         freedom of choice

  – 5 decisions to choose         – 12 decisions to choose
    among 16 alternatives           among 32 alternatives

  – 12 decisions already          – 2 decisions already
    taken (but 5 are DIY)           taken (SOAP, WSDL +
                                    XSD)



                            Source: http://www.jopera.org/docs/publications/2008/restws
UX through REST lens




     Image Source: http://www.flickr.com/photos/mark_boucher/794747329/
UX Differences
                        in software architectural terms




                                                                       l”
                           ”                                       tfu
                        PC                                       es
                     “R                                     “R
 Press together to
   lock / unlock




             “Dumb Phone”                                    iPhone
• Lots models, varying UX                   • Few models, consistent UX
• Lots buttons, with function overload      • Few buttons, soft keys on-demand
• Various key-combinations to invoke lots   • Few gestures (tap, flick, glide…) to
  (sometimes mysterious) functions            invoke ALL functions
                                                                      Image Source: Nokia & Apple
iPhone Feature List …




                        Source: http://www.apple.com/iphone/
… aka “Sitemap”
                                                /calendar    /photos

                                       /sms                            /maps

                            /youtube                                           /weather

                  /stocks
                                                                                          /notes

                                                          Home

                   /calc

                            /itunes                                             /apps

                                       /phone                          /ipod
                                                   /sms      /safari
Conceptual Restful State Machine of iPhone
     i.e., web browsing mentality can be mapped smoothly

                  /phone/favorites     /phone/favorites/Jerry



                                       /phone/contacts/Tom
                  /phone/contacts                                           Call (submit)


      /phone
                  /phone/keypad                                             /phone/call
                                      Dial (form input)  Call (submit)                         End Call




                  /phone/voicemail     /phone/voicemail/Emily             Call Back (submit)


                                          Delete

                  /phone/reschedule
                                                   State Transitions Explained with REST

                                                                                     Create a new call
      /calendar                                            POST /phone/call
                                                 Call                                session resource

                                                                                     Destroy current
                                                           DELETE /phone/call
                                              End Call
                                                                                     call session
      /mail                                                                          Redirect back to
                                                                                     state before call
The iPhone Triangle

[Tap, Glide, Flick, Pinch,                                                   CoverFlow, List, Icon,
 [Tap, Glide, Flick, Pinch,                                                  CoverFlow, List, Icon,
                                                                  Represe
   Rotate, Swing … ] ]                                                       Map, Table, Player …
    Rotate, Swing …                                                          Map, Table, Player …
                               Verbs
Constrained Set                                                              Constrained Set
                                                                  ntations
Constrained Set                                                              Constrained Set




                                                Nouns



                                       Events, SMS, Mails, Photos,
                                        Events, SMS, Mails, Photos,
                                         Songs, Videos, Apps …
                                          Songs, Videos, Apps …
                                       Unconstrained Set
                                       Unconstrained Set
Restful User Experience (RUX)

      UNIFORM                                                        STANDARDIZED
      UNIFORM                                                        STANDARDIZED
                                                          Represe
buttons //commands //                                                Info presentation
 buttons commands                                                     Info presentation
                        Verbs
                                                          ntations
     gestures …                                                        layouts //views
      gestures …                                                        layouts views




                                       Nouns



                                     UNLIMITED
                                      UNLIMITED
                                   Volume of content
                                   Volume of content
                                indexed or hyperlinked
                                 indexed or hyperlinked
Further RUX Example – Universal Remote Control


                                                          • One-Touch Control
                                                          • Up to 15 components: video,
                                                            audio, & gaming
                                                          • Compatibility: supports 5,000+
                                                            brands & 225,000 devices




Logitech Harmony 1000 Advanced Universal Remote




                    Source: http://www.logitech.com/index.cfm/remotes/universal_remotes/devices/373&cl=US,EN
Different Approaches to Universal Remote Control, aka
                        RUX vs. RPC-UX



          15 Devices

                           VS
Logitech Harmony 1000




                                     5 Devices               8 Devices
          16 Devices
  Sony RM-AX4000A                Logitech Harmony 510     Sony RMVL610B

for common users                            for power users
                                                    Image Source: Sony & Logitech
RUX or RPC-UX?
   aka, REST or RPC




 Image Source: http://deadthingsdontfly.deviantart.com/art/thisway-thatway-72119766
freedom of choice                                          freedom from choice



         4+ 10+
                                                                                            3
                     Models


14 10
          Models




                    4
Models
         Models
                   Models
                                                                                          Models
            12                                                                      (color variation included)


         Models / Series




                              Source: http://www.electronista.com/articles/08/06/30/rbc.high.iphone.demand/
iPhone Takes 2/3 of Mobile Market




           Source: http://blog.concentricsky.com/2009/03/iphone-takes-23-of-mobile-market/
Implications
•   Market suggests RUX popularity
    – Device / application with lots “nouns” in usage scenarios better adopt
      RUX to ease user access
    – RPC-UX still works with limited nouns, but potential extensibility greatly
      hindered by e.g., physical shape

•   iPhone resembles web browsing experiences
    – If you can surf the Web, you can use an iPhone
    – If you can’t “surf” a phone, you won’t use it to surf the Web

•   Less choices + good design = good business




                                                              UX through REST lens
REST through UX lens




      Image Source: http://www.flickr.com/photos/valpopando/2787823568/
Less is More (More or Less):
     Uncommon Sense and the Design of Computers


System Functionality vs. Human                          System Strength vs. Generality

                                         y
                                     alit
                                   on
                                 ti
                              nc
                            Fu
                       of                                     Example: Potato Peeler
                    th
                 row                                    (Can do FEW things BETTER than others)
             G




                                             Strength
                                                                                                  Strong
            Growth of Human Capability
                                                         Example: Generic Kitchen Knife           Specific
                                                        (Can do LOTS things, but NOT optimized)   System
         Threshold of Frustration
                 a.k.a.
          “Complexity Barrier”                                Weak General System


                                                                        Generality




                                                         Source: http://www.billbuxton.com/LessIsMore.html
Software Architecture Design
                                 through “less is more” lens


System Functionality vs. Human                                     System Strength vs. Generality

                                   • SOA
                                   • “Smartphone”
                                    which demand
                          lity                                      RPC systems, Dedicated client
                        na          really smart user
                     tio
                nc                                                   Specific Remote Control…
              Fu




                                                        Strength
                                                                                                    Strong
                             Human Capability
                                                                     Restful systems, Web browser   Specific
                                                                      Universal Remote Control…     System
• Web dev
• iPhone
                                                                        Weak General System


                                                                                Generality
             The theories hold true for developers & users alike …
A Strong AND General System?
                 a.k.a., integrated set of strong specific systems


                         Unlikely –                                           “Net Benefit” –
           Due to “threshold of frustration” from high              A theoretical solution from Buxton about
                cognitive load in design & use                          digital and networked devices …




                                                         Strength
Strength




              Cognitive Load
                                                                           “Net Benefit”
                   Threshold of Frustration




                                                                                 Generality
                        Generality
           Net Benefit: devices communicate & cooperate with each other, thereby
             assuming much of the load that would otherwise burden the user …

                                                                     Source: http://www.billbuxton.com/LessIsMore.html
Approaches to “Net Benefit”
         in Software Systems Integration



                   Solution A:
                                                         Unlikely
                    Solution A:
     Intelligence in each system to enable
      Intelligence in each system to enable
                                                     due to even more
   automatic communication & collaboration
    automatic communication & collaboration
                                                    complexity therein
        between systems … aka. Magic
         between systems … aka. Magic




                    Solution B:
                                                        Feasible
                     Solution B:
        Apply principles, standardization,
         Apply principles, standardization,
                                                    Apply “less is more”
   simplification, unification & specifications…
    simplification, unification & specifications…
                                                      for greater good
             aka. Design Constraints
              aka. Design Constraints
Less is More
The world wide web works by design, not magic




       • Few verbs
                                Whole universe of knowledge
REST   • A few MIME types
                                only clicks away
       • Uniform resource URI
                                  Image: 3D Map of World Wide Web from www.opte.org
More or Less?
Situations where RPC works way better …


 Strong Specific System                          Weak General System




                       Looking for a Presenter?




 Handy & efficient                            Overkill & inconvenient



       Source: http://www.logitech.com/index.cfm/remotes/presentation_remote/devices/175&cl=us,en
More or Less?
   … and REST works positively terribly




Try playing piano in a browser or on an iPhone all day …


                       Source: http://www.daniellaberge.com/music/webpiano/webpiano1.htm
                                                                  http://moocowmusic.com/
REST or RPC?
aka, RUX or RPC-UX




Image Source: http://deadthingsdontfly.deviantart.com/art/thisway-thatway-72119766
RUX vs. RPC-UX versus REST vs. RPC
                             RPC-UX                                        RUX
             • Direct & Efficient                       • Lower “cognitive load” working with
     Pros                                                 large complex systems
             • High “cognitive load” operating large    • Indirect / inefficient for responsive /
     Cons      complex systems                            repetitive tasks
             • Fits specific command-&-control tasks    • Fits general tasks
Conclusion   • Good for power users, professionals …    • Good for common users, info seekers…



                               RPC                                        REST
             • Optimized for specific task              • Low technical barrier to entry
     Pros    • Fine-grained control                     • Massively extensible / scalable
             • Hidden status & implicit semantics       • Performance penalty, hard to customize
     Cons    • Complicated testing & debugging          • Coarse-grained control
             • Fits proprietary mission-critical apps   • Fits open resource-oriented apps
Conclusion   • Costly planning & implementation         • Easier planning & implementation
UX Classification of iPhone Apps

                RPC-UX                                                                          RUX

                                       QuickVoice Recorder
                 BrainTeaser                                                         Kindle for iPhone
                                                              FedEx Mobile
quot;Purequot; RPC-UX




                                                                                                         quot;Purequot; RUX
                RPC                                                                           REST
                               A given system is usually a balanced combination of
                                       RPC-UX & RUX, aka RPC & REST
“Pure” RPC vs. “Pure” REST
       Difference in Aggregated Complexity


V                                    R      V              R




                    N                              N




                                # of systems integrated
V – Verbs (method)
R – Representations (media)
                               Low                  High
N – Nouns (object, resource)
A Pragmatic Architectural Approach
                                   for
             Large Scale System Integration
                       V                           R




      A REST “Core”                           Some RPC “Deviations”
• Governing constraints                      • Local architecture & principles
                                 ARCHITECT
• Uniform interfaces & views                 • Special methods or layouts

• Mitigated overall complexity               • Optimized local performance
                                 DEVELOPER
• Clearer global design                      • Optimized local design

• Minimized cognitive load                   • Optimized local operation
                                   USER
• Assured common user access                 • Convenience for power users




                                    N
The Pragmatic Architectural Approach to
             Realize “Net Benefit”

                 Tactic Use of RPC (RPC-UX):
                 Tactic Use of RPC (RPC-UX):
                                                               Strong Specific Approach
               Specific command, custom configuration,
   Local        Specific command, custom configuration,
                                                               To strengthen specific tasks
              non-standard interface, proprietary layout…
               non-standard interface, proprietary layout…
Deviance                                                             and power users
                   To optimize specific local designs
                    To optimize specific local designs



     +                            +                                        +
                 Strategic Use of REST (RUX):
                 Strategic Use of REST (RUX):
                                                               Weak General Approach
                Architectural constraints, standardization,
   Global        Architectural constraints, standardization,
                                                               For common user access with
             simplification, convention over configuration…
              simplification, convention over configuration…
Uniformity                                                       minimized cognitive load
               To mitigate overall complexity for design
                To mitigate overall complexity for design
The Result – A Hybrid System

                  Actual System                        Cognitive Load
              Strength & Generality                   Perceived by User


           Strong specific features atop




                                           Strength
Strength




                                                      Threshold of Frustration
           “Net Benefit” foundation


                                                           Generality
                    Generality
Implications
•   Complexity should be a decisive factor in architectural design
     – For small & simple systems, either RPC or REST will work
     – For large complex system integration: Strategic use of REST + Tactic
       use of RPC recommended

•   An actual system architecture should be a reasonable balance of
    REST + RPC, according to usage nature

•   Always fight complexity with Architectural Wisdom, not prayers for
    miracle




                                                             REST through UX lens
Last Not Least
Always Picture Your System First …




                                 Your
                                System
References
•   Roy T. Fielding’s DISSERTATION
     – Architectural Styles and the Design of Network-based Software Architectures


•   Wikipedia:
     – http://en.wikipedia.org/wiki/Representational_State_Transfer
     – http://en.wikipedia.org/wiki/User_experience


•   Bill Buxton:
     – http://www.billbuxton.com/LessIsMore.html


•   iPhone App Store
     – http://www.apple.com/iphone/appstore/
“Everything should be made as
simple as possible, but not simpler.”




        Image Source: http://en.wikipedia.org/wiki/File:Albert_Einstein_portrait.jpg

Más contenido relacionado

La actualidad más candente

클라우드 이행전략과 HP의 사례
클라우드 이행전략과 HP의 사례클라우드 이행전략과 HP의 사례
클라우드 이행전략과 HP의 사례Seong-Bok Lee
 
코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...
코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...
코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...Amazon Web Services Korea
 
オラクルのHPC/GPUソリューションご紹介(2021/08版)
オラクルのHPC/GPUソリューションご紹介(2021/08版)オラクルのHPC/GPUソリューションご紹介(2021/08版)
オラクルのHPC/GPUソリューションご紹介(2021/08版)オラクルエンジニア通信
 
CloudSearchによる全文検索 - CM:道 2014/08/01
CloudSearchによる全文検索 - CM:道 2014/08/01 CloudSearchによる全文検索 - CM:道 2014/08/01
CloudSearchによる全文検索 - CM:道 2014/08/01 Shuji Watanabe
 
IDaaS を利用すべき理由とエンジニアがおさえておくべきポイント (2021年1月14日)
IDaaS を利用すべき理由とエンジニアがおさえておくべきポイント (2021年1月14日)IDaaS を利用すべき理由とエンジニアがおさえておくべきポイント (2021年1月14日)
IDaaS を利用すべき理由とエンジニアがおさえておくべきポイント (2021年1月14日)Masanori KAMAYAMA
 
[AWS初心者向けWebinar] AWSを活用したモバイルアプリの開発と運用
[AWS初心者向けWebinar] AWSを活用したモバイルアプリの開発と運用[AWS初心者向けWebinar] AWSを活用したモバイルアプリの開発と運用
[AWS初心者向けWebinar] AWSを活用したモバイルアプリの開発と運用Amazon Web Services Japan
 
SoR 2.0 基幹システムの再定義と再構築
SoR 2.0 基幹システムの再定義と再構築SoR 2.0 基幹システムの再定義と再構築
SoR 2.0 基幹システムの再定義と再構築増田 亨
 
データセンター向け高機能スイッチ Cisco Nexus スイッチ ガイド
データセンター向け高機能スイッチ Cisco Nexus スイッチ ガイドデータセンター向け高機能スイッチ Cisco Nexus スイッチ ガイド
データセンター向け高機能スイッチ Cisco Nexus スイッチ ガイドシスコシステムズ合同会社
 
輕鬆使用-AWS-Elemental-媒體服務打造無伺服器-Live-Streaming-與-VOD-平台-OTT-業者如何提供百萬用戶流暢的觀影體驗
輕鬆使用-AWS-Elemental-媒體服務打造無伺服器-Live-Streaming-與-VOD-平台-OTT-業者如何提供百萬用戶流暢的觀影體驗輕鬆使用-AWS-Elemental-媒體服務打造無伺服器-Live-Streaming-與-VOD-平台-OTT-業者如何提供百萬用戶流暢的觀影體驗
輕鬆使用-AWS-Elemental-媒體服務打造無伺服器-Live-Streaming-與-VOD-平台-OTT-業者如何提供百萬用戶流暢的觀影體驗Amazon Web Services
 
서버 성능에 대한 정의와 이해
서버 성능에 대한 정의와 이해서버 성능에 대한 정의와 이해
서버 성능에 대한 정의와 이해중선 곽
 
COD2012 九州会場 Active Directory 障害対策
COD2012 九州会場 Active Directory 障害対策COD2012 九州会場 Active Directory 障害対策
COD2012 九州会場 Active Directory 障害対策wintechq
 
"Kong Summit, Japan 2022" パートナーセッション:Kong on AWS で実現するスケーラブルな API 基盤の構築
"Kong Summit, Japan 2022" パートナーセッション:Kong on AWS で実現するスケーラブルな API 基盤の構築"Kong Summit, Japan 2022" パートナーセッション:Kong on AWS で実現するスケーラブルな API 基盤の構築
"Kong Summit, Japan 2022" パートナーセッション:Kong on AWS で実現するスケーラブルな API 基盤の構築Junji Nishihara
 
공개소프트웨어 DBMS에 대한 주요 도입 및 마이그레이션 사례
공개소프트웨어 DBMS에 대한 주요 도입 및 마이그레이션 사례공개소프트웨어 DBMS에 대한 주요 도입 및 마이그레이션 사례
공개소프트웨어 DBMS에 대한 주요 도입 및 마이그레이션 사례rockplace
 
Citrix group policy troubleshooting for xen app and xendesktop
Citrix group policy troubleshooting for xen app and xendesktopCitrix group policy troubleshooting for xen app and xendesktop
Citrix group policy troubleshooting for xen app and xendesktopsolarisyougood
 
AWSで実現するクラウドネイティブなアプリ開発のポイント
AWSで実現するクラウドネイティブなアプリ開発のポイントAWSで実現するクラウドネイティブなアプリ開発のポイント
AWSで実現するクラウドネイティブなアプリ開発のポイントKeisuke Nishitani
 
쿠키런: 킹덤 대규모 인프라 및 서버 운영 사례 공유 [데브시스터즈 - 레벨 200] - 발표자: 용찬호, R&D 엔지니어, 데브시스터즈 ...
쿠키런: 킹덤 대규모 인프라 및 서버 운영 사례 공유 [데브시스터즈 - 레벨 200] - 발표자: 용찬호, R&D 엔지니어, 데브시스터즈 ...쿠키런: 킹덤 대규모 인프라 및 서버 운영 사례 공유 [데브시스터즈 - 레벨 200] - 발표자: 용찬호, R&D 엔지니어, 데브시스터즈 ...
쿠키런: 킹덤 대규모 인프라 및 서버 운영 사례 공유 [데브시스터즈 - 레벨 200] - 발표자: 용찬호, R&D 엔지니어, 데브시스터즈 ...Amazon Web Services Korea
 
週末趣味のAWS Transit Gatewayでの経路制御
週末趣味のAWS Transit Gatewayでの経路制御週末趣味のAWS Transit Gatewayでの経路制御
週末趣味のAWS Transit Gatewayでの経路制御Namba Kazuo
 
AWS Cloud Design Pattern for Enterprise
AWS Cloud Design Pattern for EnterpriseAWS Cloud Design Pattern for Enterprise
AWS Cloud Design Pattern for EnterpriseAkio Katayama
 
【さくらのクラウド】クラウドマスター認定試験終了者向け講習と、上級者への道(Terraform)
【さくらのクラウド】クラウドマスター認定試験終了者向け講習と、上級者への道(Terraform)【さくらのクラウド】クラウドマスター認定試験終了者向け講習と、上級者への道(Terraform)
【さくらのクラウド】クラウドマスター認定試験終了者向け講習と、上級者への道(Terraform)さくらインターネット株式会社
 

La actualidad más candente (20)

클라우드 이행전략과 HP의 사례
클라우드 이행전략과 HP의 사례클라우드 이행전략과 HP의 사례
클라우드 이행전략과 HP의 사례
 
코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...
코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...
코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...
 
オラクルのHPC/GPUソリューションご紹介(2021/08版)
オラクルのHPC/GPUソリューションご紹介(2021/08版)オラクルのHPC/GPUソリューションご紹介(2021/08版)
オラクルのHPC/GPUソリューションご紹介(2021/08版)
 
CloudSearchによる全文検索 - CM:道 2014/08/01
CloudSearchによる全文検索 - CM:道 2014/08/01 CloudSearchによる全文検索 - CM:道 2014/08/01
CloudSearchによる全文検索 - CM:道 2014/08/01
 
IDaaS を利用すべき理由とエンジニアがおさえておくべきポイント (2021年1月14日)
IDaaS を利用すべき理由とエンジニアがおさえておくべきポイント (2021年1月14日)IDaaS を利用すべき理由とエンジニアがおさえておくべきポイント (2021年1月14日)
IDaaS を利用すべき理由とエンジニアがおさえておくべきポイント (2021年1月14日)
 
[AWS初心者向けWebinar] AWSを活用したモバイルアプリの開発と運用
[AWS初心者向けWebinar] AWSを活用したモバイルアプリの開発と運用[AWS初心者向けWebinar] AWSを活用したモバイルアプリの開発と運用
[AWS初心者向けWebinar] AWSを活用したモバイルアプリの開発と運用
 
Rule engine
Rule engineRule engine
Rule engine
 
SoR 2.0 基幹システムの再定義と再構築
SoR 2.0 基幹システムの再定義と再構築SoR 2.0 基幹システムの再定義と再構築
SoR 2.0 基幹システムの再定義と再構築
 
データセンター向け高機能スイッチ Cisco Nexus スイッチ ガイド
データセンター向け高機能スイッチ Cisco Nexus スイッチ ガイドデータセンター向け高機能スイッチ Cisco Nexus スイッチ ガイド
データセンター向け高機能スイッチ Cisco Nexus スイッチ ガイド
 
輕鬆使用-AWS-Elemental-媒體服務打造無伺服器-Live-Streaming-與-VOD-平台-OTT-業者如何提供百萬用戶流暢的觀影體驗
輕鬆使用-AWS-Elemental-媒體服務打造無伺服器-Live-Streaming-與-VOD-平台-OTT-業者如何提供百萬用戶流暢的觀影體驗輕鬆使用-AWS-Elemental-媒體服務打造無伺服器-Live-Streaming-與-VOD-平台-OTT-業者如何提供百萬用戶流暢的觀影體驗
輕鬆使用-AWS-Elemental-媒體服務打造無伺服器-Live-Streaming-與-VOD-平台-OTT-業者如何提供百萬用戶流暢的觀影體驗
 
서버 성능에 대한 정의와 이해
서버 성능에 대한 정의와 이해서버 성능에 대한 정의와 이해
서버 성능에 대한 정의와 이해
 
COD2012 九州会場 Active Directory 障害対策
COD2012 九州会場 Active Directory 障害対策COD2012 九州会場 Active Directory 障害対策
COD2012 九州会場 Active Directory 障害対策
 
"Kong Summit, Japan 2022" パートナーセッション:Kong on AWS で実現するスケーラブルな API 基盤の構築
"Kong Summit, Japan 2022" パートナーセッション:Kong on AWS で実現するスケーラブルな API 基盤の構築"Kong Summit, Japan 2022" パートナーセッション:Kong on AWS で実現するスケーラブルな API 基盤の構築
"Kong Summit, Japan 2022" パートナーセッション:Kong on AWS で実現するスケーラブルな API 基盤の構築
 
공개소프트웨어 DBMS에 대한 주요 도입 및 마이그레이션 사례
공개소프트웨어 DBMS에 대한 주요 도입 및 마이그레이션 사례공개소프트웨어 DBMS에 대한 주요 도입 및 마이그레이션 사례
공개소프트웨어 DBMS에 대한 주요 도입 및 마이그레이션 사례
 
Citrix group policy troubleshooting for xen app and xendesktop
Citrix group policy troubleshooting for xen app and xendesktopCitrix group policy troubleshooting for xen app and xendesktop
Citrix group policy troubleshooting for xen app and xendesktop
 
AWSで実現するクラウドネイティブなアプリ開発のポイント
AWSで実現するクラウドネイティブなアプリ開発のポイントAWSで実現するクラウドネイティブなアプリ開発のポイント
AWSで実現するクラウドネイティブなアプリ開発のポイント
 
쿠키런: 킹덤 대규모 인프라 및 서버 운영 사례 공유 [데브시스터즈 - 레벨 200] - 발표자: 용찬호, R&D 엔지니어, 데브시스터즈 ...
쿠키런: 킹덤 대규모 인프라 및 서버 운영 사례 공유 [데브시스터즈 - 레벨 200] - 발표자: 용찬호, R&D 엔지니어, 데브시스터즈 ...쿠키런: 킹덤 대규모 인프라 및 서버 운영 사례 공유 [데브시스터즈 - 레벨 200] - 발표자: 용찬호, R&D 엔지니어, 데브시스터즈 ...
쿠키런: 킹덤 대규모 인프라 및 서버 운영 사례 공유 [데브시스터즈 - 레벨 200] - 발표자: 용찬호, R&D 엔지니어, 데브시스터즈 ...
 
週末趣味のAWS Transit Gatewayでの経路制御
週末趣味のAWS Transit Gatewayでの経路制御週末趣味のAWS Transit Gatewayでの経路制御
週末趣味のAWS Transit Gatewayでの経路制御
 
AWS Cloud Design Pattern for Enterprise
AWS Cloud Design Pattern for EnterpriseAWS Cloud Design Pattern for Enterprise
AWS Cloud Design Pattern for Enterprise
 
【さくらのクラウド】クラウドマスター認定試験終了者向け講習と、上級者への道(Terraform)
【さくらのクラウド】クラウドマスター認定試験終了者向け講習と、上級者への道(Terraform)【さくらのクラウド】クラウドマスター認定試験終了者向け講習と、上級者への道(Terraform)
【さくらのクラウド】クラウドマスター認定試験終了者向け講習と、上級者への道(Terraform)
 

Similar a Restful User Experience Through UX and REST Lenses

Dynamic Adaptive Streaming over HTTP: From Content Creation to Consumption
Dynamic Adaptive Streaming over HTTP: From Content Creation to ConsumptionDynamic Adaptive Streaming over HTTP: From Content Creation to Consumption
Dynamic Adaptive Streaming over HTTP: From Content Creation to ConsumptionAlpen-Adria-Universität
 
A Mobile Centric View of Silicon Valley - January 2011
A Mobile Centric View of Silicon Valley - January 2011A Mobile Centric View of Silicon Valley - January 2011
A Mobile Centric View of Silicon Valley - January 2011Lars Kamp
 
Cloud Disaster Recovery
Cloud Disaster Recovery Cloud Disaster Recovery
Cloud Disaster Recovery OpSource
 
Be A Mobile Design Hero: Transform Your Web Design Knowledge Into Mobile Desi...
Be A Mobile Design Hero: Transform Your Web Design Knowledge Into Mobile Desi...Be A Mobile Design Hero: Transform Your Web Design Knowledge Into Mobile Desi...
Be A Mobile Design Hero: Transform Your Web Design Knowledge Into Mobile Desi...Vinny Wu
 
Why the Semantic Web will nerver work
Why the Semantic Web will nerver workWhy the Semantic Web will nerver work
Why the Semantic Web will nerver workHoang Nguyen
 
Fjord @ Smart device and mobile user experience summit
Fjord @ Smart device and mobile user experience summitFjord @ Smart device and mobile user experience summit
Fjord @ Smart device and mobile user experience summitFjord
 
Phonegap deep-dive
Phonegap deep-divePhonegap deep-dive
Phonegap deep-divealunny
 
Jackie Calderwood: Locative Media. Guest lecture/workshop for Kingston Univer...
Jackie Calderwood: Locative Media. Guest lecture/workshop for Kingston Univer...Jackie Calderwood: Locative Media. Guest lecture/workshop for Kingston Univer...
Jackie Calderwood: Locative Media. Guest lecture/workshop for Kingston Univer...Jackie Calderwood
 
Some REST Design Patterns (and Anti-Patterns) - SOA Symposium 2009
Some REST Design Patterns (and Anti-Patterns) - SOA Symposium 2009Some REST Design Patterns (and Anti-Patterns) - SOA Symposium 2009
Some REST Design Patterns (and Anti-Patterns) - SOA Symposium 2009Cesare Pautasso
 
Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010
Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010
Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010Heiko Behrens
 
SFMobile: Founder Labs Mobile Edition 01/09/11
SFMobile: Founder Labs Mobile Edition 01/09/11SFMobile: Founder Labs Mobile Edition 01/09/11
SFMobile: Founder Labs Mobile Edition 01/09/11Jim Porter
 
SF Mobile: Founder Labs Mobile Edition
SF Mobile: Founder Labs Mobile Edition SF Mobile: Founder Labs Mobile Edition
SF Mobile: Founder Labs Mobile Edition Lars Kamp
 
Experimental Media Voodoo™
Experimental Media Voodoo™Experimental Media Voodoo™
Experimental Media Voodoo™SkyRonDotOrg
 
Saiful hidayar santri indigo telkom republika pondok pesantren keresek garut ...
Saiful hidayar santri indigo telkom republika pondok pesantren keresek garut ...Saiful hidayar santri indigo telkom republika pondok pesantren keresek garut ...
Saiful hidayar santri indigo telkom republika pondok pesantren keresek garut ...Saiful Hidayat
 
Design for Multitouch
Design for Multitouch Design for Multitouch
Design for Multitouch Robert Winters
 
HiUED 前端/web 發展和體驗
HiUED 前端/web 發展和體驗HiUED 前端/web 發展和體驗
HiUED 前端/web 發展和體驗Bobby Chen
 

Similar a Restful User Experience Through UX and REST Lenses (20)

Dynamic Adaptive Streaming over HTTP: From Content Creation to Consumption
Dynamic Adaptive Streaming over HTTP: From Content Creation to ConsumptionDynamic Adaptive Streaming over HTTP: From Content Creation to Consumption
Dynamic Adaptive Streaming over HTTP: From Content Creation to Consumption
 
In Context
In ContextIn Context
In Context
 
Android Virtualization: Opportunity and Organization
Android Virtualization: Opportunity and OrganizationAndroid Virtualization: Opportunity and Organization
Android Virtualization: Opportunity and Organization
 
A Mobile Centric View of Silicon Valley - January 2011
A Mobile Centric View of Silicon Valley - January 2011A Mobile Centric View of Silicon Valley - January 2011
A Mobile Centric View of Silicon Valley - January 2011
 
Cloud Disaster Recovery
Cloud Disaster Recovery Cloud Disaster Recovery
Cloud Disaster Recovery
 
Be A Mobile Design Hero: Transform Your Web Design Knowledge Into Mobile Desi...
Be A Mobile Design Hero: Transform Your Web Design Knowledge Into Mobile Desi...Be A Mobile Design Hero: Transform Your Web Design Knowledge Into Mobile Desi...
Be A Mobile Design Hero: Transform Your Web Design Knowledge Into Mobile Desi...
 
Why the Semantic Web will nerver work
Why the Semantic Web will nerver workWhy the Semantic Web will nerver work
Why the Semantic Web will nerver work
 
Fjord @ Smart device and mobile user experience summit
Fjord @ Smart device and mobile user experience summitFjord @ Smart device and mobile user experience summit
Fjord @ Smart device and mobile user experience summit
 
Phonegap deep-dive
Phonegap deep-divePhonegap deep-dive
Phonegap deep-dive
 
Jackie Calderwood: Locative Media. Guest lecture/workshop for Kingston Univer...
Jackie Calderwood: Locative Media. Guest lecture/workshop for Kingston Univer...Jackie Calderwood: Locative Media. Guest lecture/workshop for Kingston Univer...
Jackie Calderwood: Locative Media. Guest lecture/workshop for Kingston Univer...
 
Some REST Design Patterns (and Anti-Patterns) - SOA Symposium 2009
Some REST Design Patterns (and Anti-Patterns) - SOA Symposium 2009Some REST Design Patterns (and Anti-Patterns) - SOA Symposium 2009
Some REST Design Patterns (and Anti-Patterns) - SOA Symposium 2009
 
Embedded Virtualization for Mobile Devices
Embedded Virtualization for Mobile DevicesEmbedded Virtualization for Mobile Devices
Embedded Virtualization for Mobile Devices
 
Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010
Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010
Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010
 
2
22
2
 
SFMobile: Founder Labs Mobile Edition 01/09/11
SFMobile: Founder Labs Mobile Edition 01/09/11SFMobile: Founder Labs Mobile Edition 01/09/11
SFMobile: Founder Labs Mobile Edition 01/09/11
 
SF Mobile: Founder Labs Mobile Edition
SF Mobile: Founder Labs Mobile Edition SF Mobile: Founder Labs Mobile Edition
SF Mobile: Founder Labs Mobile Edition
 
Experimental Media Voodoo™
Experimental Media Voodoo™Experimental Media Voodoo™
Experimental Media Voodoo™
 
Saiful hidayar santri indigo telkom republika pondok pesantren keresek garut ...
Saiful hidayar santri indigo telkom republika pondok pesantren keresek garut ...Saiful hidayar santri indigo telkom republika pondok pesantren keresek garut ...
Saiful hidayar santri indigo telkom republika pondok pesantren keresek garut ...
 
Design for Multitouch
Design for Multitouch Design for Multitouch
Design for Multitouch
 
HiUED 前端/web 發展和體驗
HiUED 前端/web 發展和體驗HiUED 前端/web 發展和體驗
HiUED 前端/web 發展和體驗
 

Último

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 

Último (20)

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 

Restful User Experience Through UX and REST Lenses

  • 1. “Restful User Experience” Unconventional views on user experience vs. architectural design Wayne Lee, May 2009 http://trilancer.wordpress.com/
  • 2. What is this all about? To share my humble opinions on user experience designs with insights from representational state transfer studies as well as inspecting software architectural design with user experience philosophy to improve overall system design … Or simply put, to study through UX REST LENS and through REST UX LENS to better system designs Image Source: http://www.flickr.com/photos/danielgreene/344196890/ http://www.flickr.com/photos/surstubben/475404411/
  • 3. Background • Representational state transfer (REST) – A software architecture style for distributed hypermedia systems, e.g., the World Wide Web – Introduced by Roy Fielding in 2000 • User experience (UX) – The overarching experience a person has as a result of interactions with a product or service, its delivery, and related artifacts, according to their design
  • 4. The REST Triangle [Post, Get, Put, Delete], Hypermedia: HTML, XML, [Post, Get, Put, Delete], Hypermedia: HTML, XML, Represe [C R U D] … JSON, JPG, GIF … [C R U D] … JSON, JPG, GIF … Verbs Constrained Set Constrained Set ntations Constrained Set Constrained Set RESOURCES Nouns Universal URI, XRI … Universal URI, XRI … Unconstrained Set Unconstrained Set
  • 5. REST vs. RPC • Resource-centric view • Command-centric view – ONE uniform set of – Custom, unique sets of methods (verbs) methods (verbs) – Standard media types – Custom media types – Lots resources (nouns) – Fewer objects (nouns) – Some common knowledge – Prior specific knowledge required to access ALL required to locate / access resources each object
  • 6. REST vs. SOAP • REST simplicity = • WS-* Complexity = freedom from choice freedom of choice – 5 decisions to choose – 12 decisions to choose among 16 alternatives among 32 alternatives – 12 decisions already – 2 decisions already taken (but 5 are DIY) taken (SOAP, WSDL + XSD) Source: http://www.jopera.org/docs/publications/2008/restws
  • 7. UX through REST lens Image Source: http://www.flickr.com/photos/mark_boucher/794747329/
  • 8. UX Differences in software architectural terms l” ” tfu PC es “R “R Press together to lock / unlock “Dumb Phone” iPhone • Lots models, varying UX • Few models, consistent UX • Lots buttons, with function overload • Few buttons, soft keys on-demand • Various key-combinations to invoke lots • Few gestures (tap, flick, glide…) to (sometimes mysterious) functions invoke ALL functions Image Source: Nokia & Apple
  • 9. iPhone Feature List … Source: http://www.apple.com/iphone/
  • 10. … aka “Sitemap” /calendar /photos /sms /maps /youtube /weather /stocks /notes Home /calc /itunes /apps /phone /ipod /sms /safari
  • 11. Conceptual Restful State Machine of iPhone i.e., web browsing mentality can be mapped smoothly /phone/favorites /phone/favorites/Jerry /phone/contacts/Tom /phone/contacts Call (submit) /phone /phone/keypad /phone/call Dial (form input)  Call (submit) End Call /phone/voicemail /phone/voicemail/Emily Call Back (submit) Delete /phone/reschedule State Transitions Explained with REST Create a new call /calendar POST /phone/call Call session resource Destroy current DELETE /phone/call End Call call session /mail Redirect back to state before call
  • 12. The iPhone Triangle [Tap, Glide, Flick, Pinch, CoverFlow, List, Icon, [Tap, Glide, Flick, Pinch, CoverFlow, List, Icon, Represe Rotate, Swing … ] ] Map, Table, Player … Rotate, Swing … Map, Table, Player … Verbs Constrained Set Constrained Set ntations Constrained Set Constrained Set Nouns Events, SMS, Mails, Photos, Events, SMS, Mails, Photos, Songs, Videos, Apps … Songs, Videos, Apps … Unconstrained Set Unconstrained Set
  • 13. Restful User Experience (RUX) UNIFORM STANDARDIZED UNIFORM STANDARDIZED Represe buttons //commands // Info presentation buttons commands Info presentation Verbs ntations gestures … layouts //views gestures … layouts views Nouns UNLIMITED UNLIMITED Volume of content Volume of content indexed or hyperlinked indexed or hyperlinked
  • 14. Further RUX Example – Universal Remote Control • One-Touch Control • Up to 15 components: video, audio, & gaming • Compatibility: supports 5,000+ brands & 225,000 devices Logitech Harmony 1000 Advanced Universal Remote Source: http://www.logitech.com/index.cfm/remotes/universal_remotes/devices/373&cl=US,EN
  • 15. Different Approaches to Universal Remote Control, aka RUX vs. RPC-UX 15 Devices VS Logitech Harmony 1000 5 Devices 8 Devices 16 Devices Sony RM-AX4000A Logitech Harmony 510 Sony RMVL610B for common users for power users Image Source: Sony & Logitech
  • 16. RUX or RPC-UX? aka, REST or RPC Image Source: http://deadthingsdontfly.deviantart.com/art/thisway-thatway-72119766
  • 17. freedom of choice freedom from choice 4+ 10+ 3 Models 14 10 Models 4 Models Models Models Models 12 (color variation included) Models / Series Source: http://www.electronista.com/articles/08/06/30/rbc.high.iphone.demand/
  • 18. iPhone Takes 2/3 of Mobile Market Source: http://blog.concentricsky.com/2009/03/iphone-takes-23-of-mobile-market/
  • 19. Implications • Market suggests RUX popularity – Device / application with lots “nouns” in usage scenarios better adopt RUX to ease user access – RPC-UX still works with limited nouns, but potential extensibility greatly hindered by e.g., physical shape • iPhone resembles web browsing experiences – If you can surf the Web, you can use an iPhone – If you can’t “surf” a phone, you won’t use it to surf the Web • Less choices + good design = good business UX through REST lens
  • 20. REST through UX lens Image Source: http://www.flickr.com/photos/valpopando/2787823568/
  • 21. Less is More (More or Less): Uncommon Sense and the Design of Computers System Functionality vs. Human System Strength vs. Generality y alit on ti nc Fu of Example: Potato Peeler th row (Can do FEW things BETTER than others) G Strength Strong Growth of Human Capability Example: Generic Kitchen Knife Specific (Can do LOTS things, but NOT optimized) System Threshold of Frustration a.k.a. “Complexity Barrier” Weak General System Generality Source: http://www.billbuxton.com/LessIsMore.html
  • 22. Software Architecture Design through “less is more” lens System Functionality vs. Human System Strength vs. Generality • SOA • “Smartphone” which demand lity RPC systems, Dedicated client na really smart user tio nc Specific Remote Control… Fu Strength Strong Human Capability Restful systems, Web browser Specific Universal Remote Control… System • Web dev • iPhone Weak General System Generality The theories hold true for developers & users alike …
  • 23. A Strong AND General System? a.k.a., integrated set of strong specific systems Unlikely – “Net Benefit” – Due to “threshold of frustration” from high A theoretical solution from Buxton about cognitive load in design & use digital and networked devices … Strength Strength Cognitive Load “Net Benefit” Threshold of Frustration Generality Generality Net Benefit: devices communicate & cooperate with each other, thereby assuming much of the load that would otherwise burden the user … Source: http://www.billbuxton.com/LessIsMore.html
  • 24. Approaches to “Net Benefit” in Software Systems Integration Solution A: Unlikely Solution A: Intelligence in each system to enable Intelligence in each system to enable due to even more automatic communication & collaboration automatic communication & collaboration complexity therein between systems … aka. Magic between systems … aka. Magic Solution B: Feasible Solution B: Apply principles, standardization, Apply principles, standardization, Apply “less is more” simplification, unification & specifications… simplification, unification & specifications… for greater good aka. Design Constraints aka. Design Constraints
  • 25. Less is More The world wide web works by design, not magic • Few verbs Whole universe of knowledge REST • A few MIME types only clicks away • Uniform resource URI Image: 3D Map of World Wide Web from www.opte.org
  • 26. More or Less? Situations where RPC works way better … Strong Specific System Weak General System Looking for a Presenter? Handy & efficient Overkill & inconvenient Source: http://www.logitech.com/index.cfm/remotes/presentation_remote/devices/175&cl=us,en
  • 27. More or Less? … and REST works positively terribly Try playing piano in a browser or on an iPhone all day … Source: http://www.daniellaberge.com/music/webpiano/webpiano1.htm http://moocowmusic.com/
  • 28. REST or RPC? aka, RUX or RPC-UX Image Source: http://deadthingsdontfly.deviantart.com/art/thisway-thatway-72119766
  • 29. RUX vs. RPC-UX versus REST vs. RPC RPC-UX RUX • Direct & Efficient • Lower “cognitive load” working with Pros large complex systems • High “cognitive load” operating large • Indirect / inefficient for responsive / Cons complex systems repetitive tasks • Fits specific command-&-control tasks • Fits general tasks Conclusion • Good for power users, professionals … • Good for common users, info seekers… RPC REST • Optimized for specific task • Low technical barrier to entry Pros • Fine-grained control • Massively extensible / scalable • Hidden status & implicit semantics • Performance penalty, hard to customize Cons • Complicated testing & debugging • Coarse-grained control • Fits proprietary mission-critical apps • Fits open resource-oriented apps Conclusion • Costly planning & implementation • Easier planning & implementation
  • 30. UX Classification of iPhone Apps RPC-UX RUX QuickVoice Recorder BrainTeaser Kindle for iPhone FedEx Mobile quot;Purequot; RPC-UX quot;Purequot; RUX RPC REST A given system is usually a balanced combination of RPC-UX & RUX, aka RPC & REST
  • 31. “Pure” RPC vs. “Pure” REST Difference in Aggregated Complexity V R V R N N # of systems integrated V – Verbs (method) R – Representations (media) Low High N – Nouns (object, resource)
  • 32. A Pragmatic Architectural Approach for Large Scale System Integration V R A REST “Core” Some RPC “Deviations” • Governing constraints • Local architecture & principles ARCHITECT • Uniform interfaces & views • Special methods or layouts • Mitigated overall complexity • Optimized local performance DEVELOPER • Clearer global design • Optimized local design • Minimized cognitive load • Optimized local operation USER • Assured common user access • Convenience for power users N
  • 33. The Pragmatic Architectural Approach to Realize “Net Benefit” Tactic Use of RPC (RPC-UX): Tactic Use of RPC (RPC-UX): Strong Specific Approach Specific command, custom configuration, Local Specific command, custom configuration, To strengthen specific tasks non-standard interface, proprietary layout… non-standard interface, proprietary layout… Deviance and power users To optimize specific local designs To optimize specific local designs + + + Strategic Use of REST (RUX): Strategic Use of REST (RUX): Weak General Approach Architectural constraints, standardization, Global Architectural constraints, standardization, For common user access with simplification, convention over configuration… simplification, convention over configuration… Uniformity minimized cognitive load To mitigate overall complexity for design To mitigate overall complexity for design
  • 34. The Result – A Hybrid System Actual System Cognitive Load Strength & Generality Perceived by User Strong specific features atop Strength Strength Threshold of Frustration “Net Benefit” foundation Generality Generality
  • 35. Implications • Complexity should be a decisive factor in architectural design – For small & simple systems, either RPC or REST will work – For large complex system integration: Strategic use of REST + Tactic use of RPC recommended • An actual system architecture should be a reasonable balance of REST + RPC, according to usage nature • Always fight complexity with Architectural Wisdom, not prayers for miracle REST through UX lens
  • 36. Last Not Least Always Picture Your System First … Your System
  • 37. References • Roy T. Fielding’s DISSERTATION – Architectural Styles and the Design of Network-based Software Architectures • Wikipedia: – http://en.wikipedia.org/wiki/Representational_State_Transfer – http://en.wikipedia.org/wiki/User_experience • Bill Buxton: – http://www.billbuxton.com/LessIsMore.html • iPhone App Store – http://www.apple.com/iphone/appstore/
  • 38. “Everything should be made as simple as possible, but not simpler.” Image Source: http://en.wikipedia.org/wiki/File:Albert_Einstein_portrait.jpg