SlideShare ist ein Scribd-Unternehmen logo
1 von 60
Downloaden Sie, um offline zu lesen
lightweight SOA
with web widgets
      Phillip Calçado
   http://fragmental.tw
SOAP/WS-*
   vs.
  REST
X
SOAP/WS-*
   vs.
  REST
15 tv channels
8 radio stations
19 magazines & newspapers



     500+ web sites
800 videos
900,000 visits
    every day
previous architecture
pretty picture
                               Corporate
                               Database




                                                   video.globo.com
 Media Encoder
                                xyz.globo.com
  Media Encoder
   Media Encoder
    Media Encoder
     Media Encoder




                                                Internet
Movie    Sound       Picture
real world
Media Encoder

                  SQL
                               Corporate                      xyz.globo.com



                               Database
                                                    SQL
                  SQL

           SOAP                               SQL
                          SQL
                                                       HTML
                            video.globo.com



                  SOAP                          HTML

                                                          Internet

                Media Transfer Protocol
two main problems
1) audio and
video production

2) integration with
other sites
1) audio and
video production
Media Encoder




                   Corporate
                   Database




                video.globo.com
Media Encoder




                   Corporate
                   Database




Media Encoder

                video.globo.com
multiple
Media Encoder




                                              Corporate



   instances
                                              Database




Media Encoder

                                           video.globo.com


                     managed by different companies
                with different interests and schedules
Media Encoder




                   Corporate
                   Database

 v1.0




Media Encoder

                video.globo.com




v1.1.1
multiple
Media Encoder




                                       Corporate
                                       Database


                    versions
    v1.0




Media Encoder

                                    video.globo.com




   hard to know who is using what

   v1.1.1
2) integration
with other sites
Media Encoder




                   Corporate      xyz.globo.com



                   Database




                video.globo.com
main
Corporate
            integration
Database
            point
xyz.globo.com




Corporate      Table C
Table B
                         xyz.globo.com




DatabaseTable D
Table A                  xyz.globo.com




                         xyz.globo.com




      video.globo.com
X
                         xyz.globo.com




Corporate      Table C
Table B
                         xyz.globo.com




DatabaseTable D
Table A                  xyz.globo.com




                         xyz.globo.com




      video.globo.com
xyz.globo.com




Corporate       View C
Table B
                         xyz.globo.com




DatabaseTable D
Table A                  xyz.globo.com




                         xyz.globo.com




      video.globo.com
xyz.globo.com




        Corporate      View C
       View B
                                xyz.globo.com

Table E    Table F
        Database   View D
        View A                  xyz.globo.com




                                xyz.globo.com




             video.globo.com
no contracts                                   xyz.globo.com




 Corporate               View C
          View B
                                               xyz.globo.com

Table E     Table F
          Database
                 View D
          View A                               xyz.globo.com




                                  just get what you want
                                               xyz.globo.com




                                          from my tables

               video.globo.com
Corporate
                     Database

Ratings                                                 Ratings




Video     Show                                          Video     Show




                                        xyz.globo.com
                 video.globo.com




                             Internet
Corporate
                     Database

Ratings                                                 Ratings




Video     Show                                          Video     Show




                            same logic  xyz.globo.com
                 video.globo.com




                             Internet
40% code
                           Corporate
                           Database


                       duplication
      Ratings                                                 Ratings




      Video     Show                                          Video     Show




                                  same logic  xyz.globo.com
                       video.globo.com




among different systems
developed by different people
                                   Internet
the new architecture
pretty picture
                               Corporate
                               Database




                                                   video.globo.com
 Media Encoder
                                xyz.globo.com
  Media Encoder
   Media Encoder
    Media Encoder
     Media Encoder




                                                Internet
Movie    Sound       Picture
pretty picture
                                Media
                               Services




                                                  video.globo.com
 Media Encoder
                               xyz.globo.com
  Media Encoder
   Media Encoder
    Media Encoder
     Media Encoder




                                               Internet
Movie    Sound       Picture
real world
Media Encoder

                HTTP
                                Media                    xyz.globo.com
                               Services




                                               HTTP


                                       HTTP
            SOAP
                                                      HTML
                             video.globo.com




                                               HTML

                                                        Internet

                Media Transfer Protocol
1) audio and
video production
multiple        multiple
Media Encoder




          +          Corporate
