Objectivity/DB: Difference between revisions

Content deleted Content added
No edit summary
A correction to eliminate the note, it is no longer in an advertising tone, and I think it also corrects the first point of the note
Line 4:
}}
 
'''Objectivity/DB''' is a commercial [[object database]] produced by Objectivity, Inc. It allows applications to makestore standard [[C++]], [[C Sharp (programming language)|C#]], [[Java (programming language)|Java]], or [[Python (programming language)|Python]] objects persistentpersistently, without havingconverting to convert the data objectsthem into the rows and columns used by a [[relational database management system]] (RDBMS). Objectivity/DB supports the most popular object-oriented languages plusas well as [[SQL]]/[[ODBC]] and [[XML]]. It runsis oncompatible with [[Linux]], [[Macintosh]], [[UNIX]] and [[Microsoft Windows|Windows]] platforms. All of the languages and platforms interoperate, withfacilitating theinteroperability Objectivity/DBacross kerneldifferent taking care of compilerlanguages and hardware platform differencesenvironments.
 
==History==
Objectivity/DB was first soldintroduced in 1990. The C++ and Java interfaces foradhere Objectivity/DB incorporate the features defined into 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> Thewith subsequent additions of C# and Python interfaces. were addedObjectivity, subsequentlyInc. The company ceased trading in late 2023.
 
==Architectural features==
Objectivity/DB isoperates as a [[distributed database|distributed database,]] that providesproviding a singleunified logical view across a federationnetwork of databases distributed across the network. It usesemploys a [[distributed computing]] model that links a small software library with thewhere client application. The clientapplications transparently communicatescommunicate with remotesimplified servers that are functionally simpler than their equivalents in [[centralized database]] server architectures. There are lock, remote data transfer and query agent server processes. The distributedThis architecture helps make Objectivity/DB inherentlyenhances [[scalability|scalable]]<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}}</ref> and [[reliability (engineering)|reliablereliability]]., It has sustainedsupporting ingest rates in excess ofexceeding one terabyte per hour while simultaneouslyconcurrently supportingfacilitating 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 usesutilizes a distributed storage hierarchy., Objectsstoring are storedobjects in logical clusters called containers. The containers are stored in databases that are cataloged in awithin [[federated database|federated databases]]. EveryEach object hasis assigned a unique 64-bit Object Identifier (OID) that iswithin a composite logical structure. Themassive physical address space limitation for a single federation is in thespanning millions of Terabytes range. TheNotably, the largest publicizedreported Objectivity/DB installation,deployment at SLAC's [[BaBar experiment]], stored over a Petabytepetabyte 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>
 
Objectivity/DBThe providesdatabase aoffers flexibleflexibility approach forin defining howobject objects are placedplacement within a givenits 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> Databasethrough designers can define a custom placement strategy thatcustomizable isstrategies encapsulated in an XML configuration filefiles. andThis madeapproach availableallows todatabase thedesigners application.to Thisspecify strategy can define whichhow persistent objects are stored together, which are distributed, and whichpositioned arerelative storedto nearother designated objects.
 
In Objectivity/DB, objects can establish named uni-directional or bi-directional links with other objects, supporting various [[Cardinality|cardinalities]] (1:1, 1
Objects can be linked to other objects using named uni-directional or bi-directional links. The links can have a [[cardinality]] of 1:1, 1:many, many:1 or many:many and use the OIDs to speed up the navigation of 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> The OIDs are also used in support of scalable collections (tree, list, set etc.), indices and [[hash table]]s. Eliminating the relational [[Join (SQL)|Join]] operations inherent in a relational database gives Objectivity/DB a performance advantage.<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>
 
, many:1, many
Objectivity/DB differs from [[RDBMS]]s in how it handles queries. The application declares and initializes an iterator that locates and returns qualified objects as soon as they are found. The Objectivity/DB Parallel Query Engine divides queries into subtasks aimed at individual databases or containers. Remote query agents handle each subtask and send results back to the iterator. The Parallel Query Engine consists of two replaceable components: a splitter that determines the best way to divide the task and a filter in the query agent that further refines a query. For example, a query regarding cities in Europe could be divided into forty-nine subtasks, each for a different country. The filter may access an external data source to qualify or disqualify the objects found by the Query Agent in the Objectivity/DB database or container.
 
Objects can be linked to other objects using named uni-directional or bi-directional links). TheObject links can have a [[cardinality]] of 1:1, 1:many, many:1 or many:many and use theIdentifiers (OIDs) to speed up theexpedite navigation ofacross 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> The OIDs are also used in support ofsupporting scalable collections (tree, list, set etc.), indices, and [[hash table]]s. EliminatingBy theeliminating relational [[Join (SQL)|Join]] operations inherenttypical in a relational database givesRDBMS, Objectivity/DB aachieves enhanced performance advantageadvantages.<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>
Databases and system data (catalogs and [[Database schema|schema]]) can be replicated to multiple locations using a quorum based synchronous replication mechanism. Replicas that are temporarily separated from the quorum are transparently resynchronized when they are reconnected to the network that services them and their peers. Individual databases and lock servers can be allocated votes that are used to determine whether or not a client can update a replica.
 
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.
The distributed database and processing architecture of Objectivity/DB has allowed it to be used in many [[grid computing]] environments. It has attained certification as an IBM Ready For Grid product. It is also used in [[Service Oriented Architecture]] applications. Objectivity For Java has support for the [[J2EE Connector Architecture]] (JCA) standard. The distributed architecture of Objectivity/DB is equally applicable to 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>
 
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.
==Typical applications==
Objectivity/DB is generally used in data intensive or real-time applications that manipulate highly complex, inter-related data. It may be embedded in a software or hardware product or used as a part of commercial, scientific, or government project.
 
The distributed database and processing architecture of Objectivity/DB has allowedfacilitated itits to be usedadoption in many [[grid computing]] environments and [[Service Oriented Architecture]] (SOA) applications. It has attainedholds certification as an IBM Ready Forfor Grid product. Itand is also used in [[Service Oriented Architecture]] applications. Objectivity For Java has support forsupports the [[J2EE Connector Architecture]] (JCA) standard. Themaking distributedit architecturesuitable offor Objectivity/DBdeployment is equally applicable toin 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>
Early deployments were primarily in [[computer-aided design]] (CAD) and engineering applications. In the early 1990s a number of telecom equipment manufacturers started embedding Objectivity/DB in advanced [[intelligent network]] and [[element management systems]]. Notable deployments have included the wireless [[sprintpcs|SprintPCS]] and the [[Iridium satellite constellation|Iridium low Earth orbit satellite networks]]. A number of process control, manufacturing and medical instrumentation systems incorporate Objectivity/DB because of its real-time performance and high availability.
 
==Typical applications==
Defense contractors and large science projects started using Objectivity/DB in the late 1990s. The government applications cover command and control, security, data fusion and intelligence applications. Objectivity/DB has been used in astrophysics, high energy physics, fusion, earth sciences, hydrography and bioinformatics applications. Most of these applications build and manipulate extremely large (multi-Petabyte) databases.
Objectivity/DB finds applications in 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 of anbetween RDBMS or anand ODBMS depends on manyspecific factorsapplication requirements. AnObjectivity/DB ODBMSis can be idealfavored in a compute or data -intensive, object -oriented system.systems However,where if an RDBMS can comfortably meet the functional andits performance requirementsbenefits ofare an application with the available programming resources then there is probably no need to consider an ODBMScritical.
 
==References==