Enterprise IT • 51:13
Oracle 10g is a powerful enterprise database system that is fully supported on the Mac OS X Server platform. Learn techniques and tips for building an Oracle 10g server farm on Mac OS X, from people who know the system best: Oracle engineers and Apple IT experts. This session is perfect for database and system administrators who need to learn how to set up and deploy Oracle 10g for the Mac.
Speakers: Sergio Leunissen, Paul Lambert
Unlisted on Apple Developer site
Transcript
This transcript was generated using Whisper, it has known transcription errors. We are working on an improved version.
Good morning. Thanks for attending this session this morning, session 634, Configuring and Deploying Oracle 10g on Mac OS X. We're very excited about this session. I think those of you who were here last year heard the announcement that it would be coming, the product actually released in December of this last year. And both companies are very excited by the uptake in the development and deployment of Oracle 10g on Mac OS X over the last couple of months.
And we're here today, we've got a couple of folks from Apple and Oracle to come up and talk to you a little bit about deploying and things that you should know about as you go through your configuration and hopefully help you along in your development as well. I'd like to take a quick survey of those in the audience who are ISVs who are looking at using Oracle 10g as part of the database for their development.
Okay, great. And how about in-house or consulting? In-house developers or consulting, so looking to use it in your enterprise or in your business? Fantastic, great. Well, I think today's messaging is really going to help. We have Sergio Leunissen from Oracle here to talk about Oracle database and, you know, big picture how it runs, the architecture behind it, a little bit about the different configurations.
And then followed up, Paul Lambert from Apple will actually be talking about specifically how to optimize and configure for Mac OS X. And then Sergio will actually come up and give a 10-15 minute demonstration on HTMLDB, which we're really excited about. And then we'll wrap up with a Q&A session because I'm sure there's a few questions out there.
I would also like to mention following this session, on the second floor in the third alcove downstairs across from the Enterprise IT Lab, we'll be having a special session called 10g RAC on Mac OS X. So if you can attend that, that would be great. We actually have one of our partners that's going to be putting on that.
It's sort of an informal discussion, but we'd love to have you attend and learn a little bit more about deploying Apple in a cluster configuration and taking advantage of real application clustering from Oracle. So to start off, we'd like to run a customer testimonial video for you. Around the world, Holland has long been known as the country of flowers, and it's easy to see why. An assortment of these colorful creations blanket the region's landscape, providing a wonderful experience. providing a rich backdrop for Dutch life.
At this flower auction, more than 19 million flowers change hands every day, supplied by 6,000 growers and bought by 1,100 wholesalers. One of the leaders behind the flower boom is Florensis. Florensis' position is in the top three of the world, you could say, because that's our aim, to be the best worldwide.
The company cultivates more than 650 million plants on a yearly basis on more than 220,000 acres of land. But the rapid growth in Florencys greenhouse operations has also created challenges. The amount of data was increasing, you can say, day by day. Before choosing Oracle, the company had difficulty managing the data for its blooming business. You need to have a system where all the data was kept in on a reliable way, because the system is supporting every part of the process.
To make its business run more efficiently, Florencys teamed up with Oracle and Dutch IT company Matadex. Working together, they've created a custom solution to support the entire Florencys logistical process, from order entry to client delivery. The foundation of the system is the Oracle 10g system. The system is Oracle Database 10g, an Apple's Mac OS X platform. The solution also supports the use of robotic instruments that control and monitor operations on the ground.
This robotical system is connected to the Oracle database and is fully supported by the Oracle database. So data which are coming out of the robotical system are going into the intra system on a real time basis. Today, Florencia's business is blossoming like never before, thanks to Oracle Database 10g. By combining technology and new innovations in flower R&D, Oracle and Florencia are planting the seeds for continued success. Our core business is not maintaining systems, our core business is growing plants and seeds. That's why we've chosen for Apple and for the same reason we've chosen for Oracle.
Great, with that I'd like to bring up Sergio Leunissen to begin our presentation. Sergio. Thanks Matt. Good morning. You know, I actually grew up, I was telling Matt, I grew up about 12 minutes away from that auction house. That's a place called Alsmere. About 70% of the flowers in the world that are traded in the world go through there. That was about 10 years ago.
Great, so I'm excited to be here to talk about how Oracle and Apple have been working together to create a great platform for running your enterprise data. It's a very affordable, cost-effective, flexible, easy-to-manage platform. So what are we going to cover today? Well, I want to talk about the objectives behind creating Oracle Database 10g.
[Transcript missing]
So my name is Sergio Leunissen. I've been with Oracle for 10 years. Actually, June 12th, it'll be 10 years. I've been working with the Oracle database since version 7.1.6, and I've been the proud owner of a Mac for about three years at home.
So what were the objectives behind Oracle Database 10g? What were we trying to do for our customers? Well, the first thing we wanted to do was to enable grid computing. And grid computing allows our customers to more efficiently use their hardware resources, their servers, their storage, configure them in an IT infrastructure such that it's used more efficiently. I'll talk more about that later.
The next thing we wanted to do is deliver the highest quality of service. What does that mean? Well, it means you deliver systems that are always up and running. That perform well, that scale well to handle a lot of users, and they're also secure. They protect your data, they make sure no one can bring it down.
We wanted to do this while reducing the cost and complexity of managing all this IT infrastructure. Finally, Oracle has always been known to provide the most comprehensive integrated database available, meaning that you can use it for your transaction processing, data warehousing, business intelligence, and even special data types such as spatial and unstructured text data, for example.
So we did this, we delivered database 10g sometime last year, and this is what industry experts are saying. They're saying that Oracle database 10g is simply the most sophisticated database available today on the market, and we're proud of that. But what we're even more proud of is that we've reached new levels of manageability, such that database 10g is no longer just for Fortune 500 companies. Small shops, mid-sized enterprises stand to gain from using database 10g as well.
[Transcript missing]
So let's talk about grid computing. Grid computing is the idea that you pool your resources, that is your processing power, and your storage such that it can be shared and allocated dynamically across all the applications that need to use it. If you look at this picture over here on the left side, that is your left side, you see that, you see separate applications, each running on their own servers, on their own storage.
Each of them are configured and sized to handle peak load. What does that mean? That means that at any point in time, one of those systems, server and storage together, could be taxed, could be running at capacity, while another one, another system is not doing anything, right? So you're not efficiently using your hardware resources.
With grid computing, what you do is you standardize on high performance, low cost hardware such as Apple XServe, low cost storage such as Apple XServe RAID, and you pool them together, you consolidate them such that they can be used. They're resources, the capacity can be shared across applications. The reason you use these high density, high performance nodes such as Apple XServe is that you can start small and you can scale up as you need more. So it's a very modular approach.
So our next objective was to provide high quality of service. One of the aspects of quality of service is that you want to reduce downtime. Now downtime can be caused because there's data corruption, right, maybe a disk fails. You could have just data corruption because someone made the wrong update on your data.
Or you could have an all-out calamity, a disaster at your data center, right? So what Oracle has done is we've introduced technologies with database 10g To make it very easy and quick to recover from all of these problems, right? To make sure you're up and running as soon as possible.
For example, with ASM, ASM is Automatic Storage Management. It's a technology that allows you to, that automatically for you mirrors your data across what's called failure groups. A failure group being a collection of disks, disks that share, that might fail together because they share a network connection or they share a disk controller, right? It automatically mirrors that for you. It also allows you to do something called flash recovery, which means you're backing up, you're putting all your recovery related files on low cost storage, such as Apple X, Apple X Server RAID, to make sure you can quickly recover from that.
Another source of downtime could be a human error. Someone could drop a table or maybe delete some rows that shouldn't have been deleted. I've never done it myself, but I've heard this happens. With Flashback, Flashback is a technology that allows you to, well, flashback, that is rewind the database to a point in time where a table that was dropped, you know, exists again. It's very, Oracle's the only database company that has that technology. And finally, Data Guard is a technology that allows you to keep a running copy of the database at a remote site so you can failover should something happen.
Another aspect of quality of service is making sure that your database and the data in it is secure. Oracle provides several technologies to keep your database secure. First, Oracle has been committed to security for a long time. In the last decade, we have passed 17 independent certifications for security, called Common Criteria Certification. We're the only database company in the industry that has that. So we're serious about security. What we've done in 10g, we've introduced technologies such as, that provide low level security. Technology is called fine-grained access control.
Now traditional databases, what they do is they provide access control at the object level. So someone may or may not be able to see a table, say with employee names and salaries. What we do is we make that access control much more fine grained, allowing you to secure or provide access control at the data item or the row level.
So I can see some of the rows in the employees table, but not all of them. And this is enforced at the database level, regardless of how you come in, what application you come in from. We can even provide row level access control based on the column you're selecting. So I don't know, some of you here probably know SQL. If you type select * from employees, or say you select last name, you can see that the rows are set up in the database.
So you can see that the rows are set up in the database. So I can see some of the rows in the employees table, but not all of them. And this is enforced at the database level, regardless of how you come in, what application you come in from. name from employees, I'm allowed to see all the rows. But as soon as I select last name comma salary from employees, I only get to see the rows I'm allowed to see. So it fires based on the column I'm selecting.
There's an option called Advanced Security Option that helps you encrypt your data both when it's in transit on a network and in the database itself. And then finally we have auditing technology allowing you to capture who's looking, at what time, at what data, what exactly they saw, and what updates they made. Very important these days when there are new regulations such as Sarbanes-Oxley and HIPAA requiring you to do a lot of auditing.
As I mentioned before, we've made it much easier for you to manage all this with running on Apple hardware, having lots of automatic features such as things that automatically tune your memory, automatic storage management, I talked about that, and also automatic backup and recovery, and diagnostic tools that come up in a web-based console, allowing you to see, getting warnings for things that are going on in your database.
So all in all, database 10g running on Apple XServe, really affordable, cost effective platform to run your enterprise data. Now I'd like to ask Paul to come on stage and tell us about the details. Thank you, Sergio. My name is Paul Lambert. I am the Mac OS X architect for Apple's IS&T. Some of you may have seen me speak earlier this week. I'm going to talk about configuring the database itself--I'm sorry, configuring the operating system and the systems that you're going to be putting your database on. I'm going to discuss a couple of topics.
First we're going to talk about choosing where your data should be stored. And when you do that, you have a number of questions you have to keep in mind, but it's also the most important question you have to answer. And the thing that you are doing with a database is dealing with your data, and if that data is the most important thing, start with it.
The second thing we're going to talk about are various configurations you can use for your various editions of Oracle Database 10g. And we'll talk about some recommended configurations and all of the various options that you have within those ranges. Then we'll talk about actually configuring the hardware that you are using for your database.
and configuring the software whenever you install it. And finally, we'll talk about automating your deployment very briefly. This is probably the most important phase if your management actually gives you time to do any planning. And the reason why it's important is because it gives you a lot of reproducibility later, and that's always very helpful at 3:30 in the morning on a Saturday. So to begin with, let's talk about choosing where to store your data.
Apple provides a number of storage options. The first and the most famous, of course, is XServe RAID. And XServe RAID is a fantastic storage option. If you're using XServe RAID, it gives you enhanced reliability, enhanced availability, enhanced performance, and also enhanced size. If you're using the Apple internal PCI RAID card, which is a feature that some people aren't so familiar with, but on XServe G5s this is a build-to-order option.
And if you use this, it can improve the reliability of the internal disk for many cases, and so sometimes this is a very good option. We also provide software mirroring within the operating system, which can be used to improve reliability in the event of a hardware or component failure. And in many cases you may wish to use, or you may need to use, a SAN switch.
When you're choosing where to store your data, you do have to consider the three major questions, which are: How much data do you have? If you have 5 terabytes of data, you won't be storing that on internal disks. You need to know how are you going to be using that data. If it's extremely important that it be quick, then you need to make sure you use quick storage. If that's not important, of course you can rule that out.
And you also need to know how reliable your data needs to be. If the database is used during the day by a small sales team and if it goes out, you know, they get annoyed but it doesn't slow the business down, that's one thing. If the database is driving your online website and all of your income comes from it, then reliability is going to be a much larger concern.
So let's talk about the additions of Oracle. Oracle Database 10g is standard edition one. In a typical configuration, you'll use an XServe G5, which provides you with ECC RAM and some other really nice features, and it also is really small. You might use the internal disks or you might attach an XSERV RAID, depending on your storage and performance needs.
For Oracle Database 10g Standard Edition, you might use, for example, two XServe G5s, each with an attached XServe RAID, or use the internal disks with the Apple Hardware RAID PCI card. That gives you a little more flexibility in your deployment, and it also gives you a little more room for growth.
If you're using the enterprise edition of Oracle Database 10g, you might want to use multiple XServe G5s with the Apple Hardware RAID PCI card installed to give you that reliability for your root volume and also if you use the internal disks for backup space or some other purpose. And then attach XServe RAIDs to them for the storage and take advantage of the reliability and the performance.
You may wish to use a SAN switch or a SAN fabric in that case as well, although it's entirely not necessary, and it depends on your storage requirements and your flexibility requirements. The advantage of using a SAN switch is that you can then address more than one XSERV RAID from each XSERV. The disadvantage is it is an additional bit of complexity. So if you don't need the additional space, it's probably not necessary.
And finally, if you're going to use Oracle's real application clusters with Oracle Database 10g, which is a fantastic technology to allow you to scale, you'll want to use multiple XServe G5s. I recommend purchasing a lot of them. You'll need a SAN switch and then multiple XSERV RAIDs. And this allows you to actually share the storage on the XSERV RAIDs between the XSERV G5s. And they'll all address that storage. And then each of those XSERV G5s will act as a database server and will provide access to that data.
If you start to see that you need more CPU, you buy an XSERV G5. If you run low on space, you buy an XSERV RAID. And it allows you to scale those two parts separately. And so it gives you extra convenience and flexibility in your management. If this is where you're keeping the list of restaurants people like to go to for lunch, it's probably too big. But if this is for your enterprise-level databases, it's fantastic.
So let's talk about the configuration of the hardware. The Apple Hardware RAID PCI card is not so familiar to many Apple customers, and so I wanted to spend a moment talking about it. It is an internal card that provides hardware RAID for the internal disks on the XSERV G5.
Because it is hardware RAID, it doesn't use any CPU power to do that. The simple and obvious configuration to use it in is to do RAID 5 among all three disks. And this allows you to survive if you have a disk failure. It also allows you to have the performance of RAID 5.
However, If you do that and you have a single file system on there, it can complicate your backups a little bit and so forth. So the recommended configuration is to use RAID 5, but to do multiple logical volumes. When you do the multiple logical volumes, you can have a small volume for your root volume and then a larger area for your data. And then you can backup the OS and file system in the database installation separately from the actual data, and so your backup administrators will be happier.
If you're using Oracle's clustering or failover configurations and those products, you may actually consider not using that and in fact going to a single root disk. For example, with an Oracle RAC installation, you might want to use cluster servers with a single disk. And that allows you to hopefully be able to deploy a new one quickly in the event of a failure and survive a failure by redundancy.
If you're going to be using XServe RAID, the simple and obvious configuration is to do RAID 5 across all seven disks on each controller and publish that as a single one. However, a more recommended configuration in order to survive more types of failures would be to use RAID 5 across six disks and do one hot spare, so that you don't have to be there to replace the disk, it will automatically replace a failed one. And then you can use the software mirroring, the Apple RAID software mirroring in Disk Utility to mirror between the two controllers. And then if a controller fails, you're able to continue using the data on the other side until you're able to replace that controller.
If you're using Oracle's automatic storage management, you may want to go back to a very simple configuration using RAID 5 across seven disks, and then use Oracle for the mirroring. The advantage of that situation is it allows Oracle to manage the mirroring part, so you can get a little bit more performance because Oracle knows exactly which data it needs to mirror and which it can live without.
If you decide to go with a SAN switch or your environment requires it, it's important to pay attention to the configuration of that switch. The simple configuration, which is to power it on and plug everything in, actually does work very nicely, and especially if you're using Oracle RAC, that can be fine. But I would recommend that you actually zone each LUN from your storage, from your XSERV RAIDs, to the controllers that need to see it.
And the advantage of this is when somebody comes in to do some work who's not very familiar with the configuration or the situation, they won't, for example, format drives that are really on other machines and in use, and so they don't realize that and they wipe out data or whatever. It's easy to make mistakes like that, and the easiest way to avoid them is to do that zoning.
So now it's time to install your software. And of course the first thing you need to install is Mac OS X Server. When you're installing Mac OS X Server for Oracle Database 10g, it's important to keep in mind that right now the only certified revision with Oracle Database 10g is 10.3.6. So when you install Mac OS X Server 10.3.6, in the Oracle installation instructions, there are instructions on getting the Oracle kernel update. And you can download that and install it. It's a very simple install.
What's not mentioned in the instructions, but which I recommend, is also getting the Ethernet driver update from Apple. And the Ethernet driver update applies to 10.3.3 through 10.3.7. And it fixes a minor problem with the Broadcom Ethernet driver. And it'll save you a little bit of trouble later on if you have a very busy network and you start running into strange issues. It's just easier to start with it.
Finally, we'll talk about the file systems on the software side. When you are installing Oracle Database 10g, and you go to put your data on your XSERV RAIDs or your internal disk, you'll probably use HFS+. The advantage of HFS+ is it's simple, it's the default, and the performance is fantastic. It's exactly what you should be using. And of course, you might do the software mirroring in order to ensure reliability across multiple RAID controllers.
If you're using Oracle RAC, however, or Oracle's automatic storage manager, you'll want to use raw devices. And raw devices give direct access to the physical device, and typically on other platforms, raw devices are literally raw and are not a file system. On Mac OS X, they're treated as a file system, and this can be a little bit of a source of confusion.
So I wanted to cover it very quickly. Whenever you make a raw device for Oracle, if you give it /dev/disk 3s2 or whatever, the next time the machine boots, that disk may be renamed. Because on Mac OS X, the disks are named in the order that they're seen. In order to prevent that and simplify that configuration, the disk label command and the raw partition file system were put into 10.3.6.
You can use the user-- SBin pdisk command to actually put a partition label on the device. And you create a single partition of type Apple label. And then you use the disk label command to tell that partition that it is a raw device, and what its name should be in slashed dev. You also set the permissions for it and all of those other pieces of information. And this is all described in the disk label man page. But I wanted to point it out in case it was a source of confusion when you're first starting.
Other useful piece of information is if you are doing Oracle RAC, when you do this from one XServe G5 to one XServe RAID, the other XServe G5s may not see the changes immediately. And on those hosts, you can use pdisk with the -dump option against that device, and it will re-read the header information and it will see that there's that raw device there and it will show up.
Once you have the server installed, you'll want to do some tuning, and Oracle's instructions have specific tuning options that they recommend. They also recommend putting it into XERC directly, and that can be a maintainability issue sometimes, especially if you have software that's checking for changes to files and so forth. One option and one way to separate that from the Apple-supplied code in XERC is to only change XERC enough to read, for example, an XERC.local tuning file, or an XERC.local file.
If you look in Mac OS X 10.3.9 or Mac OS X Server 10.3.9, the XERC file there actually does read these. So that's a good place to look for inspiration on how to change 10.3.6's file to do the same. And you'll put some of your settings into the @CRC.local tuning file and some into the sysctl.conf file. And we'll talk briefly about what the different types of settings are and why they go in different places.
The two types of settings are the sysctl settings, which go into sysctl.conf. And those settings are kernel-wide parameters that take effect immediately when they're set by the sysctl command. So you can use the sysctl command to set them on the fly. They're also read from sysctl.conf at boot, so that's where you put them to make sure that they remain after each reboot.
Even though they do take effect immediately, it's important to pay attention to what that effect is, because in many cases, all they do is change the maximum of a maximum, or they change something that is only looked at by processes when they start, and so running processes may not be affected.
The sysctl man page in section 2 of the man pages has information about many of the options that are there. Many of the Oracle provided options are involving System 5 shared memory paradigms, and that's very similar to other operating systems. The per-process resource limits are set by the ulimit command. And the ulimit command is an interesting difference from the kernel parameters, and that is that it is per-process.
So there's no way to change those values for a running process. If you want to change them across the whole system, you do need to change them through the @crc.local tuning file and then reboot the system. They're inherited by every process from its parent, and only root can change them above the soft limits that are set by the parent.
They can't be set for Mac init, which is the primary process running on the system. It has process ID 2. MakaNet kicks off XERC, so every child of XERC, if you do put the tuning in there, will have those new resource limits. But MakaNet also kicks off the Windows Server, and the Windows Server is what provides the GUI login.
And so, for example, there is a max-prox-per-uid resource limit, and that resource limit is at 100 by default. If you have an Oracle account on the system and you're using Oracle in that account, and you've raised that in XERC.localTuning to, say, 2000, for example, and you have 150 Oracle processes running, if you go to the GUI and you log in on the console as Oracle, it will fail, because the limit there is still set to 100, and that also applies if you use ARD to connect in. So in that case, you'll want to SSH in, or log in as another user, SU to root, change your U limit, and then become Oracle.
So once you've done all of these steps and you have Oracle installed, you want to automate the deployment of your configuration. And the reason you want to do this is so that it can be reproduced very easily. The Apple hardware RAID PCI card configuration can be scripted very easily. The Apple RAID software mirroring can also be scripted using the diskutil command.
Your Mac OS X Server 1036 configuration, if you use a deployment image to deploy your systems, you can make a specific image for Oracle database 10g systems. If you don't do that, you may want to start, or you may take an existing image and write a script that modifies it to meet these specific requirements.
For example, by installing the new XERC, XERC tuning local, and so forth. You also may want to write a simple script to do the raw devices, because that provides you with repeatability, and you can tell someone to do it over the phone without having to give them a whole bunch of stuff that's hard to remember.
So those are the things that I wanted to cover and make sure that were clear. Obviously, you do need to make sure you know where your data is being stored and how you're going to use it. And then configuring your hardware for availability and configuring your software for supportability are the next most important steps to allow you to sleep all through the weekend. And now I'm going to give it back to Sergio to show one of my favorite Oracle 10g applications.
Thanks, Paul. Okay, I wanted to switch gears a little bit and talk about application development. Oracle HTMLDB is a free feature of the 10g database that allows you to quickly develop web-based applications. Oracle HTMLDB is a free feature of the 10g database that allows you to quickly develop web-based applications. What's interesting about HTMLDB is that it's entirely browser-based. That is, you develop from a browser, you don't need to install any client software to do development, and you deploy to a browser.
So your end users are using a web browser to see their applications and their data. The other interesting thing is that it's entirely hosted, meaning multiple Projects or individuals can work in the same database in what's called their own workspace, where they have their own database schema and they're not stepping on each other's toes. So we actually have, back in Reston, where I work, Reston, Virginia, we have a server on the internet.
It's called htmlb.oracle.com. And when you go there, you can sign up for a free workspace and do exactly what I'm going to show you now. And as of yesterday, we had something like 9,000 workspaces there all running. Okay, so HTMLDB, web development tool for the Oracle database. So you can do a lot of things with it, but I wanted to talk about it in terms of a specific scenario that I'm sure you're all familiar with.
So picture this, you are tasked with getting organized, collecting data, sharing it on say the projects that you're working on in your department. So what do you do? You spark up a spreadsheet, right? You type in some data about projects, people that are assigned those projects, when the tasks are due and so forth.
And then you send it to all your coworkers, and they add yet more data to it, right? And they send it back to you. Now you have 10 spreadsheets, right? And you need to merge them all and scrub them and dedupe them. This is probably something that you've done before.
Spreadsheets are a wonderful communication tool. If you have data in it, it's great to show reports and charts and things like that. They are a lousy tool for sharing data and doing updates at the same time. It's not a good concurrent database. So what are you left with? You're left with a mess of data fragmentation. You have data that's not secure. It's floating around on desktops, on USB drives and so forth. It's not accessible when you need to get to it. Whenever you need to get the latest data, someone else always has it.
That's just the way it works. And you're really inefficiently using your resources to So what we're doing with HTMLDB, what we're helping you do is taking some of those spreadsheets, the data out of them, and desktop databases, take the data out of it, move it into a database, Oracle Database 10g, Where it's secure, where everybody can access it at the same time, right? Where it's backed up, where it's managed by professionals, where you can audit who's actually looking at the data.
And using HTMLDB, building user interfaces, web-based applications, so that people can access it from any web browser. Can we go to demo two, please? So here I am. Actually what I did is on Wednesday I installed the Oracle Database 10g and HTMLDB on 10.3.6 of OS X Server and we have that running right here. And so here I am in my web browser. I'm logged into my workspace.
I called it Apple. And over here I have one of these spreadsheets. Now what I'm doing here is I'm tracking data about hardware assets that we have in our organization. So we have information about what kind of machines we have, what kind of CPUs, how much they cost, when we bought them and so forth.
It's a pretty old spreadsheet. So what I want to do is get rid of this thing, right? I want to be able to have everyone in my organization to look at the data at the same time, always be looking at the up-to-date data, and be able to make updates.
So what I'm going to do is I'm going to create a new application. And I'm going to say I want to do that based on spreadsheet data. And what I just did is I highlighted the entire data set.
[Transcript missing]
The table that this is going to create, this is going to create a database table, right? I'm going to give that a name.
[Transcript missing]
Things such as how much money do we spend on them? And then finally, I'm going to give this application a name. The hardware asset tracker and this is really all we need. Ah, okay, we need to use a, some kind of look and feel or a theme for this application. So what we do in HTMLDB is we provide out of the box a couple of themes and they're really just sets of HTML templates stored in the database and you can, you can modify them and create new ones if you want.
There we go. Looks like it's set to go. So, without really any programming so far, I've been able to tell this wizard, you know, create me a data entry and reporting application. So, let's see what we have. The application is already secured. Right now it's using a HTMLDB specific authentication mechanism, but you can also use single sign-on or LDAP based authentication if you want.
So here we are. We're running the application. Let's just see what we can do. First, we can filter the data set. So here you're looking at the data coming out of a table in an Oracle database that was previously in a spreadsheet. We can toss away the spreadsheet. This is now the single point of truth, right? This is where people go, point their web browser, and they're operating on the data in the spreadsheet.
I can also sort by different columns, right? Did I mention that Apple X Servers are performant? That's pretty quick, right? Now, of course, we can also add new records to this database very quickly, so it generated that form for us. Let's look real quickly at the kind of analysis reports. It's created some analysis reports. So here's by CPU type, you know, how much money did we spend on them, average and summarized. And then we also have some charts, you know. How does our asset database break down by CPU type? Great.
So, this is an application generated real quickly, right? It didn't really do any programming. That's really the idea behind HTML to be declarative, real quick, reporting and data entry applications. But often that means, if something is quick, that often means whatever it produces is rigid. You can't touch it, you can't change it, you can't change the behavior or the look and feel of it. So, I'm going to dispel that myth here.
What I'm going to do is, let's look at--well, let's first see if this form works. So, here's an update form and I can make updates to the database, right? And the nice thing is with HTMLDB we automatically have built-in lost update detection, allowing concurrent updates without really losing any data or any changes.
But let's say, There's a business rule that I want to impose on this application. That is, I don't want anyone to be able to "Apply or insert a null value in the CPU speed field. So right now it's clear that that rule is not enforced, right? You see over here that the value is null. And so let's bring that up.
What I want to do is create a data validation on this form, making sure that whenever someone does an update in this form, that field is checked. Notice here at the bottom, I have what's called a developer toolbar. This is what allows me to, because I'm the developer, I'm logged into my workspace as a developer and I'm running this application, this is what allows me to change the behavior and the functionality of this application really while it's running. So what I'm going to do is, I'm going to create something new on this page, and that something new is a control, and in this case I want the validation, right? So now I'm in the development environment. Incidentally, HTMLDB itself was developed in HTMLDB.
I'm going to let that sink in for a little while. So we built, using HTMLDB, a collection of applications, one of which you're looking at now, the application builder, together making up 900 pages or so. So it's a serious tool, right? You can do real things with it. Because HTMLDB really is a database application. All it does is collect data from you, puts it in our metadata store about the application that you're building. And we thought the fastest way to do that was to use HTMLDB itself.
Now, the only thing is that it sometimes causes headaches when you're editing a page with itself, right? Does that make sense? Which you have to do sometimes. Anyway, so I'm creating a validation and sorry. I'm creating a validation that's going to check to make sure that the item, the field, is not null.
[Transcript missing]
So let's try to make an update. Ooh, error occurred, and you see value must be specified, right, at the field level. So I changed the functionality of the application even though it was generated from a wizard. Now there's one more thing I want to do. I want to show you that I can change the look and feel of this application simply by switching its theme.
So I'm going to add a new theme to my application here and then say I'd like to switch to that theme please. And really all it's doing, it's taking all the templates and switching them, because it's all data driven. And so here we are in the application again, right, now with a completely different look.
Go back to the slides, please. Okay, so we've seen... That the database running on Apple X Server is really affordable.
[Transcript missing]
So in summary, I hope what you were able to take away from today's presentation was that we've got some great working products together. I think hopefully you've seen this week that Apple's definitely focused on the enterprise.
We're really excited about what we're doing here. Hopefully you've all had a chance to walk around the data center and check out some of our solutions down there. We've got a lot of successes right now going on in this area for our company and with our enterprise partners. And we're really hoping that some of the things you've taken away from this week is that we're definitely a player out there and would love to work in your organizations. I guess a couple things I would like to mention again is the 10g Rack session following this.
It's going to be in level 2 in Alcove 3. Again, it's across from your enterprise IT lab. Another thing we'd like to do is get your feedback on what you saw this week from an enterprise level. We actually have an enterprise feedback session. It's at 3:30 in which room, Chris? Yes? Please come and give us your feedback.
If you haven't noticed, if you've been attending WWDC for the last few years, we've really tried to emphasize a lot on what's going on in the enterprise with Apple. We do that with your feedback. I think hopefully you've seen a continuing growth in the sessions and in the availability of our engineering groups and the products that are coming to market. If you're out there developing markets for the enterprise, I didn't introduce myself earlier, but my name is Matt Sturgis and I have a team of folks that manage our enterprise relationships, the IT partners.
For instance, the Oracles and SAPs, when they're bringing applications to market, they work directly with our team. One of the things that we like to do is work more closely with you as partners to help you guys be successful in the market when you do bring your solutions to market.
For the customers as well, one of the things that we're looking for are success stories. Especially on Oracle right now. If you're out there in your shops and you guys are developing or deploying Oracle, please come find me after this session. I'd love to talk to you about what you're doing and see if there's potential to make you guys famous within the Apple Oracle community.