REST: from research to practice 9781441983022, 9781441983039, 1441983023

This volume provides an overview and an understanding of REST (Representational State Transfer). Discussing the constrai

841 27 7MB

English Pages xii, 528 p: ill [524] Year 2011

Report DMCA / Copyright

DOWNLOAD FILE

REST: from research to practice
 9781441983022, 9781441983039, 1441983023

Table of contents :
About this Chapter......Page 3
Refining even more: Cancellation of Bookings......Page 5
Participant Service Recovery......Page 9
Cover......Page 1
Composition of Bookings......Page 2
REST: From Research to Practice......Page 4
Align with the Business Functionality......Page 7
Recovery Protocol......Page 8
Contributors......Page 10
Enter Heuristics......Page 11
RESTful Transaction Models......Page 13
Part I Foundations......Page 14
Web Services......Page 15
References......Page 17
Contents......Page 6
Optimisations and Future Work......Page 12
REST Definition......Page 16
REST Maturity Models......Page 18
Describing RESTful Services......Page 19
Service Semantics with WSMO-Lite......Page 20
Composing RESTful Services......Page 21
Outline of the Book......Page 22
Design......Page 24
Tools and Implementations......Page 26
REST and Pervasive Computing......Page 28
REST Research......Page 29
SWEET: Annotating Service Descriptions......Page 30
Foundations......Page 23
Development Frameworks......Page 25
References......Page 31
Part I Foundations......Page 33
Introduction......Page 34
References......Page 35
Application Case Studies......Page 27
Summary......Page 32
Architectural Styles and Architectural Properties......Page 36
Towards a Model for REST......Page 38
Analysis of REST Trough Influence Diagrams......Page 39
ROA Under the Magnifying Glass......Page 43
References......Page 46
Introduction......Page 47
Principles......Page 49
Comparison Between REST and WS–* Principles......Page 50
Survey of Existing Web Services......Page 51
REST Concepts in Practice......Page 53
Identification of Resources......Page 55
Self-descriptive Messages......Page 56
HATEOAS......Page 57
Other Important Concepts......Page 58
Support of REST Principles......Page 59
Ready for the Enterprise?......Page 62
Open Research Problems of RESTful Services......Page 63
Maintainability......Page 64
Security and Privacy......Page 65
QoS......Page 66
Studies of Existing Systems......Page 67
References......Page 68
Part II Design......Page 70
Introduction......Page 71
What Is a Domain Application Protocol?......Page 72
Application......Page 73
Domain Application Protocol......Page 74
Application State in a RESTful Application......Page 75
Step 2......Page 76
Resources......Page 77
Resource State......Page 78
Media Types......Page 79
Link Relations......Page 80
Documenting a Protocol......Page 81
A RESTful Procurement Application......Page 82
Start......Page 83
Request Quote......Page 84
Place Order......Page 87
Confirm Order......Page 90
Pay......Page 94
Cancel......Page 96
Documenting the Procurement API......Page 98
The Restbucks Media Type......Page 99
References......Page 100
Introduction......Page 102
Hypermedia as Links......Page 103
Hypermedia as GUI Controls......Page 104
MIME Types, HTTP, and Hypermedia Types......Page 105
Summary......Page 106
Embedded Links: LE......Page 107
Templated Links: LT......Page 108
Non-Idempotent Links: LN......Page 109
Update Controls: CU......Page 110
Method Controls: CM......Page 111
Summary......Page 112
Media Types Void of H-Factors......Page 113
URI List......Page 114
Atom......Page 115
HTML......Page 116
Summary......Page 118
PHACTOR Layout Elements......Page 119
PHACTOR Link Elements......Page 120
A Complete PHACTOR Document......Page 121
Rendering PHACTOR Documents......Page 122
Summary......Page 124
Introduction......Page 126
Modeling the RESTful way......Page 127
Conceptual Resource Model......Page 128
Addressability and Connectedness......Page 129
Uniform Interface......Page 130
State Invariants Using Resources......Page 132
Synchronous and Asynchronous Web Services......Page 133
Stateless State Machines......Page 134
Service Preconditions and Postconditions......Page 135
Implementation of a Service Using the Django Framework......Page 136
Implementation of a Service Monitor......Page 141
Conclusions......Page 143
References......Page 144
Introduction......Page 145
Terminate or Suspend Application......Page 146
Connector Protocol Change......Page 147
Shared Identity Change......Page 148
Programming Language Change......Page 149
Shared Database......Page 150
Remote Procedure Call......Page 151
REST......Page 152
Change Impact Potential of the Connectors......Page 153
The Significance of Component Usage......Page 154
Agency Distance......Page 155
Connector Usage......Page 156
Connector Suitability Values......Page 157
Assigning Suitability Values......Page 159
General Suitability Value Rules for 1-near......Page 160
General Suitability Value Rules for N-near......Page 161
General Connector Suitability Summary......Page 162
Suitability Rules for Remote Procedure Call Connector Technologies......Page 163
Suitability Rules for Event-Based Integration Connector Technologies......Page 164
Component Change Resistance......Page 165
References......Page 166
Chapter 7 FOREST: An Interacting Object Web......Page 168
Functional Observer Pattern......Page 169
Functional Observer and Related Styles......Page 170
Implementation of Functional Observer......Page 171
Client–Server; Layered; Cache......Page 173
Identification......Page 174
Self-Descriptive Media Types......Page 175
Self-Descriptiveness Inside the Content......Page 176
Hypermedia and Hyperdata......Page 177
Back to the Example…......Page 178
Stateless Constraint......Page 186
Hypermedia Constraint......Page 187
Applying the Hypermedia Constraint to the Fulfilment Scenario......Page 188
POST in REST Terms......Page 189
Logic Drives Push Between Interdependent Objects......Page 190
POST as Cache Push......Page 191
Optimising for Multiple Dependents on the Same Host......Page 192
Asymmetric ``API''s......Page 193
Data Editing API......Page 196
User Objects......Page 197
Design Guidelines for FOREST......Page 198
Benefits of the FOREST Approach......Page 200
Conclusion......Page 201
References......Page 202
Part III Development Frameworks......Page 203
Introduction......Page 204
Motivation......Page 205
Usage Scenarios......Page 206
Scalable and Adaptive User Interfaces......Page 207
Architecture Overview......Page 208
The User Interface......Page 209
The User Interface Elements......Page 211
The Controller-Related Resources......Page 212
The Monitor Resource......Page 213
Orchestrating the Change-Propagation Mechanism......Page 214
Prototype Implementation......Page 215
The Core Components......Page 216
Case-Study: Texas Hold'em Application......Page 217
Experimental Evaluation......Page 218
User Agent Initialization......Page 220
User Interface Updates......Page 221
Discussion......Page 222
References......Page 224
Introduction......Page 225
RESTful Solutions for Constrained Platforms......Page 226
RESTful Integration of Services: A Home Monitoring Scenario......Page 228
Key Challenges......Page 230
Background on SCA and FraSCAti......Page 231
DigiHome: An Example of RESTful Architecture......Page 233
DigiHome Wireless Sensor Network......Page 236
Future: Horizons and Challenges......Page 237
References......Page 238
Introduction......Page 241
Motivating Case Study: A Climate Data Explorer......Page 242
Target Applications......Page 244
Widgets......Page 245
Application Templates......Page 247
Client Capability Tiers......Page 248
Representation of Application State......Page 252
Event Handling......Page 254
A Sample User Session......Page 258
Related Work and Discussion......Page 259
References......Page 261
Introduction......Page 263
Overview of the RESTifying Approach......Page 264
Domain Model......Page 265
Resource Model......Page 266
Refining a Domain Model to a Resource Model......Page 268
Content Negotiation, Inlining and Verbosity......Page 269
Example Web Service: Social Points of Interest......Page 270
Root Level Resources......Page 272
Points of Interest Resource Model......Page 273
Queries and Filtering Resource Model......Page 275
Comments Resource Model......Page 277
Ratings for Points of Interest......Page 279
From Resource Model to Implementation......Page 280
Concluding Remarks......Page 281
References......Page 282
Introduction......Page 283
Integration Architecture......Page 284
Identifying and Defining Resources......Page 286
Modelling Workflow as Resources......Page 288
Suitability of the Proposed Integration Approach......Page 289
Strategy for Code Reusability......Page 291
Framework Structure......Page 293
The Framework at Work......Page 295
Integrated Information Access......Page 296
Synchronizing Information......Page 297
Building New Tools and Applications......Page 298
Results......Page 299
Experience......Page 300
Extending the Integration Framework......Page 302
References......Page 303
Part IV Application Case Studies......Page 304
Introduction......Page 305
Scenario and Information Sources......Page 306
Architectural Design......Page 307
Data Representation......Page 308
Complex Contents......Page 309
Relations Between Complex Contents and Simple Resources......Page 310
Functions......Page 312
Implementation Environment......Page 313
Browsing......Page 315
Searching......Page 317
Conclusions......Page 318
References......Page 319
Introduction......Page 320
CAMERA......Page 321
CAMERA Resource Oriented Architecture......Page 322
Design Principles......Page 323
Scalability......Page 324
Application Services: CAMERA Service Description Language......Page 325
Workflows......Page 326
REST Actor......Page 327
Launching Workflows......Page 328
Killing Workflow and Services......Page 330
Unit Testing in Loosely Coupled SOA Environments......Page 331
Automated Build and Deployment for SOA......Page 336
Discussion......Page 339
Background, Constraints, and Challenges......Page 340
Reference Architecture and the Role of the REST Architectural Style......Page 342
Stateless......Page 344
Cache......Page 346
Uniform Interface......Page 348
Layered System......Page 352
Tools and Frameworks......Page 354
Conclusions and Future Work......Page 355
References......Page 356
Part V REST and Pervasive Computing......Page 357
Chapter16 RESTifying Real-World Systems: A Practical Case Study in RFID......Page 358
Introduction......Page 359
An Introduction to the EPC Global Network......Page 360
RESTful Information Systems......Page 363
Resource Identification and Connectedness......Page 364
Uniform Interface and Self-Describing Messages......Page 367
Case Study: Web-Enabling the Subscriptions......Page 368
From WS-* to REST: Integration Patterns......Page 369
Case-study: RESTful EPCIS as a Module......Page 370
JAX-RS: A Standard Java API for RESTful Web Services......Page 372
Case-study: Using JAX-RS, Jersey and Abdera......Page 373
REST and the Mashups......Page 374
Mashup Architecture......Page 375
Summary......Page 377
References......Page 378
Introduction......Page 379
A Web-oriented Infrastructure for Physical Things......Page 381
Web-enabling Things......Page 382
Hierarchical Location Modeling......Page 383
Localization......Page 385
A Distributed Modular Infrastructure for the Web of Things......Page 386
Modules Overview......Page 387
Device and Resource Discovery Service......Page 388
Device Discovery......Page 389
Resource Discovery......Page 390
Querying Service......Page 393
Infrastructure Service......Page 394
Discussion......Page 396
References......Page 397
Introduction......Page 399
Architectural Styles......Page 401
Model-centric Software Adaptation......Page 403
Why REST?......Page 404
REST for Pervasive Systems......Page 406
P-REST Meta-model......Page 408
P-REST Run-time Support......Page 411
P-RESTful Self-adaptive Systems......Page 413
P-REST at Work: The EXPO2015 Scenario......Page 416
Conclusion and Final Remarks......Page 418
References......Page 420
Part VI REST Research......Page 421
The Web of Data......Page 422
Methodology......Page 423
Delicious......Page 424
Facebook......Page 425
Flickr......Page 426
GeoNames......Page 427
Twitter......Page 428
Discussion......Page 429
URI Fragments for Sub-resources......Page 430
Literal-style vs. Reference-style......Page 431
Entity Boundaries......Page 433
Hyperlinking......Page 434
Conclusion......Page 436
References......Page 437
Introduction......Page 438
Multimedia Description......Page 440
Spatial......Page 441
Spatio-Temporal......Page 442
Description......Page 443
Domain Concepts......Page 444
Catalog of Services......Page 447
MedicalStudio......Page 449
Breast Diagnosis Domain Representation......Page 451
Adapting an Application to Use the Framework......Page 452
Conclusion......Page 454
References......Page 455
Introduction......Page 456
Metadata in the Hyper Text Transfer Protocol......Page 457
Metadata as a Formal System......Page 459
Embedding Metadata in Web Resources Using Microformats......Page 460
Resource Description Framework in Attributes and the W3C Semantic Stack of Technologies......Page 462
Extracting Metadata from Representations Using Transformations......Page 463
Resource and Metadata Discovery......Page 465
Conclusions......Page 466
References......Page 468
Introduction......Page 469
Modeling RESTful Services and Web APIs......Page 471
Example Hotel Booking Service, Viewed as Hypertext......Page 472
Turning Hypertext into Operations......Page 474
HTML Description of the Example Service......Page 475
Minimal Service Model......Page 476
hRESTS: Microformat for Service Descriptions......Page 479
Microformat for SAWSDL......Page 482
Parsing hRESTS......Page 484
SAWSDL in RDFa......Page 486
Service Semantics with WSMO-Lite......Page 488
Functional Service Discovery......Page 492
Service Composition......Page 493
Tools and Implementations......Page 494
iServe: A Service Registry......Page 495
iServe Discovery API......Page 496
SWEET: Annotating Service Descriptions......Page 498
Summary......Page 500
References......Page 501
Introduction......Page 503
Composition of Bookings......Page 504
About this Chapter......Page 505
Refining our Example: Confirmation of Bookings......Page 506
What if Step 4 Fails?......Page 507
Generalisation: Try-Cancel/Confirm......Page 508
No Context Please......Page 509
The Happy Path......Page 510
Defining Recovery......Page 511
Coordinator Recovery......Page 512
Enter Heuristics......Page 513
Advantages of our Protocol Compared to Classical Two-Phase Commit......Page 514
RESTful Service Composition......Page 515
TIP......Page 516
WS-*......Page 517
XA Technology......Page 518
References......Page 519
Index......Page 521

Polecaj historie