Which is the future NET or Java

Java Platform Enterprise Edition. vs. Microsoft.NET


1 Java Platform Enterprise Edition vs. Microsoft.NET 1 1/30 Java EE vs. MS.NET Introduction Overview Development History Java Platform, Enterprise Edition Microsoft.NET Java EE vs...net: Similarities and Differences Decision Integration Techniques Market Research

2 For some years now, Microsoft has been competing with the .NET software platform of the Java Platform Enterprise Edition. Both want to be the future standard for the development of web-based applications. Who will win? 2 2/30 Introduction With the .NET software platform, Microsoft has been competing with the Java Platform Enterprise Edition (J2EE or Java EE) for several years now. Both technologies pursue the goal of setting the future standard for the development of web-based applications and are actually the two market leaders in this area. Choosing the right project platform is therefore often a decision between.net and Java EE. But who makes the race?

3 Outline Overview of both platforms Similarities and differences IT market assessment 3 3/30 Outline First of all, we will give a brief overview of the two platforms so that we can then go into more detail on the similarities and differences that arise when deciding whether to use NET vs. Java EE play a role. Finally, we will study the current IT market in Germany in order to then assess the position of the two with further analyzes.

4 4 4/30 Overview / development history Microsoft.NET and Java EE are software platforms with which complex company applications, so-called enterprise applications, are implemented. Net was first announced in 2000 by Bill Gates and in 2002 it was ready for the market. At this point in time, the Java platform had already been available for three years; Edition 1.0 was launched in December 1999. The latest version is Java Platform, Enterprise Edition 5 (Java EE 5) from the year The new name Java EE replaces the previous abbreviation J2EE (Java 2 Platform, Enterprise Edition). The release of the newest.net version 3.5 has been on the market since November 2007 and was expanded by SP1 in August 2008. In September 2008 Microsoft announced information about the future.net Framework 4.0 for the first time. 1 NGWS: Microsoft began developing the.net framework in the late 1990s, originally under the name Next Generation Windows Services (NGWS). 3.NET Framework 4.0: Microsoft announced information about the.net Framework 4.0 for the first time on September 29, 2008 and at this year's Professional Developers Conference (PDC 2008). (Although exact details of the future version have not yet been released, some general information about the company's plans has been released. For example, parallel computers in.net 4.0 are to be supported more strongly, especially systems with multi-core processors or systems designed for distributed computing. There are also plans to integrate processes such as PLINQ (Parallel LINQ) and the Task Parallel Library (TPL), which enables parallel processing via method calls and delegates.Microsoft has also announced a subset of the.net framework and ASP.NET in Microsoft Windows Server Core.)

5 Java Platform Enterprise Edition Specification Modular component model Basic components: Java Servlet, JavaServer Pages, Enterprise JavaBeans, ... Manufacturer-independent (Sun Microsystems) Language-dependent: Java 5 5/30 Java Platform Enterprise Edition The Java Platform, Enterprise Edition (Java EE) does not provide It is an independent product, but rather a general framework, i.e. a specification of a software architecture for the transaction-based execution of applications programmed in Java and in particular web applications. Java EE does not designate a specific implementation, but a standard that realizes multi-layered, portable, scalable and stable business applications on the basis of a standardized modular component model, or creates company-wide and cross-company applications (enterprise applications). The basic components are e.g. Java Servlet, JavaServer Pages (JSP) or Enterprise JavaBeans (EJB). The Java EE technology was shaped and further developed by a manufacturer consortium (IBM, Oracle, BEA,) under the leadership of Sun Microsystems. In contrast to.net, Java EE is manufacturer-independent and runs on almost all operating systems.

6 Java Platform Enterprise Edition High availability, security and scalability of the distributed application Specification ensures interoperability between software components from different manufacturers Java Community Process (JCP) 6 6/30 The Java EE runtime environment ensures high availability, security and scalability of the distributed application. The clearly defined interfaces between the components and containers ensure that software components from different manufacturers are interoperable if they adhere to the specification. Components of the specification are developed within the Java Community Process (JCP) by various companies and finally made available to the public in the form of a document and a reference implementation.

7 Java Platform Enterprise Edition implementations can be certified by Sun for the respective version. Compatibility of the applications / porting is guaranteed 7 7/30 An implementation of the Java EE standard can also be certified by Sun for the respective version. This confirms the basic compatibility of the applications between the servers, i.e. porting an application to other Java EE application servers is guaranteed.

