Choosing Your Tools


Once you have decided what you are going to develop on your intranet, you need to decide how you are going to do it. This means sitting down and working out what hardware your intranet will use, and what software it will run on. This is probably the most difficult task for most web developers working on an intranet. Most have a basic idea of what hardware should be used, but don't have much of an idea of exactly what they should be looking for. In this section, we'll discuss some of the basics. From there you can go to your IT department and manager, feeling more confident about discussing your needs.

Choosing Hardware.

Your hardware is just as important a choice as the software you choose to run your intranet on. Many web developers do not care a whit about the hardware they are using, so long as it works. Which is unfortunate, since this is an extremely important decision to make. Poor hardware choices will cause performance drops, which will be painfully noticeable to your intranet's users.

Horsepower

There are three things that will make or break a server's performance: CPU, RAM, and hard drive space. Don't go crazy - a 5-person organization doesn't have the same resource requirements as a 500-person organization does.

Regardless, you are better off going with a server-level solution from a respected retailer such as Dell or HP. If you are planning on performing resource-heavy applications, such as a complex database system, or a complicated intranet application, you will want to look into a fairly high-powered CPU - possibly even a dual-CPU system. If you are only planning on hosting static pages, with an online form here or there, a lower-powered CPU will work just fine.

Whichever choice you make for CPU power, you will want to put lots of RAM into your intranet server - the more the better. This is especially true for larger organizations, who may potentially be serving hundreds of users at once.

You'll also want to place a large amount of hard drive storage in the server. Since a large amount of information will be transmitted through, stored on, or be created by the intranet, the last thing you want is to run out of storage space.

RAID and Backup Solutions

If you are hosting mission-critical data on the intranet server, you may want to investigate installing a RAID (Redundant Array of Inexpensive Disks). The theory behind the RAID is that data on your server is redundantly stored across several hard drives; if one hard drive fails, you avoid data loss. This does tend to add to the hardware purchase cost, as a RAID takes at least two hard drives and works much quicker on SCSI hard drives than on IDE.

In addition, you should also create a plan for backing up information on your intranet. It will be a valuable resource, and you don't want to lose all the information it contains. Ideally, you would back up the data nightly onto magnetic tape (or CD or DVD depending on preference); once a week, you would take this backup to a secure off-site location as protection against theft or property damage.

Network Hardware

Depending on the current size of your network, you may want to consider upgrading your current network equipment to handle the extra stress of the intranet traffic, which will be considerable if daily tasks are moved to the intranet. This could be as simple as upgrading from 10MB Ethernet to 100MB Ethernet, or as complicated as installing routers on the network.

Hardware Life Span

Something to keep in mind is that most hardware has a replacement cycle of two to five years. When creating your budget for intranet hardware, you should count on replacing the entire system on an average of every three years. If you already have existing intranet hardware, you should find out how far along it is in the hardware replacement cycle. If it is past the two-year mark, you will want to budget in new hardware as a replacement.

Ask your IT department to compare the cost of leasing versus buying your server hardware. Many system integrators offer excellent lease prices. The benefit to leasing is that when your lease term is over, you can trade up to new hardware without wasting resources.

Special Considerations

If you have remote users, or want users to be able to connect to the intranet from home, you may have to make special network considerations, such as providing remote dial-in facilities or creating a demilitarized zone (DMZ). A DMZ is a segregated network within your organization that allows remote users to access your intranet without compromising the rest of your internal network.

If you plan to do something like this, you will need to add networking hardware such as hubs and routers to your IT budget. Make sure you present preliminary budgets to management once you have decided what hardware to use for your intranet, to avoid having to scramble at the last minute to meet your budget.

Choosing Software

The first place to start when you're developing your intranet is to decide whether to use an out-of-the-box intranet software package, a hosted solution, or to custom-build your own intranet software. Each choice has definite advantages and disadvantages, depending on your organization's size and budget. Though we will get into more detail in Chapter 5, you will want to decide now which of the above you are going to use.

