Comparing file transfer and encryption performance of Java and.net

Size: px
Start display at page:

Download "Comparing file transfer and encryption performance of Java and.net"

Transcription

1 Universiteit Antwerpen (UA) Faculteit Wetenschappen Departement Wiskunde Informatica Academiejaar Comparing file transfer and encryption performance of Java and.net Eindverhandeling ingediend door Bert JAGERS Tot het bekomen van het diploma van Aanvullende Studie informatica en bedrijfswiskunde (ASIB) Zwaartepunt Informatica Promotor: Prof. Dr. S. Demeyer Begeleider: A. Zaidman

2 1 Acknowledgements This year has been a very though but interesting year. Being a Biologist and considering that I only have programmed my first letter of code about a year ago, this year was kind of a giant leap in the dark. I owe the fact that I made it through alive, much more experienced and grown up, to a lot of people. I would like to express my gratitude to them here. First of all, I would like to thank Prof. Dr. Serge Demeyer (UA, LORE) for giving me the chance to complete this thesis and for acquiring an enormous amount of knowledge and a interesting but realistic view to the world of Informatics and Software Engineering by doing so. Second of all I would definitely like to thank Andy Zaidman (UA, LORE) who has guided me through this thesis in a superb way. The fact that he was always there when you needed advice or an answer to a question, and the fact that he did so with a lot of patience, has been a great help to me. Since I couldn t bother Andy the whole time, Sarah Teugels, who has been an enormous help to me, also definitely deserves a special place here. By giving me a lot of practical advice, in a way that I could solve my problem(s), or sometimes by organizing a debugging session together, I came to where I am now. I will always be grateful for the help and the patience she has given me this year and for the knowledge she has passed on to me. I would also like express my gratitude to my fellow students for the help they gave me this year, and especially Wouter Cuypers who has provided me with great advice and interesting points of view that helped me to tackle some of the problems I was experiencing. My family deserves a lot of thanks for the support and understanding they have given me throughout this year. Although I may not always show it, know that I have really appreciated it. A special word of thanks to my parents for 2

3 giving me all the chances and opportunities that made me the person I am today. And last but definitely not least, I would like to thank my fiancée Kristin for putting up with me through this difficult year, for supporting me when things didn t seem to go that well and for enduring the many times I couldn t be there for her due to an awful lot of work for school This thesis is the result of my labor and I will take full responsibility for it. 3

4 2 Samenvatting Met de introductie van Microsoft s.net Framework in 2000, heeft het Java Platform van Sun Microsystems er een geduchte concurrent bij gekregen. Sindsdien beconcurreren zij elkaar voor de leidende positie in de markt van de software ontwikkelingsomgevingen. Beiden bekleden elk tegenwoordig een marktaandeel van om en bij de 35 à 40% waardoor geen van beide geneigd is om spoedig te verdwijnen. Een andere interessante trend is de grote groei, zowel in aantal als in populariteit, van de Peer-to-Peer (P2P) applicaties. Deze trend past perfect in de huidige maatschappij waarin het digitaal verzenden van (gevoelige) data over netwerken steeds grotere proporties aanneemt. P2P applicaties kunnen deze processen zeker vergemakkelijken maar een goed beveiliging van de te versturen data is absoluut onontbeerlijk. De thesis bevat een korte beschrijving van de twee platformen en de twee talen gebruikt voor de programmering van de applicaties, zijnde Java voor het Java Platform en C# voor het.net Framework. Vervolgens worden de twee platformen op basis van verschillende kenmerken met elkaar vergeleken. Dit gebaseerd op de reeds bestaande literatuur. Eén van de twee hoofddoelen van deze thesis is onderzoeken in hoeverre de performantie van de transfer van bestanden via een P2P applicatie verschilt tussen het.net Framework en het Java Platform. Hiervoor werden twee identieke P2P applicatie gecreëerd die in staat waren om via Multicasting over een lokaal netwerk, gebruik makend van het User Datagram Protocol (UDP), in contact te staan met elkaar. Bestanden kunnen vervolgens verstuurd worden via het Transmission Control Protocol (TCP) en dit volledig P2P, zonder dat er een externe Server nodig is. De testen worden vooraf gegaan door een algemene inleiding waarin gekeken wordt wat P2P is en in hoeverre beide platformen hiervoor een ondersteuning bieden. 4

5 Het tweede hoofddoel van deze thesis is het vergelijken van de performantie van de symmetrische encryptie tussen beide platformen. Hiervoor werden twee symmetrische encryptie algoritmen geselecteerd: het TripleDES algoritme en het AES of Rijndael algoritme. In de beide programmeertalen werden er twee applicaties ontwikkeld, één voor elk encryptie algoritme, die in staat waren om een bestand in te lezen en te encrypteren of decrypteren. Vervolgens moesten deze applicaties bestanden van een bepaalde grootte encrypteren en decrypteren. De snelheid waarmee ze dit deden werd genoteerd. Ook hier worden de testen vooraf gegaan door een algemene inleiding omtrent symmetrische encryptie en een korte bespreking van de twee gebruikte algoritmen. De performantie van beide platformen blijkt gelijk te liggen wanneer we de transfer van bestanden via een P2P applicatie in beschouwing nemen. In C# is het echter mogelijk om de snelheid van het sturen en ontvangen van bestanden gevoelig te verhogen door de bestanden ongebufferd te verzenden, gebruik makend van de TcpClient class. Het bufferen van bestanden is echter nodig om interoperabiliteit tussen de Java applicatie en de C# applicatie te kunnen verzekeren. Bufferen heeft als extra voordeel dat de gehele file niet eerst volledig moet worden ingelezen alvorens de applicatie kan beginnen encrypteren/decrypteren. Dit spaart geheugen uit dat dan gebruikt kan worden voor andere applicaties/processen. Wat betreft de performantie van de symmetrische encryptie van beide platformen is het duidelijk dat C# gevoelig sneller encrypteert gebruik makend van het TripleDES algoritme. Het omgekeerde is waar voor het AES algoritme, met uitzondering voor de encryptie van grote bestanden (+/- 100Mb) waarbij de C# applicatie sneller is. Wederom kunnen we in beschouwing nemen dat moderne applicaties eerder geneigd gaan zijn om bestanden stukje per stukje in te lezen (in een stream) waarbij deze stukjes dan geencrypteerd worden vanaf de moment dat ze zijn ingelezen. Dit spaart geheugen en maakt dat het proces van encryptie sneller kan verlopen. Daardoor moeten er dus steeds enkel maar kleine stukjes 5

6 geencrypteerd worden. Voor het encrypteren van kleine bestanden is de performantie van beide platformen echter gelijk. Beide platformen blijken even performant te presteren wat betreft het verzenden en ontvangen van bestanden via een P2P applicatie en wat betreft symmetriche encryptie (met betrekking tot de beschouwde algoritmen). Beiden lijken dus adequaat voor de constructie van veilige, efficiënte P2P applicaties. 6

7 3 Abstract To date, Microsoft s.net Framework and Sun s Java Platform compete for the leading position in the market of software development environments. They try to provide an environment to developers that ensures secure, fast and reliable development. Another important trend is the growing number of Peer-to-Peer applications (P2P) used for the transport of data. This thesis will, after a short comparison of both platforms, try to evaluate the performance of both platforms, taking file transfer through a P2P application and symmetric encryption (the TripleDES algorithm and the AES algorithm) into consideration. This may show which platform can be preferred for the development of reliable, fast and secure P2P applications. 7

