Objectivity/db
Editor: Roberto V. Zicari
TechView Product Report: Objectivity/DB
December 2008. Revised: June 2010.
Product Name: Company: Respondent Names:
Objectivity Objectivity, Inc. Leon Guzenda, Chief Technology Officer of Objectivity, Inc Ibrahim Sallam, Sales Engineer, Objectivity, Inc
Support of Programming Languages
1. How is your product enabling Java. .NET/C#. C++, developers to store and retrieve application objects? What other programming languages do you support? Objectivity/DB has Application Programming Interfaces that provide persistence and database management capabilities for C++, .Net for C#, Java, Smalltalk and Python. Other languages can use objects created in any of these languages across any of the platforms that Objectivity/DB runs on. The C++, C# and Python APIs support persistence by inheritance. The Java and Smalltalk APIs also support persistence by reachability. The C++, Java and Smalltalk APIs are compatible with the ODMG’93 standard. Objectivity provides an Objectivity CDO data store for the Eclipse Modeling Framework (EMF) community. The goal of providing this plug in is to give the Java community of developers who use Eclipse EMF a fast and simple way to integrate their applications to Objectivity/DB.
Queries
2. Does your product support querying? If yes, can you describe the querying mechanism, giving examples of queries? Yes. There are two styles of query: a) Using iterators that inherit from the target class and predicates in the native language format, e.g. if Person is an object class that has name as an attribute and age() as a method the query would look like this: ooItr(Person) iP; iP->Scan(“name==”Fred” && age()next()) { ip->doSomething(); } 1
b) SQL++ is an enhanced version of SQL that can handle inheritance, associations and nested fields. The SQL++ equivalent of the above query would look like this: SELECT * FROM PERSON WHERE NAME=”FRED” AND AGEstart(); // do stuff t>commit(); The