AnvilSpecifications_v0_1x - Google Project Hosting

gasownerΔιαχείριση Δεδομένων

31 Ιαν 2013 (πριν από 4 χρόνια και 7 μήνες)

151 εμφανίσεις

XML ANVIL

PROJECT SPECIFICATIO
N

TABLE OF CONTENTS

Introduction

................................
................................
................................
................................
................

4

Acknowledgements

................................
................................
................................
................................
...

4

Contributors

................................
................................
................................
................................
........

4

Project Lead’s Note

................................
................................
................................
................................
...

4

Brief History of Project

................................
................................
................................
...............................

4

Anvil; The Naming Of

................................
................................
................................
................................

4

Legal Information

................................
................................
................................
................................
......

4

Project Overview

................................
................................
................................
................................
.........

5

Project Name

................................
................................
................................
................................
...........

5

Project Identity

................................
................................
................................
................................
........

5

Project Releases

................................
................................
................................
................................
........

5

Project Contributors

................................
................................
................................
................................
..

6

Project Numbering

................................
................................
................................
................................
....

6

Official Documentation

................................
................................
................................
..............................

7

Security Guidelines

................................
................................
................................
................................
....

7

Coding Guidelines

................................
................................
................................
................................
.....

7

Project Goals

................................
................................
................................
................................
...............

8

Open Source

................................
................................
................................
................................
............

8

Native XML Database
................................
................................
................................
................................
.

8

XQuery and XPath

................................
................................
................................
................................
....

8

Performance Requirements
................................
................................
................................
..........................

8

Modular

................................
................................
................................
................................
.................

8

Technologies

................................
................................
................................
................................
...........

9

Language

................................
................................
................................
................................
................

9

Portability

................................
................................
................................
................................
...............

9




INTRODUCTION

ACKNOWLEDGEMENTS

We’d like to acknowledge the contributors to this project, their friends, famil
y and significant others. This document is the
encapsulation of all efforts put toward research, development and promotion of XML Anvil. A list of contributors and their
optional dedication follows:

CONTRIBUTORS



Derek Hammer;


No dedication



Sriram Mohan;


No dedication

We’d also like to a
cknowledge the people and communities that have inspired and motivated this project. Much of the world’s
vision of software has changed because of the work of many people. Open
-
source software is widely accepted and is flo
urishing
the world over. Database management systems are now a requirement, a necessity. XML is
THE
method

of transferring data.
And, so many more projects and works have delivered breakthroughs that we could have never accomplished. Because of this
work,
we owe any success to the great minds and communities that have come before us.

And, finally, we’d like to recognize the works that we have directly referenced in this project. We cannot say enough about
research in XML done by others. We appreciate all of

the work and hope that continuing research will continue in the field.
References to these works will appear at the end of this document.

PROJECT LEAD’S NOTE

[Insert Project Lead’s Note]

BRIEF HISTORY OF PRO
JECT

[Insert Brief History of Project]

ANVIL; TH
E NAMING OF

[Insert the Naming Of Anvil]

LEGAL INFORMATION

[Insert Legal Information] This document and the project that it refers to (XML Anvil) are
licensed

under the W3C License.
XML Anvil’
s name, along with the name of its contributors, may not be used

in any derivative works except for where it is
required by the License. [Insert License]

PROJECT OVERVIEW

PROJECT NAME

The name of this project is XML Anvil. Henceforth, within this document, XML Anvil and [this project] will be used
interchangeably. The
XML Anvil community and the XML Anvil contributors are the respective community and contributors to
this project. Also, the name Anvil may be used to reference the full project name

outside of this document
.

PROJECT IDENTITY

In all official documents for t
he project, the project should always be referred to as XML Anvil. All graphics presented in these
documents must contain “Presented by XML Anvil” or one of the official project logos. As of yet, there are no project logos.

PROJECT RELEASES

All releases of

the project must obey the following guidelines:



Public Releases

o

Approved by Project Lead

o

Follow the Project Numbering guidelines

o

Contain the name XML Anvil



Private Releases

o

Local Release



No guidelines are necessary for local versions of this project

o

Team
Release



If a contributor, the contributor should refer to his team leader for guidelines



If a team leader, the guidelines for the team are at the leader’s discretion

o

Nightly Build Release



Follow the Nightly Build guidelines in the Project Numbering guideli
nes



Approved by a contributor that has appropriate authorization



Contain the name XML Anvil

o

Release Candidate Release (RC)



Approved by Project Lead



Follow the Project Numbering guidelines



Contain the name XML Anvil


PROJECT CONTRIBUTORS

Anyone wishing to contribute to XML Anvil may do so at his or her own discretion. However, certain restrictions apply to
contributors. Contributors must follow all of the guidelines issued in this document. Failure to do so will render all work d
one
by the

contributor un
-
useful. Also, there is a small hierarchy required
for the Project Release Guidelines as well as Official
Documentation Guidelines. The hierarchy is as follows:



Project Lead



Authorized Contributors



Contributors

The project lead is able to pe
rform all functions under Project Release and Official Documentation Guidelines. Authorized
Contributors are unable to perform public or RC releases of the project and Contributors are unable to perform public release
s,
nightly build or RC releases
,

nor ar
e they able to perform official documentation releases.

PROJECT NUMBERING

All contributors must follow the following numbering Guidelines



Public Release

o

XML Anvil vX.Y



X is major version



Y is minor version



e.g. XML Anvil v2.1



RC Release

o

XML Anvil vX.Y RCZ



X is major version



Y is minor version



Z is the release candidate version



e.g. XML Anvil v2.1 RC2



Release candid
ates major and minor versions are

the same as the
TARGET
version
; not the
previous version



Nightly Build Release

o

XML Anvil vX.Y nbZZZZ



X is major

version



Y is minor version



ZZZZ is the nightly build version



e.g
.

XML Anvil v2.1 nb1234



ZZZZ m
ust be 4 digits



ZZZZ s
tarts at 1000



If

ZZZZ is
more than 8,999 builds,
5 digits are allowed



Nightly b
uild major and minor versions are

the same as the
TARGET

ver
sion; not the previous
version

OFFICIAL DOCUMENTATI
ON

Official documentation is defined as documentation that is presented outside of source code as information relating to the
project. Such documentation can only be released by Authorized Contributors or
the Project Lead. Any other documentation
provided by the community is considered “Unofficial” and may only be labeled Official by an Authorized Contributor or the
Project Lead.

SECURITY GUIDELINES

Each contributor should follow the guide
lines set forth by

OWASP. Failure to comply with the guidelines may result in removal
or
mo
di
fi
cation of the contributed code.


CODING GUIDELINES

Each contributor should follow the guidelines set forth in the Anvil Coding Guidelines document. Failure to comply with the
guid
elines may result in removal or
modifi
cation

of the contributed
code.



PROJECT GOALS

The main objective of this project has several elements involved. Since XML Anvil is multi
-
faceted in its objectives, XML Anvil
will be multi
-
faceted in its solution.
Understanding each of these goals is important so that the contributor’s code reflects the
aspirations of this project.

OPEN SOURCE

This project must be open source. Much of the inspiration of this project came from the work of MySQL and PostgreSQL. Both
o
f these projects are successful open
-
source relational database management systems. We believe that this project is of better use
as an open source project where we develop ideas for the purpose of furthering research and development in the area of Native

XML Databases. For this reason, this project is intended to be entirely open source.

NATIVE XML DATABASE

The primary goal of this project is to create a Native XML Database (NXD). This goal encapsulates several major goals itself
that
will be outlined late
r in this document. However, as a whole, XML Anvil must be a Native XML Database. This project needs to
fully support XQuery 2.0 and XPath specifications. This project needs to be smaller, faster and more robust than relational
databases. And, XML Anvil ne
eds to be faster than current implementations of NXD.

XQUERY AND XPATH

XML Anvil should fully support all specifications in XQuery 2.0. We realize that full support of any specification is difficu
lt but
we aim to fully satisfy XQuery 2.0. If successful, we

would be the first Native XML Database, or any database, to do so. Of
course, along with XQuery 2.0 compliance, we will fully support XPath specifications.

PERFORMANCE

REQUIREMENTS

XML Anvil should satisfy basic speed requirements that would satisfy the
concerns of the customers. The customer should not
feel that XML Anvil is slower than a RDBMS counterpart

and that XML Anvil is not hindering their application. Also, XML Anvil
should outperform industry counterparts (such as eXist). The developer should a
lways keep performance and efficiency in mind
when developing XML Anvil.

MODULAR

This project should be
developed in a modular, extendable fashion. While this is good program development practice, it is also
practical for XML Anvil. This project is built u
pon rapidly developing ideas and specifications. Because of “unstable”
specifications, we need to be able to easily redevelop a certain aspect of XML Anvil without disrupting other, unaffected por
tions
of the code.
The ability to move, remove and replace c
ode in XML Anvil is essential to properly maintaining the code.

TECHNOLOGIES

XML Anvil should use all of the latest technologies that improve the performance of the project. This include
s the best indexing
methods, the best optimization algorithms and the
best locking mechanisms. One goal of this project is to further the
advancement of Native XML Databases and the development of them. Continuing to implement new research will serve to
encourage more research in the area.


LANGUAGE

This project will impleme
nt the C++ programming language.
We will use this language for performance reasons and the ability
to be portable across many platforms.

PORTABILITY

XML Anvil should be portable across all platforms. XML Anvil aims to be a Native XML Database that can run
on all types of
servers. However, the Linux operating system will be the preferred operating system for this project.

The reason for this is that
most servers around the world run Linux as their operating system. Also, Linux propagates the Open Source init
iative that is part
of this project, as well.