8 8 8/30 Implementations: Complete Java EE servers 4 Under Users you can find the number of companies and organizations that have licensed the respective server or, in the case of JBoss, have concluded a maintenance contract. JBoss estimates that there are overall users of the JBoss Enterprise Application Platform.

9 Java Platform Enterprise Edition Separate web containers (servlet / JSP containers): Apache Tomcat, Caucho Technology Resin, Enhydra Server, Jetty Separate EJB containers: Apache OpenEJB 9 9/30 In addition to implementations of complete Java EE servers, there are Of course, also implementations of separate web and EJB containers: Separate web containers (servlet / JSP containers): Apache Tomcat, Caucho Technology Resin, Enhydra Server, Jetty (all open source) Separate EJB containers: Apache OpenEJB (open source)

10 Java Platform Enterprise Edition Tier architecture Runtime environment: Java EE application server and various services (transactions, security, name and directory services, persistence mechanisms) Web container (supports servlets and Java server faces) Remoting methods, interfaces to messaging middleware Management: Java Management Extension 10 10/30 Layer architecture of Java EE: The Java EE environment is used to develop distributed business applications. A Java EE application server provides the runtime environment for software components (this includes lifecycle management and deployment) as well as various services (transactions, security, name and directory services, persistence mechanisms). A web container is also offered, which offers support for servlets and Java server faces. The component framework is explicitly designed for distributed components and offers corresponding remoting methods and interfaces to messaging middleware (JMS) and web services. Components are managed using the standardized Java Management Extension.

11 11 11/30 Complex web applications are often divided into three so-called tiers: Client tier: Client components (browser,) interaction with the middle tier via defined protocols (HTTP, ...) Middle tier: J2EE server and container interaction, among others via JNDI (JNDI: Java Naming an Directory Interface: naming and directory service: announcing and finding Java objects in the network) Enterprise Information System (EIS) Tier: Legacy systems and databases Database access from the Middle Tier via JDBC (JDBC: Java Database Connectivity: API for database connection especially to relational DBs (Java APIs: (Application Programming Interface: programming interface))) Servlets, JSP: JavaServer Pages: Generating dynamic web content EJB: Enterprise Java Beans: Server-side component architecture, framework for database access and business logic RMI ( IIOP): Remote Method Invocation (Internet Inter-ORB Protocol): Remote method invocation

12 Java 2 Platform Enterprise Edition 5 Innovations in Java EE 5 (formerly J2EE): significant simplifications Instead of complex configuration files Java annotations Convention over Configuration: preset specifications Dependency Injection Support of aspect-oriented programming JPA (Java Persistence API) 12 12/30 Java EE 5 Java EE 5 offers some significant innovations that make the development of this class of applications much less complicated from the programmer's point of view. This is not the only reason why Java EE 5 is one of the most important Enterprise Java releases in a long time. This new, simpler approach to enterprise Java software development was a response to criticism from developers: - Instead of complex configuration files, Java annotations are now used. - At the same time, the “Convention over Configuration” paradigm is applied; So the idea that the system makes sensible specifications that can be started quickly and easily and only changes when it is really necessary. In contrast, there were extensive configurations in earlier versions. - Dependency Injection is supported, a pattern that allows flexible lifecycle management, reusability and configuration of components. - Thanks to the support of aspect-oriented programming, it becomes easier to develop and reuse functions such as security, logging or transactions that affect many parts of an application independently of certain modules. - JPA, i.e. the Java Persistence API, is supported. Thanks to these modifications, using Java EE is much easier.

