0% found this document useful (0 votes)
19 views22 pages

Gemstone Seminar

GemStone is an object-oriented database management system developed by Servio Logic, utilizing Smalltalk concepts and providing the OPAL language for data management. It features a client/server architecture with Gem and Stone processes, and its object model is based on Smalltalk-80, focusing on objects, messages, and classes. GemStone supports various programming interfaces and requires specific system requirements for installation on Windows or Linux platforms.

Uploaded by

nandhini
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views22 pages

Gemstone Seminar

GemStone is an object-oriented database management system developed by Servio Logic, utilizing Smalltalk concepts and providing the OPAL language for data management. It features a client/server architecture with Gem and Stone processes, and its object model is based on Smalltalk-80, focusing on objects, messages, and classes. GemStone supports various programming interfaces and requires specific system requirements for installation on Windows or Linux platforms.

Uploaded by

nandhini
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 22

GEMSTONE

GEMSTONE

• The GemStone data management system, developed at


Servio Logic.
• It was one of the first and simplest commercial OODBMS
products. It is based on Smalltalk, with very few
extensions.
• GemStone merges object-oriented language concepts
with those of database systems.
• And provides an object-oriented database language
called OPAL which is used for data definition, data
manipulation and general computation.
ARCHITECTURE
• The GemStone system exhibits client/server architecture,
and is distributed over two processes: the Gem and the
Stone processes.
• The Stone process, running on the server, delivers the
data management capabilities performing disk I/O,
concurrency control, recovery and authorization.
• Stone uses unique object id called object-oriented
pointers (OOPs) to refer to objects, and an object table to
map an OOP to a physical location.
• The Gem process runs either on the server or on a client.
It comprises compilation facilities, browsing capabilities,
and user authentication.
OBJECT MODEL

• The GemStone object model is very closely related to the


Smalltalk-80 model.
• The three principal concepts of the GemStone model and
language are object, message and class. All the objects in
GemStone are made persistent.
• Classes
• Every GemStone object is an instance of exactly one
class. Objects with the same internal structure and
methods are grouped together into a class and are called
instances if the class.
Object model

• An object is a chunk of private memory with a public


interface. Internally, most objects are divided into fields
called instance variables. Each instance variable can hold
a value, which is another object. Objects communicate
with other objects by passing messages. Object is the
root of all super/subclass hierarchy.
Messages
• In GemStone, all actions are invoked by message passing.
Messages are requests for the receiving object to change its
state or return a result.
• The set of messages an object responds to is called protocol
(its .public interface.). An object may be inspected or changed
• only through its protocol. The basic form of all message
expressions is <receiver>
• <message>. The <receiver> part is an identifier or expression
denoting an object that receives and interprets the message.
The <message> part gives the selector of the message and
possible arguments to the message.
Methods
• The methods are the concrete implementations that can be
invoked by a message sent to aninstance.
• An object can only responds to a message if it contains a
method with a selector that matches the message format.
Methods are provided to query and manipulate the internal
structure.
Message passing
Collection classes
• In GemStone, a class defines the structure of its instances, but
rarely keeps track of all the instances.
• class and its subclasses
• Array: like String, is a subclass of Collection’s subclass
SequenceableColletion.
• Bags and Sets: are non-sequenceable Collections, in which
instance variables are anonymous. They do not maintain any
order on their elements.
• The difference between a Bag and a Set is that the instances of
Bag may contain the same object several times,whereas a Set
contains an element just once . even though it might have
been inserted several times.
Programming with Gemstone
• There are numerous interfaces :
• GemBuilder for Smalltalk:GemBuilder for Smalltalk consists of
two parts: a set of GemStone programming tools, and a
programming interface between the client application code
and GemStone.
• GemBuilder for C++:GemBuilder for C++ provides both shared
storage for C++ applications and access to shared objects
stored in GemStone by applications written in other
languages.
• GemBuilder for C:GemBuilder for C is a library of C functions
that provide a bridge between an application’s C code and the
GemStone repository.
• Topaz:
• Topaz is a GemStone programming environment that provides
keyboard command access to the GemStone object server.
SYNTAX OF GEMSTONE
SMALLTALK
• Object subclass: 'Employee'
• instVarNames: #( 'name' 'job' 'age' 'address')
• inDictionary: UserGlobals
• constraints: #[
• #[#name, String], #[#job, String],
• #[#age, Integer], #[#address, String] ]
Inheritance
• Employee subclass: 'YoungEmployee'
• instVarNames: #()
• classVars: #()
• poolDictionaries: #()
• inDictionary: UserGlobals
• constraints: #[ #[#age, SmallInteger] ]
• isInvariant: false
QUERY SYNTAX
• Enterprise applications need to support efficient searching
over collections to find all objects that match some specified
criteria. Each collection class in GemStone Smalltalk provides
methods for iterating over its contents and allowing any kind
of complex operation to be performed on each element.
• All collection classes understand the messages select:, reject:,
and detect:.
• In GemStone Smalltalk, an index provides a way to traverse
backwards along a path of instance variables for every object
in the collection for which the index was created. This
traversal process is usually much faster than iterating through
an entire collection to find the objects that match the
selection criteria.
GEMSTONE INSTALLATION OF WINDOWS

