Welcome!

Industrial IoT Authors: JP Morgenthal, Yeshim Deniz, Sanjeev Khurana, Carmen Gonzalez, Klaus Enzenhofer

Related Topics: Industrial IoT, Open Source Cloud

Industrial IoT: Article

eXist - An Introduction To Open Source Native XML Database

I am going to introduce you to the open source, free (GNU LGPL license), native XML database eXist (www.exist-db-org)

In this article I am going to introduce you to the open source, free (GNU LGPL license), native XML database eXist (www.exist-db-org). Data is important, no question about it. Data that can't be queried is not very useful. Users expect to have good query response time. From my personal experience and testing, I am confident in saying that eXist is a fairly good database. It has very good query response time, it is very user friendly, it's easy to set up and operate, and it's written in Java, therefore it is platform independent.

This article will show you how to use eXist as a stand-alone database server. If you have any problems or questions you can use the mailing list of eXist. The odds are somebody else had the same problem you have and it's already been answered in the mailing list.

Although eXist is written in Java, you don't have to be a Java programmer in order to use eXist. You can use the graphical user interface (GUI) for almost anything you need to accomplish. Anything that can be done through the GUI can also be done by using command line. This should please the programmers among us who are deeply attached to the command-line tools rather than fancy to GUIs. Let's start exploring eXist.

System Requirements
You need a JRE (Java Runtime Environment) 1.4 or later. This is the only requirement. The documentation states that the package is tested on Linux and Windows XP/2000. Keep in mind that it should work on other operating systems with no problem, because it's platform independent. I set it up on Dell PowerEdge 2600 running on Windows 2003 Server.

Features of eXist
eXist is a native XML database because it is designed and built for XML. Other databases, such as relational databases (Oracle, DB2, MS SQL Server 2000), can handle XML data too, but they are not native XML databases, because they aren't built for XML.

I will list only the most important features of eXist, but if you are interested, you can find a complete list of features at www.exist-db.org:

  • eXist supports many popular XML query languages such as XQuery, XPath, and XSLT
  • It has an automatic indexing features that lets it creates indexes while storing data
  • It supports data update
  • It supports SOAP and XML-RPC protocols
  • It doesn't support database transactions at this time, but it supports concurrent access
Step-by-Step Installation
1.  Get JVM (Java Virtual Machine)
If you don't have a JVM on your system already (1.4 or later), you should download one for free from Sun Microsystems (http://java.sun.com/j2se/). Make sure that your version is at least 1.4. As I write, the latest version of Java is 1.5.0_05 (also known as J2SE 5.0), which is I used for this article (see Figure 1).

2.  Set JAVA_HOME variable
The value of this variable is the full path to your Java installation directory. This is how I set up the JAVA_HOME environment variable on my system:

Control Panel->System->Advanced->Environment Variables->System Variables.

Next I created a new environment variable called "JAVA_HOME," with the value "C:\Program Files\Java\jdk1.5.0_05" (it may be different on your system).

To check if you set up the variable correctly, open a new command prompt window. Type "echo %JAVA_HOME%." You should see the Java installation directory printed on the screen (see Figure 2).

3.  Download eXist
You can download it from www.exist-db.org. For this article I used the most recent development snapshot: "eXist-snapshot-20050805.jar." (Note that the stable version eXist-1.0b2-build-1107.jar is referred to as "ancient." Interestingly enough, it still appears at the top of the list. Get the latest development version instead of the stable version.) (see Figure 3)

In order to run the installation program type:

java -jar eXist-snapshot-20050805.jar

That's it, we have installed it. Now you should see "eXist XML Database" entry in the Start->All Programs menu. Now you are ready to run eXist database server as a stand-alone application (see Figure 4).

Start eXist database server by selecting "eXist Database Startup" at the "eXist XML Database" program menu.

Let's start the client, the GUI that allows us to perform useful database operations such as querying the data and adding a file to or deleting a file from the database.

Start the client by selecting "eXist Client Shell" from the "eXist XML Database" program menu. For now the user "admin" who is the administrator doesn't have a password by default (I recommend creating a password for the admin as soon as possible). (see Figure 5)

Storing XML
Let's use the eXist client program to store XML data. Some of the things that the client program allows a user to do are:

  • create collections
  • store data
  • query data
  • create backup
  • restore files from backup
  • manage users
You should put related XML data under a collection. Just as for the file system, collections help organizing your data better. For example, if you have 100 XML orders, you should probably create an "Orders" collection and store all of the orders under this collection.

