SlideShare a Scribd company logo
Designing
Enterprise IT Systems with REST:
     A (Cloudy) Case Study




                                      Stuart Charlton
                     Chief Software Architect, Elastra



             San Francisco 2008
Objectives
 What enterprise problem domains does
 RESTful architecture handle well?

 Understanding Hypermedia as a primary
 systems abstraction

 Suggested capabilities of RESTful Clients
  • Metadata & Versioning
  • Semantics & Querying
  • Security

   San Francisco 2008                        2
About Your Presenter
 Stuart Charlton
  • Canadian,
    now in San Francisco
 Chief Architect, Elastra
  • Responsible for technical
    direction & long-term
    product strategy
 In prior lives...
  • BEA Systems,
    Rogers Communications,
    Financial Services,
    global training & consulting
 Stu Says Stuff
 http://stucharlton.com/blog


    San Francisco 2008             3
Caveats
 REST is defined in Roy Fielding’s thesis
  • Go there for truth, I’m merely a theologian
 Web architecture is an evolving field
  • This is most of what I’m talking about
 I don’t expect everyone to agree with me
  • Some think actions via HTTP POST are a bad thing
  • I think they’re essential; “REST is not File Storage”
 I actually like the Semantic Web
  • ...and thus cannot be trusted
    San Francisco 2008                                      4
A Simple Reference Architecture



                  Presentation Services (e.g. GUI)


         Business Services (e.g. Transactions, BPM)


Data Services (e.g. DBMS, Logs, Event Streams, etc.)




       San Francisco 2008                              5
Web architecture helps to burst silos

                                       Web Architecture


                  Presentation Services (e.g. GUI)


         Business Services (e.g. Transactions, BPM)


Data Services (e.g. DBMS, Logs, Event Streams, etc.)




       San Francisco 2008                                 6
Classic “Good SOA” Interfaces




   San Francisco 2008           7
The Hypermedia Alternative




   San Francisco 2008        8
Problem Domain
 A Take on “Enterprise Cloud Computing”
 • Drastically reduced lead times to provision/change
 • Visible, declarative designs & infrastructure
      Wire Funds
       Web App


       Msg Bus


                 Acct
    Wire         Svc
   Process
                 DB




   San Francisco 2008                                   9
Problem Domain
IT Services Management & Provisioning




             Element           Resource
            Management        Management


                 Software & Hardware



   San Francisco 2008                      10
Problem Domain
Architectural & Change Considerations
                         Designs
                   (Architectural Views)

                          Lifecycle
          (Birth, Growth, Failure, Recovery, Death)




             Element                 Resource
            Management              Management


                    Software & Hardware



   San Francisco 2008                                 11
Organizational & Geographic Distribution
     Wire Funds                                           WLS
      Web App       Design                       MQ       10.1

     Msg Bus
                                                            MySQL
                                               Packages
             Acct                                           Tomcat
    Wire     Svc                                             V 5.5
   Process
             DB
                              Configurations
                             ECML
                              ECML    ECML
                                       ECML




Resource Pool A                                  Resource Pool B
                             How can you
                             affect change?


         San Francisco 2008                                          12
Hyperlinked Enterprise IT Infrastructure
 The Decentralized, Declarative Data Center
                           Designs
                     (Architectural Views)

                            Lifecycle
            (Birth, Growth, Failure, Recovery, Death)

                       Web of Metadata
     Categories, Capabilities, Configurations & Dependencies

                Element                Resource
               Management             Management


                      Software & Hardware



    San Francisco 2008                                         13
Hypermedia Application Flow

                                           Dynamic
           Search, Feeds,                 Interfaces
                etc.
                              Graph of
Bookmark      Collection    Information
                                and
                             Interfaces
              (optional)                    New or
                                           Changed
                                          Information



     San Francisco 2008                                14
Hypermedia is a mix of data and control

     Global graph database that also describes interfaces

                            Agent


Data Out    Data In      Interface       Process




                                                            Response Codes
 (GET)       (PUT,          Out         Something
           DELETE)         (GET)         (POST)


                                           Dynamic
                                           Interface



       San Francisco 2008                                                15
What’s a Dynamic Interface?
   Interaction port that is bound at runtime
    • CORBA Dynamic Invocation Interface
    • java.lang.Reflect
    • Capability negotiation (e.g. TELNET)
   Agent matches what they know to what’s available
   The Big Difference? Metadata over Methods
    • The semantics are in the context of the link
<control about=”http://myrobot.com/robot/controls/wave”>
  <title>Wave</title>
  <description>This will ask your robot to wave X many times</description>
  <action href=”http://myrobot.com/processor”>
        <input rel=”waveTimes” name=”waves” type=”xsd:positiveInteger”/>
  </action>
</control>




       San Francisco 2008                                                    16
A RESTFul Amazon EC2
                            Resource        Security
Collections    Images                                  Credentials
                            Bundles         Groups



                                       links
Linked          Image
                                                          Capabilites
 Data         Description
                               Bundle
                              Description



                                                           Run/
 Dynamic
                                                         Terminate
Interfaces
                                                        Requirements



         San Francisco 2008                                             17
Observing Application State
                               GET

                  Representations                    Server
Agent
                                      next states
                                                    Resources

                        Current
                        State
                primary & secondary




          Representation
          History


        San Francisco 2008                                 18
A RESTFul Amazon EC2
<?xml version=quot;1.0quot; encoding=quot;utf-8quot;?>
   <feed xmlns=quot;http://www.w3.org/2005/Atomquot;>
   <title type=quot;textquot;>Amazon EC2 Bundles</title>
   <entry>
        <title>Amazon EC2 Standard Small Instance</title>
        <summary>1.7 GB Memory, 1 ECU Core, 160 Gigabytes of Storage</summary>
        <content type=quot;application/edml+xmlquot;
               src=quot;http://www.mycloud.com/bundles/ec2/2008/08/Smallquot;/>
        <updated>2008-07-31T12:29:29Z</updated>
        <published>2007-12-13T08:29:29-04:00</published>
   </entry>
   <entry>
        <title>Amazon EC2 Standard Large Instance</title>
        <summary>8 GB of Memory, 2 ECU Cores, 850 GB of Storage</summary>
        <content type=quot;application/edml+xmlquot;
                src=quot;http://www.mycloud.com/bundles/ec2/2008/08/Largequot;/>
        <updated>2008-07-31T12:29:29Z</updated>
        <published>2007-12-13T08:29:29-04:00</published>
   </entry>