• Check the System Requirements


• Before you install GemStone/S 64 Bit, ensure that the following
system requirements are satisfied. Systems meeting these
requirements are suitable for installing GemStone/S 64 Bit and
beginning development, but additional system resources may be
necessary to support large applications.
• Platform
• System with an x86_64-compatible processor.
• RAM
• At least 1 GB (2 GB recommended)
• 10 MB for each Gem session process beyond the first two,
depending on how the Gem processes are configured
• Swap space
• At least 1 GB of swap space beyond other system needs
(2 GB recommended). In general, your total swap space
should be at least twice the RAM installed.
• Disk space
• Space for the installed distribution files—you need
approximately 450 MB for GemStone/S 64 Bit, and
additional space for other products.
• Operating system: LINUX or WINDOWS
• TCP keepalive option
• GemStone processes ordinarily use the TCP keepalive option to
determine how long they will wait after communications activity
ceases unexpectedly.
• C/C++ Compiler
• g++ (GCC) 4.1.2 20070115 (prerelease)
• GemStone requires a C/C++ compiler only if you are developing C or
C++ code for user actions or for a C or C++ application. This compiler
is required only for development work, not for execution.
• Debugger:gbd 6.6
• A C debugger is used to debug your C user actions. It is not required
for GemStone execution.
Prepare for installation
• Perform the following steps to prepare the machine to receive the
GemStone/S 64 Bit software. Although most steps require root login,
we recommend that you perform the initial step as the GemStone
administrator.
• 1.As the GemStone administrator, log in to a machine that has
adequate resources to run GemStone and that owns the disk on
which you are going to install the GemStone files.
• 2.Determine that adequate swap space is available:% cat
/proc/swaps
• 3.Check the free disk space and determine the disk drive and
partition on which you will install the GemStone software.
• To list all disk partitions, along with the amount of free space in each
partition:% df
• 4.Select an installation directory, InstallDir, and make this directory
the current working directory.
• 5.GemStone/S 64 Bit is provided as a zipped archive file with a name
similar to GemStone64Bit2.4.0-x86_64.Linux.zip.
• 6.Unzip the distribution file For example:% unzip
GemStone64Bit2.4.0-x86_64.Linux.zip
• 7.Log in as root.
• Set the Environment 1-6.
• Create the GemStone Key File.
• Verify TCP/IP 1-8.
• Define the NetLDI Service.
• Run the Installation Script .
GemStone/S Customers

Banking / Finance Government

Telecommunications Transportation/Shipping

21
THANK YOU

You might also like