Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
ruby on rail and oracle
1. RUBY ON RAIL
Origin
Ruby on Rails, often shortened to Rails and sometimes known as "RoR", is an open source full-stack
web application framework for the Ruby programming language. Ruby on Rails is not to be confused
with Ruby, which is a general-purpose programming language, on which Ruby on Rails runs. Ruby itself
existed for more than 10 years before the first release of Ruby on Rails. Rails is a full-stack framework,
meaning that it gives the Web developer the full ability to gather information from the web server, talking
to or querying the database, and template rendering out of the box. As a result, Rails features a routing
system that is independent of the Web server.
David Heinemeier Hansson extracted Ruby on Rails from his work on Basecamp, a project management
tool by 37signals (now a web application company). Hansson first released Rails as open source in July
2004, but did not share commit rights to the project until February 2005. In August 2006, the framework
reached a milestone when Apple announced that it would ship Ruby on Rails with Mac OS X v10.5
"Leopard",which was released in October 2007.
Rails version 2.3 was released on March 15, 2009. Major new developments in Rails include templates,
engines, Rack and nested model forms. Templates enable the developer to generate a skeleton application
with custom gems and configurations. Engines let one reuse application pieces complete with routes, view
paths and models. The Rack web server interface and Metal allow one to write optimized pieces of code
that route around ActionController.
On December 23, 2008, Merb, another web application framework, was launched, and Ruby on Rails
announced it would work with the Merb project to bring "the best ideas of Merb" into Rails 3, ending the
"unnecessary duplication" across both communities. Merb was merged with Rails as part of the Rails 3.0
release. Rails 3.1 were released on August 31, 2011, featuring reversible database migrations, and the
asset pipeline.
Today, Rails is one of the leading agile languages used for web development, rivaling PHP as the leading
web programming language.
Version history
Version Date
December 13, 2005
January 19, 2007
December 7, 2007
June 1, 2008
November 21, 2008
March 16, 2009
August 29, 2010
August 31, 2011
Framework structure
Ruby on Rails is separated into various packages, namely
2. ActiveRecord (an object-relational mapping system for database access),
ActiveResource (provides web services),
ActionPack: Action Pack is a single gem that contains Action Controller, Action View and
Action Dispatch. The “VC” part of “MVC”.
ActiveSupport: Active Support is an extensive collection of utility classes and standard Ruby
library extensions that are used in Rails, both by the core code and by your applications.
ActionMailer: Action Mailer is a framework for building e-mail services. You can use Action
Mailer to receive and process incoming email and send simple plain text or complex multipart
emails based on flexible templates.
Prior to version 2.0, Ruby on Rails also included the Action Web Service package that is now replaced by
Active Resource. Apart from standard packages, developers can make plugins to extend existing
packages.
Basic Ruby Language Elements
Structure of statements and comments.
Variables and constants.
Operators. Assignments, calculations, etc. Integer, float and string formats.
Single and double quotes, here documents, general strings.
Control Structures
Blocks and the if statement.
Writing conditions.
Comparative, boolean and range operators.
Conditionals - if, unless, case, etc. Loops - while, for in, until, etc. break, next,retry and redo.
defined? and ternary operators.
Rails structures -
WEBrick servers,
URLs and embedded code.
Directory structure.
Database connections.
3. AREA OF APPLICATION
Ruby on rail has been used for ten thousands of application around the world. This is a short over view of
most prolific.
Basecamp: The original Rails Shopify: E-commerce made
Twitter: Stay connected.
app. easy.
Livingsocial: Online local
Yellow Pages: Find it locally. Github: Git repo hosting.
commerce.
Sortfolio: Find a web designer. Hulu: Stream TV & Movies. Groupon: Daily deals.
Backpack: Personal
Geni: Find your ancestors. Ravelry: Knitting community.
organization.
4. 43things: Your goals in life. Justin TV: Live video. Scribd: Books, presentations,
more.
Streeteasy: Find a place in
iLike: Find more music. Chow: Food, drink, fun.
NYC.
Harvest: Tracking time since Inkling Markets: Trade the
A List Apart: 'zine for web devs.
'06. future.
Revolution Health: Get
New York Jets: Play ball! Mingle2: Get a date.
healthy.
5. Advantages and Disadvantages
Advantages:
Less code needed (Don't Repeat Yourself)
No configuration Files required
Open source project
Changes visible instantly
Forgiving code Documentation is not extensive
Scalability is often a problem interpretation
Disadvantages:
Documentation is not extensive
Scalability is often a problem
"Newness" makes potential users wary
Undocumented behaviors
Difficulty in finding experienced RoR programmers
Oracle
History
For more than three and a half decades, Oracle has been the leader in database software. And as it has
further developed technologies and acquired best-in-class companies over the years, that leadership has
expanded to the entire technology stack, from servers and storage, to database and middleware, through
applications and into the cloud.
It all began when Larry Ellison saw an opportunity other companies missed: a description of a working
prototype for a relational database. No company had committed to commercializing the technology, but
Ellison and co-founders Bob Miner and Ed Oates realized the tremendous business potential of the
relational database model. None of them realized at the time that the company they formed would change
the face of business computing.
Throughout its history Oracle has proved it can build for the future on the foundation of its innovations
and its knowledge of customer challenges and successes analyzed by the best technical and business
minds in the world.
Physical and logical structures
An Oracle database system—identified by an alphanumeric system identifier or SID—comprises at least
one instance of the application, along with data storage. An instance—identified persistently by an
instantiation number (or activation id: SYS.V_$DATABASE.ACTIVATION#)—comprises a set of
operating-system processes and memory-structures that interact with the storage. (Typical processes
6. include PMON (the process monitor) and SMON (the system monitor).) Oracle documentation can refer
to an active database instance as a "shared memory realm".
Users of Oracle databases refer to the server-side memory-structure as the SGA (System Global Area).
The SGA typically holds cache information such as data-buffers, SQL commands, and user information.
In addition to storage, the database consists of online redo logs (or logs), which hold transactional history.
Processes can in turn archive the online redo logs into archive logs (offline redo logs), which provide the
basis (if necessary) for data recovery and for the physical-standby forms of data replication using Oracle
Data Guard.
If the Oracle database administrator has implemented Oracle RAC (Real Application Clusters), then
multiple instances, usually on different servers, attach to a central storage array. This scenario offers
advantages such as better performance, scalability and redundancy. However, support becomes more
complex, and many sites do not use RAC. In version 10g, grid computing introduced shared resources
where an instance can use (for example) CPU resources from another node (computer) in the grid.
The Oracle DBMS can store and execute stored procedures and functions within itself. PL/SQL (Oracle
Corporation's proprietary procedural extension to SQL), or the object-oriented language Java can invoke
such code objects and/or provide the programming structures for writing them.
The basic memory structures associated with an Oracle instance include the following:
System Global Area (SGA): Shared by all server and background processes
Program Global Area (PGA): Private to each server and background process. There is one PGA
for each process.
The SGA is a memory area that contains data and control information for the instance.
The SGA includes the following data structures:
Database buffer cache: Caches blocks of data retrieved from the database
Redo log buffer: Caches redo information (used for instance recovery) until it can be written to
the physical redo log files stored on the disk
Shared pool: Caches various constructs that can be shared among users
Large pool: Is an optional area that provides large memory allocations for certain large processes,
such as Oracle backup and recovery operations, and I/O server processes
Java pool: Is used for all session-specific Java code and data within the Java Virtual Machine
(JVM)
Streams pool: Is used by Oracle Streams
When you start the instance by using Enterprise Manager or SQL*Plus, the amount of memory allocated
for the SGA is displayed.
7. A Program Global Area (PGA) is a memory region that contains data and control information for each
server process. An Oracle server process services a client’s requests. Each server process has its own
private PGA that is created when the server process is started. Access to the PGA is exclusive to that
server process, and the PGA is read and written only by the Oracle code acting on its behalf.
With the dynamic SGA infrastructure, the size of the database buffer cache, the shared pool, the large
pool, the Java pool, and the Streams pool changes without shutting down the instance.
The Oracle database uses initialization parameters to create and configure memory structures. For
example, the SGA_TARGET parameter specifies the total size of the SGA. If you set SGA_TARGET to
0, Automatic Shared Memory Management is disabled.
When you invoke an application program or an Oracle tool, such as Enterprise Manager, the Oracle server
creates a server process to execute the commands issued by the application. The Oracle server also creates
a set of background processes for an instance that interact with each other and with the operating system
to manage the memory structures, asynchronously perform I/O to write data to disk, and perform other
required tasks. Which background processes are present depends on the features that are being used in the
database.
8. An Oracle database server consists of an Oracle database and an Oracle instance. An Oracle instance is
made up of memory structures, known as the System Global Area (SGA), and background processes that
handle much of the behind-the-scenes work involved in running an instance. The most common
background processes are the following:
System Monitor (SMON): Performs crash recovery when the instance is started following a
failure
Process Monitor (PMON): Performs process cleanup when a user process fails
Database Writer (DBWn): Writes modified blocks from the database buffer cache to the data files
on the disk
Checkpoint (CKPT): Updates all the data files and control files of the database to indicate the
most recent checkpoint
LogWriter (LGWR): Writes redo log entries to the disk
Archiver (ARCn): Copies redo log files to the archival storage when a log switch occurs
Oracle Applications
Oracle Applications comprise the applications software or business software of Oracle Corporation. The
term refers to the non-database and non-middleware parts of Oracle's software portfolio.
Oracle sells many functional modules which use the Oracle RDBMS as a back-end, notably Oracle
Financials, Oracle HRMS, Oracle Projects,[1] Oracle CRM, Oracle Procurement, etc.
Oracle initially launched its application suite with financials software in the late 1980s. The offering as of
2009 extends to supply-chain management, human-resource management, warehouse-management,
customer-relationship management, call-center services, product-lifecycle management, and many other
areas. Both in-house expansion and the acquisition of other companies have vastly expanded Oracle's
application software business.
Oracle released Oracle E-Business Suite (EBS/ e-BS) Release 12 (R12) — a bundling of several Oracle
Applications applications — in February 2007. The release date coincided with new releases of other
Oracle-owned products: JD Edwards EnterpriseOne, Siebel Systems and PeopleSoft. As of 2012 Oracle
9. supports Release 11.5.10.2, Release 12.0.X, and Release 12.1.X of the Oracle E-Business Suite. The latest
release of the software is called Oracle EBS R12.
Advantages:
It supports very large size databases
Security
Consistency
High level availability
Lower downtime
Good performance
Oracle runs faster
Disadvantages:
Expensive
Complex to maintain
are few advantages and disadvantage of oracle.