Web2.0サービスのアーキテクチャと実装 - Download Center - Microsoft

Document Sample
Web2.0サービスのアーキテクチャと実装 - Download Center - Microsoft Powered By Docstoc
					Web2.0サービスのアーキテクチャと実装


     マイクロソフトコーポレーション
     プラットフォーム・アーキテクチャ・チーム
     シニアアーキテクト
     成本正史
     masashin@microsoft.com
アジェンダ

ー Web概観
ー Web2.0 概念アーキテクチャ
ー Web2.0サービスの実装
Web2.0とは?
   Webの変遷


                …
      Web スタートアップ
                                  Web 3.0
                                  セマンティックWeb
                     Web 2.0
エンタープライズ
                     ユーザー参加型、ソーシャルダイナミクス

           Web 1.0
           インターネットプレゼンス、サーチエンジン
Web2.0アプリケーションとは?
AJAXを使用したWebサイト?
RIA?
ソーシャルアプリケーション?
すべてはWeb2.0アプリケーションの要素
どれも全体像ではない
ではこれはどうでしょう?
      Web2.0アプリケーション

オンラインコミュニティにおける活発なソーシャル活動
を通じてユーザーの参加を促すWebアプリケーション
Web2.0サービスとは?
      Web2.0 サービス



 アクセスはWebブラウザーに限定されない、
サイトの成長は自社プロバイダーに限定されない
OPEN   な Web2.0アプリケーション


  O    –   Open
  P    –   Programmable
  E    –   Extensible
  N    -   Neutral
http://www.myspace.com
http://www.linkedin.com
http://slideshare.net
http://twitter.com
http://www.smugmug.com
                                                 Web2.0 – 全体像

        Blogs          HTTP         Wikis            • 業界標準およびテクノロジー
 Aggregators           E-mail
                                          IM         • デザインの原則              ユーザー
 Collaboration      Social Networking
                                                     • 実装のパターン
 Folksonomies       Sharing          Viral           • 開発プラットフォーム           Web2.0

         Social Media              Blogosphere       • アプリケーションやサービス                  Web
ASP.NET       PHP      Collective Intelligence                         企業            スタート

                       Crowd Sourcing                  Social Web                    アップ
 Scalable
                                             REST
    JavaScript         Ruby on Rails
Mashups                  MVC            XML
Atom      RSS               SEO             Mobile
        Microformats            Joomla Drupal

 XHTML        Social Graphs         Accessible

                    Browsers            OpenID
SOAP

      Social         Semantic Web
Programmable                                 CSS
                     Syndication
       AJAX                        Interoperable
                 Modular
            Emerging Web
    Challenges and Opportunities
                                                         • The Long Tail
                                                         • Discoverability
                                                         • Aggregation


                                         Consumers &
                                         Communities


                                                                       • Optimize Investments
• Next Gen Web Presence                                                • Increase Eyeballs
• Enterprise 2.0                           Web2.0                      • Long Tail Reach
• Social Web Integration                                               • Passive-to-Active
                                                                       • Business Services
                           Enterprise/
                                                       Web Startups
                            Business
Consumer Challenges




   Discover, Collect, Organize
   Share, Recommend, Create
Web Startup Challenges

                                     Opportunities

                                 • The Long Tail
   Discover, Collect, Organize   • Discoverability
   Share, Recommend, Create      • Multi-channel access
                                 • Aggregation
       Business Challenges
     Desktop                 Mobile                Browser                                            Desktop          Mobile    Browser




                                                               Multi-channel Clients


                                               Employees
                   Social Computing Services




                                                                             Cloud Interop Services
    EMM           ECM         WCM            BPM       BI                                                  Customers            Partners

           Social
Enterprise Enterprise Computing Platform
  LOB                    User      Portal
Integration        Search         Profiles         Framework


              Enterprise Productivity Services


                        LOB Services
       Social Web Integration




Business               Non-affiliated Communities
       Social Web Integration



                 Communicate
                  Marketing & Sales
                  Customer Support
                       Listen
                       Training
                      Engage
           New Product/Service Development
                    Onboard
                        Hiring




Business                                     Non-affiliated Communities
       Social Web Integration



             Communicate
                 Listen
                Engage
               Onboard




Business                   Non-affiliated Communities
Facebook in the Enterprise
                                 employees


           Workbook

         Security, SSO,
     data access, integration

    Adapter          Adapter



                    Enterprise