8 4 Index 1 Acknowledgements Samenvatting Abstract Index Introduction Java and C#, (not) a world of differences? Overview of this thesis Introducing Java and the Java VM The History of Java The Java Platform The Java Virtual machine The Java programming Language Introducing C# and the.net Framework The History of.net and C# The.NET Framework The C# programming language A first small comparison based on known facts Syntax Virtual machines and portable code Portability Standardization Security The Applications The P2P Application The applications for encryption Using a P2P messenger for performance measurements What is peer-to-peer? An overview Java vs..net How do we measure performance? Results of the P2P performance test

9 10.4 Discussion of the results Using symmetric encryption for performance measurements What is symmetric encryption? An overview The TripleDES algorithm AES or the Rijndael algorithm How do we measure performance? Results of the symmetric encryption test Discussion of the results Conclusions: The performance of Java and.net Which platform/language for P2P applications? Which platform/language for symmetric encryption? Memory management Which platform to choose? The General Conclusion and remarks for the future References...60 Appendix A: A list of used abbreviations...66 Appendix B: The StopWatch class

10 5 Introduction 5.1 Java and C#, (not) a world of differences? Since the introduction of C# and the.net framework in 2000 by Microsoft, Java and its Java Virtual machine, for the first time, experienced a serious competitor. Both platforms grew in popularity over the last few years and both have their own share of followers and opposition, mostly the followers of one platform are against the other, resulting in lots of discussions on why their platform is better. Either way, the enterprise development market share of both platforms lies around 35-40% each. It's fairly obvious that neither of these two platforms is "going away" any time soon. [Neward, 2004]. Therefore it might be interesting to see how performant both of this platforms are. Comparing both platforms on each and every aspect would of course be to much work for just one thesis. It can t be done by one person in one year. Therefore, this thesis will emphasize two aspects of both platforms. The two questions this thesis tries to answer are: Peer to peer (P2P) networking: Which platform has the ability to deliver the most performant file sharing? Which has the fastest multicast broadcasts? Symmetric encryption: Which platform can run a selected symmetric algorithm the fastest? Does this result still apply to another symmetric algorithm? Both questions are very relevant in this context. Looking at the growing number and popularity of P2P applications (like ICQ, Gnutella, Kazaa, ), people need fast and safe applications for the transport of sensitive and secure data. Both Java and.net offer the means for the creation of these applications. It would be very interesting to see which platform can offer the most performant ones. By developing the same P2P application, that is capable of broadcasting over UDP and transfer of encrypted files over TCP in Java and C#, and by doing 10

11 performance tests on both, we will try to give a solid answer to these questions. 5.2 Overview of this thesis This thesis starts by introducing the two languages Java and C#, and their respective platforms: the Java platform and the.net Framework (chapters 6 and 7). After this general introduction we do a first comparison of Java and C# and their platforms (chapter 8). This comparison is based on differences and similarities that are already described in existing literature. Special attention is given to a first comparison regarding security. In chapter 9, the reader will find a short description of the applications created for the performance measuring. Two features will be examined: Peer-to-peer (P2P) networking and symmetric encryption. Chapter 10 starts with a short introduction on P2P networking, followed by a performance test. It ends with a summary of the results of this test. The same is done for Symmetric encryption (chapter 11). In the last chapter, a discussion on the performance of Java and C#/.NET, the reader will find a discussion of the results of chapter 10 and 11. A general conclusion will be drawn and a few remarks for the future will end this last chapter. 11

12 6 Introducing Java and the Java VM 6.1 The History of Java The birth of Java started out as a part of a larger project to develop advanced software for consumer electronics: The Green project. These devices are small, reliable, portable, distributed, real-time embedded systems. But at first, creating a new language wasn't even the point of "the Green Project.". When they started the project, the intention was to use C++, but they encountered a number of problems. Initially these were just compiler technology problems, but as time passed the designers discovered that C++ couldn t respond to the requirements of the systems they were writing software for. These problems were best solved by changing the language [Sun, 95]. Java technology was created as a programming tool in a small, closed-door project initiated by Patrick Naughton, Mike Sheridan, and James Gosling of Sun in Back in the early nineties, the Internet was becoming popular as a way of moving media content -- text, graphics, video -- throughout a network of heterogeneous devices using HTML. Java technology had been designed in parallel to move media content across networks of heterogeneous devices, but it also offered the capability to move "behavior" in the form of applets along with the content. HTML alone could not do that, but it did set the stage for Java technology. This resulted in the HotJava browser around On May 23, 1995, John Gage, director of the Science Office for Sun Microsystems, and Marc Andreessen, cofounder and executive vice president at Netscape, stepped onto a stage and announced to the SunWorld audience that Java technology was real, it was official, and it was going to be incorporated into Netscape Navigator [Byous, 1998]. After this, Java quickly became very popular and to date is being used for the creation of many applications on many different platforms. 12

13 6.2 The Java Platform It is important to understand what is meant by the term platform. To a computer programmer, a platform is defined by the application programming interfaces (APIs) he or she can rely on when writing a program. These APIs are usually defined by the operating system of the target computer. Thus, a programmer writing a program to run under Microsoft Windows must use a different set of APIs than a programmer writing the same program for the Macintosh or for a Unix-based system. In this respect, Windows, Macintosh and Unix are three distinct platforms. Apart from these OS related APIs, Java also contains lists, vectors and lots of other things that cannot be found in most other languages. Fig. 1: The Java 2 Platform SE version 1.4 as described in [Sun, 2004a] The Java platform is just as important as the Java programming language or the virtual machine. All programs written in the Java language rely on the set of predefined classes (Java Class Libraries or JCL) that are included in the Java platform. Java classes are organized into related groups known as 13