</feed>




           San Francisco 2008                                                    19
Traversing a Link
                             GET

                                                 Server
Agent
                     Current                    Resources
                     State




          Representation                    next states
          History
                                   Cached
                                   State


        San Francisco 2008                                20
A RESTful Amazon EC2: Templates
GET http://www.mycloud.com/bundles/ec2/2008/08/Small
Host: www.mycloud.com
Date: Mon, 17 Nov 2008 09:15:16 PST
Authorization: <token here>
Accept: application/edml+xml

HTTP/1.1 200 OK
Host: www.mycloud.com
Date: Mon, 17 Nov 2008 09:15:19 PST
Content-Type: application/edml+xml

   <ResourceBundle xmlns=quot;http://exml.com/2008/09/edmlquot;>
        <name xml:lang=quot;enquot;>Amazon EC2 Standard Small Instance</rdfs:label>
        <provides>
        <capability href=quot;http://www.mycloud.com/platforms/ec2#SmallStoragequot; />
        <capability href=quot;http://www.mycloud.com/platforms/ec2#SmallCPUquot; />
        <capability href=quot;http://www.mycloud.com/platforms/ec2#SmallMemoryquot; />
        </provides>
    </ResourceBundle>




           San Francisco 2008                                                     21
A RESTful Amazon EC2: Images

<Image xmlns=quot;http://exml.com/2008/09/edmlquot;>
     <name>Fedora Core 8 , x86_64, build 3</name>
     <provides>
     <capability>http://purl.org/edml/OperatingSystems/Linux</capability>
     <capability>http://purl.org/edml/OperatingSystems/64Bit</capability>
     </provides>
     <requires>
     <capability>http://purl.org/edml/ChipArchitectures/64Bit</capability
     </requires>
     <run action=quot;quot;>

        <bundle />
         <quantity />
         <groups />
         <keypair />
     </run>
</Image>




           San Francisco 2008                                               22
Changing Resource State

                                  GET
Agent
                                                           Server
                        Current                           Resources
                        State              POST links
Known
        Do I know the intent of this?
Media   Do I know how to construct this?
Types
                         POST an appropriate media type




    San Francisco 2008                                           23
Requesting an Instance


POST /images/ec2/FC8x86_64b3
Host: www.mycloud.com
Date: Mon, 17 Nov 2008 09:15:16 PST
Authorization: <token here>
Content-Type: applicaton/edml+xml

<run xmlns=quot;http://exml.com/edmlv2quot;>
   <bundle href=quot;http://www.mycloud.com/bundles/ec2/2008/08/Smallquot;/>
   <quantity>2</quantity>
   <groups>http://www.mycloud.com/groups/default</groups>
   <keypairs>http://www.mycloud.com/keypairs/stuartc-keypair</keypairs>
</run>




         San Francisco 2008                                               24
Receiving an Instance
HTTP/1.1 201 Created
Location: /reservations/a9311f3
Host: www.mycloud.com
Date: Mon, 17 Nov 2008 09:15:19 PST
Content-Type: application/edml+xml

<Reservation xmlns=quot;http://exml.com/2008/09/edmlquot;>
 <terminate action=quot;http://www.mycloud.com/reservations/a9311f3quot;/>
 <Resource>
    <state>launching</state>
    <link rel=quot;selfquot; href=quot;http://www.mycloud.com/reservations/a9311f3/1quot;/>
    <bundle href=quot;http://www.mycloud.com/bundles/ec2/2008/08/Smallquot;/>
    <image href=quot;http://www.mycloud.com/bundles/ec2/FC8x86_64b3quot;/>
    <terminate action=quot;http://www.mycloud.com/reservations/a9311f3/1quot;/>
  </Resource>
  <Resource>
    <state>launching</state>
    <link rel=quot;selfquot; href=quot;http://www.mycloud.com/reservations/a9311f3/2quot;/>
    <bundle href=quot;http://www.mycloud.com/bundles/ec2/2008/08/Smallquot;/>
    <image href=quot;http://www.mycloud.com/images/ec2/FC8x86_64b3quot;/>
    <terminate action=quot;http://www.mycloud.com/reservations/a9311f3/2quot;/>
  </Resource>
</Reservation>



            San Francisco 2008                                                25
How can I describe my interfaces?


 Tightly Coupled
  • XML Schema Definitions with minOccurs > 0
 Looser Coupled
  • Dynamically generated XML Schema Definitions
  • Edit Link Relations (e.g. AtomPub Media Entries)
  • Forms (e.g. XForms, HTML)
  • Annotate each field with a Persistent URI


    San Francisco 2008                                 26
What about Versioning and Provenance?

                         “Metabase”
                        Intermediary


Agent                                                Server


                                 Annotation


 Collections,                          Shredded historical
 Search,                               representations
 SPARQL Query



        San Francisco 2008                                    27
Security: Federated Identity


 Federated Identity is increasingly needed
  • Best bet, treat it as orthogonal for now
       SAML, (very robust in Java world)
       WS-Federation, (for Microsoft integration)
       OpenID (mind the phishing)
       Point-to-Point (sadly)


 OAuth has promise but is very young




    San Francisco 2008                              28