13 Microsoft.NET Proprietary, adapted to Windows Language-independent (C # and more than 20 languages) .NET Framework: Uniform runtime environment (CLR, class libraries, subsystems (ASP.NET) Technical basis: Windows Server and Visual Studio.NET source text published, but none Free license An integral part of the operating system since Windows Vista 13 13/30 As an alternative to Java EE, Microsoft introduced the.net platform, an architecture that is proprietary and only adapted to Windows as the primary system language for.net, in contrast to the manufacturer or cross-platform Java system the Java-like C # functions, which combines the advantages of JAVA and C ++. At the moment ,.net applications can be created in more than 25 languages, e.g. in C ++, Microsoft Visual Basic.NET, Jscript and a multitude of others Third party languages ​​such as COBOL, Eiffel, Perl, Python and Smalltalk..NET is a combination of the components .NET Framework, Web Services and.net Enterpr ise server. The basis for development is the.net Framework, which is made up of three core elements: a uniform runtime environment (CLR), class libraries and subsystems for developing solutions such as ASP.NET (Active Server Pages) Runtime Environment (CLR, Common Language Runtime): At runtime is the CLR is responsible for the administration of the memory, for the start and stop of processes, for the enforcement of the security mechanisms and for the references to other components. Class libraries: The class libraries are clearly divided into namespaces (equivalent to the package concept in Java) and are used for the clear organization of the framework classes (.NET Framework Classes: collection of functions for application development). Associated classes are combined into logical groups. For example, the System.Web.Services library shows that the classes it contains relate to specific services for the web. The libraries of the framework itself are already available as a precompiled version on the computer and therefore do not have to be recompiled when the program is started. The unified classes provide a consistent method for accessing the functions of the platform and make it superfluous to know and master different API architectures for writing applications. "Windows Server 2003" and the development environment "Visual Studio.NET" form the technical basis for.net. Since January 17, 2008, the source code of large parts of the framework for "easier debugging" has been available to developers. However, under the restrictive Microsoft Reference License, i.e. not under a free license. In contrast to Java, it is not allowed to modify the source code or to integrate it into other projects. Microsoft only allows viewing of the source code to support the debugging process in projects. Thanks to the publication of the source code, at least more precise workarounds can be written in IT projects in the event of an error. Since Windows Vista (November 2006 ).net has been an integral part of the operating system, up to now there has been.net as an optional add-on.

14 14 14/30 CLR / CIL Basic principle: The Common Language Runtime (CLR) is the runtime environment of.net and thus provides the interpreter for the standardized intermediate code, the Common Intermediate Language (CIL). The CIL was formerly called Microsoft Intermediate Language (MSIL), but was renamed as part of the standardization by the ECMA. A cross-language system of object-based data types was defined for them, so that all high-level languages ​​that adhere to the CLI (Common Language Infrastructure) standard can be compiled into valid CIL bytecode. The required program parts (executable files and libraries) are translated into pure machine language by the common language runtime (CLR) before they are executed and only then executed. The machine language is optimized according to the processor. The result is fast runtime behavior that can even approach machine-compiled C ++ programs in a few areas.

15 Language diversity: not only advantages less maintainability Platform independence under.net: basically possible - Shared Source CLI (Rotor): limited open implementation - Mono: Open Source replica of the.net Framework - dotgnu-pojekt: Portable.NET 15 15/30 Java EE vs..net: Similarities and Differences In this table we have summarized the main differences between the two platforms, which are both market leaders. 5 The main differences between Java EE and.net are defined in the runtime component and in the variety of languages. The support of mixed-language programming by.net is often seen as an advantage over Java EE, but it is not without controversy, since the maintainability of a project that has been implemented in several languages ​​is less than when developing with just one language. Reuse of existing developer knowledge is made easier by the language independence, but it remains questionable whether this functionality is always an advantage within an IT project, since it cannot simplify existing communication problems anyway. 6 The.net platform is actually proprietary, but platform independence is in principle also possible on.net. Microsoft itself had made a stripped-down (and no longer up-to-date) .net variant called Shared Source CLI (code name Rotor) available for Mac and FreeBSD in 2002. Rotor is an open Microsoft implementation of the CLI and C # based on the CLR from.net, but not a full replacement for.net, because on the one hand its use is restricted, i.e. it must not be commercial, and on the other hand important libraries are missing (Windows Forms , ADO.NET, ASP.NET and Web Services). The main purpose is research and testing of.net technology. Open source projects have adopted an implementation based on the ECMA standard. The two most developed projects are Mono and the dotgnu project. Mono is a project for UNIX supported by Novell, a complete open source replica (no porting!) Of the.net framework, which was initiated by the manufacturer Ximian, develops a compiler and a runtime environment for non-Windows platforms (Linux / Unix, MacOS ). The class library supports ASP.NET and ADO.NET. There are now versions for Linux, Windows, Solaris, FreeBSD and Mac OS. The dotgnu project is working on a runtime environment called Portable.NET. However, both implementations are not yet at the development level of today's.net.

16 Similarities with differences: .NET is not a new concept, but many, good third-party concepts in a new solution 16 16/30 In this table we compare some elements of the two platforms again. We find many basic similarities, which in turn differ in details. Both are based on a component model on the client and server side. The runtime environment is the JVM in Java EE and the CLR in.net. The JVM uses JIT or interpreter, the CLR always requires JIT. Both use an intermediate code. Java's bytecode in Java archives, .NET's intermediate language in assemblies. Java's bytecode is interpreted, .net relies on performative compilation. With Java Ees object model we find simple types and classes, whereby.net only uses classes. 7 If one compares the so-called namespaces (the naming of the individual libraries within the framework) with the names of Java packages, one can definitely find parallels.The .NET Framework is not the development of a new concept, but the combination of many good third-party concepts in a new solution. 8 Distributed communication runs similarly and is easy to use with both. 9 Both support web services. With Java EE all necessary components are available. However, web services are not the central element of the architecture. At .NET, the entire development is geared towards the web services concept, but with proprietary elements. 10 On the client side, both technologies (Java applets and Microsoft ActiveX) represent executable program code in websites. However, ActiveX controls specifically serve to make properties of the MS operating systems usable via the web (not a real Internet standard). The security properties are much lower than those of Java applets.

17 Microsoft's market position against the freely implementable Java standard Can there only be one? Clear technical differences Individual decision! 17 17/30 Decision Microsoft's market position against the freely implementable Java EE standard: Can there only be one? Although.net is a product from a single manufacturer and not a specification, so not an open platform, Microsoft is not expected to leave the market tomorrow. In spite of all the parallelism and technical differences between the two IT architectures, a clear decision for one of the two platforms cannot be made on the technical level. That means, depending on the project, an individual decision should always be made.

18 Integration techniques Web services enable togetherness Integration of.net and Java EE applications 18 18/30 Integration techniques The strong competition between Java EE and Microsoft.NET is very beneficial for the further development and constant improvement of both. The weight of the two also gave rise to the idea of ​​linking the two together. Since the two can also be connected well with each other due to the web services, nothing speaks against togetherness. Tool providers offer various solutions for integrating .net and Java EE applications into one another. These two variants are important here: Integration of the presentation tier from.net with the middle tier of Java EE or the integration of the middle tier from.net with that of Java EE, each with the help of a MOM (message oriented middleware) Als Take Janeva as an example: the software enables .net applications to be integrated into Java EE environments. It works as a plug-in for development environments such as Microsoft Visual Studio.net or Borland C # Builder.

19 IT market study on GULP: Internet job exchange with market study tool Candidates, companies, projects (market coverage 90%) Position of Java EE und.net in the German IT project market? 19 19/30 Market research Technically, it is not possible to make a clear decision, but how does the market see it? On the basis of a small market study, we will first try to assess the positions of Java EE and.net in the German IT project market. To this end, we carried out a study on the GULP (Internet portal. GULP is an Internet job exchange for IT freelancers that was founded in 1996 and can be seen as an important source for staffing IT projects with external specialists in German-speaking countries. Apart from the job placement services, GULP also offers the possibility of creating your own market studies in its comprehensive online portal. The study draws on the data of candidates registered in GULP (IT freelancers, some of whom are also looking for permanent positions) about companies and completed project offers. With registered IT freelancers, a market coverage of over 90% is achieved.

20 Share of Java EE projects higher.net is catching up to 20 20/30 Using our small market study, we want to see how Microsoft, which initially slept through the Internet boom of the 90s, is catching up with the tried and tested Java standard. The share of Java EE projects is still higher, but as the graphic shows, the gap between the project shares between the two skills has been shrinking since 2006. Slowly but surely, both had benefited from the better economic situation, but fell last year (2008) Java threatening. This development may be related to the current economic crisis, but .net was at least able to maintain the values ​​of the previous year. The approach of the two to each other also shows the nice catch-up of.net. On the other hand, it can also indicate a stabilization in good togetherness of the two platforms.

21 .NET more in demand in the south Increased Java EE demand in the Frankfurt a. M. Hourly rate 2008: Java EE = 70.36, .NET = 64, / 30 IT freelancers with qualifications in.net or Java EE are wanted by companies nationwide, but externes.net know-how tends to be in the south of the republic ( Postcode areas 8, 9) but somewhat more in demand, as a look at the regional distribution of project inquiries in 2008 shows: In the banking region of Frankfurt am Main (postcode area 6), on the other hand, the demand for.net is rather restrained; here the need for Java EE experts is higher. Sectors that are preferably located in the catchment areas with an increased need for.net and Java EE experts include banks and financial service providers, among others, the automotive industry, IT / EDP, telecommunications and insurance. The average hourly rate for the self-employed from last year (2008) is also interesting: While Java EE qualifications achieve an hourly rate of 70.36 ,.net-knowledge only brings 64.76.

22 Gartner Inc .: IT Market Research, USA Magic Quadrants: Positioned by Leader, Visionary, Challenger and Niche Player Here: Magic Quadrant for Enterprise Application Servers, Q2 / 30 How does Gartner view the situation? The Gartner Group, founded in 1979 and Gartner Inc. since 2001, is a huge provider of market research and analysis in the global technology industry with headquarters in Stamford (Connecticut), USA. Gartner uses so-called Magic Quadrants to visualize the results of the market analyzes. Magic quadrants show how certain providers position themselves within the market according to criteria defined by Gartner. The positioning takes place in one of the four quadrants: leader, visionary, challenger and niche actor. Here we have the Magic Quadrant for Enterprise Application Servers for the 2nd quarter of 2008: As you can see ,.net (Microsoft) is one of the market leaders in Enterprise Application Servers alongside the Java EE represented by IBM, Oracle, Bea and Jboss.

23 Gartner: Java and.net: You Can't Pick a Favorite Child 23 23/30 In 2006, in a comparison of Java EE and.net, Gartner found that there are no favorites. Java and.net: You Can't Pick a Favorite Child In it, Gartner identifies various strengths and weaknesses of the two platforms. The strength of one is often the weakness of the other and vice versa, which makes the decision between the two platforms more difficult and ultimately requires an individual decision for each project. The high flexibility of Java EE restricts productivity at the beginning of a project. On the other hand, at.net you are much more inflexible with faster development successes.

24 Market subdivision: High complexity and scalability Java EE Faster time to market, higher RAD requirements.NET Large companies Java EE platform Small companies.NET platform 24 24/30 The typical market distribution of Java EE and.net looks like this: For projects with high complexity and scalability, Java EE is the first choice If a faster time to market and higher RAD productivity are required, man.net is preferred. (RAD: Rapid Application Development) While the Java platform is used more and more as the company grows, the.net platform is more widespread among smaller companies.

25 Survey on SOA projects: Primary developer platform for SOA projects? .NET increasing rapidly, Java declining even more rapidly Just a question of time? 25 25/30 In September 2008 Gartner published a survey specifically on SOA projects (service-oriented architecture) with an interesting result: .NET increasing rapidly, Java declining even more rapidly In 2006, 29% of companies were using. net as the primary developer platform for SOA projects, the number rose to 41% in 2007. In contrast, only 23% of the Java platform was chosen as the primary platform in 2007, although in 2006 it was 67%. The indication of other increased in the same period from 4% (2006) to 21% (2007). So is it just a matter of time?

26 .NET has established itself, Java EE remains the de facto standard of the future: Open Source will continue to prevail Interoperability Competition promotes further development 26 26/30 (So is it just a matter of time?) Microsoft has certainly established itself with.net, however, Java EE is also an indispensable de facto standard. Not only from Gartner but also the prognosis that Open Source will continue to prevail in companies in the future. One cannot and does not want to imagine that Java EE is entirely Microsoft. NET will give way. Interoperability between applications of the two platforms remains an important key point. Competition will drive the continuous development of both.

27 Thank you for your attention! END 27 27/30 Thanks for your attention! END

28 Sources: / 30 Sources ...

29 language: _object-oriented_languages ​​icle2.html ar_id = 22558 & ar_subid = 2 & sid = DY4ce8b260X1122c8f0ba3XY1fbb.pdf Intro-J2EE.pdf 29 29/30 Sources ...

30 _v1.pdf pdf 6.File.tmp / GFT_J2EE_vs_NET_FB_de.pdf publication% 20infosoft% 20erp-architects% 20build% 20 on% 20NET% 20or% 20J2EE.pdf architectures-foils.pdf pdf / 30 sources ... (2 Disclosure of the source code : Microsoft published the source code of the framework under the restrictive Microsoft Reference License for the purpose of "easier debugging" on January 17th, 2008. Microsoft decided to take this step back in October 2007 when Sun Microsystems made its Java product available under the GNU GPL with its own additional clauses In contrast to Java, however, the source code of the.net framework is not under a free license - it is not permitted to modify the source code or to integrate it into other projects. Microsoft only allows the source code to be viewed to support the debugging process in Projects. Thanks to the publication of the source code, at least more precise workarounds can be written in IT projects in the event of an error.)