14 packages. The Java platform defines packages for functionality such as input/output (I/O), networking, graphics, user-interface (UI) creation, security and much more. Java is not an operating system. Nevertheless, the Java platform provides APIs with a comparable depth to those defined by an operating system. With the Java platform, you can write applications in Java without sacrificing the advanced features available to programmers writing native applications targeted at a particular underlying operating system. An application written on the Java platform runs on any operating system that supports the Java platform. This means you do not have to create distinct Windows, Unix or Macintosh versions of your programs, for example. A single Java program runs on all these operating systems, which explains why Write once, run anywhere is Sun s motto for Java [Flanagan, 2002]. 6.3 The Java Virtual machine The Java Virtual Machine (JVM) or Java interpreter, is the crucial piece of every Java installation. By design, Java programs are portable, but they are only portable to platforms to which the Java interpreter is ported. Sun ships JVM implementations for its own Solaris operating system and for Microsoft Windows and Linux platforms. Many other vendors, including Apple and various commercial Unix vendors, provide Java interpreters for their platforms. The JVM is not only for desktop systems however. It had been ported to set-top boxes, and scaled down versions are even available for hand-held devices that run Windows CE and PalmOS. Since there are so many different target operating systems, it is logical that Java is available in many different forms. Sun alone provides four different Java 2 platforms, all containing a Virtual Machine but different in size, target and possibilities (http:// java.sun.com): Java 2 Platform, Standard Edition Tools (J2SE): There are two principal products in the J2SE platform family: Java 2 Runtime 14

15 Environment, Standard Edition (JRE) and Java 2 Software Development Kit, Standard Edition (SDK). The JRE provides the Java APIs, Java virtual machine, and other components necessary to run applets and applications written in the Java programming language. The JRE does not contain tools and utilities such as compilers or debuggers for developing applets and applications. The Java 2 SDK is a superset of the JRE, and contains everything that is in the JRE, plus tools such as the compilers and debuggers necessary for developing applets and applications (fig. 1) [Sun, 2004 a]. Java 2 Platform, Enterprise Edition Tools (J2EE): The Java 2 Platform, Enterprise Edition (J2EE) defines the standard for developing multi-tier enterprise applications. It takes advantage of many features of the Java 2 Platform, Standard Edition (J2SE). Building on this base, the Java 2 Platform, Enterprise Edition adds full support for Enterprise JavaBeans components, Java Servlets API, JavaServer Pages and XML technology [Sun, 2004b]. Java 2 Platform, Micro Edition Tools (J2ME): The Java 2 Platform, Micro Edition (J2ME) provides a robust, flexible environment for applications running on consumer devices, such as mobile phones, PDAs, and TV set-top boxes, as well as a broad range of embedded devices. J2ME includes Java virtual machines and a set of standard Java APIs defined through the Java Community Process, by expert groups whose members include leading device manufacturers, software vendors, and service providers [Sun, 2004c]. Java Card Tools: Java Card technology enables smart cards and other devices with very limited memory to run small applications, called applets, that employ Java technology. The technology enables developers to build, test, and deploy applications and services rapidly and securely. This accelerated process reduces development costs, increases product differentiation, and enhances value to customers. In a manner complementary to the Standard, Enterprise, and Mobile editions of the Java 2 Platform, Java Card technology makes it easy to 15

16 integrate security tokens into a complete Java software solution [Sun, 2004d]. As already stated, other vendors have their own JVM and can be considered as competition for Sun on the enterprise level. IBM s WebSphere is an example. It contains its own JVM that is not Sun s. There are also alternatives to Sun s JVM made by the open source community. A good example here is Kaffe (www.kaffe.org). Although interpreters are not typically considered to be high-performance systems, JVM performance is remarkably good and has been improving steadily. Of particular note is the VM technology called Just-In-Time (JIT) compilation, whereby Java byte codes are converted on-the-fly into nativeplatform machine language, boosting execution speed for code that is run repeatedly [Flanagan, 2002]. The version of the Java HotSpot VM (as shown in fig. 1) builds on a strong foundation of features and capabilities, assuring scalability, performance, reliability, and serviceability (RAS) [Sun, 2002b]. 6.4 The Java programming Language Java is said to be a simple, object-oriented, distributed, interpreted, robust, secure, architecture neutral, portable, high-performance, multi-threaded and dynamic language [Sun95]. Its syntax is similar to that of C. The designers strove to make the Java language powerful, but, at the same time, they tried to avoid the overly complex features that have bogged down other objectoriented languages, such as C++. By keeping the language simple, the designers also tried to achieve that it became easier for programmers to write robust, bug-free code. Some of the key benefits of Java are described next: Write once, run anywhere : For Sun this became the core value proposition of the Java platform. It means that the most important promise of the Java technology is that you only have to write your 16

17 application once for the Java platform and then you ll be able to run it anywhere. That is, anywhere that supports the Java platform. By now, Java support is being integrated in almost any operating system. Security: Both the language and the platform were designed with security in mind. The Java platform allows users to download untrusted code over a network and run it in a secure environment in which it cannot do any harm. Network-centric programming: The Network is the computer. The designers of Java believed in the importance of networking and designed the Java platform to be network-centric. Other features that are posed as key benefits are Internationalization, Performance and programmer efficiency [Flanagan, 2002]. Java is a language that can be used to build robust software: Java is type-safe, meaning that programs are prevented from accessing objects in inappropriate ways. All code and data is associated with a type, all objects have a associated type and only operations defined by the associated type can be performed on an object. Type safety eliminates an entire category of errors in C and C++ programs stemming from invalid casts, bad pointer arithmetic and even malicious code. Java also provides automatic memory management in the form of a high-performance tracing generational garbage collector. This frees programmers from performing manual memory management or reference counting, and eliminates an entire category of errors such as dangling pointers, memory leaks, and circular references. Java also includes features that promote robustness such as for example detection of attempts to use uninitialized variables. 17

18 7 Introducing C# and the.net Framework 7.1 The History of.net and C# Reports of a new language from Microsoft first started Surfacing in At that time, the language was called COOL, and was said to be very similar to Java. In June 2000, Microsoft released the specifications for a new language called C# (pronounced see-sharp ). This was rapidly followed by the release of a preview version of the.net Framework SDK (which included a C# compiler) at the July 2000 Professional Developer s Conference (PDC), in Orlando Florida. The new language was designed by Anders Hejlsberg (creator of Turbo Pascal and architect of Delphi), Scott Wiltamuth, and Peter Golde. With C#, they focused on what was right about existing languages and adding improvements to make something better [Jones, 2001]. Described in the C# Language specification as a simple, modern, object-oriented, and type safe programming language derived from C and C++ [ECMA(a), 2002], C# bears many syntactic similarities to C++ and Java [Drayton et al., 2003]. From July 2000 to January 2002, the.net Framework underwent an extensive public beta that allowed developers to try out the programming environment. This allowed Microsoft to both solicit and react to developer community feedback before finalizing the new platform. From the earliest public previews, core specifications detailing the C# language, the classes in the Framework class library (FCL), and the inner workings of the Common Language Runtime (CLR) have been freely available. In November 2000, began an intense standardization process by submitting the specifications for the C# language, a subset of the FCL, and the runtime environment to ECMA for standardization. Organizations participating in the effort included Microsoft, HP, Intel, IBM, Fujitsu Software, ISE, Plum Hall, Monash University and others. The work was performed under the auspices of ECMA Technical committee TC39. 18

19 After more then a year, the task groups completed their standardization work and presented the specifications to the ECMA General Assembly. In December 2001 the general Assembly ratified the C# and Common Language Interface (CLI) specifications, assigning them the ECMA standard numbers of ECMA-334 (C#) [ECMA(a), 2002] and ECMA-335 (the CLI) [ECMA(b), 2002]. In late December, 2001, ECMA submitted the standards to the International Organization for Standardization (ISO) via the Fast-Track process, and in April 2003, ISO ratified the standards as ISO/IEC (C#) [ISO/IEC(a), 2003] and ISO/IEC (CLI) [ISO/IEC(b), 2003] giving C# and the CLI bona-fide international standard status (see bibliography for the web links of these standards). Of course, for the standard to have an impact there must be implementations. In addition to the commercial.net Framework, Microsoft itself has two other CLI implementations: the Shared Source CLI (SSCLI, but formerly known under the code name Rotor) and the.net Compact Framework. The first is a working implementation of the CLI and C# standards that builds and runs on Windows XP, FreeBSD and Mac OS X (web link: The latter, now available with Visual Studio.NET 2003, is an implementation of the CLI designed to target resource-constrained devices, and is available for Pocket PC and Windows CE 4.1+ operating systems [Drayton et al., 2003]. However, Microsoft s implementations are not the only ones available. Other CLI implementations include the Mono project and dotgnu. The Mono project (http://www.go-mono.com and started by the Ximian Corporation, is aiming to provide an implementation of not only the CLI platform and the C# compiler, but also a larger set of classes selected from Microsoft s.net Framework FCL. In addition to the internal resources, Ximian has committed to the project, the Mono project has also attracted attention from the broader open source community, and appears to be gathering steam [Drayton et al., 2003]. But Mono tries to be much more. Apart from a compiler for the C# language, an ECMA-compatible runtime engine (the Common 19

20 Language Runtime, or CLR), and class libraries (including ADO.NET and ASP.NET), Mono also has its own and third party class libraries. Gtk#, a set of.net bindings for the gtk+ toolkit and assorted GNOME libraries. This library allows you to build fully native Gnome application using Mono and includes support for user interfaces built with the Glade interface builder. Furthermore, Mono's runtime can be embedded into applications for simplified packaging and shipping. In addition, the Mono project offers an IDE, debugger, and documentation browser [Mono Project, 2004]. While not as high-profile as Mono, the dotgnu project (http://www.dotgnu.org) has also been making headway, and includes some interesting and unique concepts. The core of dotgnu is Portable.NET, which was originally developed by Rhys Wheaterly before merging his project with dotgnu in August There are unique aspects to the dotgnu project, including the fact that it was originally designed around a CIL (Common Intermediate Language) interpreter rather then a JIT (Just-In-Time) compiler, and the developers plan to support directly executing Java binaries [Drayton et al., 2003]. 7.2 The.NET Framework The Microsoft.NET Framework consists of two important elements: a runtime environment called Common Language Runtime (CLR), and a class library called the Framework Class Library (FCL). The FCL is build on top of the CLR and provides services needed by modern applications (figure 2). 20