Out-of-the-Box Solutions

The Internet abounds with out-of-the-box intranet solutions. The biggest players are Microsoft Exchange and Lotus Notes, though there are literally hundreds of other contenders.

Out-of-the-box solutions come in two forms: in-house and hosted. In-house intranet packages are installed on your own network, giving you complete control over access and a small level of customization. Hosted solutions are housed on a remote server, freeing up your IT staff for other projects.

Software packages, such as Lotus Notes, or Microsoft Exchange are very popular for organizations with limited IT budgets, or no development staff. These applications offer a lower over-all TCO (Total Cost of Ownership) than custom solutions, as well as support, but offer far less customization.

The big benefit, however, is that you can have a fully functional intranet in a day or two, without a significant investment in development time. This is valuable for smaller organizations with a limited IT staff; it allows them to get back to other projects within a relatively short amount of time.

Though out-of-the-box solutions seem a relatively cheap and easy way of putting up an intranet, they are not always the best solution. These solutions cover a very general range of functions for an intranet, giving features such as expense reporting, online discussions, and calendars. However, industry or company-specific functions such as software bug tracking, customer incident reports, or customer relationship management (CRM) tools will not be included, and may be expensive add-ons.

Customizing out-of-the-box solutions can often be a painful process. With out-of-the-box solutions, you are forced to adapt to the software, rather than the software adapting to you. This will add to development time for customization, as well as to training time. It may be that you spend so much time altering existing software, that you may as well have written your own in the first place.

Finally, many intranet software packages feature per-seat licensing costs, limiting you to the amount of users that can connect to your intranet. Though this is not necessarily a concern for smaller organizations, this can drastically increase the cost for larger organizations.

We will discuss out-of-the-box solutions in more details in coming chapters.

"Customizing out-of-the-box solutions can often be a painful process."

Hosted Solutions

A growing choice in Intranet software is the hosted solution. With this solution, your Intranet is maintained and hosted by a third party, outside your network. Hosted solutions have the advantage of incredibly fast implementation time. All you need to do with a hosted solution is to specify what content and features you want the solution provider to give you. There are also no direct hardware purchase or maintenance costs, which can be a distinct advantage if you have few in house support staff.

There are some distinct disadvantages to these solutions, the most obvious being cost. For a small organization, this might be negligible when compared to custom development, but for larger organizations, licensing fees can quickly add up.

"Hosted solutions have the advantage of incredibly fast implementation time."

There will also be very little potential for customization. Since the hosting solution hosts more than just your intranet, they will generally have a template, which is used for all of their clients. Though you may be able to customize within this template, there will still be limits to what you can do. If you have very specific non-standard requirements, this approach may not be the best for you.

Security is also an issue. Although the solution provider will do all they can to ensure the privacy of your data, it is still is also an issue for these solutions, since information will be traveling over the Internet, unless security is properly handled the system could be prone to eavesdropping.

Home-Brew

If you have a developer you can dedicate to the creation and upkeep of your intranet, then homebrew is definitely the way to go. Although it can make for a higher total cost of ownership overall, developing your own intranet software offers you a much larger potential for customization, and will match your organization's needs more accurately.

The advantages of building your own intranet software are more significant for larger organizations, but include:

  • The intranet is custom-built to your organization's needs.

  • Your developers do not need to work around someone else's sourcecode. As a result, development of custom applications should go faster, overall.

  • In-house support of your intranet. You don't have to wait for the vendor's support department to get back to you if any issues emerge, nor do you have to pay additional support fees.

  • No licensing fees. For larger organizations, a custom built intranet can often be less expensive than out-of-the-box solutions, due to per-seat licensing fees.

There are still some disadvantages to building your own Intranet software, however:

  • Development time. Building your own intranet software will add considerably to your development time, since it effectively has to be built from scratch.

  • Bugs. As with all software development projects, unintended 'features' will appear in the intranet software from time to time. If you put a strong Quality Assurance (QA) system in place on the intranet development, however, this should be kept to a minimum.