Web2.0サービスの構築
Web 2.0サービスの概念アーキテクチャ
                                                                                                                                       Designers
                                           Delivery Channels




                                                                                                                               Users
                                                                                                               Service
   Browser                 PC                 Mobile                 Device          External Services
                                                                                                            Repository/Bus




                                        Service Interfaces/APIs
                                                       Syndication                                        Programming
      REST                       SOAP                                         JavaScript Libraries
                                                       (RSS/Atom)                                      Language Wrappers




                                                                                                                                                      Developers
                                                  IP Services
                                        Your Intellectual Property Services




                                                                                                                                                                   Administrators
                                         Foundational Services
 Content                           User                                            Usage
             Data Access                         Social          Search                              Sync      Monetization
Management                      Management                                        Analytics




                                               Infrastructure
  Compute        Storage            Web Server            Database        Networking          Messaging       Virtualization



                           Architecture Layers                                                                                                     Tools
アーキテクチャの選択肢
                    インフラストラクチャ

                     Infrastructure
Compute   Storage   Web Server   Database   Networking   Messaging   Virtualization
セルフホスティング
ホスティングプロバイダー
クラウドコンピューティング
                   ファウンデーションサービス

                           Foundational Services
 Content                      User                         Usage
             Data Access                Social   Search               Sync   Monetization
Management                 Management                     Analytics
自分で構築するか
プラットフォームを利用
ホワイトラベルサービスを利用
開発プラットフォームの選択
マイクロソフトの開発プラットフォーム
                 http://www.microsoft.com/web/
-SQL Server 2008 Express
- IIS7
- Visual Web Developer 2008 Express
- .NET Framework 3.5
- Silverlight tools for Visual Studio
                                                                                                                        Expression
       Delivery Channels (Browser, PC, Mobile, Device, Service Repository/Bus)

 ASP.NET         ASP.NET      ASP.NET                                                                      .NET
                                               jQuery      SilverLight          WPF          VSTO
Web Forms         MVC          AJAX                                                                       Services




                                    Service Interfaces/APIs
Windows Communication                                                                        .NET Programming




                                                                                                                                        Visual Studio
                              ADO.NET Data Services                JavaScript
     Foundation                                                                                  Languages




                                                IP Services




                                                                                                                                                        Server Admin Tools
                                        Microsoft .NET Framework



                                     Foundational Services
Microsoft .NET     ASP.NET
                                  SharePoint       Search Server    Live Services     .NET Services   Ad Center/Atlas
 Framework         Services




                                               Infrastructure
                                                            Azure Services Platform (Widows Azure, SQL
     Windows Server, IIS, SQL Server                         Data Services, Live Services, .NET Services)


                           Architecture Layers                                                                                       Tools
デモ: Planet PPT
Web2.0サービスの一般的なアーキテクチャ
                                     データ



ブラウザー     Web アプリ                   非構造化
         フレームワーク                    ストレージ




 AJAX                               ユーザー管理
                           ファウンデー
                    サービス   ショナルサー
 ブラウザ               ロジック    ビスアダプ
                                    ソーシャル
プラグイン                         ター    サービス



         Web サービス
         フレームワーク                     広告
ウィジェット


ユビキタス
                                     検索
チャネル
   プラネットPPT R1
ソリューションアーキテクチャ
                                                                                  R2

                       ASP.NET MVC
                                                                                   SQL
                                                                                  Server
                         Controller                                                2008
 Browser                                                         Repository
                                                                      +
                                                                    Entity
                                                                 Framework
                                                                                   Azure
                             View                                                 Storage
 jQuery
 ASP.NET                                 Service
  AJAX                                 Implementat    Provider
                                           ion
                                                                     Windows Live
 Silverlight


                        WCF Service
Power Point                                                            AdCenter
                         Interface
   DIA


 Windows                                                                Twitter
  Mobile


               Kobe.Web.UI            Kobe.Services    Kobe.FoundationalServices
テクノロジーとパターンの選択
アーキテクチャ要素         Microsoft technology

ブラウザープラグイン        Silverlight

Ajax ライブラリ        ASP.NET AJAX

ウィジェット            Windows Live Writer, Photo gallery, Office

ユビキタスチャネル         Windows Mobile, Zune, XBOX, Windows Media Center

リッチクライアント         Windows Presentation Foundation