instances       versions
                     Database
    v1.0




Media Encoder

                  video.globo.com




   v1.1.1
multiple              multiple
Media Encoder




          +                Corporate
instances             versions
                           Database
    v1.0




                versioned
Media Encoder

                        video.globo.com




                 services
   v1.1.1
Media Encoder

            http://mediaservices/v1/media/135
                                        Corporate
                                        Database
    v1.0


            http://mediaservices/v2/media/135


Media Encoder


            http://mediaservices/v3/media/135
                                     video.globo.com




   v1.1.1
Media Encoder




                   Corporate
                   Database

 v1.0




Media Encoder

                video.globo.com




v1.1.1
HTTP
Media Encoder



                 POST media/v1.0


 v1.0
                                       Media
                                      Services


Media Encoder




                 HTTP
                  POST media/v1.1.1
v1.1.1
2) integration
with other sites
no              code
             +
contracts duplication             xyz.globo.com




   Corporate             View C
          View B
                                  xyz.globo.com

Table E     Table F
          Database
                 View D
          View A                  xyz.globo.com




                                  xyz.globo.com




               video.globo.com
no              code
             +
contracts duplication             xyz.globo.com




   Corporate             View C
          View B
                                  xyz.globo.com

Table E     Table F
          Database
                 View D
          View A


 web sites as
                                  xyz.globo.com




                                  xyz.globo.com




service clientsvideo.globo.com
Corporate
                     Database

Ratings                                                 Ratings




Video     Show                                          Video     Show




                            same logic  xyz.globo.com
                 video.globo.com




                             Internet
Media
            Services
Ratings


                                          logic
Video                  Show




                              xyz.globo.com
     video.globo.com




                 Internet
Code Duplication

    40%

    35%

    30%

    25%

    20%

    15%

    10%

     5%

     0%
Database Integration                      Web Services
evolving
<set>                             <set>
      <video id=quot;1quot;/>                   <video id=quot;1quot;/>

                           xml
      <video id=quot;2quot;/>                   <video id=quot;2quot;/>
      <video id=quot;3quot;/>                   <video id=quot;3quot;/>
  </set>                            </set>




                                      ?    xyz.globo.com
        video.globo.com




<div>                             <div>
    <h2>video title</h2>              <h2>video title</h2>

                           html
    <p>description                    <p>description
    description</p>                   description</p>
</div>                            </div>
<set>
      <video id=quot;1quot;/>

                           json/xml
      <video id=quot;2quot;/>
      <video id=quot;3quot;/>
  </set>




                           JavaScript
        Widgets




<div>
    <h2>video title</h2>

                             html
    <p>description
    description</p>
</div>
real world
   Media                    xyz.globo.com
  Services




                  HTTP


          HTTP
                         HTML
video.globo.com




                  HTML

                           Internet
real world
   Media                     xyz.globo.com
  Services




                                             JavaScript
                  HTTP
                           Widgets


                                              HTML
video.globo.com




                     JavaScript

                                       Internet
<script type=quot;text/javascriptquot;
src=quot;http://video.globo.com//Wdgts/9461.htmlquot;>
</script>
<script type=quot;text/javascriptquot;>
var c = new WidgetContext(
{'id':'4413','type':'show'},{});
var a = new CalendarBox(c,false);
a.render;
</script>
Code Duplication

    40%

    35%

    30%

    25%

    20%

    15%

    10%

     5%

     0%
Database Integration                      Web Services
Code Duplication

    40%

    35%

    30%

    25%

    20%

    15%

    10%

     5%

     0%
Database Integration    Web Services      Widgets API
some problems
• managing Service Versioning is still
  hard, keep just the previous version
  and only if needed
• URI versioning can be problematic, we
  made it optional and added an http
  header
• it’s very hard to be fully RESTful, be
  pragmatic
• strong primitives are flexible
Thank you!
   Phillip Calçado
http://fragmental.tw
This work is licensed under a Creative Commons
    Attribution-Share Alike 2.5 Australia License

http://creativecommons.org/licenses/by-sa/2.5/au/
TV Globo and Globo.com are
  trademarks in Brazil and
      other countries.
    Used by permission.

Weitere ähnliche Inhalte

Ähnlich wie lightweight SOA with web widgets