Given that there are several open source applications available throughout the Internet for many intranet-specific functions, going with a home-brew solution may work better in the long run if you are willing to customize an existing piece of software, rather than build everything from scratch.

Another benefit of using a home-brew is the lack of licensing costs for most applications. You can also add and remove modules, expand on feature sets, or remove redundant ones as time progresses. In the coming chapters, we'll talk about the process of developing your own software in more detail.

Choosing an Operating System

Before you start installing or developing software for your intranet, you need to decide what Operating System (OS) your hardware will run. Several factors come into play when choosing an OS for your intranet:

  • Which OS is currently in place?

  • Do you already have a dedicated internal intranet server?

  • Does your organization have licensing agreements with a major OS provider, which locks you into a specific OS?

  • Are there licensing fees to consider?

  • What are your performance requirements?

  • Which OS do most of your users already use?

At the moment the two most common options when it comes to a server-level operating system: Windows and Linux/BSD. Each has its advantages and disadvantages:

Advantages and Disadvantages of Windows

Windows has quite a few advantages, which makes sense when you consider that it's one of the most prevalent operating systems in the business world. Some of these advantages are:

  • Many application suites are available.

  • Easy integration of Windows authentication systems and scripting.

  • Much written documentation on Windows.

  • 24-hour commercial support and maintenance plans available.

  • Easy-to-use GUI administration interface. Administrating a Windows system is a relatively straightforward process.

Being an extremely popular choice has its downfalls, however. These include:

  • Licensing costs - If you have a medium- to enterprise-sized organization, licensing costs on Windows (and intranet suites commonly built for Windows) can be a crippling addition to the initial cost of your intranet. It also presents scalability problems, as you may grow larger than your licensing scheme.

  • Stability - Windows products have a bad reputation for being unstable.

  • Resources - Undertaking identical tasks, Windows servers often require more resources than Linux-based servers.

  • Security - Windows has its share of problems with vulnerabilities, security problems, and viruses, largely because it is so common and has proven to be so easy to exploit due to poor configuration.

  • Less frequent updates - Major operating system updates only come every few months in the form of service packs.

  • 'Black box' development model - The Windows source is a shrouded mystery. Though this gives the illusion of security through obscurity, it also gives you far less control over the finer details of the operating system.

Some of the disadvantages of Windows such as stability and security can be remedied by making sure the system is configured correctly in the first place, but this requires that you have the correct technical knowledge available in your organization already.

Advantages and Disadvantages of Linux/BSD

Linux and BSD offer a number of advantages to the intranet developer:

  • Many open source applications are available, with sourcecode available to make for easy customization

  • Linux/BSD is developed in a 'crystal box' environment. In other words, the source for Linux/BSD is open for review, which means weaknesses are constantly and consistently being found and fixed in the operating system's core. It also means you can change the operating system if you feel brave enough.

  • Uses less machine resources than Windows. Linux still runs admirably on a 486.

  • Frequent update cycle. Linux kernels (the core of the operating system) are released as often as possible. This quick release cycle helps to minimize vulnerabilities and bugs within the core operating system.

  • Vulnerabilities are addressed and patched swiftly. It is not uncommon for a fix to be released within 24 hours of the vulnerability being announced.

  • Cost. Linux has a much more attractive purchase price than Windows; most distributions are free for download and installation, and feature no per-seat licensing fees.

  • Proven server architecture - most of the Internet is served by Linux/UNIX servers

  • Large online support base. You can usually get answers in newsgroups, and from web sites such as http://linux.com/. You can find hundreds of software applications at http://www.freshmeat.net. The online support is so broad, that Google has a completely separate portal for Linux at http://www.google.com/linux.

