Objectivity/DB: Difference between revisions

Content deleted Content added
No edit summary
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5
 
(10 intermediate revisions by 9 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 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 platformenvironments.{{citation differences.needed|date=May 2025}}
 
==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. wereObjectivity, addedInc. subsequentlyceased in late 2023.{{citation needed|date=May 2025}}
 
==Architectural features==
Objectivity/DB isoperates as a [[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|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)|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 designerscustomizable can define a custom placement strategy that 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.{{citation needed|date=May 2025}}
 
ObjectsIn canObjectivity/DB, beobjects linkedcan to other objects usingestablish named uni-directional or bi-directional links. Thewith linksother canobjects, havesupporting avarious [[cardinalityCardinality|cardinalities]] of (1:1, 1:many, many:1 or, many:many). andObject 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>
 
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>
Objectivity/DB is also different from [[RDBMS]]s in the way in which it handles queries. The application declares and initializes an iterator that locates and returns qualified objects as soon as they are located. The Objectivity/DB Parallel Query Engine splits queries into subtasks directed at individual databases or containers. Remote query agents service each subtask and return results to the iterator. The Parallel Query Engine has two replaceable components: a splitter that can determine how to best subdivide the task and a filter in the query agent that can further refine a query. A query involving cities in Europe might be split into forty nine subtasks, one for each country. The filter might access an external data source before qualifying or disqualifying the objects that the Query Agent has found in the Objectivity/DB database or container.
 
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.
 
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>
 
==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.
 
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.
 
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.
 
The choice of an RDBMS or an ODBMS depends on many factors. An ODBMS can be ideal in a compute or data intensive object oriented system. However, if an RDBMS can comfortably meet the functional and performance requirements of an application with the available programming resources then there is probably no need to consider an ODBMS.
 
==References==