21 Fig 2 : the.net Framework While applications targeting the.net Framework interact directly with the FCL, the CLR serves as the underlying engine. The CLR is a modern runtime environment that manages the execution of user code, providing services such as JIT (just-in-time) compilation, memory management, exception management, debugging and profiling support, and integrated security and permission management. Ultimately, the CLR exists to safely execute managed code, regardless of the source language. In order to provide cross-language integration (one of the goals of the.net Framework), the CLR needs intimate knowledge of the managed code that it is executing. To meet this requirement, the CLR defines a shared type system called the Common Type System (CTS). The CTS defines the rules by which all types are declared, defined and managed, regardless of the source language. The CTS is designed to be rich and flexible enough to support a wide variety of source languages, and is the basis for cross-language integration, type safety, and managed execution services. Since not all languages support the exact same set of constructs, this can be a barrier to cross-language integration. The solution to this problem is the 21

Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming

Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming Java has become enormously popular. Java s rapid rise and wide acceptance can be traced to its design

More information

An Introduction to.net for the J2EE Programmer

An Introduction to.net for the J2EE Programmer An Introduction to.net for the J2EE Programmer Jeroen Frijters Sumatra Software b.v. jeroen@sumatra.nl http://weblog.ikvm.net/ Jeroen Frijters An Introduction to.net for the J2EE Programmer Page 1 Overview.NET

More information

CrossPlatform ASP.NET with Mono. Daniel López Ridruejo daniel@bitrock.com

CrossPlatform ASP.NET with Mono. Daniel López Ridruejo daniel@bitrock.com CrossPlatform ASP.NET with Mono Daniel López Ridruejo daniel@bitrock.com About me Open source: Original author of mod_mono, Comanche, several Linux Howtos and the Teach Yourself Apache 2 book Company:

More information

.NET Overview. Andreas Schabus Academic Relations Microsoft Österreich GmbH andreas.schabus@microsoft.com http://blogs.msdn.

.NET Overview. Andreas Schabus Academic Relations Microsoft Österreich GmbH andreas.schabus@microsoft.com http://blogs.msdn. Based on Slides by Prof. Dr. H. Mössenböck University of Linz, Institute for System Software, 2004 published under the Microsoft Curriculum License.NET Overview Andreas Schabus Academic Relations Microsoft

More information

INTRODUCTION TO JAVA PROGRAMMING LANGUAGE

INTRODUCTION TO JAVA PROGRAMMING LANGUAGE INTRODUCTION TO JAVA PROGRAMMING LANGUAGE Today Java programming language is one of the most popular programming language which is used in critical applications like stock market trading system on BSE,

More information

What Is the Java TM 2 Platform, Enterprise Edition?

What Is the Java TM 2 Platform, Enterprise Edition? Page 1 de 9 What Is the Java TM 2 Platform, Enterprise Edition? This document provides an introduction to the features and benefits of the Java 2 platform, Enterprise Edition. Overview Enterprises today

More information

1. Overview of the Java Language

1. Overview of the Java Language 1. Overview of the Java Language What Is the Java Technology? Java technology is: A programming language A development environment An application environment A deployment environment It is similar in syntax

More information

Evolution of the Major Programming Languages

Evolution of the Major Programming Languages 142 Evolution of the Major Programming Languages Object Oriented Programming: Smalltalk Object-Oriented: It s fundamental characteristics are: Data abstraction, Inheritance and Dynamic Binding. The essence

More information

The Comparison of J2EE and.net for e-business

The Comparison of J2EE and.net for e-business The Comparison of J2EE and.net for e-business The Technical Report (hipic-10292003) of High-performance Information Computing Center at California State University, Los Angeles Jongwook Woo Computer Information

More information

.NET and J2EE Intro to Software Engineering

.NET and J2EE Intro to Software Engineering .NET and J2EE Intro to Software Engineering David Talby This Lecture.NET Platform The Framework CLR and C# J2EE Platform And Web Services Introduction to Software Engineering The Software Crisis Methodologies

More information

Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives

Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives Introduction to Programming and Algorithms Module 1 CS 146 Sam Houston State University Dr. Tim McGuire Module Objectives To understand: the necessity of programming, differences between hardware and software,

More information

Java in Education. Choosing appropriate tool for creating multimedia is the first step in multimedia design

Java in Education. Choosing appropriate tool for creating multimedia is the first step in multimedia design Java in Education Introduction Choosing appropriate tool for creating multimedia is the first step in multimedia design and production. Various tools that are used by educators, designers and programmers

More information

Base One's Rich Client Architecture

Base One's Rich Client Architecture Base One's Rich Client Architecture Base One provides a unique approach for developing Internet-enabled applications, combining both efficiency and ease of programming through its "Rich Client" architecture.

More information

Mobile Application Languages XML, Java, J2ME and JavaCard Lesson 04 Java

Mobile Application Languages XML, Java, J2ME and JavaCard Lesson 04 Java Mobile Application Languages XML, Java, J2ME and JavaCard Lesson 04 Java Oxford University Press 2007. All rights reserved. 1 C and C++ C and C++ with in-line-assembly, Visual Basic, and Visual C++ the

More information

Building Applications Using Micro Focus COBOL

Building Applications Using Micro Focus COBOL Building Applications Using Micro Focus COBOL Abstract If you look through the Micro Focus COBOL documentation, you will see many different executable file types referenced: int, gnt, exe, dll and others.

More information

Garbage Collection in the Java HotSpot Virtual Machine

Garbage Collection in the Java HotSpot Virtual Machine http://www.devx.com Printed from http://www.devx.com/java/article/21977/1954 Garbage Collection in the Java HotSpot Virtual Machine Gain a better understanding of how garbage collection in the Java HotSpot

More information

An Easier Way for Cross-Platform Data Acquisition Application Development

