Enterprise Service Desk Software and Scripting Languages

PHP and Perl Scripted Help Desks and Service DesksMany Help Desk and Service Desk applications claim to be enterprise ready, although they fail to scale or integrate with most open standard interfaces and services now widely used across the majority of organizations. The following contrasts PHP (Hypertext Preprocessor) and Perl scripted applications claim of being enterprise ready compared to a tiered application server model.

Service Management Solutions

Help Desk and Service Desk applications take various forms including:

  • Scripting languages such as PHP and Perl that execute as a module in a Web server such as Apache
  • Microsoft Active Server pages that are integrated with Microsoft’s IIS server
  • Java servlets that execute in a separate Java virtual machine, and
  • Full web application servers using J2EE.

This study focuses on PHP and Perl scripted web applications compared to J2EE web applications. In particular, how a stand-alone PHP or Perl scripted application compares to a fully integrated application server deployment, such as LiveTime’s Service Management solutions.

New Enterprise IT Environment

Application servers emerged just recently to provide a standardized platform for developing and deploying scalable enterprise systems. And in a relatively short time, this basic piece of technology has evolved significantly. Today’s leading organizations consider web application servers as a core component of an enterprise system and an integral part of the new trend towards building ‘service-oriented architectures’ (SOA).

In a business environment where everything must interoperate and scale across distributed, heterogeneous tiers, web applications servers are required to ease the integration burden and directly assist with performance. The question CIOs must answer today is not whether to include an application server, but which web Application Server will form part of their strategy.

Utilizing web application server technology, LiveTime applications have been designed to enable organizations to reduce the cost and complexity of managing a Help Desk or Service Desk, by directly integrating and interoperating with the new corporate IT environment.

Scripted applications

When looking to adopt a Help Desk or Service Desk under intense time-to-market pressure, vendors often decide to re-purpose existing ‘fat client’ applications for the web using the fastest possible path. This means they frequently trade-off good design and architecture for fast-tracked HTTP scripting solutions like PHP or Perl, which neither scale nor directly integrate with new corporate IT platforms.

PHP (Hypertext Preprocessor) is a scripting language used to generate dynamic content over the web. PHP scripts are tied to the web server and require writing explicit database queries to generate dynamic content. In PHP, the application programmer writes the SQL queries and embeds them directly into the script, mixing presentation and business logic in the process. No direct support is provided for the management of component pooling and lifecycle management, client session management, database connection pooling, persistence, transaction management, authentication, and access control.

Perl is a general purpose programming language originally developed for text manipulation on Unix based systems. It has gradually been extended with various modules to support a range of tasks from system administration to network programming and web development. It is often used in web development to write CGI scripts. Like PHP there is no explicit support for session management, transactions, authentication and other essential components of a modern web application.

In contrast, web application server-based solutions like LiveTime takes advantage of industry best patterns like 3 tier architectures, MVC (model-view-controller) and industry standard interfaces to a number of enterprise services, to offer a truly best of breed support solution.

Specifically, LiveTime abstracts the Service Desk / Help Desk business logic from the underlying middleware while tapping into the many J2EE services to deliver a comprehensive solution. Under this model, it is the job of the application server to provide management of component pooling and lifecycle management, client session management, database connection pooling, persistence, transaction management, authentication, and access control.

SOA and SOAP Web ServicesFurthermore, organizations can integrate and customize LiveTime with J2EE services using the following APIs:

  • JDBC – to access RDBMS
  • JTA – to manage and coordinate transactions across heterogeneous enterprise information systems
  • JNDI – to access information in enterprise name and directory services including LDAP & Active Directory
  • JMS – to send and receive messages via enterprise messaging systems like IBM MQ Series
  • JavaMail – to send and receive email.

Using Web Services standards like XML / SOAP and WSDL, LiveTime provides mechanisms to integrate with virtually any application including popular CRM and Asset Management systems.

Performance & Scalability

