SlideShare a Scribd company logo
1 of 31
Download to read offline
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
 
DB Luminous... Know Your Data
DB Luminous... Know Your DataDB Luminous... Know Your Data
DB Luminous... Know Your DataRuss 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

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 ServicesGeorge 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 IssueReputelligence
 
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 PsychogeographerTina Richardson
 
Eigrp
EigrpEigrp
Eigrpw78ww
 
Unit 6 Sharing or Stealing
Unit 6 Sharing or StealingUnit 6 Sharing or Stealing
Unit 6 Sharing or StealingTippery
 
Eland junior
Eland juniorEland junior
Eland juniorSohyon Ju
 
English Business Culture Report
English Business Culture ReportEnglish Business Culture Report
English Business Culture ReportPritam Saha
 
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 Documentationjumpingship
 
L7 Horiz Struc Pt 1
L7 Horiz Struc Pt 1L7 Horiz Struc Pt 1
L7 Horiz Struc Pt 1chuhonsan
 
Channel of Distribution Management Unit 1
Channel of Distribution Management Unit 1Channel of Distribution Management Unit 1
Channel of Distribution Management Unit 1Navin Raj Saroj
 

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 TutorialStuart 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 azureEduardo Castro
 
SnapLogic corporate presentation
SnapLogic corporate presentationSnapLogic corporate presentation
SnapLogic corporate presentationpbridges
 
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 StrategiesAraf Karsh Hamid
 
Salesforce & SAP Integration
Salesforce & SAP IntegrationSalesforce & SAP Integration
Salesforce & SAP IntegrationRaymond Gao
 
MicroServices-Part-1.pdf
MicroServices-Part-1.pdfMicroServices-Part-1.pdf
MicroServices-Part-1.pdfchanhluc2112
 
21st Century Service Oriented Architecture
21st Century Service Oriented Architecture21st Century Service Oriented Architecture
21st Century Service Oriented ArchitectureBob 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 DesoukiMai 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 technologyMark 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 processingSchubert Zhang
 
Java one 2010
Java one 2010Java one 2010
Java one 2010scdn
 
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
 
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 DCMthamner
 

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 transformationStuart Charlton
 
Cloud Foundry Vancouver Meetup July 2016
Cloud Foundry Vancouver Meetup July 2016Cloud Foundry Vancouver Meetup July 2016
Cloud Foundry Vancouver Meetup July 2016Stuart 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 OpenStackStuart 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 2015Stuart 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 2014Stuart 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 WebStuart 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 WebStuart 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 2009Stuart 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

Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
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
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
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
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 

Recently uploaded (20)

Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
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!
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
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
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 

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