Towards the Semantic Web
 It’s not crazy, it’s just...
  • Layering logic on top of the Web (An Open-World RDBMS)
  • Enabling querying and mashing of web pages without
     neurosurgery
 SPARQL is very a big win for RESTful implementers
  • Query databases or the web of hypermedia
  • Same syntax - nothing changes
  • Declarative integrity enforcement for PUT and POST
 RDFa and GRDDL are easy to use
  • Just annotate your HTML or write your own XSLT
 Semantic Web Client Library - Query the Web
  • http://www4.wiwiss.fu-berlin.de/bizer/ng4j/semwebclient/


    San Francisco 2008                                         29
Conclusions
 Hypermedia bursts traditional IT silos
  • The same technology can handle Data, Service, and Presentation
  • At the expense of efficiency in some cases
 Hypermedia gives you ...
  • A global database of linked data
  • Human interactions embedded with the data
  • Dynamic Interfaces embedded with the data
        Dynamic interfaces are like CORBA DII or Reflection with a
        ProcessThis(...) method
        Need to look at the surrounding context

 Semantic web technology is practical today for early adopters
  • Especially GRDDL, SPARQL and RDFa

    San Francisco 2008                                              30
Thank You




                           Stuart Charlton
          Chief Software Architect, Elastra



  San Francisco 2008

More Related Content

What's hot

Ebs idm con9020_pdf_9020_0001
Ebs idm con9020_pdf_9020_0001Ebs idm con9020_pdf_9020_0001
Ebs idm con9020_pdf_9020_0001jucaab
 
Grottarossa:Why?
Grottarossa:Why?Grottarossa:Why?
Grottarossa:Why?
Maurizio Farina
 
Ikenstudiolive
IkenstudioliveIkenstudiolive
DB Luminous... Know Your Data
DB Luminous... Know Your DataDB Luminous... Know Your Data
DB Luminous... Know Your Data
Russ Pierce
 
Evaluating jaspersoft community & commercial editions
Evaluating jaspersoft community & commercial editionsEvaluating jaspersoft community & commercial editions
Evaluating jaspersoft community & commercial editionsMike Boyarski
 
Oracle tech fmw-02-soa-suite-11g-neum-15.04.2010
Oracle tech fmw-02-soa-suite-11g-neum-15.04.2010Oracle tech fmw-02-soa-suite-11g-neum-15.04.2010
Oracle tech fmw-02-soa-suite-11g-neum-15.04.2010Oracle BH
 

What's hot (6)

Ebs idm con9020_pdf_9020_0001
Ebs idm con9020_pdf_9020_0001Ebs idm con9020_pdf_9020_0001
Ebs idm con9020_pdf_9020_0001
 
Grottarossa:Why?
Grottarossa:Why?Grottarossa:Why?
Grottarossa:Why?
 
Ikenstudiolive
IkenstudioliveIkenstudiolive
Ikenstudiolive
 
DB Luminous... Know Your Data
DB Luminous... Know Your DataDB Luminous... Know Your Data
DB Luminous... Know Your Data
 
Evaluating jaspersoft community & commercial editions
Evaluating jaspersoft community & commercial editionsEvaluating jaspersoft community & commercial editions
Evaluating jaspersoft community & commercial editions
 
Oracle tech fmw-02-soa-suite-11g-neum-15.04.2010
Oracle tech fmw-02-soa-suite-11g-neum-15.04.2010Oracle tech fmw-02-soa-suite-11g-neum-15.04.2010
Oracle tech fmw-02-soa-suite-11g-neum-15.04.2010
 

Viewers also liked

Db Explorer
Db ExplorerDb Explorer
Db Explorer
Roland Sonnenschein
 
A Novel Specification and Composition Language for Services
A Novel Specification and Composition Language for ServicesA Novel Specification and Composition Language for Services
A Novel Specification and Composition Language for Services
George Baryannis
 
Hacktivism - The Hacker News Magazine - May 2012 Issue
Hacktivism - The Hacker News Magazine - May 2012 IssueHacktivism - The Hacker News Magazine - May 2012 Issue
Hacktivism - The Hacker News Magazine - May 2012 Issue
Reputelligence
 
Servant leader greg hutchings agile 2012sm
Servant leader greg hutchings agile 2012smServant leader greg hutchings agile 2012sm
Servant leader greg hutchings agile 2012smdrewz lin
 
Closing the cloud gap by mike donaldson, vp of hosting dot com
Closing the cloud gap by mike donaldson, vp of hosting dot comClosing the cloud gap by mike donaldson, vp of hosting dot com
Closing the cloud gap by mike donaldson, vp of hosting dot comKhazret Sapenov
 
My Name is Tina and I'm a Psychogeographer
My Name is Tina and I'm a PsychogeographerMy Name is Tina and I'm a Psychogeographer
My Name is Tina and I'm a Psychogeographer
Tina Richardson
 
Almo
AlmoAlmo
Eigrp
EigrpEigrp
Eigrp
w78ww
 
Unit 6 Sharing or Stealing
Unit 6 Sharing or StealingUnit 6 Sharing or Stealing
Unit 6 Sharing or Stealing
Tippery
 
Eland junior
Eland juniorEland junior
Eland juniorSohyon Ju
 
Final not yet
Final not yetFinal not yet
Final not yet
XixiViolet
 
English Business Culture Report
English Business Culture ReportEnglish Business Culture Report
English Business Culture Report
Pritam Saha
 
Fw 190 G8
Fw 190 G8Fw 190 G8
Fw 190 G8
martinoromijn
 
The story of an african king and his friend
The story of an african king and his friendThe story of an african king and his friend
The story of an african king and his friendXenia Y
 
What is difference between Prefix & Postfix (++i ,--i & i++ , i--)
   What is difference between Prefix & Postfix   (++i ,--i & i++ , i--)   What is difference between Prefix & Postfix   (++i ,--i & i++ , i--)
What is difference between Prefix & Postfix (++i ,--i & i++ , i--)
Kms Nira
 
Don't Forget Your Camera: Lessons Learned In Documentation
Don't Forget Your Camera: Lessons Learned In DocumentationDon't Forget Your Camera: Lessons Learned In Documentation
Don't Forget Your Camera: Lessons Learned In Documentation
jumpingship
 