Flash Camp Chennai - Newbie
Flash Camp Chennai - NewbieFlash Camp Chennai - Newbie
Flash Camp Chennai - NewbieRIA RUI Society
 
Mobile March-Mobile By the Numbers with Lisa Foote
Mobile March-Mobile By the Numbers with Lisa FooteMobile March-Mobile By the Numbers with Lisa Foote
Mobile March-Mobile By the Numbers with Lisa FooteRemainComm
 
dotSUB Presentation - SMAU - October 2011
dotSUB Presentation - SMAU - October 2011dotSUB Presentation - SMAU - October 2011
dotSUB Presentation - SMAU - October 2011Dotsub
 
Introduction to Cloud Computing - COA101
Introduction to Cloud Computing - COA101Introduction to Cloud Computing - COA101
Introduction to Cloud Computing - COA101Martin Hamilton
 
Not Just Video—VideoSEO
Not Just Video—VideoSEONot Just Video—VideoSEO
Not Just Video—VideoSEOBusinessOnline
 
CrowdCrew final report venture-lab 2012
CrowdCrew final report venture-lab 2012CrowdCrew final report venture-lab 2012
CrowdCrew final report venture-lab 2012Massimo Riera
 
An api is not "yet another feature"
An api is not "yet another feature"An api is not "yet another feature"
An api is not "yet another feature"Shay Weiner
 
Word Press Blogging2010
Word Press Blogging2010Word Press Blogging2010
Word Press Blogging2010BobWP.com
 
Qcon flex体系架构深度剖析
Qcon flex体系架构深度剖析Qcon flex体系架构深度剖析
Qcon flex体系架构深度剖析youzitang
 
Adobe Flex体系架构深度剖析
Adobe Flex体系架构深度剖析Adobe Flex体系架构深度剖析
Adobe Flex体系架构深度剖析George Ang
 
Make Video Visible with Video SEO
Make Video Visible with Video SEOMake Video Visible with Video SEO
Make Video Visible with Video SEOPixability
 
TechDays 2010 Portugal - Introduction to Silverlight 4.0 16x9
TechDays 2010 Portugal - Introduction to Silverlight 4.0 16x9TechDays 2010 Portugal - Introduction to Silverlight 4.0 16x9
TechDays 2010 Portugal - Introduction to Silverlight 4.0 16x9Nuno Godinho
 
Programr overview2
Programr overview2Programr overview2
Programr overview2_programr
 
Android + jenkins
Android + jenkinsAndroid + jenkins
Android + jenkinsFred Lin
 
GitHub Enterprise and Automation with Codedeploy - AWS Summit SG 2017
GitHub Enterprise and Automation with Codedeploy - AWS Summit SG 2017GitHub Enterprise and Automation with Codedeploy - AWS Summit SG 2017
GitHub Enterprise and Automation with Codedeploy - AWS Summit SG 2017Amazon Web Services
 

Ähnlich wie lightweight SOA with web widgets (20)

Flash Camp Chennai - Newbie
Flash Camp Chennai - NewbieFlash Camp Chennai - Newbie
Flash Camp Chennai - Newbie
 
Mobile March-Mobile By the Numbers with Lisa Foote
Mobile March-Mobile By the Numbers with Lisa FooteMobile March-Mobile By the Numbers with Lisa Foote
Mobile March-Mobile By the Numbers with Lisa Foote
 
dotSUB Presentation - SMAU - October 2011
dotSUB Presentation - SMAU - October 2011dotSUB Presentation - SMAU - October 2011
dotSUB Presentation - SMAU - October 2011
 
Introduction to Cloud Computing - COA101
Introduction to Cloud Computing - COA101Introduction to Cloud Computing - COA101
Introduction to Cloud Computing - COA101
 
Not Just Video—VideoSEO
Not Just Video—VideoSEONot Just Video—VideoSEO
Not Just Video—VideoSEO
 
VR post production
VR post production VR post production
VR post production
 
CrowdCrew final report venture-lab 2012
CrowdCrew final report venture-lab 2012CrowdCrew final report venture-lab 2012
CrowdCrew final report venture-lab 2012
 
An api is not "yet another feature"
An api is not "yet another feature"An api is not "yet another feature"
An api is not "yet another feature"
 
Word Press Blogging2010
Word Press Blogging2010Word Press Blogging2010
Word Press Blogging2010
 
