Glossary of Terms
ClickOnce is a technology from Microsoft specifically aimed at reducing the burden of rolling out client software by enabling automatic downloads of the software for installation on-demand.
Installing software on user PCs can be a significant burden, especially in a corporate network environment where there are many PCs which may be spread out geographically. This burden magnifies significantly for new software that is updated frequently with new features and bug-fixes. ClickOnce is a technology from Microsoft specifically aimed at reducing the burden of rolling out client software.
ClickOnce applications are deployed with a ‘lightweight’ installation that avoids both writing files under the Program Files directory and writing registry entries. This makes deployment on locked down PCs much easier. However, note that entries are added to both the Start menu and the Add/Remove Programs applet, so the program does behave as though it was fully installed to some extent.
The client software is put onto a web server somewhere on the corporate LAN. To start the program users browse to a special web page and the ClickOnce system automatically downloads and installs the software onto their computer. Updates can be installed onto the web server and are automatically downloaded to the user PCs the next time the user runs the application.
ClickOnce applications have to be secured with an appropriate code-signing certificate. In effect, this shifts the burden of installation security from the individual client PCs to a ‘one off’ action on the web server, thus greatly simplifying deployment across corporate networks.
For more information on ClickOnce technology visit Microsoft’s website at http://msdn.microsoft.com/en-us/library/ms227409(VS.80).aspx
Objective-C is a programming language which is based on the C language but adds some object oriented extensions. It was initially created in the early 1980s and achieved a measure of popularity when it was used as the main software development language for the NeXT computer system which was launched in 1988.
LINQ is technology that was introduced into .NET3.0 and is something of an unsung hero. Put simply, it allows data to be extracted, filtered and sorted within a client program without the programmer having to write any additional code and without the need for the client program to keep downloading different sets of data from the data source (usually a web server).
Whilst this might not seem very exciting to anyone other than the programmers themselves, it does have some tangible benefits to the wider IT community:
- Reduced implementation time leading to cheaper and more reliable software.
- Faster user interfaces – the client software can re-query data ‘in-situ’ without having to go back to the server each time the user changes filters, changes sort order, etc. This can also reduce data traffic between the client and server.
Blueberry first used LINQ in its VisualFAIR project, where it was found to genuinely deliver the benefits that Microsoft claimed. For this reason, it has been adopted by all programmers working on the project and continues to provide significant productivity and performance gains.
There is more useful information about LINQ at http://msdn.microsoft.com/en-us/magazine/cc163400.aspx
Contrary to popular belief, Linux is not an entire operating system. It is, in fact, an integral part of many: it is a kernel. Within any modern operating system the kernel’s task is to provide interfaces between the computer’s hardware and the programs or services required for the system to function. Memory management, hardware abstraction and task scheduling are all common duties for any kernel.
As Linux is only a kernel, it is not functionally useful without the accompanying tools required for a full operating system to function. The Free Software Foundation’s GNU operating system (pronounced ‘Guh-Nu’) is therefore utilised in combination with the Linux kernel, to create what can be appropriately referred-to as ‘GNU/Linux’, which forms the basis of almost all ‘Linux’ operating systems.
Proponents of GNU/Linux implementations often cite the flexibility in configuration of the Linux kernel. An operating system that allows for as few (or as many) features as the product requires, can often provide a more efficient use of resources, saving on cost. Additionally, the benefits of open-source development mean that Linux comes under constant scrutiny, review and development; often leading the way in areas of technological advancement.
Blueberry Consultants currently uses whatever is most appropriate for the project – 90% of the time it’s Ubuntu Server LTS, the other 10% it’s Debian LTS.
Linux remains an exciting technology with which Blueberry Consultants can continue to deliver technical solutions based upon new and existing ideas.
MS SQL Replication
MS SQL Replication is a technology that allows a mirror copy of a database to be placed on a different server and automatically updated. Replication is normally bi-directional – i.e. changes made to one database are sent to the other. Bi-directional replication introduces the possibility of conflicts, when changes are made to the same piece of information on both servers at the same time. Handling conflicts can be complex, and normally requires special programming.
MS SQL Replication is an extremely useful technology: it can be used to efficiently share information between distributed offices; to support redundancy and disaster-recovery planning; and to make systems faster by locating copies of information closer to users.
Real Time Systems
To understand the significance of real time systems it’s useful to look at two everyday activities, one non-real time and one real time.
Most of the actions in day-to-day work on a PC are not time critical. Whether a document takes 1 second or 5 seconds to load into a word processor is not really significant. Similarly, the time taken to load a web page is not important as long as it doesn’t take many minutes. In both these cases it’s the end result that’s more important and not the time taken.
Now compare this to the work that an engine management system (ECU) has to do when running your car engine. The ECU measures certain parameters such as air temperature, throttle position and exhaust gas composition before deciding how much fuel to inject into a cylinder and when to fire the spark plug. In this case it’s absolutely critical that these calculations are done before the next cylinder is ready to fire. In this case being late with these calculations is as bad as being wrong and could result in damage to the engine. A real time system therefore guarantees a certain capability within a specified time constraint.
Certificates are often used on websites and have two purposes:
- To provide a secure way to reassure the visitor that the website actually belongs to the company or organisation that they think it does, and not an impersonation.
- To ensure that information travelling between the browser and the website cannot be intercepted. This is particularly important when the user is typing in bank details, passwords, etc.
Certificates are blocks of cleverly encrypted data that are signed by some form of authority.
The use of strong encryption means that certificates can only be made by a sanctioned authority and will break if tampered with in any way. The certificate authorities undertake domain checks before issuing a certificate to a company or organisation. Each certificate is created specifically for that company or organisation and contains the company’s name and the domains for which the certificate should apply, including when the certificate will expire.
This means that when the web browser gets the certificate from the website and confirms that it has not been tampered with, the browser can reassure the user that the website is that of the company or organisation named in the certificate. It can also make all data traffic between the browser and server secure.
Browsers usually indicate the presence of a valid certificate by displaying a padlock. The name of the company who owns the certificate can typically be seen by double clicking on the padlock then clicking on ‘View Certificate’.
SQL (pronounced “sequel”) is an English-like language used to ask questions of a database. For example, you might ask a database of people to: Select address from people where surname = ’bloggs’
However, the term SQL now refers to more than just the query language – it also tends to be used for the database server software that understands the SQL and manages the database. Popular SQL Servers include Microsoft SQL, Oracle, PostgreSQL and MySQL.
SQL was intended to simplify access to information by making it easier to write complex questions in a way that the computer can understand. However, although it’s true that many users can write simple SQL, many real-world questions are in fact quite complex and require complex SQL. For example: “show me the top three salespeople grouped by division” is a relatively complex question, and most non-programmers are unlikely to be able to write it.
SQL-based database systems have become the dominant approach to storing information, although it’s important to note that SQL is not a very strong standard. Each SQL Server implements its own version of the language and moving SQL queries between database systems can in some cases require significant changes.
Ubuntu Linux is a GNU/Linux distribution that is often dubbed as ‘Linux for human beings’. Whilst many Linux distributions have often been seen as difficult or obtuse towards a typical end-user, Ubuntu is designed specifically with regular desktop users in-mind. Features such-as Microsoft Windows migration support, the OpenOffice productivity suite, and extensive support for many common Wi-Fi & 3G connectivity options, have placed Ubuntu towards the forefront of the ‘desktop Linux’ distributions.
Ubuntu is funded by philanthropist Mark Shuttleworth, whom, through his company Canonical Ltd., provide support for all Ubuntu releases for a minimum of 18 months after release, or five years with ‘Long Term Support’ server releases. New releases are provided every 6 months, with LTS support provided for a new release once every 2 years.
Typically the System Administration team at Blueberry have used a mixture of Ubuntu Linux and Windows (often with desktop virtualisation) to effectively manage the company’s wide mix of Linux, UNIX and Windows-based servers. Bluberry have also provided support of Ubuntu Linux, for a leading customer, during their regional translation work for the Linux variant of Adobe’s AIR product.
Web Services is a technology used to allow computer systems to talk to each other over the internet while passing through firewalls. For example, if you install a program on your PC which uploads photographs to a website, there is a good chance the program will use Web Services to communicate with the web server as part of the process. The Web Services approach is popular with software developers because it is easy to use and reliable.
Web Services is also used extensively in systems integration, allowing transfer of information between server systems. In this area, Web Services is one of the cornerstones of the new SOA Architecture.
The ease of use of web services has also encouraged the development of online services which are accessed purely by web-services. The best examples of this are the Google Maps API, and Amazon’s online storage system S3.
WPF is a user interface technology from Microsoft that first appeared when Vista was launched. Technically speaking, WPF (Windows Presentation Foundation) is a set of .NET classes that redefines the way software user interfaces are designed and built by harnessing the power of XAML.
Windows provides a set of standard user-interface controls (buttons, list box, combo boxes, etc), which can be customised to a limited extent (colour, font, etc). Although it has always been possible to create user interfaces that are much more stylised, the amount of extra programming required has meant that most user interfaces utilise the standard controls and so often look alarmingly similar.
For example, a standard Windows combo box can contain only text items in the drop-down list. If you wanted, for example, to have graphics in the drop-down as well as text, a significant amount of custom code would need to be written, or a 3rd party component used – if a suitable one happened to be available.
WPF makes it very much easier to create user interfaces that are distinctive and more intuitive. If you want a combo box that displays a list of images in its drop-down list, it’s a single line of code. If you want a list box that scrolls a list of movies horizontally – again, it’s just a few lines of code.
As a result, WPF makes it easy to create very powerful and highly distinctive user interfaces without huge amounts of additional development. Information can be presented to the user in much more intuitive and powerful ways – ways that would be just too complex to implement using traditional technologies.
Pronounced ‘zammel’, XAML is the language of WPF and describes to Windows exactly how a program’s user interface should appear and behave. In other words, the entire user interface for a piece of software can be encapsulated in a single XAML file. XAML syntax is very flexible and highly expressive, giving WPF the ability to create a wide variety of different user interface styles.
Put very crudely, an XBAP program is half-way between an installed Windows program and a web application. In terms of the complexity and power of the user interface an XBAP program is more like an installed program and can utilise the full power of WPF.
However, an XBAP program runs within the computer’s web browser, unlike an installed program. In addition, unless there is an appropriate certificate installed on the user’s PC, the XBAP program runs in a ‘sandbox’ that strictly limits its ability to directly access the user’s PC. In this mode the XBAP program can really only talk to the web server. This is to ensure that malicious software cannot be spread via the XBAP mechanism.
However, if an appropriate code-signing certificate is pre-installed on the user’s PC then the XBAP program can run completely out of the sandbox and runs just like an installed program, giving it full access to the user’s PC. The code signing certificate ensures that the XBAP program has originated from a particular company and has not been modified, so is safe to run (providing the company is trustworthy of course!).
ZFS is an advanced file system, jointly-developed by Sun Microsystems. As an open-source product, it is also developed via the community under the Common Development and Distribution License (CDDL).
ZFS differs from traditional file systems, such-as NTFS and FAT, by negating the requirement for hard disks to first be logically joined by a volume manager (a-la RAID) or partitioned with legacy partition tables. Empty block devices (a physical disk), single partitions from existing volumes and single files on an existing file system, can all be added to the same storage pool. Once created, users are able to seamlessly utilise the storage capacity provided by the sum of all member devices, partitions and files, as if it were one, single storage entity.
The ZFS file system provides many advanced features, without requiring additional hardware or software: RAID volume creation, low-cost snapshots, scrubbing of the file system, quotas and access control lists. At a technical level, ZFS also continues to excel in many areas. However, the exact details of these improvements are well beyond the scope of this glossary entry.
Blueberry Consultants have adopted the ZFS file system as an integral part of their data storage infrastructure. After considering many white box NAS and SAN storage solutions, ZFS (provided by Nexenta, an OpenSolaris distribution) presented a flexible, high-performance solution that promises to provide the increased capacity for future storage expansion.
Zoiper / X-Lite
Zoiper is a free softphone that interfaces well with enterprise VOIP solutions. Blueberry is a distributed company, and this means using technology to maximise the effectiveness of our internal communications is a priority. We’ve spent a lot of time getting our VOIP service right, and amongst the many softphone options currently available, we’ve found found Zoiper and X-Lite to be the best free softphones for external staff needing to make calls into the system and offer similar softphone service and feature. However, while X-Lite requires users to register (for free) with Softphone.com, Zoiper Communicator provides free zoiper-to-zoiper communication internally.