L7 Horiz Struc Pt 1
L7 Horiz Struc Pt 1L7 Horiz Struc Pt 1
L7 Horiz Struc Pt 1
chuhonsan
 
Channel of Distribution Management Unit 1
Channel of Distribution Management Unit 1Channel of Distribution Management Unit 1
Channel of Distribution Management Unit 1
Navin Raj Saroj
 
2014 pin nl english version
2014 pin nl english version2014 pin nl english version
2014 pin nl english version
Green Minerals B.V.
 

Viewers also liked (20)

Db Explorer
Db ExplorerDb Explorer
Db Explorer
 
A Novel Specification and Composition Language for Services
A Novel Specification and Composition Language for ServicesA Novel Specification and Composition Language for Services
A Novel Specification and Composition Language for Services
 
Hacktivism - The Hacker News Magazine - May 2012 Issue
Hacktivism - The Hacker News Magazine - May 2012 IssueHacktivism - The Hacker News Magazine - May 2012 Issue
Hacktivism - The Hacker News Magazine - May 2012 Issue
 
Servant leader greg hutchings agile 2012sm
Servant leader greg hutchings agile 2012smServant leader greg hutchings agile 2012sm
Servant leader greg hutchings agile 2012sm
 
Closing the cloud gap by mike donaldson, vp of hosting dot com
Closing the cloud gap by mike donaldson, vp of hosting dot comClosing the cloud gap by mike donaldson, vp of hosting dot com
Closing the cloud gap by mike donaldson, vp of hosting dot com
 
My Name is Tina and I'm a Psychogeographer
My Name is Tina and I'm a PsychogeographerMy Name is Tina and I'm a Psychogeographer
My Name is Tina and I'm a Psychogeographer
 
Almo
AlmoAlmo
Almo
 
Eigrp
EigrpEigrp
Eigrp
 
Unit 6 Sharing or Stealing
Unit 6 Sharing or StealingUnit 6 Sharing or Stealing
Unit 6 Sharing or Stealing
 
Eland junior
Eland juniorEland junior
Eland junior
 
Final not yet
Final not yetFinal not yet
Final not yet
 
English Business Culture Report
English Business Culture ReportEnglish Business Culture Report
English Business Culture Report
 
Fw 190 G8
Fw 190 G8Fw 190 G8
Fw 190 G8
 
The story of an african king and his friend
The story of an african king and his friendThe story of an african king and his friend
The story of an african king and his friend
 
What is difference between Prefix & Postfix (++i ,--i & i++ , i--)
   What is difference between Prefix & Postfix   (++i ,--i & i++ , i--)   What is difference between Prefix & Postfix   (++i ,--i & i++ , i--)
What is difference between Prefix & Postfix (++i ,--i & i++ , i--)
 
Don't Forget Your Camera: Lessons Learned In Documentation
Don't Forget Your Camera: Lessons Learned In DocumentationDon't Forget Your Camera: Lessons Learned In Documentation
Don't Forget Your Camera: Lessons Learned In Documentation
 
L7 Horiz Struc Pt 1
L7 Horiz Struc Pt 1L7 Horiz Struc Pt 1
L7 Horiz Struc Pt 1
 
Bifocals 4
Bifocals 4Bifocals 4
Bifocals 4
 
Channel of Distribution Management Unit 1
Channel of Distribution Management Unit 1Channel of Distribution Management Unit 1
Channel of Distribution Management Unit 1
 
2014 pin nl english version
2014 pin nl english version2014 pin nl english version
2014 pin nl english version
 

Similar to Designing Enterprise IT Systems with REST - QCon San Francisco 2008

Cloud Computing for Developers and Architects - QCon 2008 Tutorial
Cloud Computing for Developers and Architects - QCon 2008 TutorialCloud Computing for Developers and Architects - QCon 2008 Tutorial
Cloud Computing for Developers and Architects - QCon 2008 Tutorial
Stuart Charlton
 
Qué hay de nuevo en sql azure
Qué hay de nuevo en sql azureQué hay de nuevo en sql azure
Qué hay de nuevo en sql azure
Eduardo Castro
 
SnapLogic corporate presentation
SnapLogic corporate presentationSnapLogic corporate presentation
SnapLogic corporate presentation
pbridges
 
Silverlight And .Net Ria Services – Building Lob And Business Applications Wi...
Silverlight And .Net Ria Services – Building Lob And Business Applications Wi...Silverlight And .Net Ria Services – Building Lob And Business Applications Wi...
Silverlight And .Net Ria Services – Building Lob And Business Applications Wi...rsnarayanan
 
Microservices Architecture & Testing Strategies
Microservices Architecture & Testing StrategiesMicroservices Architecture & Testing Strategies
Microservices Architecture & Testing Strategies
Araf Karsh Hamid
 
Webinar Data Mesh - Part 3
Webinar Data Mesh - Part 3Webinar Data Mesh - Part 3
Webinar Data Mesh - Part 3
Jeffrey T. Pollock
 
Salesforce & SAP Integration
Salesforce & SAP IntegrationSalesforce & SAP Integration
Salesforce & SAP Integration
Raymond Gao
 
MicroServices-Part-1.pdf
MicroServices-Part-1.pdfMicroServices-Part-1.pdf
MicroServices-Part-1.pdf
chanhluc2112
 
21st Century Service Oriented Architecture
21st Century Service Oriented Architecture21st Century Service Oriented Architecture
21st Century Service Oriented Architecture
Bob Rhubart
 
Integration SharePoint 2010 with CRM 2010 by Mai Omar Desouki
Integration SharePoint 2010 with CRM 2010 by Mai Omar DesoukiIntegration SharePoint 2010 with CRM 2010 by Mai Omar Desouki
Integration SharePoint 2010 with CRM 2010 by Mai Omar Desouki
Mai Omar Desouki
 
An overview of Microsoft data mining technology
An overview of Microsoft data mining technologyAn overview of Microsoft data mining technology
An overview of Microsoft data mining technology
Mark Tabladillo
 
