Wednesday, May 6, 2020

Enterprise Software Platforms JAVA EE and NET

Question: Discuss about the Enterprise Software Platforms for JAVA EE and NET. Answer: Introduction Enterprise Computing is a term that refers to the information technology, systems and services specific to the operations of a particular enterprise. The present era is the era of technology and automated computing and the same is applied all across the business operations. There are a number of advancements that are taking place in this field on a frequent basis and it has become essential for the enterprises to be at par with the changes (Buchholz and Dunlop, 2011). There are a number of enterprise wide technologies that form the enterprise computing for a particular business or organization such as portals, data warehouses, Electronic Data Interchange, Virtual private Networks, Document Management Systems, Workflows, Extranets and many more. There are also a number of platforms and frameworks to apply these technologies. The report discusses two popular enterprise computing platforms viz. JAVA EE and .NET. The layered and component model of each of the framework along with the runtime environments have been discussed in the report. It also covers the enterprise application integration and the pros and cons of each of the platform in terms of portability, development tools, vendors and language support. The impact and business environment that is applicable for each of the platforms has also been highlighted in the report. Software Modeling Layered Model - Benefits There are a number of benefits that are provided by the layered model or design of a particular platform. These advantages are as listed below: It makes the design process extremely easy to understand and to implement as the interactions are clearly defined Modifications and the scope of the same also becomes simpler with this model There is always space to add new layers in the architecture or to add additional functions in the existing layer This model also explains the functions and tasks of every single layer with complete clarity (Caganoff, 2014) Layered Model of .NET .NET Three Layered Services Application The three layers that form the layered architecture of .NET are described below: Presentation Layer The user interface for the application is provided by this layer. In case of .NET, it consists of Windows Forms for interaction with the client and technologies for interaction with the browser. Business Layer Business entities and workflows are included in this layer in order to implement the business functionality. Data containers and macro-level activities are comprised in this particular layer DataLayer ADO.NET is the primary technology that is involved in this particular layer for access to the external systems. .NET XML capabilities are also utilized in this layer. Layered Model of JAVA EE The layered model of JAVA EE comprises of four layers which are shown in the diagram below. Multi-layered Architecture JAVA EE (Stefano, 2013) The layers represent the logical view of the JAVA EE platform and have a specific functionality. Presentation Layer The primary function of this layer is to provide a user interface in order to interact with the application that is developed. This is the only layer which comprises of the sections that are actually visible to the client. Controlling the screen flow along with handling the user input is the also performed by this layer. It comprises of Java Server Pages (JSPs) and Servlets for a particular application. Web Layer This is the layer which takes care of the interaction with the web server. Business Layer This is the layer that performs the enterprise specific functions and functionalities. For instance, in a payroll system, this layer will take care of maintenance of employee data, salary calculations, payments and likewise. Enterprise Java Beans (EJB) and Entities are included in this layer. Data Layer This layer is concerned with the collection and management of the data from various sources and integrating the same with the server through a network (Kayal, 2016). Java Message Service (JMS), Java Connector Architecture (JCA) and Java Persistence API (JPA) are a part of this layer. Component Based Model of .NET The .NET framework primarily comprises of two components. Common Language Runtime (CLR) The runtime environment is provided by this component of .NET. All the .NET programs and applications also run in this environment. Memory management and thread management are the other activities that are performed by CLR. Allocation of the memory as per the request and de-allocation of the same when it is no longer required is decided by CLR itself. .NET Framework Class Library (FCL) It accesses the library classes and methods. This is a generalized component of the .NET framework which is common for all types of the applications. Base class Library is another name of FCL. Applications and services such as web and windows applications, XML web services and console applications are handled by this component of .NET. Component based model of JAVA EE Component Based Model of JAVA EE (Pawlan, 2016) This model of JAVA EE comprises of three categories of components. Clients Components Application Clients are the components that run on the machine of the client and provide the users interface. The interface is developed with the aid of either Project Swing or Abstract Window Toolkit (AWT). Web Browsers are the components that comprise of static or dynamic web pages that are created using JSP pr Servlets. Applets are the components that are the small programs written in JAVA and run with the help of JAVA virtual machine. Web Components - These are the components that comprise of JSP or Servlets. JSPs are the text based documents that consist of static content and snippets that are written in JAVA. Servlets are the JAVA classes that dynamically handle requests and responses. Business Components These are the components that are present specific to the business operations and functionalities. It includes session beans, entity beans, and message-driven beans. It also comprises of data containers and macro-activities in this particular category. Runtime Framework Runtime Foundation The runtime foundation in case of .NET is the Common Language Runtime that acts as a layer between the operating system and the application itself. The runtime foundation in case of JAVA EE is the JAVA Virtual Machine which is popularly known as JVM (Oracle, 2013). Services and Benefits of Services Provided by Runtime Foundations Common Language Runtime (CLR) for .NET The basic service that is provided by CLR is the conversion of managed code to the native code for the execution of the program. Just in Time (JIT) compilation of CLR performs the conversion of intermediate language to the native code. There are a number of services and operations that are performed by CLR such as management of memory, execution of threads, garbage collection, exception handling, and a number of other system services (Dogi, 2013). Security management and code verification are also performed and provided by the Common Language Runtime. There are a number of benefits that are provided by these services that are enabled with the help of CLR. The security of the application is enhanced at all times along with the improvement in terms of performance as well through excellent handling of the applications and thread support. Proper allocation and de-allocation of memory allows the application to have a quick response time and assures the availability and easy accessibility of the application. Java Virtual Machine (JVM) for JAVA EE The runtime environment of JAVA EE is Java Virtual Machine (JVM). It translates the code in to the platform independent JAVA byte-code. These bytecodes are then translated in the instructions for the operating systems. The Java class libraries along with the Java Virtual Machine form the runtime for JAVA EE (Slangen, 2012). Loading, linking and initialization are the three operations that are performed by JVM. Loading is the process of finding the binary form of a class or interface type with a particular name, a Class object to represent the class or interface. Linking is an operation that includes the verification, preparation and resolution of references. Initialization comprises of initializing the fields that are declared in the interface. There are a number of benefits that are provided by the services that are made available by JVM in terms of the enhanced security, compatibility and flexibility of the applications. Enterprise Application Integration Business to Business (B2B) Collaboration via web service JAVA EE platform enables easy enterprise application integration and enhanced the Business-to-Business collaboration with the aid of web service. There are a number of components that are included that aid in achieving the same. Application sharing between the two enterprises or businesses is enhanced with the aid of easy file sharing and transfer. Web services allow the files of varied formats to be shared between two entities that are present. XML is one of the most accepted formats for this purpose. Sharing of the database is also enabled through JAVA EE platform with the presence of a centralized database. It allows the database to be accessed by a number of different users present in several locations. Transaction management is also made easy with the help of this feature (Padro, 2015). Remote procedure invocation is also enabled with the help of JAVA EE platform. It allows an application to directly interact with other application with the aid of stubs. Messaging is also made available with the help of the services provided by JAVA EE. A message driven architecture is also included in this platform. .NET framework also allows excellent Business to Business Collaboration with the aid of web services. It provides a programming model in order to build the XML web services and application that allow the integration to take place smoothly. Messaging is another activity that can be easily implemented with the help of .NET that allows the communication to take place effectively. .NET managed components and classes including COM/COM+ components allow the implementation to be an easy activity Pricing is one feature in which .NET scores well as it allows cheaper methods for the industry side server applications that is a necessity for the enterprises and thus integration of applications is enhanced. Connection to Legacy Business Systems JAVA EE allows easy connection the legacy business systems. The following features provide the analysis of the same. Platform Independence: Java Runtime Environment (JRE) is compatible with a variety of hardware and software which makes the connection to the legacy business systems very convenient. Java Platform Enterprise Application Development Support: Java standards make available a number of tools and framework that are necessary to build up the connection. Application configuration and security are also handled well. Speed in Application Development: The component based model of JAVA EE allows the development process to be executed quickly and in a reliable manner as well. . Simplified Enterprise JavaBeans and the Java Persistence API support quicker development. Simplifying Application Deployment: An in-build development and support is provided by JAVA EE which simplifies the development process. Enterprise Application Integration: JAVA EE allows the integration of enterprise level applications with extreme ease and thus allow the connection the legacy systems easy as well (Solutions, 2016). .Net framework also allows the connection to the legacy business systems an easy process due to the following features. It enables modularization of the complex systems by integration of services and components and thus allows the connection to legacy business systems an easy process to execute. Interoperatibility is one of the prime features of the .NET frameworks and the same allows connection to be established with convenience. Pros and Cons of two platforms Factor JAVA EE .NET Number of Vendors Hotspot, OpenJDK, Oracle JRockit, IBM J9, SAP Java Server VM, Zing and DCEVM. Microsoft, Oracle, LT, Elcom Technology Portability Java code is extremely portable in nature as it supports and is compatible with a lot many operating systems such as Windows, UNIX, Linux and many others. It follows create once and deploy multiple time philosophy (Samtani and Sadhwani, 2016). .NET ties primarily to the operating systems of Microsoft. However, with the user of CLR it allows the portability of the code on other platforms and successful running as well. Software Development Tools and Technologies Eclipse, IntelliJ, NetBeansJdeveloper Integrated Development Environment (IDE) on Microsoft Visual Studio, BizTalk 2002 and SQL Server 2000 Language Support Java, Clojure, Groovy, Scala, PHP, Ruby, Python and 50 others C#, VB.NET, C++, Python, Ruby, PHP and other modified languages (Davu, 2013) Conclusion JAVA EE and .NET are the two platforms that aim at simplifying the application development by providing a number of components and services to achieve the same. The two platforms are very different from each other and there are a set of pros and cons associated with each. It is necessary for the businesses to understand the features of each of these platforms along with their own set of requirements to decide on the platform to select for development. If the business development has to be specifically done on the Windows platform, then .NET should be the first choice for the business executive. However, if the multi-platform implementation is to be achieved than the ideal choice is JAVA EE. It is also extremely important to assess the complexity of the application that needs to be developed. If the primary aim is to have rich graphical user interface and delivery to the web browsers than .NET must be picked. If the application targets a very high volume of users than JAVA EE must be selected. Another important factor to consider is the existing skill set and infrastructure that is available with the organization. It is always better to utilize the skill set of the resources that are already employed with the organization rather than hiring afresh. Cost is another prime criterion that is viewed while selecting the development platform. As far as the category of the applications are concerned then the applications that are to be dev eloped for gaming, web or enterprise grade can be easily developed using JAVA EE. .NET is more applicable for the applications for specific business functions such as finance, CRM, supply management and likewise. However, the requirements are the key role player in the selection procedure. The impact of making the correct choice will be in the successful completion of the development and application process. It is necessary to first analyze the requirements of the application and then make the decision on the platform for the development process. It should also be made sure that the selection is not done upon the architecture of each of the platforms but on the basis of the strengths and weaknesses of each platform and the fulfillment of the requirements as well. References Buchholz, D. and Dunlop, J. (2011). The Future of Enterprise Computing: Preparing for the Compute Continuum. [online] Available at: https://www.intel.in/content/dam/doc/white-paper/intel-it-the-future-of-enterprise-computing-preparing-for-the-compute-continuum-paper.pdf [Accessed 24 Aug. 2016]. Caganoff, S. (2014). [online] Sixtree.com.au. Available at: https://www.sixtree.com.au/articles/2014/the-benefits-of-a-layered-architecture/ [Accessed 24 Aug. 2016]. Davu, S. (2013). .NET vs Java: How to Make Your Pick | Segue Technologies. [online] Segue Technologies. Available at: https://www.seguetech.com/net-vs-java-how-to-make-your-pick/ [Accessed 24 Aug. 2016]. Dogi, G. (2013). Roles of Common Language Runtime in Dot.Net Framework. [online] Onlinebuff.com. Available at: https://www.onlinebuff.com/article_roles-of-common-language-runtime-in-dotnet-framework_6.html [Accessed 24 Aug. 2016]. Kayal, D. (2016). Introducing Enterprise Java Application Architecture and Design - Developer.com. [online] Developer.com. Available at: https://www.developer.com/design/article.php/10925_3808106_4/Introducing-Enterprise-Java-Application-Architecture-and-Design.htm [Accessed 24 Aug. 2016]. msdn.microsoft.com, (2016). Three-Layered Services Application. [online] Msdn.microsoft.com. Available at: https://msdn.microsoft.com/en-us/library/ff648105.aspx [Accessed 24 Aug. 2016]. Oracle, (2013). Introduction to Java Platform, Enterprise Edition 7. [online] Available at: https://www.oracle.com/technetwork/java/javaee/javaee7-whitepaper-1956203.pdf [Accessed 24 Aug. 2016]. Padro, X. (2015). Introduction to Enterprise Application Integration. [online] Java Code Geeks. Available at: https://www.javacodegeeks.com/2015/09/introduction-to-enterprise-application-integration.html [Accessed 24 Aug. 2016]. Pawlan, M. (2016). Introduction to the Java EE Architecture. [online] Pawlan.com. Available at: https://pawlan.com/monica/articles/j2eearch/ [Accessed 24 Aug. 2016]. Samtani, G. and Sadhwani, D. (2016). Web Services and Application Frameworks (.NET and J2EE). [online] Available at: https://www.nws.noaa.gov/oh/hrl/hseb/docs/ApplicationFrameworks.pdf [Accessed 24 Aug. 2016]. Slangen, S. (2012). What Is The Java Virtual Machine How Does It Work? [MakeUseOf Explains]. [online] MakeUseOf. Available at: https://www.makeuseof.com/tag/java-virtual-machine-work-makeuseof-explains/ [Accessed 24 Aug. 2016]. Solutions, e. (2016). Migration and Re-engineering Of Legacy Applications To Java EE Platform. [online] E-zest.net. Available at: https://www.e-zest.net/migrate-to-java [Accessed 24 Aug. 2016]. Stefano, M. (2013). Multilayered architecture (1) Introduction. [online] Java Code Geeks. Available at: https://www.javacodegeeks.com/2013/05/multilayered-architecture-1-introduction.html [Accessed 24 Aug. 2016].

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.