Linux does have some disadvantages:

  • Higher learning curve - Much of the administration is done through a command-line interface instead of a GUI, which is harder to grasp.

  • That crystal-box development - As I said above, the Linux sourcecode is available for review at any given time; though I'd like to believe everyone looking at it for vulnerabilities had the best interests of the Linux community at heart, I know better.

  • Less commercial support - Only a few of the Linux distributions offer commercial support packages; the rest offer support through web forums, and documentation only. Unless you have Linux-savvy staff, this can make supporting the hardware more problematic.

  • Though most server and workstation hardware is now supported in Linux, there may still be a lack of support for your specific hardware under Linux.

  • Because of lack of familiarity, it can often be difficult to convince management to go with Linux.

Other Software Considerations

There are a number of important software considerations besides operating system and how you are going to go about choosing the solution. Even an out-of-the-box solution may require a particular scripting language or database be installed before it can function.

Programming Languages

If you decide to develop your own intranet software in-house, you will need to decide which programming language to use (PHP, PERIL, ASP 3, .NET, JSP, or others). Each language has its strengths and weaknesses, and some are more suited for specific tasks. Choosing depends upon a few criteria:

  • What experience do you already have in-house? It makes sense to use the resources already available to you, rather than contracting out the programming, or hiring new developers.

  • Is your intranet server running on Windows or Linux? ASP 3 and .NET are more suited to a Windows environment, where PERL and PHP will be more at home on a Linux environment.

  • What are your performance requirements? If you are building an intranet for a small organization that has a limited amount of dynamic information, then you can use any of the above languages without taking a performance hit. However, if you are building an intranet for a larger organization, then JSP or .NET may be more effective.

Databases

Databases allow you to store information in a central location, which can be pulled out and placed into documents on your intranet. This allows you to replicate information in several places throughout your web site, making maintenance much easier. However, databases do more than simply making your life easier as a developer; they can be used to help transport information between the users of your intranet, through online forms, discussion forums, and contact management software.

Though a database is a godsend when it comes to managing information, your intranet server will take a slight performance hit every time it has to access the database. This may not be noticeable in a small organization, where only a few people are using the intranet at any given time, it will definitely be noticeable in an enterprise setting, where hundreds of people are using the intranet at once.

The general rule for deciding what to place in a database would be to look at how often the information is being updated. If a document is updated once or twice a year, then it can happily be made into a static HTML file on the server. If it needs to be updated once or twice an hour (such as an internal discussion forum), then placing it in a database is probably a very good idea for your sanity.

If you decide to make use of a database to store your intranet's content, you should budget time to build a front end for the database; your content contributors, designers, and developers will need a relatively easy way to access and update the intranet's content.

There are many database formats to choose from: Oracle, Interbase, MS SQL Server, Access, and MySQL are just some of them. Much like choosing a programming language, there are licensing fees, performance, and interoperability to consider. You may already be making use of a particular database in your organization, which will often make sticking with that a cheaper option.

A simple database such as Access will work well for small sites that don't require many concurrent users. A large organization may want to look into a more powerful database, such as Interbase or Oracle. Popular choices for intranets include Microsoft's SQL Server and the open source MySQL, because these integrate well with web scripting languages like ASP and PHP.

Licensing

Any conversation about software usually sparks a discussion of licensing schemes. As mundane an issue as this may seem, it's extremely important from a development and budgetary point of view to pin down the licensing schemes of the operating systems and software you wish to use.

Commercial operating systems such as Windows XP, Windows 2000, and MacOS and enterprise-level intranet software usually have per-seat licensing fees. Essentially, an organization is charged a fee on a per-user basis. In the case of operating systems, this means that your organization would be charged for each workstation or server the OS is installed on.

In the case of enterprise-level intranet software, this means your organization is charged per user connecting to the Intranet. For small organizations this isn't much of an issue; it may in fact be less expensive to license Intranet software than it is to custom-build. For larger organizations, licensing fees can quickly add up; a custom solution will often have a considerably lower TCO when compared against yearly licensing fees.




Practical Intranet Development
Practical Intranet Development
ISBN: 190415123X
EAN: 2147483647
Year: 2006
Pages: 124

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net