Engineering practices in big data storage and processing
Engineering practices in big data storage and processingEngineering practices in big data storage and processing
Engineering practices in big data storage and processing
Schubert Zhang
 
Java one 2010
Java one 2010Java one 2010
Java one 2010
scdn
 
Sean Java Arch
Sean Java ArchSean Java Arch
Sean Java ArchSean Bob
 
Model Driven Architecture (MDA): Motivations, Status & Future
Model Driven Architecture (MDA): Motivations, Status & FutureModel Driven Architecture (MDA): Motivations, Status & Future
Model Driven Architecture (MDA): Motivations, Status & Futureelliando dias
 
NET RIA Services - Building Data-Driven Applications with Microsoft Silverlig...
NET RIA Services - Building Data-Driven Applications with Microsoft Silverlig...NET RIA Services - Building Data-Driven Applications with Microsoft Silverlig...
NET RIA Services - Building Data-Driven Applications with Microsoft Silverlig...
goodfriday
 
eXtremeDB FE
eXtremeDB FEeXtremeDB FE
eXtremeDB FE
hyeongchae lee
 
BAM CEP / Business Activity Monitoring , Complex Event Processingomplex
BAM CEP / Business Activity Monitoring , Complex Event Processingomplex BAM CEP / Business Activity Monitoring , Complex Event Processingomplex
BAM CEP / Business Activity Monitoring , Complex Event Processingomplex Liviu Claudiu Cismaru
 
Rackwise DCM
Rackwise DCMRackwise DCM
Rackwise DCM
thamner
 

Similar to Designing Enterprise IT Systems with REST - QCon San Francisco 2008 (20)

Cloud Computing for Developers and Architects - QCon 2008 Tutorial
Cloud Computing for Developers and Architects - QCon 2008 TutorialCloud Computing for Developers and Architects - QCon 2008 Tutorial
Cloud Computing for Developers and Architects - QCon 2008 Tutorial
 
Qué hay de nuevo en sql azure
Qué hay de nuevo en sql azureQué hay de nuevo en sql azure
Qué hay de nuevo en sql azure
 
SnapLogic corporate presentation
SnapLogic corporate presentationSnapLogic corporate presentation
SnapLogic corporate presentation
 
Silverlight And .Net Ria Services – Building Lob And Business Applications Wi...
Silverlight And .Net Ria Services – Building Lob And Business Applications Wi...Silverlight And .Net Ria Services – Building Lob And Business Applications Wi...
Silverlight And .Net Ria Services – Building Lob And Business Applications Wi...
 
Microservices Architecture & Testing Strategies
Microservices Architecture & Testing StrategiesMicroservices Architecture & Testing Strategies
Microservices Architecture & Testing Strategies
 
Webinar Data Mesh - Part 3
Webinar Data Mesh - Part 3Webinar Data Mesh - Part 3
Webinar Data Mesh - Part 3
 
Salesforce & SAP Integration
Salesforce & SAP IntegrationSalesforce & SAP Integration
Salesforce & SAP Integration
 
IT Governance Portals
IT Governance   PortalsIT Governance   Portals
IT Governance Portals
 
MicroServices-Part-1.pdf
MicroServices-Part-1.pdfMicroServices-Part-1.pdf
MicroServices-Part-1.pdf
 
21st Century Service Oriented Architecture
21st Century Service Oriented Architecture21st Century Service Oriented Architecture
21st Century Service Oriented Architecture
 
Integration SharePoint 2010 with CRM 2010 by Mai Omar Desouki
Integration SharePoint 2010 with CRM 2010 by Mai Omar DesoukiIntegration SharePoint 2010 with CRM 2010 by Mai Omar Desouki
Integration SharePoint 2010 with CRM 2010 by Mai Omar Desouki
 
An overview of Microsoft data mining technology
An overview of Microsoft data mining technologyAn overview of Microsoft data mining technology
An overview of Microsoft data mining technology
 
Engineering practices in big data storage and processing
Engineering practices in big data storage and processingEngineering practices in big data storage and processing
Engineering practices in big data storage and processing
 
Java one 2010
Java one 2010Java one 2010
Java one 2010
 
Sean Java Arch
Sean Java ArchSean Java Arch
Sean Java Arch
 
Model Driven Architecture (MDA): Motivations, Status & Future
Model Driven Architecture (MDA): Motivations, Status & FutureModel Driven Architecture (MDA): Motivations, Status & Future
Model Driven Architecture (MDA): Motivations, Status & Future
 
NET RIA Services - Building Data-Driven Applications with Microsoft Silverlig...
NET RIA Services - Building Data-Driven Applications with Microsoft Silverlig...NET RIA Services - Building Data-Driven Applications with Microsoft Silverlig...
NET RIA Services - Building Data-Driven Applications with Microsoft Silverlig...
 
eXtremeDB FE
eXtremeDB FEeXtremeDB FE
eXtremeDB FE
 
BAM CEP / Business Activity Monitoring , Complex Event Processingomplex
BAM CEP / Business Activity Monitoring , Complex Event Processingomplex BAM CEP / Business Activity Monitoring , Complex Event Processingomplex
BAM CEP / Business Activity Monitoring , Complex Event Processingomplex
 
Rackwise DCM
Rackwise DCMRackwise DCM
Rackwise DCM
 

More from Stuart Charlton

Applied tactics for your transformation
Applied tactics for your transformationApplied tactics for your transformation
Applied tactics for your transformation
Stuart Charlton
 
Cloud Foundry Vancouver Meetup July 2016
Cloud Foundry Vancouver Meetup July 2016Cloud Foundry Vancouver Meetup July 2016
Cloud Foundry Vancouver Meetup July 2016
Stuart Charlton
 
Platform Clouds, Containers, Immutable Infrastructure Oh My!
Platform Clouds, Containers, Immutable Infrastructure Oh My!Platform Clouds, Containers, Immutable Infrastructure Oh My!
Platform Clouds, Containers, Immutable Infrastructure Oh My!
Stuart Charlton
 