Web ページフレームワーク    ASP.NET , ASP.NET MVC

Web サービスフレームワーク   Windows Communication Foundation,
                  ADO.NET Data Services

サービスロジック          .NET Services

ファウンデーショナルサービス    LINQ , Entity Framework , ASP.NET Dynamic Data
アダプター

データ/非構造化ストレージ     SQL Server, SSDS, Azure Storage

ユーザー管理            Windows Live
ソーシャルサービス

広告                AdCenter

検索                Live Search
Category                  Type                    Pattern

Application Structuring   Architectural           MVC

Browser Client User       Design                  AJAX(RIA)
Experience
                          Implementation          Predictive Fetch

                                                  Auto Complete

                                                  Partial Page Update

Web Services              Design/Implementation   RESTful Services

                                                  SOAP Messaging

                                                  Syndication (RSS & Atom)

Data Access               Architectural           Repository

                          Design/Implementation   ORM

Foundational Services     Architectural           Adapter

                          Implementation          Provider
選択基準=アーキテクチャの観点
従来の観点に加え
Web2.0特有の観点
 ファインダビリティ
プログラマビリティ
エクステンシビリティ
  アジャイル開発
     ……
それほどシンプル?
現実の開発作業は
もう少しややこしい
実装ドリルダウン
                                     データ



ブラウザー     Web アプリ                   非構造化
         フレームワーク                    ストレージ




 AJAX                               ユーザー管理
                           ファウンデー
                    サービス   ショナルサー
 ブラウザ               ロジック    ビスアダプ
                                    ソーシャル
プラグイン                         ター    サービス



         Web サービス
         フレームワーク                     広告
ウィジェット


ユビキタス
                                     検索
チャネル
-   RIA テクノロジー
-   Webアプリケーションの構造
-   RESTful Web サービス
-   ファウンデーショナルサービス
RIA テクノロジー
Rich Internet Application?
RIA はこれを提供する…

-   非同期アクセス
-   部分的なレンダリング
-   マルチメディアコンテンツの統合
-   DOMを多用するレンダリング
-   ネットワークの効果的な利用
-   インタラクティブなUI
-   ローカルリソースの活用
                                  RIA パターン

Pattern category   Patterns           Brief summary
Ajax               Predictive fetch   Predict what will be the next move of the user, and retrieve and
                                      cache the data before user takes any action

                   Periodical         Automatically updates the UI periodically without the full page
                                      postback
                   refresh
User Navigation    Carousel           Show only a selected few items at a time from a large set of items to utilize
                                      the limited real estate effectively

                   Breadcrumb         Let users know their location in the website's hierarchical structure


Multi-media        Thumbnail          Provide miniature version of multi-media contents to browse quickly through
                                      a collection of contents
Integration
                   Zoom               Provide users ability to zoom in on an image to view a details in a high
                                      resolution

Responsiveness     Guesstimate        Make a reasonable guess instead of requesting information from server to
                                      reduce the number of roundtrips.

                   Auto complete      Display a list of suggested items that most closely match what the user has
                                      typed.
RIA 要素を特定
Logo | Welcome <User> (Sign out) | Invite
                                            Animation                                                          Auto Complete
                                                                                                             Site Search
  Home           Browse            Upload          My Zone       Community        Business     Accessories




                                                              Slide/Presentation User Comments           X
                                                              + Comment



          Presentation Viewer
         Multi-Media Integration                                     Partial Rendering



  <Slide Navigation Controls> | Notes

         Embed      Download         + Favorites+ Recommend               Tweet       FriendFeed              Contextual Ads
                                        Partial Rendering
  Related Presentations By Topic                             Related Presentations By Author


                          Title                                                     Title
                          Description                                               Description

                          Title                                                     Title
                          Description                                               Description
RIAテクノロジーの選択方法
                                RIA: テクノロジー選択
                                                                                                          ASP.NET
                                  Static                                                                   AJAX
                                  HTML                                                    Simple
                          NO
                                                                       rendering                                                  jQuery
Either of the “Rich” UI
 elements required?
                                                                                          Complex                       Data
                          YES                        NO                                                      Server
                                Multi-media                                                               interaction
                                 content                                                                                Visual
                                                     YES                                                                pages    ASP.NET
                                                                                                                                  AJAX
                                                                       Silverlight




                                サービスとの対話
                                                                                               Controller

                                                                                   Page
                                              Retrieve Page or Data?
                                                                                   Data

                                                                                                    API