Qcon flex体系架构深度剖析
Qcon flex体系架构深度剖析Qcon flex体系架构深度剖析
Qcon flex体系架构深度剖析
 
Adobe Flex体系架构深度剖析
Adobe Flex体系架构深度剖析Adobe Flex体系架构深度剖析
Adobe Flex体系架构深度剖析
 
GitIndex e SourceServer
GitIndex e SourceServerGitIndex e SourceServer
GitIndex e SourceServer
 
web2.0 Trends Updated - March 2008
web2.0 Trends Updated - March 2008web2.0 Trends Updated - March 2008
web2.0 Trends Updated - March 2008
 
Make Video Visible with Video SEO
Make Video Visible with Video SEOMake Video Visible with Video SEO
Make Video Visible with Video SEO
 
What is Brillo
What is BrilloWhat is Brillo
What is Brillo
 
TechDays 2010 Portugal - Introduction to Silverlight 4.0 16x9
TechDays 2010 Portugal - Introduction to Silverlight 4.0 16x9TechDays 2010 Portugal - Introduction to Silverlight 4.0 16x9
TechDays 2010 Portugal - Introduction to Silverlight 4.0 16x9
 
Programr overview2
Programr overview2Programr overview2
Programr overview2
 
Android + jenkins
Android + jenkinsAndroid + jenkins
Android + jenkins
 
Harsh ppt
Harsh pptHarsh ppt
Harsh ppt
 
GitHub Enterprise and Automation with Codedeploy - AWS Summit SG 2017
GitHub Enterprise and Automation with Codedeploy - AWS Summit SG 2017GitHub Enterprise and Automation with Codedeploy - AWS Summit SG 2017
GitHub Enterprise and Automation with Codedeploy - AWS Summit SG 2017
 

Mehr von Phil Calçado

the afterparty: refactoring after 100x hypergrowth
the afterparty: refactoring after 100x hypergrowththe afterparty: refactoring after 100x hypergrowth
the afterparty: refactoring after 100x hypergrowthPhil Calçado
 
don't try this at home: self-improvement as a senior leader
don't try this at home: self-improvement as a senior leaderdon't try this at home: self-improvement as a senior leader
don't try this at home: self-improvement as a senior leaderPhil Calçado
 
The Economics of Microservices (redux)
The Economics of Microservices (redux)The Economics of Microservices (redux)
The Economics of Microservices (redux)Phil Calçado
 
From microservices to serverless - Chicago CTO Summit 2019
From microservices to serverless - Chicago CTO Summit 2019From microservices to serverless - Chicago CTO Summit 2019
From microservices to serverless - Chicago CTO Summit 2019Phil Calçado
 
The Not-So-Straightforward Road From Microservices to Serverless
The Not-So-Straightforward Road From Microservices to ServerlessThe Not-So-Straightforward Road From Microservices to Serverless
The Not-So-Straightforward Road From Microservices to ServerlessPhil Calçado
 
Ten Years of Failing Microservices
Ten Years of Failing MicroservicesTen Years of Failing Microservices
Ten Years of Failing MicroservicesPhil Calçado
 
The Next Generation of Microservices
The Next Generation of MicroservicesThe Next Generation of Microservices
The Next Generation of MicroservicesPhil Calçado
 
The Next Generation of Microservices — YOW 2017 Brisbane
The Next Generation of Microservices — YOW 2017 BrisbaneThe Next Generation of Microservices — YOW 2017 Brisbane
The Next Generation of Microservices — YOW 2017 BrisbanePhil Calçado
 
The Economics of Microservices (2017 CraftConf)
The Economics of Microservices  (2017 CraftConf)The Economics of Microservices  (2017 CraftConf)
The Economics of Microservices (2017 CraftConf)Phil Calçado
 
Microservices vs. The First Law of Distributed Objects - GOTO Nights Chicago ...
Microservices vs. The First Law of Distributed Objects - GOTO Nights Chicago ...Microservices vs. The First Law of Distributed Objects - GOTO Nights Chicago ...
Microservices vs. The First Law of Distributed Objects - GOTO Nights Chicago ...Phil Calçado
 
Finagle @ SoundCloud
Finagle @ SoundCloudFinagle @ SoundCloud
Finagle @ SoundCloudPhil Calçado
 
