Apache Olingo - ApacheCon Denver 2014

3,245 views

Published on

Published in: Data & Analytics
1 Comment
2 Likes
Statistics
Notes
  • Hello Stephan, is there any tutorial available for implementing $filter in Olingo, especially when backend data source is not through JDBC. Any sample perhaps?
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
3,245
On SlideShare
0
From Embeds
0
Number of Embeds
15
Actions
Shares
0
Downloads
51
Comments
1
Likes
2
Embeds 0
No embeds

No notes for slide

Apache Olingo - ApacheCon Denver 2014

  1. 1. APACHE OLINGO OASIS OData - Client and Server Stephan Klevenz,ApacheCon 2014 Denver
  2. 2. AGENDA • Part I • OData Protocol • Overview • OASIS • Part II • Play with OData • Demos • Basic Processor • Annotation Processor • JPA Processor
  3. 3. PART I
  4. 4. ODATA PROTOCOL OVERVIEW OData stands for Open Data Protocol 
 (http://www.odata.org) • is based on REST principles • supports JSON and AtomPub data formats • Implementations available in • .NET, Java, JavaScript, Ruby, PHP and ObjectiveC
  5. 5. Binary API doesn’t work over the Internet (ODBC,ADO.NET, JDBC…) ! Internet is HTTP! ! HTTP + SQL ! OData as the 
 SQL for the Web RDBMS Data Files Data XML Data NoSQL Data SQL API Parser API Query API Applications OData http UNLOCK DATA SILOS
  6. 6. ODATA PROTOCOL REST HTTP GET PUT … DELETE ATOM JSON Server Producer Client Consumer .NET, Java, Ruby, PHP … .NET, iOS, JavaScript, Java, Ruby Excel,Tableau, LINQPad, PowerShel, OData Explorer Azure, MySQL,AppEngine, SAP, IBM, Oracle
  7. 7. Project Astoria (Microsoft internal) ADO.NET Data Services (Microsoft) WCF Data Services (Microsoft) OData 2.0 (Microsoft Open Specification Promisse) OData 3.0 (public) OData 4.0 (OASIS TC)
  8. 8. STRUCTURE OF ODATA Architecture REST Protocol HTTP Data Formats (Serialization) AtomPub JSON Metadata CSDL (Conceptual Data Definition Language) Data as Resources GET, PUT … DELETE Cache, Proxies URI Addressable Data Flexible Syntax Entity Data Model (Chen’s 1976) Entities == Resources Associations == Links CRUD Create, Read, Update, Delete GET - Read Resource POST - Create Resource PUT - Change Resource DELETE - Delete Resource
  9. 9. ENTITY DATA MODEL (EDM) Entity Container Entity Set Entity Property Property Entity Property Property Entity Set Entity Property Property Entity Property Navigation Property Entity Property Navigation Property Association Association
  10. 10. METADATA DOCUMENT
  11. 11. OData Resource Is Described in an Entity Data Model by Collection • Entity Set • A navigation property on an entity type that identifies a collection of entities • Entry • EntityType • Note: EntityTypes may be part of a type hierarchy Property of an entry • Primitive or Complex EntityType Property ComplexType • ComplexType Link • A Navigation Property defined on an EntityType Service Operation • Function Import
  12. 12. SERVICE DOCUMENT (HATEOAS)
  13. 13. ODATA URI CONVENTIONS http://services.odata.org/OData/OData.svc/Category(1)/Products?$top=2&$orderby=name _______________________________________/ __________________/ _________________/ | | | service root URI resource path query options Root http://services.odata.org/OData/OData.svc/ Resource Path /Products Query Options $filter=price lt 3.5 Entity Set /Products Single Entity /Products(3) Member Access /Products(3)/Price LinkTraversal /Products(3)/Supplier
  14. 14. URI SYNTAX
  15. 15. ATOMPUB - EDM (HATEOAS) Atom / AtomPub Property Entry Collection / Feed Service EDM Property Entity Entity Set Entity Container
  16. 16. ATOM ENTRY
  17. 17. OASIS ODATA 4.0 Design Goals • A "web of structured data" without boundaries between isolated services • Request exactly the desired subset of data with as few roundtrips as possible • Keep the query language simple and intuitive • Make all features of OData combine well with each other • Keep each single feature as simple as possible • Avoid having several ways to achieve the same goal
  18. 18. • Model Evolution (Versioning) • Model Reuse and Cross-Service  Navigation • Deltas • Asynchronous Requests and Callbacks • Vocabularies and Annotations • Actions and Functions • Improved Query Language ($search, CrossJoin, Lambda …) • ImprovedType System • Entity References • New JSON • MISC (stream properties, geo data types, any()/all() operators …)
  19. 19. PART II
  20. 20. LET’S PLAY WITH ODATA AND DO SOME DEMOS
  21. 21. QUESTIONS & ANSWERS
  22. 22. SOURCES AND CONTACT http://odata.org http://olingo.apache.org https://www.oasis-open.org/ committees/odata/ Stephan Klevenz PMC Member of Apache Olingo sklevenz@apache.org @sklevenz

×