An Easier Way for Cross-Platform Data Acquisition Application Development An Easier Way for Cross-Platform Data Acquisition Application Development For industrial automation and measurement system developers, software technology continues making rapid progress. Software engineers

More information

Contents. Client-server and multi-tier architectures. The Java 2 Enterprise Edition (J2EE) platform

Contents. Client-server and multi-tier architectures. The Java 2 Enterprise Edition (J2EE) platform Part III: Component Architectures Natividad Martínez Madrid y Simon Pickin Departamento de Ingeniería Telemática Universidad Carlos III de Madrid {nati, spickin}@it.uc3m.es Introduction Contents Client-server

More information

Version 14.0. Overview. Business value

Version 14.0. Overview. Business value PRODUCT SHEET CA Datacom Server CA Datacom Server Version 14.0 CA Datacom Server provides web applications and other distributed applications with open access to CA Datacom /DB Version 14.0 data by providing

More information

Mobile Operating Systems. Week I

Mobile Operating Systems. Week I Mobile Operating Systems Week I Overview Introduction Mobile Operating System Structure Mobile Operating System Platforms Java ME Platform Palm OS Symbian OS Linux OS Windows Mobile OS BlackBerry OS iphone

More information

DOS to Windows CE Migration: How and Why to Develop Enterprise Mobility Applications for the Windows CE Environment

DOS to Windows CE Migration: How and Why to Develop Enterprise Mobility Applications for the Windows CE Environment DOS to Windows CE Migration: How and Why to Develop Enterprise Mobility Applications for the Windows CE Environment December 2004 Te c h n i c a l W h i t e P a p e r S y m b o l T e c h n o l o g i e

More information

Chapter 13 Computer Programs and Programming Languages. Discovering Computers 2012. Your Interactive Guide to the Digital World

Chapter 13 Computer Programs and Programming Languages. Discovering Computers 2012. Your Interactive Guide to the Digital World Chapter 13 Computer Programs and Programming Languages Discovering Computers 2012 Your Interactive Guide to the Digital World Objectives Overview Differentiate between machine and assembly languages Identify

More information

C# and Other Languages

C# and Other Languages C# and Other Languages Rob Miles Department of Computer Science Why do we have lots of Programming Languages? Different developer audiences Different application areas/target platforms Graphics, AI, List

More information

IBM Rational Web Developer for WebSphere Software Version 6.0

IBM Rational Web Developer for WebSphere Software Version 6.0 Rapidly build, test and deploy Web, Web services and Java applications with an IDE that is easy to learn and use IBM Rational Web Developer for WebSphere Software Version 6.0 Highlights Accelerate Web,

More information

IBM CICS Transaction Gateway for Multiplatforms, Version 7.0

IBM CICS Transaction Gateway for Multiplatforms, Version 7.0 Delivers highly flexible, security-rich and scalable SOA access to CICS applications IBM Multiplatforms, Version 7.0 Highlights Connects WebSphere SOA Introduces real-time monitoring Foundation server

More information

System Structures. Services Interface Structure

System Structures. Services Interface Structure System Structures Services Interface Structure Operating system services (1) Operating system services (2) Functions that are helpful to the user User interface Command line interpreter Batch interface

More information

USE OF PYTHON AS A SATELLITE OPERATIONS AND TESTING AUTOMATION LANGUAGE

USE OF PYTHON AS A SATELLITE OPERATIONS AND TESTING AUTOMATION LANGUAGE USE OF PYTHON AS A SATELLITE OPERATIONS AND TESTING AUTOMATION LANGUAGE Gonzalo Garcia VP of Operations, USA Property of GMV All rights reserved INTRODUCTION Property of GMV All rights reserved INTRODUCTION

More information

Chapter 1. Dr. Chris Irwin Davis Email: cid021000@utdallas.edu Phone: (972) 883-3574 Office: ECSS 4.705. CS-4337 Organization of Programming Languages

Chapter 1. Dr. Chris Irwin Davis Email: cid021000@utdallas.edu Phone: (972) 883-3574 Office: ECSS 4.705. CS-4337 Organization of Programming Languages Chapter 1 CS-4337 Organization of Programming Languages Dr. Chris Irwin Davis Email: cid021000@utdallas.edu Phone: (972) 883-3574 Office: ECSS 4.705 Chapter 1 Topics Reasons for Studying Concepts of Programming

More information

Cross-Platform Mobile Apps Solution

Cross-Platform Mobile Apps Solution Cross-Platform Mobile Apps Solution Prepared by Kevin Mullins CEO and Chief Developer Appracatappra, LLC. 709 Gale Street #8 Seabrook, TX 77586 kmullins@appracatappra.com http://appracatappra.com Table

More information

CSE 452: Programming Languages. Acknowledgements. Contents. Java and its Evolution

CSE 452: Programming Languages. Acknowledgements. Contents. Java and its Evolution CSE 452: Programming Languages Java and its Evolution Acknowledgements Rajkumar Buyya 2 Contents Java Introduction Java Features How Java Differs from other OO languages Java and the World Wide Web Java

More information

Contents. Java - An Introduction. Java Milestones. Java and its Evolution

Contents. Java - An Introduction. Java Milestones. Java and its Evolution Contents Java and its Evolution Rajkumar Buyya Grid Computing and Distributed Systems Lab Dept. of Computer Science and Software Engineering The University of Melbourne http:// www.buyya.com Java Introduction

More information

CS 209 Programming in Java #1

CS 209 Programming in Java #1 CS 209 Programming in Java #1 Introduction Spring, 2006 Instructor: J.G. Neal 1 Topics CS 209 Target Audience CS 209 Course Goals CS 209 Syllabus - See handout Java Features, History, Environment Java

More information

Modern Software Development Tools on OpenVMS

Modern Software Development Tools on OpenVMS Modern Software Development Tools on OpenVMS Meg Watson Principal Software Engineer 2006 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice Topics

More information

Habanero Extreme Scale Software Research Project

Habanero Extreme Scale Software Research Project Habanero Extreme Scale Software Research Project Comp215: Evolution of Java Zoran Budimlić (Rice University) The Beginnings Sun Microsystems 1990 - Create a language for delivering programs on small electronic

More information

Dynamic Web Programming BUILDING WEB APPLICATIONS USING ASP.NET, AJAX AND JAVASCRIPT

