Objectivity/DB: Difference between revisions

Content deleted Content added
Venky00 (talk | contribs)
No edit summary
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5
 
(4 intermediate revisions by 3 users not shown)
Line 1:
{{Short description|Proprietary object database}}
{{Multiple issues|
{{COI|date=July 2010}}
Line 4 ⟶ 5:
}}
 
'''Objectivity/DB''' is a commercial [[object database]] produced by Objectivity, Inc. It allows applications to store standard [[C++]], [[C Sharp (programming language)|C#]], [[Java (programming language)|Java]], or [[Python (programming language)|Python]] objects persistently, without converting them into the rows and columns used by a [[relational database management system]] (RDBMS). Objectivity/DB supports popular object-oriented languages as well as [[SQL]]/[[ODBC]] and [[XML]]. It is compatible with [[Linux]], [[Macintosh]], [[UNIX]] and [[Microsoft Windows|Windows]] platforms, facilitating interoperability across different languages and hardware environments.{{citation needed|date=May 2025}}
 
==History==
Objectivity/DB was first introduced in 1990. The C++ and Java interfaces adhere to the ODMG'93 standard,<ref name="odmgBook">{{cite book|url=https://archive.org/details/isbn_9781558606470_0|title=Object Data Standard: ODMG 3.0|author1=R. G. Cattell|author2=Douglas K. Barry|author3=Mark Berler|author4=Mark Berler|author5=Jeff Eastman|author6=David Jordan|author7=Craig Russell|author8=Olaf Schadow|author9=Torsten Stanienda|author10=Fernando Velez|date=January 2000|publisher=Academic Press|isbn=1558606475|accessdate=December 1, 2014|url-access=registration}}</ref> with subsequent additions of C# and Python interfaces. Objectivity, Inc. ceased in late 2023.{{citation needed|date=May 2025}}
 
==Architectural features==
Objectivity/DB operates as a [[distributed database]], providing a unified logical view across a network of databases. It employs a [[distributed computing]] model where client applications transparently communicate with simplified servers processes. This architecture enhances [[scalability]]<ref name="georgeTown">{{cite web|url=http://www.gsnmagazine.com/node/29210?c=cyber_security|title=Georgetown University taps Objectivity for Big Data research|date=May 2013|publisher=Government Security News|accessdate=December 1, 2014|archive-date=July 1, 2017|archive-url=https://web.archive.org/web/20170701004035/http://gsnmagazine.com/node/29210?c=cyber_security|url-status=dead}}</ref> and [[reliability (engineering)|reliability]], supporting ingest rates exceeding one terabyte per hour while concurrently facilitating data fusion and query operations.<ref name="panasasPaper">{{cite web|url=http://www.panasas.com/sites/default/files/uploads/docs/panasas_objectivity_wp_lr_1065.pdf|title=Scaling Objectivity Database Performance with Panasas® Scale-Out NAS Storage|date=August 2011|accessdate=December 1, 2014}}</ref>
 
Objectivity/DB utilizes a distributed storage hierarchy, storing objects in logical clusters called containers within [[federated database|federated databases]]. Each object is assigned a unique 64-bit Object Identifier (OID) within a massive physical address space spanning millions of Terabytes. Notably, the largest reported deployment at SLAC's [[BaBar experiment]] stored over a petabyte of objects.<ref>[http://www.slac.stanford.edu/BFROOT/www/Public/Computing/Databases/proceedings/CIDR05.pdf Lessons Learned from Managing a Petabyte] Jacek Becla and Daniel L. Wang, 2005</ref><ref>[http://www.slac.stanford.edu/BFROOT/www/Public/Computing/Databases/ BaBar Database]</ref>
 
The database offers flexibility in defining object placement within its storage hierarchy.<ref name="placement">{{cite web|url=http://www.dataversity.net/objectivity-launches-objectivitydb-11-0/|title=Objectivity Launches Objectivity/DB 11.0|author=Angela Guess|date=February 6, 2013|publisher=DATAVERSITY|accessdate=December 2, 2014}}</ref> through customizable strategies encapsulated in XML configuration files. This approach allows database designers to specify how persistent objects are stored, distributed, and positioned relative to other designated objects.{{citation needed|date=May 2025}}
 
In Objectivity/DB, objects can establish named uni-directional or bi-directional links with other objects, supporting various [[Cardinality|cardinalities]] (1:1, 1, many:1, many). Object Identifiers (OIDs) expedite navigation across networks of objects,<ref name="bloor">{{cite web|url=http://www.bloorresearch.com/analysis/objectivity-infinitegraph/|title=Objectivity and InfiniteGraph|author=Philip Howard|date=May 29, 2012|publisher=Bloor|accessdate=December 1, 2014}}</ref> supporting scalable collections (tree, list, set etc.), indices, and [[hash table]]s. By eliminating relational [[Join (SQL)|Join]] operations typical in RDBMS, Objectivity/DB achieves enhanced performance advantages.<ref>{{cite book|author1=Suzanne W. Dietrich|author2=Susan D. Urban|year=2011|title=Fundamentals of Object Databases|publisher=Morgan & Claypool Publishers|page=2|isbn=9781608454761|url=https://books.google.com/books?id=x_8myOrO1dgC&q=Fundamentals+of+Object+Databases|accessdate=December 3, 2014}}</ref><ref>{{cite book|editor1=Alan Dearle|editor2=Roberto V. Zicari|year=2010|title=Objects and Databases, Third International Conference Proceedings, ICOODB|publisher=Springer|page=34|isbn=978-3642160912|url=https://books.google.com/books?id=AHHE015TBrIC|accessdate=December 3, 2014}}</ref><ref>{{cite book|author=C.S.R Prabhu|year=2011|title=Object-Oriented Database Systems - Approaches and Architecture, Third Edition|publisher=Asoke K. Ghosh, PHI Learning Private Limited|page=67|isbn=9788120340930|url=https://books.google.com/books?id=aRdl1j31MfoC|accessdate=December 3, 2014}}</ref>
 
Unlike [[RDBMS]]s, Objectivity/DB employs a unique approach to query handling. Applications initialize iterators that locate and retrieve qualified objects iteratively. The Parallel Query Engine divides queries into subtasks managed by remote query agents, which filter and process results before sending them back to the application. This approach includes components for query task division and refinement, optimizing performance for complex queries.
 
Databases and system data, including catalogs and [[Database schema|schemas]], can be replicated across multiple locations using a [[quorum]]-based synchronous replication mechanism. This ensures transparent resynchronization of replicas temporarily disconnected from the network.
 
The distributed architecture of Objectivity/DB has facilitated its adoption in [[grid computing]] environments and [[Service Oriented Architecture]] (SOA) applications. It holds certification as an IBM Ready for Grid product and supports the [[J2EE Connector Architecture]] (JCA) standard making it suitable for deployment in cloud environments.<ref name="cloudReady">{{cite web|url=http://www.neovise.com/node/89#|title=Objectivity: Complex Data-Management, Simplified|date=2014|publisher=Neovise|accessdate=December 2, 2014}}</ref>
 
==Typical applications==
Objectivity/DB finds applications in [[Data-intensive computing|data-intensive]] and real-time environments handling complex, interconnected data. It is utilized in software, hardware, commercial, scientific, and government projects, particularly in sectors like in [[computer-aided design]] (CAD), telecom, process control, manufacturing, medical instrumentation, defense, and large-scale scientific research.
 
The choice between RDBMS and ODBMS depends on specific application requirements. Objectivity/DB is favored in compute or data-intensive, object-oriented systems where its performance benefits are critical.
 
==References==