The Cloud Foundry Story on OpenStack
The Cloud Foundry Story on OpenStackThe Cloud Foundry Story on OpenStack
The Cloud Foundry Story on OpenStack
Stuart Charlton
 
Deploying to Production 50+ Times a Day - Calgary Agile Users Group 2015
Deploying to Production 50+ Times a Day - Calgary Agile Users Group 2015Deploying to Production 50+ Times a Day - Calgary Agile Users Group 2015
Deploying to Production 50+ Times a Day - Calgary Agile Users Group 2015
Stuart Charlton
 
Speeding up enterprises, one deploy at a time - Devopsdays Toronto 2014
Speeding up enterprises, one deploy at a time - Devopsdays Toronto 2014Speeding up enterprises, one deploy at a time - Devopsdays Toronto 2014
Speeding up enterprises, one deploy at a time - Devopsdays Toronto 2014
Stuart Charlton
 
Linking Data and Actions on the Web
Linking Data and Actions on the WebLinking Data and Actions on the Web
Linking Data and Actions on the Web
Stuart Charlton
 
I'll See You On the Write Side of the Web
I'll See You On the Write Side of the WebI'll See You On the Write Side of the Web
I'll See You On the Write Side of the Web
Stuart Charlton
 
From Agile Development to Agile Operations (QCon SF 2009)
From Agile Development to Agile Operations (QCon SF 2009)From Agile Development to Agile Operations (QCon SF 2009)
From Agile Development to Agile Operations (QCon SF 2009)
Stuart Charlton
 
Designing for the Cloud Tutorial - QCon SF 2009
Designing for the Cloud Tutorial - QCon SF 2009Designing for the Cloud Tutorial - QCon SF 2009
Designing for the Cloud Tutorial - QCon SF 2009
Stuart Charlton
 
OOPSLA Cloud Workshop - Designing for the Cloud (Elastra)
OOPSLA Cloud Workshop - Designing for the Cloud (Elastra)OOPSLA Cloud Workshop - Designing for the Cloud (Elastra)
OOPSLA Cloud Workshop - Designing for the Cloud (Elastra)
Stuart Charlton
 
Software Licensing In The Cloud (CloudWorld 2009)
Software Licensing In The Cloud  (CloudWorld 2009)Software Licensing In The Cloud  (CloudWorld 2009)
Software Licensing In The Cloud (CloudWorld 2009)
Stuart Charlton
 
Cloud Computing and the Next-Generation of Enterprise Architecture - Cloud Co...
Cloud Computing and the Next-Generation of Enterprise Architecture - Cloud Co...Cloud Computing and the Next-Generation of Enterprise Architecture - Cloud Co...
Cloud Computing and the Next-Generation of Enterprise Architecture - Cloud Co...
Stuart Charlton
 
Oopsla 2007 - The Web: Distributed Objects Realized!
Oopsla 2007 - The Web: Distributed Objects Realized!Oopsla 2007 - The Web: Distributed Objects Realized!
Oopsla 2007 - The Web: Distributed Objects Realized!
Stuart Charlton
 

More from Stuart Charlton (14)

Applied tactics for your transformation
Applied tactics for your transformationApplied tactics for your transformation
Applied tactics for your transformation
 
Cloud Foundry Vancouver Meetup July 2016
Cloud Foundry Vancouver Meetup July 2016Cloud Foundry Vancouver Meetup July 2016
Cloud Foundry Vancouver Meetup July 2016
 
Platform Clouds, Containers, Immutable Infrastructure Oh My!
Platform Clouds, Containers, Immutable Infrastructure Oh My!Platform Clouds, Containers, Immutable Infrastructure Oh My!
Platform Clouds, Containers, Immutable Infrastructure Oh My!
 
The Cloud Foundry Story on OpenStack
The Cloud Foundry Story on OpenStackThe Cloud Foundry Story on OpenStack
The Cloud Foundry Story on OpenStack
 
Deploying to Production 50+ Times a Day - Calgary Agile Users Group 2015
Deploying to Production 50+ Times a Day - Calgary Agile Users Group 2015Deploying to Production 50+ Times a Day - Calgary Agile Users Group 2015
Deploying to Production 50+ Times a Day - Calgary Agile Users Group 2015
 
Speeding up enterprises, one deploy at a time - Devopsdays Toronto 2014
Speeding up enterprises, one deploy at a time - Devopsdays Toronto 2014Speeding up enterprises, one deploy at a time - Devopsdays Toronto 2014
Speeding up enterprises, one deploy at a time - Devopsdays Toronto 2014
 
Linking Data and Actions on the Web
Linking Data and Actions on the WebLinking Data and Actions on the Web
Linking Data and Actions on the Web
 
I'll See You On the Write Side of the Web
I'll See You On the Write Side of the WebI'll See You On the Write Side of the Web
I'll See You On the Write Side of the Web
 
From Agile Development to Agile Operations (QCon SF 2009)
From Agile Development to Agile Operations (QCon SF 2009)From Agile Development to Agile Operations (QCon SF 2009)
From Agile Development to Agile Operations (QCon SF 2009)
 
Designing for the Cloud Tutorial - QCon SF 2009
Designing for the Cloud Tutorial - QCon SF 2009Designing for the Cloud Tutorial - QCon SF 2009
Designing for the Cloud Tutorial - QCon SF 2009
 
OOPSLA Cloud Workshop - Designing for the Cloud (Elastra)
OOPSLA Cloud Workshop - Designing for the Cloud (Elastra)OOPSLA Cloud Workshop - Designing for the Cloud (Elastra)
OOPSLA Cloud Workshop - Designing for the Cloud (Elastra)
 
Software Licensing In The Cloud (CloudWorld 2009)
Software Licensing In The Cloud  (CloudWorld 2009)Software Licensing In The Cloud  (CloudWorld 2009)
Software Licensing In The Cloud (CloudWorld 2009)
 