A Brief Talk On High-Performing Organisations
A Brief Talk On High-Performing OrganisationsA Brief Talk On High-Performing Organisations
A Brief Talk On High-Performing OrganisationsPhil Calçado
 
Three Years of Microservices at SoundCloud - Distributed Matters Berlin 2015
Three Years of Microservices at SoundCloud - Distributed Matters Berlin 2015Three Years of Microservices at SoundCloud - Distributed Matters Berlin 2015
Three Years of Microservices at SoundCloud - Distributed Matters Berlin 2015Phil Calçado
 
Rhein-Main Scala Enthusiasts — Your microservice as a Function
Rhein-Main Scala Enthusiasts — Your microservice as a FunctionRhein-Main Scala Enthusiasts — Your microservice as a Function
Rhein-Main Scala Enthusiasts — Your microservice as a FunctionPhil Calçado
 
ScalaItaly 2015 - Your Microservice as a Function
ScalaItaly 2015 - Your Microservice as a FunctionScalaItaly 2015 - Your Microservice as a Function
ScalaItaly 2015 - Your Microservice as a FunctionPhil Calçado
 
Finagle-Based Microservices at SoundCloud
Finagle-Based Microservices at SoundCloudFinagle-Based Microservices at SoundCloud
Finagle-Based Microservices at SoundCloudPhil Calçado
 
An example of Future composition in a real app
An example of Future composition in a real appAn example of Future composition in a real app
An example of Future composition in a real appPhil Calçado
 
APIs: The Problems with Eating your Own Dog Food
APIs: The Problems with Eating your Own Dog FoodAPIs: The Problems with Eating your Own Dog Food
APIs: The Problems with Eating your Own Dog FoodPhil Calçado
 
Evolutionary Architecture at Work
Evolutionary  Architecture at WorkEvolutionary  Architecture at Work
Evolutionary Architecture at WorkPhil Calçado
 
Structuring apps in Scala
Structuring apps in ScalaStructuring apps in Scala
Structuring apps in ScalaPhil Calçado
 

Mehr von Phil Calçado (20)

the afterparty: refactoring after 100x hypergrowth
the afterparty: refactoring after 100x hypergrowththe afterparty: refactoring after 100x hypergrowth
the afterparty: refactoring after 100x hypergrowth
 
don't try this at home: self-improvement as a senior leader
don't try this at home: self-improvement as a senior leaderdon't try this at home: self-improvement as a senior leader
don't try this at home: self-improvement as a senior leader
 
The Economics of Microservices (redux)
The Economics of Microservices (redux)The Economics of Microservices (redux)
The Economics of Microservices (redux)
 
From microservices to serverless - Chicago CTO Summit 2019
From microservices to serverless - Chicago CTO Summit 2019From microservices to serverless - Chicago CTO Summit 2019
From microservices to serverless - Chicago CTO Summit 2019
 
The Not-So-Straightforward Road From Microservices to Serverless
The Not-So-Straightforward Road From Microservices to ServerlessThe Not-So-Straightforward Road From Microservices to Serverless
The Not-So-Straightforward Road From Microservices to Serverless
 
Ten Years of Failing Microservices
Ten Years of Failing MicroservicesTen Years of Failing Microservices
Ten Years of Failing Microservices
 
The Next Generation of Microservices
The Next Generation of MicroservicesThe Next Generation of Microservices
The Next Generation of Microservices
 
The Next Generation of Microservices — YOW 2017 Brisbane
The Next Generation of Microservices — YOW 2017 BrisbaneThe Next Generation of Microservices — YOW 2017 Brisbane
The Next Generation of Microservices — YOW 2017 Brisbane
 
The Economics of Microservices (2017 CraftConf)
The Economics of Microservices  (2017 CraftConf)The Economics of Microservices  (2017 CraftConf)
The Economics of Microservices (2017 CraftConf)
 
Microservices vs. The First Law of Distributed Objects - GOTO Nights Chicago ...
Microservices vs. The First Law of Distributed Objects - GOTO Nights Chicago ...Microservices vs. The First Law of Distributed Objects - GOTO Nights Chicago ...
Microservices vs. The First Law of Distributed Objects - GOTO Nights Chicago ...
 
Finagle @ SoundCloud
Finagle @ SoundCloudFinagle @ SoundCloud
Finagle @ SoundCloud
 