PHP and Perl execute as modules that plug into the Web server, sharing the same process address space. Both servlets and EJB execute in a separate Java virtual machine, requiring inter-process communication between the Web server and the dynamic content generator. This separation allows an extra degree of freedom in configuring the system, so the servlets can be deployed on a separate machine from the Web server. These systems are designed for High Availability so that the application is never offline and supports full redundancy and replication, crucial in mission critical applications.

Although the computational demands of Java servlets are higher than those of the corresponding PHP or Perl scripts, the increased freedom can be used to improve the performance of Java servlets. In particular, applications that put significant load on the server front-end, can achieve better performance by locating Java servlets on a separate machine. Servlets add significant scalability that cannot be met by load balancing PHP or Perl based scripts.

Summary

Scripted Help Desk and Service Desk applications may appear to be easy to develop at first, but very quickly grow to become a nightmare to support and maintain. Further, they tend to struggle under high load conditions due mainly to the single-threaded access to the database. Scripted solutions are often stand-alone and are precluded from accessing the many enterprise services now in widespread use in IT environments. This limits their longevity and ultimately deems them useless in service-orientated enterprises.

Web Application Server technology solutions such as LiveTime are easily integrated with existing enterprise services whilst being very scalable. LiveTime is built using the same IT architectures, tools and techniques adopted by many organizations requiring to run the next generation of applications for their business, including SOA based systems.

There are very good reasons why the largest transaction servers in the world have adopted J2EE as a mission critical infrastructure. Examples include eBay, Google and Amazon.

Virtualizing ITIL Service Management

One of the major growth trends in IT over the last few years has been the virtualization of the data center. This virtualization provides obvious cost benefits through consolidating and maximizing hardware utilization. This area, while currently dominated by VMware, is being challenged recently by Citrix with their new XenServer product line. These solutions focus around hypervisors to abstract the core operating system from the underlying hardware. The true value of virtualization lies not just in their ability to run many operating systems side by side, but their ability to manage resource pools across each of these systems.

LiveTime Virtual ApplianceVirtualizing your LiveTime Service Management system has become very popular since we released our virtual appliance in 2007. It is now available as a 64 bit appliance with support for VMware, XenServer and the Open Virtualization Format (OVF). We have seen more than 30% of customers move to this platform over the last 2 years, significantly simplifying installation and maintenance. The configuration menu provides access to the key functions of the operating system as well as utilization statistics. Installation times have moved from hours with a traditional install to minutes. Not only is this virtualization great for production environments, but equally useful in test environments, where you can spin up a new instance for training or development as needed using desktop virtualization tools from VMware, Citrix and Sun.

One of the key advantages of this approach, is that LiveTime takes care of the core infrastructure for you so you can be sure it has been secured and optimized for content delivery. The virtual machine is based around LiveTime’s own JeOS (Just Enough Operating System), a Linux distribution that has been specifically tuned for LiveTime performance.

Other virtualization techniques

There are of course many other types of virtualization architectures that predate the hypervisor, often referred to as operating system-level virtualization. Rather than isolating each operating system, these systems virtualize at the OS layer itself, and provide significantly less overhead when running a high number of logical systems. Instead of loading up a new OS on the hypervisor, you can leverage the core operating system and divide it into separate zones. Solaris Containers provide a good model for this type of virtualization. The disadvantage of this approach is that all applications must run on the same OS. LiveTime is often deployed in this model when run by managed service providers. These providers can operate hundreds of instances on the same hardware using different zones offering LiveTime under the Software as a Service (SaaS) model.

LiveTime ITIL Service Management Virtualization

LiveTime also offers one other virtualization technique for even higher instance counts and optimized memory utilization. This is called application virtualization, where LiveTime is virtualized on an instance basis within the same Java Virtual Machine. In this case LiveTime instances are managed from LiveTime’s application server instance manager. This approach leverages resources across instances for faster response times at the expense of application isolation.

Each virtualization model provides its own benefits. Increased isolation through a hypervisor is the preferred mechanism for corporate installations, while OS and Application virtualization is more suited to SaaS providers offering LiveTime as a service to it’s own customer network.