Cloud Computing and the Next-Generation of Enterprise Architecture - Cloud Co...
Cloud Computing and the Next-Generation of Enterprise Architecture - Cloud Co...Cloud Computing and the Next-Generation of Enterprise Architecture - Cloud Co...
Cloud Computing and the Next-Generation of Enterprise Architecture - Cloud Co...
 
Oopsla 2007 - The Web: Distributed Objects Realized!
Oopsla 2007 - The Web: Distributed Objects Realized!Oopsla 2007 - The Web: Distributed Objects Realized!
Oopsla 2007 - The Web: Distributed Objects Realized!
 

Recently uploaded

Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 

Recently uploaded (20)

Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 

Designing Enterprise IT Systems with REST - QCon San Francisco 2008

  • 1. Designing Enterprise IT Systems with REST: A (Cloudy) Case Study Stuart Charlton Chief Software Architect, Elastra San Francisco 2008
  • 2. Objectives What enterprise problem domains does RESTful architecture handle well? Understanding Hypermedia as a primary systems abstraction Suggested capabilities of RESTful Clients • Metadata & Versioning • Semantics & Querying • Security San Francisco 2008 2
  • 3. About Your Presenter Stuart Charlton • Canadian, now in San Francisco Chief Architect, Elastra • Responsible for technical direction & long-term product strategy In prior lives... • BEA Systems, Rogers Communications, Financial Services, global training & consulting Stu Says Stuff http://stucharlton.com/blog San Francisco 2008 3
  • 4. Caveats REST is defined in Roy Fielding’s thesis • Go there for truth, I’m merely a theologian Web architecture is an evolving field • This is most of what I’m talking about I don’t expect everyone to agree with me • Some think actions via HTTP POST are a bad thing • I think they’re essential; “REST is not File Storage” I actually like the Semantic Web • ...and thus cannot be trusted San Francisco 2008 4
  • 5. A Simple Reference Architecture Presentation Services (e.g. GUI) Business Services (e.g. Transactions, BPM) Data Services (e.g. DBMS, Logs, Event Streams, etc.) San Francisco 2008 5
  • 6. Web architecture helps to burst silos Web Architecture Presentation Services (e.g. GUI) Business Services (e.g. Transactions, BPM) Data Services (e.g. DBMS, Logs, Event Streams, etc.) San Francisco 2008 6
  • 7. Classic “Good SOA” Interfaces San Francisco 2008 7
  • 8. The Hypermedia Alternative San Francisco 2008 8
  • 9. Problem Domain A Take on “Enterprise Cloud Computing” • Drastically reduced lead times to provision/change • Visible, declarative designs & infrastructure Wire Funds Web App Msg Bus Acct Wire Svc Process DB San Francisco 2008 9
  • 10. Problem Domain IT Services Management & Provisioning Element Resource Management Management Software & Hardware San Francisco 2008 10
  • 11. Problem Domain Architectural & Change Considerations Designs (Architectural Views) Lifecycle (Birth, Growth, Failure, Recovery, Death) Element Resource Management Management Software & Hardware San Francisco 2008 11
  • 12. Organizational & Geographic Distribution Wire Funds WLS Web App Design MQ 10.1 Msg Bus MySQL Packages Acct Tomcat Wire Svc V 5.5 Process DB Configurations ECML ECML ECML ECML Resource Pool A Resource Pool B How can you affect change? San Francisco 2008 12
  • 13. Hyperlinked Enterprise IT Infrastructure The Decentralized, Declarative Data Center Designs (Architectural Views) Lifecycle (Birth, Growth, Failure, Recovery, Death) Web of Metadata Categories, Capabilities, Configurations & Dependencies Element Resource Management Management Software & Hardware San Francisco 2008 13
  • 14. Hypermedia Application Flow Dynamic Search, Feeds, Interfaces etc. Graph of Bookmark Collection Information and Interfaces (optional) New or Changed Information San Francisco 2008 14
  • 15. Hypermedia is a mix of data and control Global graph database that also describes interfaces Agent Data Out Data In Interface Process Response Codes (GET) (PUT, Out Something DELETE) (GET) (POST) Dynamic Interface San Francisco 2008 15
  • 16. What’s a Dynamic Interface? Interaction port that is bound at runtime • CORBA Dynamic Invocation Interface • java.lang.Reflect • Capability negotiation (e.g. TELNET) Agent matches what they know to what’s available The Big Difference? Metadata over Methods • The semantics are in the context of the link <control about=”http://myrobot.com/robot/controls/wave”> <title>Wave</title> <description>This will ask your robot to wave X many times</description> <action href=”http://myrobot.com/processor”> <input rel=”waveTimes” name=”waves” type=”xsd:positiveInteger”/> </action> </control> San Francisco 2008 16
  • 17. A RESTFul Amazon EC2 Resource Security Collections Images Credentials Bundles Groups links Linked Image Capabilites Data Description Bundle Description Run/ Dynamic Terminate Interfaces Requirements San Francisco 2008 17
  • 18. Observing Application State GET Representations Server Agent next states Resources Current State primary & secondary Representation History San Francisco 2008 18
  • 19. A RESTFul Amazon EC2 <?xml version=quot;1.0quot; encoding=quot;utf-8quot;?> <feed xmlns=quot;http://www.w3.org/2005/Atomquot;> <title type=quot;textquot;>Amazon EC2 Bundles</title> <entry> <title>Amazon EC2 Standard Small Instance</title> <summary>1.7 GB Memory, 1 ECU Core, 160 Gigabytes of Storage</summary> <content type=quot;application/edml+xmlquot; src=quot;http://www.mycloud.com/bundles/ec2/2008/08/Smallquot;/> <updated>2008-07-31T12:29:29Z</updated> <published>2007-12-13T08:29:29-04:00</published> </entry> <entry> <title>Amazon EC2 Standard Large Instance</title> <summary>8 GB of Memory, 2 ECU Cores, 850 GB of Storage</summary> <content type=quot;application/edml+xmlquot; src=quot;http://www.mycloud.com/bundles/ec2/2008/08/Largequot;/> <updated>2008-07-31T12:29:29Z</updated> <published>2007-12-13T08:29:29-04:00</published> </entry> </feed> San Francisco 2008 19
  • 20. Traversing a Link GET Server Agent Current Resources State Representation next states History Cached State San Francisco 2008 20
  • 21. A RESTful Amazon EC2: Templates GET http://www.mycloud.com/bundles/ec2/2008/08/Small Host: www.mycloud.com Date: Mon, 17 Nov 2008 09:15:16 PST Authorization: <token here> Accept: application/edml+xml HTTP/1.1 200 OK Host: www.mycloud.com Date: Mon, 17 Nov 2008 09:15:19 PST Content-Type: application/edml+xml <ResourceBundle xmlns=quot;http://exml.com/2008/09/edmlquot;> <name xml:lang=quot;enquot;>Amazon EC2 Standard Small Instance</rdfs:label> <provides> <capability href=quot;http://www.mycloud.com/platforms/ec2#SmallStoragequot; /> <capability href=quot;http://www.mycloud.com/platforms/ec2#SmallCPUquot; /> <capability href=quot;http://www.mycloud.com/platforms/ec2#SmallMemoryquot; /> </provides> </ResourceBundle> San Francisco 2008 21
  • 22. A RESTful Amazon EC2: Images <Image xmlns=quot;http://exml.com/2008/09/edmlquot;> <name>Fedora Core 8 , x86_64, build 3</name> <provides> <capability>http://purl.org/edml/OperatingSystems/Linux</capability> <capability>http://purl.org/edml/OperatingSystems/64Bit</capability> </provides> <requires> <capability>http://purl.org/edml/ChipArchitectures/64Bit</capability </requires> <run action=quot;quot;> <bundle /> <quantity /> <groups /> <keypair /> </run> </Image> San Francisco 2008 22
  • 23. Changing Resource State GET Agent Server Current Resources State POST links Known Do I know the intent of this? Media Do I know how to construct this? Types POST an appropriate media type San Francisco 2008 23
  • 24. Requesting an Instance POST /images/ec2/FC8x86_64b3 Host: www.mycloud.com Date: Mon, 17 Nov 2008 09:15:16 PST Authorization: <token here> Content-Type: applicaton/edml+xml <run xmlns=quot;http://exml.com/edmlv2quot;> <bundle href=quot;http://www.mycloud.com/bundles/ec2/2008/08/Smallquot;/> <quantity>2</quantity> <groups>http://www.mycloud.com/groups/default</groups> <keypairs>http://www.mycloud.com/keypairs/stuartc-keypair</keypairs> </run> San Francisco 2008 24
  • 25. Receiving an Instance HTTP/1.1 201 Created Location: /reservations/a9311f3 Host: www.mycloud.com Date: Mon, 17 Nov 2008 09:15:19 PST Content-Type: application/edml+xml <Reservation xmlns=quot;http://exml.com/2008/09/edmlquot;> <terminate action=quot;http://www.mycloud.com/reservations/a9311f3quot;/> <Resource> <state>launching</state> <link rel=quot;selfquot; href=quot;http://www.mycloud.com/reservations/a9311f3/1quot;/> <bundle href=quot;http://www.mycloud.com/bundles/ec2/2008/08/Smallquot;/> <image href=quot;http://www.mycloud.com/bundles/ec2/FC8x86_64b3quot;/> <terminate action=quot;http://www.mycloud.com/reservations/a9311f3/1quot;/> </Resource> <Resource> <state>launching</state> <link rel=quot;selfquot; href=quot;http://www.mycloud.com/reservations/a9311f3/2quot;/> <bundle href=quot;http://www.mycloud.com/bundles/ec2/2008/08/Smallquot;/> <image href=quot;http://www.mycloud.com/images/ec2/FC8x86_64b3quot;/> <terminate action=quot;http://www.mycloud.com/reservations/a9311f3/2quot;/> </Resource> </Reservation> San Francisco 2008 25
  • 26. How can I describe my interfaces? Tightly Coupled • XML Schema Definitions with minOccurs > 0 Looser Coupled • Dynamically generated XML Schema Definitions • Edit Link Relations (e.g. AtomPub Media Entries) • Forms (e.g. XForms, HTML) • Annotate each field with a Persistent URI San Francisco 2008 26
  • 27. What about Versioning and Provenance? “Metabase” Intermediary Agent Server Annotation Collections, Shredded historical Search, representations SPARQL Query San Francisco 2008 27
  • 28. Security: Federated Identity Federated Identity is increasingly needed • Best bet, treat it as orthogonal for now SAML, (very robust in Java world) WS-Federation, (for Microsoft integration) OpenID (mind the phishing) Point-to-Point (sadly) OAuth has promise but is very young San Francisco 2008 28
  • 29. Towards the Semantic Web It’s not crazy, it’s just... • Layering logic on top of the Web (An Open-World RDBMS) • Enabling querying and mashing of web pages without neurosurgery SPARQL is very a big win for RESTful implementers • Query databases or the web of hypermedia • Same syntax - nothing changes • Declarative integrity enforcement for PUT and POST RDFa and GRDDL are easy to use • Just annotate your HTML or write your own XSLT Semantic Web Client Library - Query the Web • http://www4.wiwiss.fu-berlin.de/bizer/ng4j/semwebclient/ San Francisco 2008 29
  • 30. Conclusions Hypermedia bursts traditional IT silos • The same technology can handle Data, Service, and Presentation • At the expense of efficiency in some cases Hypermedia gives you ... • A global database of linked data • Human interactions embedded with the data • Dynamic Interfaces embedded with the data Dynamic interfaces are like CORBA DII or Reflection with a ProcessThis(...) method Need to look at the surrounding context Semantic web technology is practical today for early adopters • Especially GRDDL, SPARQL and RDFa San Francisco 2008 30
  • 31. Thank You Stuart Charlton Chief Software Architect, Elastra San Francisco 2008