Web-Scale Library Management Services (Paul Harvey)


Published on

Chcete vědět víc? Mnoho dalších prezentací, videí z konferencí, fotografií i jiných dokumentů je k dispozici v institucionálním repozitáři NTK: http://repozitar.techlib.cz

Would you like to know more? Find presentations, reports, conference videos, photos and much more in our institutional repository at: http://repozitar.techlib.cz/?ln=en

Published in: Technology, Education
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Web-Scale Library Management Services (Paul Harvey)

  1. 1. An SoA for a massively scalable next-gen ILS - principles and practice. <br />Paul Harvey <Paul.Harvey@oclc.org><br />OCLC<br />Web-Scale Library Management Services<br />ELAG 2011<br />
  2. 2. Web-Scale Library Management Services<br /><ul><li>What is the WMS?
  3. 3. Key Architectural Goals
  4. 4. SoA Service Groups
  5. 5. Standard Service Group Architecture
  6. 6. Circulation Service Group
  7. 7. Modular Staff Interface
  8. 8. Service Directory
  9. 9. Scaling, Responsiveness and Fault Tolerance
  10. 10. The Complete Picture</li></li></ul><li>What is the WMS? <br /><ul><li>A Globally Available, Centrally/Cloud Deployed, Web Based, Next-Gen Integrated Library System
  11. 11. Operates at Web Scale
  12. 12. Functionality
  13. 13. Circulation, Acquisitions, Cataloguing, License Management, User Management/IDM, OPAC
  14. 14. Physical and Electronic Materials
  15. 15. The Cooperative Open Platform</li></ul>Dublin<br />Dublin<br />SM<br />Dublin<br />Circulation<br />WCL<br />LMAN<br />IDM<br />Configuration<br />Workflow<br />Acquisitions<br />Vendor Info<br />Infrastructure<br />
  16. 16. Key Architectural Imperatives<br /><ul><li>Responsive
  17. 17. Massively scalable
  18. 18. Highly fault tolerant
  19. 19. Flexible
  20. 20. Extensible and Integratable
  21. 21. Hosted - SaaSand PaaS
  22. 22. Builds on existing OCLC data and software</li></li></ul><li>How we are Achieving our Goals?<br /><ul><li>Service Orientated (SoA)
  23. 23. “Shared nothing” architecture
  24. 24. Replication and failover
  25. 25. Intra and Inter data centre
  26. 26. Stateless services
  27. 27. Partition by domain and data
  28. 28. Avoid distributed transactions
  29. 29. Optimistic locking
  30. 30. Network savvy APIs
  31. 31. Versioned services/APIs
  32. 32. Judicious Caching
  33. 33. Embrace open standards
  34. 34. Layered
  35. 35. Multi-tenanted
  36. 36. Discoverable services
  37. 37. Organisationally and technically
  38. 38. Service abstraction models business function</li></li></ul><li>How we are Achieving Our Goals?<br /><ul><li>Data redundancy
  39. 39. Allow (temporary) data inconsistency
  40. 40. Asynchrony
  41. 41. Temporal De-coupling
  42. 42. Failure De-coupling
  43. 43. Loosely coupled/independent services
  44. 44. Cohesive and composable services
  45. 45. Common infrastructure services
  46. 46. Common technological platform
  47. 47. Standard meta-protocol
  48. 48. Common architecture framework and archetypes
  49. 49. Only one tool/service for one job</li></li></ul><li>SoA Service Groups - Dividing by Function<br />Modular Staff Interface<br />WCL<br />Modular Staff Interface<br />UI Cookbook<br />Integration<br />17 Service Group Types<br />Circulation<br />Acquisitions<br />Circulation<br />License Management<br />User Data<br />KBWC<br />Domain<br />Vendor Information<br />Connexion<br />Resource Discovery<br />Business Intelligence<br />69 Service Types<br />Notification<br />AuthN<br />AuthZ<br />Registry Proxy<br />Collection Service<br />18 Data Models<br />Asynchronous Updating<br />B2B<br />Service Directory<br />Workflow<br />Hardware Integration<br />Service Directory<br />Infrastructure<br />Managed Storage<br />Auditing<br />Fiji<br />XServe<br />
  50. 50. Layering and Standard Service Group Architecture<br />MSI<br />External Callers<br />Web UI<br />Open Platform Proxy<br /><ul><li>Public facing service
  51. 51. Authentication (sometimes)
  52. 52. De facto and De jure protocols
  53. 53. AtomPub/JSON/XML
  54. 54. May aggregate other services
  55. 55. Provides user interfaces 
  56. 56. Authentication</li></ul>Business Layer<br /><ul><li>The core business logic!
  57. 57. Well defined API
  58. 58. Non-invasive fast binary protocol
  59. 59. Where authorization is enforced</li></ul>DAO<br /><ul><li>Abstracts away the database
  60. 60. Presents CRUD type operations
  61. 61. No business logic
  62. 62. Enforces integrity constraints
  63. 63. Database agnostic</li></ul>Database<br /><ul><li>Needs in itself to be reliable
  64. 64. Needs to scale to the number of partitions it holds!
  65. 65. Standard technology stack
  66. 66. Standard usage guidelines</li></li></ul><li>Circulation Service Group as an Example<br />MSI<br />IDM AuthN<br />WCL<br />Circulation UI<br />NCIP<br />IDM AuthZ<br />Circulation Business Service<br />“WorldCat” Union Cat<br />Availability Service<br />Registry Proxy<br />Asynchronous Sync<br />Circulation Database<br />Registry<br />
  67. 67. Modular Staff Interface<br />Top Menu<br /><ul><li>Sovereign Application
  68. 68. Configuration driven
  69. 69. All client apps are equal
  70. 70. Handles “SSO”
  71. 71. Loose coupling
  72. 72. Via Events
  73. 73. Managers
  74. 74. Open to new applications
  75. 75. Highly scalable
  76. 76. Very thin proxy
  77. 77. Client side weaving
  78. 78. Common look and feel
  79. 79. The UI Cookbook </li></ul>Panel Manager<br />Top Menu<br />Circulation Context Menu<br />Accordion Manager<br />Card Manager<br />Circulation UI<br />Circulation Context Menu<br />Acquisitions Context Menu<br />...<br />Acquisitions UI<br />VIC UI<br />...<br />Circulation UI<br />
  80. 80. The Service Directory<br />Service<br />Version<br />Institution<br />Url<br />Circulation<br />1.1<br />OHIO State<br />https://.../<br />Service<br />Version<br />Institution<br />Url<br />Circulation<br />1.2<br />Sheffield City<br />https://.../<br />Point of Service Rendezvous<br />Service Directory<br />Service<br />Version<br />Institution<br />Url<br />Acquisitions<br />1.1<br />Sheffield City<br />https://.../<br />Service<br />Version<br />Institution<br />Url<br />Acquisitions UI<br />1.1<br />Sheffield City<br />https://.../<br />Service<br />Version<br />Institution<br />Url<br />Acquisitions<br />1.1<br />Sheffield City<br />https://.../<br />Service<br />Version<br />Institution<br />Url<br />Acquisitions<br />1.1<br />Sheffield City<br />https://.../<br />Service<br />Version<br />Institution<br />Url<br />Acquisitions<br />1.1<br />Sheffield City<br />https://.../<br />Service<br />Version<br />Institution<br />Url<br />Acquisitions<br />1.1<br />Sheffield City<br />https://.../<br />Service<br />Version<br />Institution<br />Url<br />Acquisitions<br />1.1<br />Sheffield City<br />https://.../<br />Service<br />Version<br />Institution<br />Url<br />Acquisitions<br />1.1<br />Sheffield City<br />https://.../<br />Service<br />Version<br />Institution<br />Url<br />Acquisitions<br />1.1<br />Sheffield City<br />https://.../<br />Service<br />Version<br />Institution<br />Url<br />Accounts<br />1.0<br />Bibsys<br />https://.../<br />
  81. 81. The Service Directory<br />Service = “Acquisitions” && Version = “1.2” && Institution = “Sheffield City”<br />?<br />Service Directory<br />Service<br />Version<br />Institution<br />Url<br />Acquisitions<br />1.1<br />Sheffield City<br />https://.../<br />Service<br />Version<br />Institution<br />Url<br />Acquisitions<br />1.1<br />Sheffield City<br />https://.../<br />Service<br />Version<br />Institution<br />Url<br />Acquisitions<br />1.1<br />Sheffield City<br />https://.../<br />Service<br />Version<br />Institution<br />Url<br />Acquisitions<br />1.1<br />Sheffield City<br />https://.../<br />Service<br />Version<br />Institution<br />Url<br />Acquisitions<br />1.1<br />Sheffield City<br />https://.../<br />Service<br />Version<br />Institution<br />Url<br />Acquisitions<br />1.1<br />Sheffield City<br />https://.../<br />Service<br />Version<br />Institution<br />Url<br />Acquisitions<br />1.1<br />Sheffield City<br />https://.../<br />Service<br />Version<br />Institution<br />Url<br />Acquisitions UI<br />1.1<br />Sheffield City<br />https://.../<br />
  82. 82. Scaling, Responsiveness and Fault Tolerance<br />WMS Server<br />WMS Server<br />$<br />?<br />I<br />I<br />I<br />Vertical<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />Partitions/Fault Tolerance<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />I<br />Horizontal<br />
  83. 83. The Complete Picture<br />License<br />Management<br />“Data” Partition Serving I1, I2 and I3<br />Acquisitions<br />Circulation<br />Domains<br />Load-balance, fail-over and routing<br />I1, I2, I3<br />I1, I2, I3<br />UI<br />DMZ<br />I1, I2, I3<br />I1, I2, I3<br />I1, I2, I3<br />I1, I2, I3<br />Platform<br />Load-balance, fail-over<br />Layers<br /><br />Business<br />Internal Network<br />Load-balance, fail-over<br />I1, I2, I3<br />I1, I2, I3<br />I1, I2, I3<br />Database<br />
  84. 84. Web-Scale Library Management Services<br />www.oclc.org/info/elag11<br />?<br />