Web アプリケーション構造
ASP.NET MVC vs. ASP.NET
ASP.NET MVC   - 関心事の分離
              - クリーンなURL
              - テスト容易性
              - HTML 出力に対するコントロール

ASP.NET       - インスタント開発
              - 豊富なサーバーコントロール
              - MS テクノロジーとの融合
ASP.NET MVC
RESTful Webサービス
REST: 原則
 Addressability
Uniform Interface
    Stateless
  Connectedness
REST: 実装
  クリーンURL
シリアライゼーション
 シンディケーション
  エラーコード
キャッシュコントロール
  ユーザー認証
ASP.NET MVC     -コードの再利用
                -クリーンなURL

Windows         - プロトコルのコントロール
Communication   -バインディングオプション
Foundation      -クリーンなURL

ADO.NET Data    - インスタント開発
Services        - データ駆動Web
WCF
ファウンデーショナルサービス
変化に対応するためのデザイン
Service
 Logic
これらを適用した結果
                Planet PPT Framework
                                                                       R2

               ASP.NET MVC
                                                                        SQL
                                                                       Server
                Controller                                              2008
 Browser                                              Repository
                                                           +
                                                         Entity
                                                      Framework
                                                                        Azure
                  View                                                 Storage
 jQuery
 ASP.NET                       Service
  AJAX                       Implementat   Provider
                                 ion
                                                          Windows Live
 Silverlight


               WCF Service
Power Point                                                 AdCenter
                Interface
   DIA


 Windows                                                     Twitter
  Mobile
残りの作業は?
このサイトはセキュアか?
                  Threat Modeling




http://www.microsoft.com/downloads/details.aspx?familyid=59888078-9DAF-
4E96-B7D1-944703479451&displaylang=en
                           Threat Modeling
Threats                      Countermeasures
XSS                          Encoding output texts

One-Click Attack             Make the request that encapsulates the user action unique for
                             each authenticated user
HTTP replay attack           SSL
Network Eavesdropping        SSL or IPSEC
Password brute Force         Implement lockout policy
Repudiation attack           Implement proper and effective logging
File Canonicalization        Validate length of file names and verify regular expression on
                             the file name inputs
Denial of Service            Validate #of requests, file size
                             Implement proper exceptions
                             Don’t display detailed error messages to users
Forceful Browsing            Authorization control
                             Encrypting data
Man in the middle attack     SSL or IPSEC
SQL injection                LINQ eliminates the possibilities of SQL injection
Session hijacking            We don’t have to do this because all information we store in
                             the session is images.
Response splitting           Context sensitive encoding
このサイトは標準に準拠してるか?
XHTML/RSS バリデーション
   http://validator.w3.org
プロダクションへの移行
           Web Deployment Tool
http://www.iis.net/downloads/default.aspx?tabid=34&g=6&i=1602
今後の予定
               Planet PPT R2
Requirements                                           R2

Scalable Social Services                               X
Scalable Storage – Presentations and Structured Data   X
Scalable Operating Environment                         X
Usage Analytics                                        X
Microsoft Ad Center/Atlas Integration                  X
Add-in for PowerPoint 2007 (Desktop Edition)           X
                                                                                                                                           Expression
Implementation Architecture
                                                               Delivery Channels




                                                                                                                                  Popfly
                                 Browser - ASP.NET MVC, ASP.NET AJAX,
                                                                                        PC (PowerPoint 2007) - VSTO
                                               SilverLight



                                                           Service Interfaces/APIs
       Planet PPT R2



                                                        Windows Communication Foundation




                                                                                                                                                        Visual Studio
                                                                     IP Services
                                                                    .NET Framework




                                                                                                                                                                        Server Admin Tools
                                                               Foundational Services
                                             Content                                                   Usage
                              Data Access               User Mgmt           Social        Search                    Advertising
                                              Mgmt                                                    Analytics



                                                                                     Adapter

                              Repository

                                                            Infrastructure - Cloud Platforms

                                  Windows Azure         SQL Data Services             Live Services           Ad Center/Atlas


                                                                                                                                                        Tools
みなさんへのお願い
    PlanetPPT

2月下旬公開予定
本日何枚のスライドを使ったでしょう?
ありがとうございました!

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:0
posted:5/11/2013
language:Japanese
pages:104
yaofenjin yaofenjin http://
About