Dynamic Web Programming BUILDING WEB APPLICATIONS USING ASP.NET, AJAX AND JAVASCRIPT Dynamic Web Programming BUILDING WEB APPLICATIONS USING ASP.NET, AJAX AND JAVASCRIPT AGENDA 1. Introduction to Web Applications and ASP.net 1.1 History of Web Development 1.2 Basic ASP.net processing (ASP

More information

Integrating SharePoint Sites within WebSphere Portal

Integrating SharePoint Sites within WebSphere Portal Integrating SharePoint Sites within WebSphere Portal November 2007 Contents Executive Summary 2 Proliferation of SharePoint Sites 2 Silos of Information 2 Security and Compliance 3 Overview: Mainsoft SharePoint

More information

The Microsoft Way: COM, OLE/ActiveX, COM+ and.net CLR. Chapter 15

The Microsoft Way: COM, OLE/ActiveX, COM+ and.net CLR. Chapter 15 The Microsoft Way: COM, OLE/ActiveX, COM+ and.net CLR Chapter 15 Microsoft is continually reengineering its existing application and platform base. Started with VBX, continued with OLE, ODBC, ActiveX,

More information

Virtual Machines. www.viplavkambli.com

Virtual Machines. www.viplavkambli.com 1 Virtual Machines A virtual machine (VM) is a "completely isolated guest operating system installation within a normal host operating system". Modern virtual machines are implemented with either software

More information

Cross-platform IL code manipulation library for runtime instrumentation of.net applications

Cross-platform IL code manipulation library for runtime instrumentation of.net applications Cross-platform IL code manipulation library for runtime instrumentation of.net applications master thesis subject for Markus Gaisbauer (0256634) in cooperation with dynatrace software GmbH July 5, 2007

More information

Chapter 12 Programming Concepts and Languages

Chapter 12 Programming Concepts and Languages Chapter 12 Programming Concepts and Languages Chapter 12 Programming Concepts and Languages Paradigm Publishing, Inc. 12-1 Presentation Overview Programming Concepts Problem-Solving Techniques The Evolution

More information

Layering a computing infrastructure. Middleware. The new infrastructure: middleware. Spanning layer. Middleware objectives. The new infrastructure

Layering a computing infrastructure. Middleware. The new infrastructure: middleware. Spanning layer. Middleware objectives. The new infrastructure University of California at Berkeley School of Information Management and Systems Information Systems 206 Distributed Computing Applications and Infrastructure Layering a computing infrastructure Middleware

More information

Computer Networks/DV2 Lab

Computer Networks/DV2 Lab Computer Networks/DV2 Lab Room: BB 219 Additional Information: http://ti.uni-due.de/ti/en/education/teaching/ss13/netlab Equipment for each group: - 1 Server computer (OS: Windows Server 2008 Standard)

More information

Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.

Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont. Objectives To describe the services an operating system provides to users, processes, and other systems To discuss the various ways of structuring an operating system Chapter 2: Operating-System Structures

More information

Real-time Device Monitoring Using AWS

Real-time Device Monitoring Using AWS Real-time Device Monitoring Using AWS 1 Document History Version Date Initials Change Description 1.0 3/13/08 JZW Initial entry 1.1 3/14/08 JZW Continue initial input 1.2 3/14/08 JZW Added headers and

More information

Risks with web programming technologies. Steve Branigan Lucent Technologies

Risks with web programming technologies. Steve Branigan Lucent Technologies Risks with web programming technologies Steve Branigan Lucent Technologies Risks with web programming technologies Abstract Java applets and their kind are bringing new life to the World Wide Web. Through

More information

Ambientes de Desenvolvimento Avançados

Ambientes de Desenvolvimento Avançados Ambientes de Desenvolvimento Avançados http://www.dei.isep.ipp.pt/~jtavares/adav/adav.htm Aula 19 Engenharia Informática 2004/2005 José António Tavares jrt@isep.ipp.pt 1 Web services 2 1 Base Line & Emerging

More information

Developing Embedded Software in Java Part 1: Technology and Architecture

Developing Embedded Software in Java Part 1: Technology and Architecture Developing Embedded Software in Java Part 1: Technology and Architecture by Michael Barr Embedded Systems Conference Europe The Netherlands November 16-18, 1999 Course #300 Sun s introduction of the Java

More information

Java Garbage Collection Basics

Java Garbage Collection Basics Java Garbage Collection Basics Overview Purpose This tutorial covers the basics of how Garbage Collection works with the Hotspot JVM. Once you have learned how the garbage collector functions, learn how

More information

Software: Systems and Application Software

Software: Systems and Application Software Software: Systems and Application Software Computer Software Operating System Popular Operating Systems Language Translators Utility Programs Applications Programs Types of Application Software Personal

More information

DB2 Connect for NT and the Microsoft Windows NT Load Balancing Service

DB2 Connect for NT and the Microsoft Windows NT Load Balancing Service DB2 Connect for NT and the Microsoft Windows NT Load Balancing Service Achieving Scalability and High Availability Abstract DB2 Connect Enterprise Edition for Windows NT provides fast and robust connectivity

More information

How Java Software Solutions Outperform Hardware Accelerators

How Java Software Solutions Outperform Hardware Accelerators How Java Software Solutions Outperform Hardware Accelerators MIPS Technologies, Inc. April 2005 Java is a programming language which has one big advantage and one big disadvantage: the big advantage is

More information

White Paper. Java Security. What You Need to Know, and How to Protect Yourself. 800.266.7798 www.inductiveautomation.com

White Paper. Java Security. What You Need to Know, and How to Protect Yourself. 800.266.7798 www.inductiveautomation.com White Paper Java Security What You Need to Know, and How to Protect Yourself Java Security: What You Need to Know, and How to Protect Yourself Ignition HMI, SCADA and MES software by Inductive Automation

More information

Agent Languages. Overview. Requirements. Java. Tcl/Tk. Telescript. Evaluation. Artificial Intelligence Intelligent Agents

Agent Languages. Overview. Requirements. Java. Tcl/Tk. Telescript. Evaluation. Artificial Intelligence Intelligent Agents Agent Languages Requirements Overview Java Tcl/Tk Telescript Evaluation Franz J. Kurfess, Cal Poly SLO 211 Requirements for agent Languages distributed programming large-scale (tens of thousands of computers)

More information

SSL VPN vs. IPSec VPN

SSL VPN vs. IPSec VPN SSL VPN vs. IPSec VPN White Paper 254 E. Hacienda Avenue Campbell, CA 95008 www.arraynetworks.net (408) 378-6800 1 SSL VPN vs. IPSec VPN Copyright 2002 Array Networks, Inc. SSL VPN vs. IPSec VPN White

More information

Changing the embedded development model with Microsoft.NET Micro Framework

Changing the embedded development model with Microsoft.NET Micro Framework Changing the embedded development model with Microsoft.NET Micro Framework The development model for embedded devices is traditionally viewed as extremely complex with the need for highly specialized design

More information

CSCI E 98: Managed Environments for the Execution of Programs

CSCI E 98: Managed Environments for the Execution of Programs CSCI E 98: Managed Environments for the Execution of Programs Draft Syllabus Instructor Phil McGachey, PhD Class Time: Mondays beginning Sept. 8, 5:30-7:30 pm Location: 1 Story Street, Room 304. Office

More information

IBM Tivoli Composite Application Manager for WebSphere

IBM Tivoli Composite Application Manager for WebSphere Meet the challenges of managing composite applications IBM Tivoli Composite Application Manager for WebSphere Highlights Simplify management throughout the life cycle of complex IBM WebSphere-based J2EE

More information

Course MS10975A Introduction to Programming. Length: 5 Days

Course MS10975A Introduction to Programming. Length: 5 Days 3 Riverchase Office Plaza Hoover, Alabama 35244 Phone: 205.989.4944 Fax: 855.317.2187 E-Mail: rwhitney@discoveritt.com Web: www.discoveritt.com Course MS10975A Introduction to Programming Length: 5 Days

More information

What is Middleware? Software that functions as a conversion or translation layer. It is also a consolidator and integrator.

What is Middleware? Software that functions as a conversion or translation layer. It is also a consolidator and integrator. What is Middleware? Application Application Middleware Middleware Operating System Operating System Software that functions as a conversion or translation layer. It is also a consolidator and integrator.

More information

Star System. 2004 Deitel & Associates, Inc. All rights reserved.

Star System. 2004 Deitel & Associates, Inc. All rights reserved. Star System Apple Macintosh 1984 First commercial OS GUI Chapter 1 Introduction to Operating Systems Outline 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.10 1.11 1.12 Introduction What Is an Operating System?

More information

CA CPT CICS Programmers Toolkit for TCP/IP r6.1

CA CPT CICS Programmers Toolkit for TCP/IP r6.1 PRODUCT BRIEF: CA CPT CICS PROGRAMMERS TOOLKIT FOR TCP/IP CA CPT CICS Programmers Toolkit for TCP/IP r6.1 CA CPT CICS PROGRAMMERS' TOOLKIT FOR TCP/IP PROVIDES CICS PROGRAMMERS WITH AN EASY TO USE SET OF

More information

An Overview of the.net Technology. Hanspeter Mössenböck

An Overview of the.net Technology. Hanspeter Mössenböck An Overview of the.net Technology Hanspeter Mössenböck What is.net? A new software platform for the desktop and the Web unmanaged applications operating system (Windows, Linux, Unix,...) 2 What is.net?

More information

Section 1.4. Java s Magic: Bytecode, Java Virtual Machine, JIT,

Section 1.4. Java s Magic: Bytecode, Java Virtual Machine, JIT, J A V A T U T O R I A L S : Section 1.4. Java s Magic: Bytecode, Java Virtual Machine, JIT, JRE and JDK This section clearly explains the Java s revolutionary features in the programming world. Java basic

More information

Chapter 2 TOPOLOGY SELECTION. SYS-ED/ Computer Education Techniques, Inc.

Chapter 2 TOPOLOGY SELECTION. SYS-ED/ Computer Education Techniques, Inc. Chapter 2 TOPOLOGY SELECTION SYS-ED/ Computer Education Techniques, Inc. Objectives You will learn: Topology selection criteria. Perform a comparison of topology selection criteria. WebSphere component

More information

Java on z/os. Agenda. Java runtime environments on z/os. Java SDK 5 and 6. Java System Resource Integration. Java Backend Integration

Java on z/os. Agenda. Java runtime environments on z/os. Java SDK 5 and 6. Java System Resource Integration. Java Backend Integration Martina Schmidt martina.schmidt@de.ibm.com Agenda Java runtime environments on z/os Java SDK 5 and 6 Java System Resource Integration Java Backend Integration Java development for z/os 4 1 Java runtime

More information

C#5.0 IN A NUTSHELL. Joseph O'REILLY. Albahari and Ben Albahari. Fifth Edition. Tokyo. Sebastopol. Beijing. Cambridge. Koln.

C#5.0 IN A NUTSHELL. Joseph O'REILLY. Albahari and Ben Albahari. Fifth Edition. Tokyo. Sebastopol. Beijing. Cambridge. Koln. Koln C#5.0 IN A NUTSHELL Fifth Edition Joseph Albahari and Ben Albahari O'REILLY Beijing Cambridge Farnham Sebastopol Tokyo Table of Contents Preface xi 1. Introducing C# and the.net Framework 1 Object

More information

Moving Your COBOL Assets to Microsoft.NET: Fujitsu NetCOBOL for.net

Moving Your COBOL Assets to Microsoft.NET: Fujitsu NetCOBOL for.net Moving Your COBOL Assets to Microsoft.NET: Fujitsu NetCOBOL for.net Fujitsu Software! Hurwitz Report Moving Your COBOL Assets to Microsoft.NET: Fujitsu NetCOBOL for.net Fujitsu Software iii Executive Summary

More information

Software design (Cont.)

Software design (Cont.) Package diagrams Architectural styles Software design (Cont.) Design modelling technique: Package Diagrams Package: A module containing any number of classes Packages can be nested arbitrarily E.g.: Java

More information

BarTender Integration Methods. Integrating BarTender s Printing and Design Functionality with Your Custom Application WHITE PAPER

BarTender Integration Methods. Integrating BarTender s Printing and Design Functionality with Your Custom Application WHITE PAPER BarTender Integration Methods Integrating BarTender s Printing and Design Functionality with Your Custom Application WHITE PAPER Contents Introduction 3 Integrating with External Data 4 Importing Data

More information

Computer Network. Interconnected collection of autonomous computers that are able to exchange information

Computer Network. Interconnected collection of autonomous computers that are able to exchange information Introduction Computer Network. Interconnected collection of autonomous computers that are able to exchange information No master/slave relationship between the computers in the network Data Communications.

More information

Windows Embedded Security and Surveillance Solutions

Windows Embedded Security and Surveillance Solutions Windows Embedded Security and Surveillance Solutions Windows Embedded 2010 Page 1 Copyright The information contained in this document represents the current view of Microsoft Corporation on the issues

More information

Online Recruitment System 1. INTRODUCTION

Online Recruitment System 1. INTRODUCTION 1. INTRODUCTION This project Online Recruitment System is an online website in which jobseekers can register themselves online and apply for job and attend the exam. Online Recruitment System provides

More information

Jonathan Worthington Scarborough Linux User Group

Jonathan Worthington Scarborough Linux User Group Jonathan Worthington Scarborough Linux User Group Introduction What does a Virtual Machine do? Hides away the details of the hardware platform and operating system. Defines a common set of instructions.

More information

Data Sheet VISUAL COBOL 2.2.1 WHAT S NEW? COBOL JVM. Java Application Servers. Web Tools Platform PERFORMANCE. Web Services and JSP Tutorials

Data Sheet VISUAL COBOL 2.2.1 WHAT S NEW? COBOL JVM. Java Application Servers. Web Tools Platform PERFORMANCE. Web Services and JSP Tutorials Visual COBOL is the industry leading solution for COBOL application development and deployment on Windows, Unix and Linux systems. It combines best in class development tooling within Eclipse and Visual

More information

Programming. Languages & Frameworks. Hans- Pe(er Halvorsen, M.Sc. h(p://home.hit.no/~hansha/?page=sodware_development

Programming. Languages & Frameworks. Hans- Pe(er Halvorsen, M.Sc. h(p://home.hit.no/~hansha/?page=sodware_development h(p://home.hit.no/~hansha/?page=sodware_development Programming O. Widder. (2013). geek&poke. Available: h(p://geek- and- poke.com Languages & Frameworks Hans- Pe(er Halvorsen, M.Sc. 1 ImplementaVon Planning

More information

For Course Details, visit: http://ike.co.in/course/overview.pdf

For Course Details, visit: http://ike.co.in/course/overview.pdf IMBIBE KNOWLEDGE ENTERPRISE COURSES 1. Java Platform 1.1. Java (JSE) 1.2. Enterprise Java (JEE) 1.3. Java Micro Edition (JME) 1.4. Java Class Library 1.5. AWT & Swing 2..NET Platform 2.1. C# 2.2. VB.NET

More information

The Reincarnation of Virtual Machines

The Reincarnation of Virtual Machines The Reincarnation of Virtual Machines By Mendel Rosenblum Co-Founder of VMware Associate Professor, Computer Science Stanford University Abstract:VMware, Inc. has grown to be the industry leader in x86-based

More information

Your Data, Any Place, Any Time. Microsoft SQL Server 2008 provides a trusted, productive, and intelligent data platform that enables you to:

Your Data, Any Place, Any Time. Microsoft SQL Server 2008 provides a trusted, productive, and intelligent data platform that enables you to: Your Data, Any Place, Any Time. Microsoft SQL Server 2008 provides a trusted, productive, and intelligent data platform that enables you to: Run your most demanding mission-critical applications. Reduce

More information

JAVA 2 Network Security

JAVA 2 Network Security JAVA 2 Network Security M A R C O PISTOIA DUANE F. RELLER DEEPAK GUPTA MILIND NAGNUR ASHOK K. RAMANI PTR, UPPER http://www.phptr.com PRENTICE HALL SADDLE RIVER, NEW JERSEY 07458 Contents Foreword Preface

More information

Take full advantage of IBM s IDEs for end- to- end mobile development

Take full advantage of IBM s IDEs for end- to- end mobile development Take full advantage of IBM s IDEs for end- to- end mobile development ABSTRACT Mobile development with Rational Application Developer 8.5, Rational Software Architect 8.5, Rational Developer for zenterprise

More information

General Introduction

General Introduction Managed Runtime Technology: General Introduction Xiao-Feng Li (xiaofeng.li@gmail.com) 2012-10-10 Agenda Virtual machines Managed runtime systems EE and MM (JIT and GC) Summary 10/10/2012 Managed Runtime

More information

What can DDS do for You? Learn how dynamic publish-subscribe messaging can improve the flexibility and scalability of your applications.

What can DDS do for You? Learn how dynamic publish-subscribe messaging can improve the flexibility and scalability of your applications. What can DDS do for You? Learn how dynamic publish-subscribe messaging can improve the flexibility and scalability of your applications. 2 Contents: Abstract 3 What does DDS do 3 The Strengths of DDS 4

More information

A standards-based approach to application integration

A standards-based approach to application integration A standards-based approach to application integration An introduction to IBM s WebSphere ESB product Jim MacNair Senior Consulting IT Specialist Macnair@us.ibm.com Copyright IBM Corporation 2005. All rights

More information

After completing this course, students will have a fundamental understanding of how to:

After completing this course, students will have a fundamental understanding of how to: Table of Contents Introduction Audience At Course Completion Prerequisites Microsoft Certified Professional Exams Student Materials Course Outline Introduction This two-day, instructor-led seminar provides

More information

Middleware- Driven Mobile Applications

Middleware- Driven Mobile Applications Middleware- Driven Mobile Applications A motwin White Paper When Launching New Mobile Services, Middleware Offers the Fastest, Most Flexible Development Path for Sophisticated Apps 1 Executive Summary

More information

Chapter 3. Internet Applications and Network Programming

Chapter 3. Internet Applications and Network Programming Chapter 3 Internet Applications and Network Programming 1 Introduction The Internet offers users a rich diversity of services none of the services is part of the underlying communication infrastructure

More information

Application Servers - BEA WebLogic. Installing the Application Server

Application Servers - BEA WebLogic. Installing the Application Server Proven Practice Application Servers - BEA WebLogic. Installing the Application Server Product(s): IBM Cognos 8.4, BEA WebLogic Server Area of Interest: Infrastructure DOC ID: AS01 Version 8.4.0.0 Application

More information

The Evolution of Traffic Management Systems Peter Christy, NetsEdge Research Group, September 2001

The Evolution of Traffic Management Systems Peter Christy, NetsEdge Research Group, September 2001 The Evolution of Traffic Management Systems Peter Christy, NetsEdge Research Group, September 2001 In the last five years traffic management systems have grown from obscure and exotic technology to a standard

More information

Network operating systems typically are used to run computers that act as servers. They provide the capabilities required for network operation.

Network operating systems typically are used to run computers that act as servers. They provide the capabilities required for network operation. NETWORK OPERATING SYSTEM Introduction Network operating systems typically are used to run computers that act as servers. They provide the capabilities required for network operation. Network operating

More information

zen Platform technical white paper

zen Platform technical white paper zen Platform technical white paper The zen Platform as Strategic Business Platform The increasing use of application servers as standard paradigm for the development of business critical applications meant

More information

Chapter 2: Remote Procedure Call (RPC)

Chapter 2: Remote Procedure Call (RPC) Chapter 2: Remote Procedure Call (RPC) Gustavo Alonso Computer Science Department Swiss Federal Institute of Technology (ETHZ) alonso@inf.ethz.ch http://www.iks.inf.ethz.ch/ Contents - Chapter 2 - RPC

More information

E-Business Technologies for the Future

E-Business Technologies for the Future E-Business Technologies for the Future Michael B. Spring Department of Information Science and Telecommunications University of Pittsburgh spring@imap.pitt.edu http://www.sis.pitt.edu/~spring Overview

More information

Reminders. Lab opens from today. Many students want to use the extra I/O pins on

Reminders. Lab opens from today. Many students want to use the extra I/O pins on Reminders Lab opens from today Wednesday 4:00-5:30pm, Friday 1:00-2:30pm Location: MK228 Each student checks out one sensor mote for your Lab 1 The TA will be there to help your lab work Many students

More information

Integrated and reliable the heart of your iseries system. i5/os the next generation iseries operating system

Integrated and reliable the heart of your iseries system. i5/os the next generation iseries operating system Integrated and reliable the heart of your iseries system i5/os the next generation iseries operating system Highlights Enables the legendary levels of reliability and simplicity for which iseries systems

More information

Virtual. The term virtual machine initially described a 1960s. The Reincarnation of FOCUS. Virtual. Machines

Virtual. The term virtual machine initially described a 1960s. The Reincarnation of FOCUS. Virtual. Machines The term virtual machine initially described a 1960s operating system concept: a software abstraction with the looks of a computer system s hardware (real machine). Forty years later, the term encompasses

More information

Internet Engineering: Web Application Architecture. Ali Kamandi Sharif University of Technology kamandi@ce.sharif.edu Fall 2007

Internet Engineering: Web Application Architecture. Ali Kamandi Sharif University of Technology kamandi@ce.sharif.edu Fall 2007 Internet Engineering: Web Application Architecture Ali Kamandi Sharif University of Technology kamandi@ce.sharif.edu Fall 2007 Centralized Architecture mainframe terminals terminals 2 Two Tier Application

More information

An Overview of Java. overview-1

An Overview of Java. overview-1 An Overview of Java overview-1 Contents What is Java Major Java features Java virtual machine Java programming language Java class libraries (API) GUI Support in Java Networking and Threads in Java overview-2

More information

Introducing the.net Framework 4.0

Introducing the.net Framework 4.0 01_0672331004_ch01.qxp 5/3/10 5:40 PM Page 1 CHAPTER 1 Introducing the.net Framework 4.0 As a Visual Basic 2010 developer, you need to understand the concepts and technology that empower your applications:

More information

Nokia 9210i/9290 Communicators and PersonalJava TM Application Development

Nokia 9210i/9290 Communicators and PersonalJava TM Application Development Nokia 9210i/9290 Communicators and Personal TM Application Development 05-03-2002 Nokia 9210i/9290 Communicators and PersonalTM Application Development Table of contents 1. DIFFERENT JAVA TECHNOLOGIES...

More information

Functions of NOS Overview of NOS Characteristics Differences Between PC and a NOS Multiuser, Multitasking, and Multiprocessor Systems NOS Server

Functions of NOS Overview of NOS Characteristics Differences Between PC and a NOS Multiuser, Multitasking, and Multiprocessor Systems NOS Server Functions of NOS Overview of NOS Characteristics Differences Between PC and a NOS Multiuser, Multitasking, and Multiprocessor Systems NOS Server Hardware Windows Windows NT 4.0 Linux Server Software and

More information