A Brief Talk On High-Performing Organisations
A Brief Talk On High-Performing OrganisationsA Brief Talk On High-Performing Organisations
A Brief Talk On High-Performing Organisations
 
Three Years of Microservices at SoundCloud - Distributed Matters Berlin 2015
Three Years of Microservices at SoundCloud - Distributed Matters Berlin 2015Three Years of Microservices at SoundCloud - Distributed Matters Berlin 2015
Three Years of Microservices at SoundCloud - Distributed Matters Berlin 2015
 
Rhein-Main Scala Enthusiasts — Your microservice as a Function
Rhein-Main Scala Enthusiasts — Your microservice as a FunctionRhein-Main Scala Enthusiasts — Your microservice as a Function
Rhein-Main Scala Enthusiasts — Your microservice as a Function
 
ScalaItaly 2015 - Your Microservice as a Function
ScalaItaly 2015 - Your Microservice as a FunctionScalaItaly 2015 - Your Microservice as a Function
ScalaItaly 2015 - Your Microservice as a Function
 
Finagle-Based Microservices at SoundCloud
Finagle-Based Microservices at SoundCloudFinagle-Based Microservices at SoundCloud
Finagle-Based Microservices at SoundCloud
 
An example of Future composition in a real app
An example of Future composition in a real appAn example of Future composition in a real app
An example of Future composition in a real app
 
APIs: The Problems with Eating your Own Dog Food
APIs: The Problems with Eating your Own Dog FoodAPIs: The Problems with Eating your Own Dog Food
APIs: The Problems with Eating your Own Dog Food
 
Evolutionary Architecture at Work
Evolutionary  Architecture at WorkEvolutionary  Architecture at Work
Evolutionary Architecture at Work
 
Structuring apps in Scala
Structuring apps in ScalaStructuring apps in Scala
Structuring apps in Scala
 

Kürzlich hochgeladen

Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 

Kürzlich hochgeladen (20)

Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 

