Disponível somente no TrabalhosFeitos
  • Páginas : 5 (1047 palavras )
  • Download(s) : 0
  • Publicado : 18 de junho de 2012
Ler documento completo
Amostra do texto
ODBMS.ORG www.odbms.org
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. TheC++, 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 useEclipse EMF a fast and simple way to integrate their applications to Objectivity/DB.

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 anattribute 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(); ThecommitAndHold operation is a checkpoint operation. It leaves objects in the same state as they were before the operation. However, there is an option to downgrade write locks to read locks for long running transaction. 13. Is there a way to discard objects that have been modified in the current transaction from memory? Yes, closing them (with a close() method) makes them candidates to be discarded onceall other objects in the page are closed. Iterators automatically open and close objects as they loop. 14. Do you provide a mechanism for objects on clients to stay in synch with the committed state on the server? If yes, please describe how it works. Yes. However, note that Objectivity/DB is a distributed processing environment, so there may be no servers. For example, a cluster of processorsthat access a multiported RAID will see local files rather than a data server. The committed (persistent) state of an object may change while a client has a cached copy of it. The client will automatically receive the latest copy when it starts a new transaction and accesses that object again. If it tries to update the object it will receive an exception (because the kernel had to request an updatelock from a lock server) and it must refresh the appropriate (container level) part of the cache before it proceeds. There is also a publish/subscribe event notification library that can notify registrants when certain kinds of event occur, e.g. creating or deleting an object of a particular class, or updating a nominated container. 15. How are transaction demarcations for your product expressed incode? There can be explicit calls to transaction methods or implicit actions as a result of setting Session parameters. 16. Describe the strategies possible with your product for concurrent modifications by multiple clients. The following strategies are supported: Multi-Reader One-Writer, Shared Read and classical Exclusive Writer. Objectivity/DB supports automatic hierarchical Gray-Code...
tracking img