If you don't have suitable XML data at hand you use XBench, which is an XML benchmark (see the References section for more information). It comes with a random data generator and predefined set of queries. For this article I used a 10MB XML data file generated by XBench. You can download this data at www.cs.umb.edu/~smimarog/eXist/dictionary10.xml.

Follow these steps:

  • Download "dictionary10.xml" to your system.
  • Create a new collection using eXist client "File->Create Collection." Name it as XBench (see Figure 6). Now, you should see two collections: System and XBench (see Figure 7). The System collection is created by eXist at the installation, and it has system information.
  • Select XBench collection.
  • This collection is empty at the moment.
  • Select "File->Store files/directories." Browse and select "dictionary10.xml."
  • This will store the data. On my system it took less than a minute to store the data. This storage time varies, depending on your system.
Now that we have stored the data we are ready to query it. Note that while storing the data, eXist quietly created default indexes. Default indexes are generally enough for most purposes, but if you are willing to use eXist extensions, you can also create indexes manually, which will improve performance. Check the eXist documentation for details on this topic.

More Stories By Selim Mimaroglu

Selim Mimaroglu is a PhD candidate in computer science at the University of Massachusetts in Boston. He holds an MS in computer science from that school and has a BS in electrical engineering.

Comments (1) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Most Recent Comments
XML News Desk 11/29/05 07:22:28 PM EST

eXist - An Introduction To Open Source Native XML Database. In this article I am going to introduce you to the open source, free (GNU LGPL license), native XML database eXist (www.exist-db-org). Data is important, no question about it. Data that can't be queried is not very useful. Users expect to have good query response time. From my personal experience and testing, I am confident in saying that eXist is a fairly good database. It has very good query response time, it is very user friendly, it's easy to set up and operate, and it's written in Java, therefore it is platform independent.

