The rapid development of the Internet and the World Wide Web throughout the last years enabled the emergence of new electronic business models such as B2C and B2B, which required new software platforms for the automated handling of business relations and data traffic. In the early days of the Web, simple web servers delivered predefined, static pages in plain HTML to the clients, regardless of their individual needs or interests. However, to enable web-based business models, a dynamic, client-focused concept for web sites is essential. This approach requires the individual presentation of web content that is closely connected to an application framework which implements the business logic behind and provides access to enterprise resources.
Therefore, web application servers have moved into the center of industry focus. In this context, the Java programming language became more and more important because of features that make it attractive for server-side development. For example, Java development tools and runtime environments are available for a wide variety of OS and hardware platforms. The safety features built into Java, such as automatic garbage collection, array index bounds checking, and lack of pointer arithmetic, make Java code much less likely to crash and so increase server availability. Java provides an extensive class library supporting networking, distributed computing, messaging, transactions, database, security, and many other functions essential for server programming.
telos has gained experience and competence in the programming of Java-based components over several years now. Starting with the development of custom-specific JavaBeans, our focus of interest has been extended to server-side Java programming models for Web application servers, which include recent Java server-side technologies like Servlets, Java Server Pages (JSPs), Enterprise JavaBeans (EJBs), and Extended Markup Language (XML).
Together, these technologies form the core of an open, scalable, highly productive Web architecture based on Java. We at telos do not only believe in the advantages of Java as a programming language, but also in the virtues of Java as a platform: Java is standards-based with many vendors contributing to the API specifications so that our customers benefit from a broad range of implementations instead of being locked into a single vendor. Java is open, so its key technologies can be licensed by many companies that compete on the basis of price and performance rather than locking customers into proprietary systems. And, of course, Java provides "write once, run anywhere" portability, so our customers are free to chose the server platform most appropriate for their needs.
However, applications written in Java are known for their high demand on computing resources like memory capacity or processing performance. The concept of generating byte code through a compilation process which can later be executed on any system that comes with an interpreter has the virtue of being platform independent. The major drawback of this design is a lack in performance and increased system requirements.
Therefore, several techniques were developed to speed up execution of java bytecode. Modern Java interpreters now include a "Just-in-time" compiler. The JIT will take the bytecode and compile it into native code for the machine that you are running on. It can actually be faster to grab the bytecode, compile it, and run the resulting executable than it is to just interpret it. If the same method is called more than once, it is not necessary to re-JIT the method and the native code can simply be re-executed.