lightweight SOA with web widgets

  • 1. lightweight SOA with web widgets Phillip Calçado http://fragmental.tw
  • 2. SOAP/WS-* vs. REST
  • 3. X SOAP/WS-* vs. REST
  • 4.
  • 5. 15 tv channels 8 radio stations 19 magazines & newspapers 500+ web sites
  • 6.
  • 9. pretty picture Corporate Database video.globo.com Media Encoder xyz.globo.com Media Encoder Media Encoder Media Encoder Media Encoder Internet Movie Sound Picture
  • 10. real world Media Encoder SQL Corporate xyz.globo.com Database SQL SQL SOAP SQL SQL HTML video.globo.com SOAP HTML Internet Media Transfer Protocol
  • 12. 1) audio and video production 2) integration with other sites
  • 13. 1) audio and video production
  • 14. Media Encoder Corporate Database video.globo.com
  • 15. Media Encoder Corporate Database Media Encoder video.globo.com
  • 16. multiple Media Encoder Corporate instances Database Media Encoder video.globo.com managed by different companies with different interests and schedules
  • 17. Media Encoder Corporate Database v1.0 Media Encoder video.globo.com v1.1.1
  • 18. multiple Media Encoder Corporate Database versions v1.0 Media Encoder video.globo.com hard to know who is using what v1.1.1
  • 20. Media Encoder Corporate xyz.globo.com Database video.globo.com
  • 21. main Corporate integration Database point
  • 22. xyz.globo.com Corporate Table C Table B xyz.globo.com DatabaseTable D Table A xyz.globo.com xyz.globo.com video.globo.com
  • 23. X xyz.globo.com Corporate Table C Table B xyz.globo.com DatabaseTable D Table A xyz.globo.com xyz.globo.com video.globo.com
  • 24. xyz.globo.com Corporate View C Table B xyz.globo.com DatabaseTable D Table A xyz.globo.com xyz.globo.com video.globo.com
  • 25. xyz.globo.com Corporate View C View B xyz.globo.com Table E Table F Database View D View A xyz.globo.com xyz.globo.com video.globo.com
  • 26. no contracts xyz.globo.com Corporate View C View B xyz.globo.com Table E Table F Database View D View A xyz.globo.com just get what you want xyz.globo.com from my tables video.globo.com
  • 27. Corporate Database Ratings Ratings Video Show Video Show xyz.globo.com video.globo.com Internet
  • 28. Corporate Database Ratings Ratings Video Show Video Show same logic xyz.globo.com video.globo.com Internet
  • 29. 40% code Corporate Database duplication Ratings Ratings Video Show Video Show same logic xyz.globo.com video.globo.com among different systems developed by different people Internet
  • 31. pretty picture Corporate Database video.globo.com Media Encoder xyz.globo.com Media Encoder Media Encoder Media Encoder Media Encoder Internet Movie Sound Picture
  • 32. pretty picture Media Services video.globo.com Media Encoder xyz.globo.com Media Encoder Media Encoder Media Encoder Media Encoder Internet Movie Sound Picture
  • 33. real world Media Encoder HTTP Media xyz.globo.com Services HTTP HTTP SOAP HTML video.globo.com HTML Internet Media Transfer Protocol
  • 34. 1) audio and video production
  • 35. multiple multiple Media Encoder + Corporate instances versions Database v1.0 Media Encoder video.globo.com v1.1.1
  • 36. multiple multiple Media Encoder + Corporate instances versions Database v1.0 versioned Media Encoder video.globo.com services v1.1.1
  • 37. Media Encoder http://mediaservices/v1/media/135 Corporate Database v1.0 http://mediaservices/v2/media/135 Media Encoder http://mediaservices/v3/media/135 video.globo.com v1.1.1
  • 38. Media Encoder Corporate Database v1.0 Media Encoder video.globo.com v1.1.1
  • 39. HTTP Media Encoder POST media/v1.0 v1.0 Media Services Media Encoder HTTP POST media/v1.1.1 v1.1.1
  • 41. no code + contracts duplication xyz.globo.com Corporate View C View B xyz.globo.com Table E Table F Database View D View A xyz.globo.com xyz.globo.com video.globo.com
  • 42. no code + contracts duplication xyz.globo.com Corporate View C View B xyz.globo.com Table E Table F Database View D View A web sites as xyz.globo.com xyz.globo.com service clientsvideo.globo.com
  • 43. Corporate Database Ratings Ratings Video Show Video Show same logic xyz.globo.com video.globo.com Internet
  • 44. Media Services Ratings logic Video Show xyz.globo.com video.globo.com Internet
  • 45. Code Duplication 40% 35% 30% 25% 20% 15% 10% 5% 0% Database Integration Web Services
  • 47. <set> <set> <video id=quot;1quot;/> <video id=quot;1quot;/> xml <video id=quot;2quot;/> <video id=quot;2quot;/> <video id=quot;3quot;/> <video id=quot;3quot;/> </set> </set> ? xyz.globo.com video.globo.com <div> <div> <h2>video title</h2> <h2>video title</h2> html <p>description <p>description description</p> description</p> </div> </div>
  • 48. <set> <video id=quot;1quot;/> json/xml <video id=quot;2quot;/> <video id=quot;3quot;/> </set> JavaScript Widgets <div> <h2>video title</h2> html <p>description description</p> </div>
  • 49. real world Media xyz.globo.com Services HTTP HTTP HTML video.globo.com HTML Internet
  • 50. real world Media xyz.globo.com Services JavaScript HTTP Widgets HTML video.globo.com JavaScript Internet
  • 51.
  • 52. <script type=quot;text/javascriptquot; src=quot;http://video.globo.com//Wdgts/9461.htmlquot;> </script> <script type=quot;text/javascriptquot;> var c = new WidgetContext( {'id':'4413','type':'show'},{}); var a = new CalendarBox(c,false); a.render; </script>
  • 53. Code Duplication 40% 35% 30% 25% 20% 15% 10% 5% 0% Database Integration Web Services
  • 54. Code Duplication 40% 35% 30% 25% 20% 15% 10% 5% 0% Database Integration Web Services Widgets API
  • 55.
  • 56.
  • 57. some problems • managing Service Versioning is still hard, keep just the previous version and only if needed • URI versioning can be problematic, we made it optional and added an http header • it’s very hard to be fully RESTful, be pragmatic • strong primitives are flexible
  • 58. Thank you! Phillip Calçado http://fragmental.tw
  • 59. This work is licensed under a Creative Commons Attribution-Share Alike 2.5 Australia License http://creativecommons.org/licenses/by-sa/2.5/au/
  • 60. TV Globo and Globo.com are trademarks in Brazil and other countries. Used by permission.