@ThingsExpo Stories
In his General Session at 17th Cloud Expo, Bruce Swann, Senior Product Marketing Manager for Adobe Campaign, explored the key ingredients of cross-channel marketing in a digital world. Learn how the Adobe Marketing Cloud can help marketers embrace opportunities for personalized, relevant and real-time customer engagement across offline (direct mail, point of sale, call center) and digital (email, website, SMS, mobile apps, social networks, connected objects).
SYS-CON Events announced today that Hitrons Solutions will exhibit at the 19th International Cloud Expo, which will take place on November 1–3, 2016, at the Santa Clara Convention Center in Santa Clara, CA. Hitrons Solutions Inc. is distributor in the North American market for unique products and services of small and medium-size businesses, including cloud services and solutions, SEO marketing platforms, and mobile applications.
With the introduction of IoT and Smart Living in every aspect of our lives, one question has become relevant: What are the security implications? To answer this, first we have to look and explore the security models of the technologies that IoT is founded upon. In his session at @ThingsExpo, Nevi Kaja, a Research Engineer at Ford Motor Company, will discuss some of the security challenges of the IoT infrastructure and relate how these aspects impact Smart Living. The material will be delivered i...
Your homes and cars can be automated and self-serviced. Why can't your storage? From simply asking questions to analyze and troubleshoot your infrastructure, to provisioning storage with snapshots, recovery and replication, your wildest sci-fi dream has come true. In his session at @DevOpsSummit at 20th Cloud Expo, Dan Florea, Director of Product Management at Tintri, will provide a ChatOps demo where you can talk to your storage and manage it from anywhere, through Slack and similar services ...
SYS-CON Events announced today that CA Technologies has been named “Platinum Sponsor” of SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY, and the 21st International Cloud Expo®, which will take place October 31-November 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. CA Technologies helps customers succeed in a future where every business – from apparel to energy – is being rewritten by software. From ...
SYS-CON Events announced today that Cloudistics, an on-premises cloud computing company, has been named “Bronze Sponsor” of SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. Cloudistics delivers a complete public cloud experience with composable on-premises infrastructures to medium and large enterprises. Its software-defined technology natively converges network, storage, compute, virtualization, and management into a ...
Keeping pace with advancements in software delivery processes and tooling is taxing even for the most proficient organizations. Point tools, platforms, open source and the increasing adoption of private and public cloud services requires strong engineering rigor - all in the face of developer demands to use the tools of choice. As Agile has settled in as a mainstream practice, now DevOps has emerged as the next wave to improve software delivery speed and output. To make DevOps work, organization...
My team embarked on building a data lake for our sales and marketing data to better understand customer journeys. This required building a hybrid data pipeline to connect our cloud CRM with the new Hadoop Data Lake. One challenge is that IT was not in a position to provide support until we proved value and marketing did not have the experience, so we embarked on the journey ourselves within the product marketing team for our line of business within Progress. In his session at @BigDataExpo, Sum...
SYS-CON Events announced today that Ocean9will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. Ocean9 provides cloud services for Backup, Disaster Recovery (DRaaS) and instant Innovation, and redefines enterprise infrastructure with its cloud native subscription offerings for mission critical SAP workloads.
DevOps is often described as a combination of technology and culture. Without both, DevOps isn't complete. However, applying the culture to outdated technology is a recipe for disaster; as response times grow and connections between teams are delayed by technology, the culture will die. A Nutanix Enterprise Cloud has many benefits that provide the needed base for a true DevOps paradigm.
With major technology companies and startups seriously embracing Cloud strategies, now is the perfect time to attend @CloudExpo | @ThingsExpo, June 6-8, 2017, at the Javits Center in New York City, NY and October 31 - November 2, 2017, Santa Clara Convention Center, CA. Learn what is going on, contribute to the discussions, and ensure that your enterprise is on the right path to Digital Transformation.
SYS-CON Events announced today that T-Mobile will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. As America's Un-carrier, T-Mobile US, Inc., is redefining the way consumers and businesses buy wireless services through leading product and service innovation. The Company's advanced nationwide 4G LTE network delivers outstanding wireless experiences to 67.4 million customers who are unwilling to compromise on ...
SYS-CON Events announced today that SoftLayer, an IBM Company, has been named “Gold Sponsor” of SYS-CON's 18th Cloud Expo, which will take place on June 7-9, 2016, at the Javits Center in New York, New York. SoftLayer, an IBM Company, provides cloud infrastructure as a service from a growing number of data centers and network points of presence around the world. SoftLayer’s customers range from Web startups to global enterprises.
SYS-CON Events announced today that CrowdReviews.com has been named “Media Sponsor” of SYS-CON's 20th International Cloud Expo, which will take place on June 6–8, 2017, at the Javits Center in New York City, NY. CrowdReviews.com is a transparent online platform for determining which products and services are the best based on the opinion of the crowd. The crowd consists of Internet users that have experienced products and services first-hand and have an interest in letting other potential buyers...
The taxi industry never saw Uber coming. Startups are a threat to incumbents like never before, and a major enabler for startups is that they are instantly “cloud ready.” If innovation moves at the pace of IT, then your company is in trouble. Why? Because your data center will not keep up with frenetic pace AWS, Microsoft and Google are rolling out new capabilities In his session at 20th Cloud Expo, Don Browning, VP of Cloud Architecture at Turner, will posit that disruption is inevitable for c...
SYS-CON Events announced today that Infranics will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. Since 2000, Infranics has developed SysMaster Suite, which is required for the stable and efficient management of ICT infrastructure. The ICT management solution developed and provided by Infranics continues to add intelligence to the ICT infrastructure through the IMC (Infra Management Cycle) based on mathemat...
SYS-CON Events announced today that SD Times | BZ Media has been named “Media Sponsor” of SYS-CON's 20th International Cloud Expo, which will take place on June 6–8, 2017, at the Javits Center in New York City, NY. BZ Media LLC is a high-tech media company that produces technical conferences and expositions, and publishes a magazine, newsletters and websites in the software development, SharePoint, mobile development and commercial UAV markets.
Now that the world has connected “things,” we need to build these devices as truly intelligent in order to create instantaneous and precise results. This means you have to do as much of the processing at the point of entry as you can: at the edge. The killer use cases for IoT are becoming manifest through AI engines on edge devices. An autonomous car has this dual edge/cloud analytics model, producing precise, real-time results. In his session at @ThingsExpo, John Crupi, Vice President and Eng...
SYS-CON Events announced today that Telecom Reseller has been named “Media Sponsor” of SYS-CON's 20th International Cloud Expo, which will take place on June 6–8, 2017, at the Javits Center in New York City, NY. Telecom Reseller reports on Unified Communications, UCaaS, BPaaS for enterprise and SMBs. They report extensively on both customer premises based solutions such as IP-PBX as well as cloud based and hosted platforms.
The buzz continues for cloud, data analytics and the Internet of Things (IoT) and their collective impact across all industries. But a new conversation is emerging - how do companies use industry disruption and technology enablers to lead in markets undergoing change, uncertainty and ambiguity? Organizations of all sizes need to evolve and transform, often under massive pressure, as industry lines blur and merge and traditional business models are assaulted and turned upside down. In this new da...