Internet Engineering Course Web Application Architectures.

Slides:



Advertisements
Similar presentations
Introduction to .NET Framework
Advertisements

Tahir Nawaz Introduction to.NET Framework. .NET – What Is It? Software platform Language neutral In other words:.NET is not a language (Runtime and a.
.NET Framework .NET Training Program Ashutosh Pandey
CSIS0402 System Architecture K.P. Chow University of Hong Kong.
History of.Net Introduced by Microsoft Earlier technology was VC++ and VB VC++ comes with so many library and VB was so easy to use and not flexible to.
An architecture for webb applications, J2EE
.NET Framework Overview Pingping Ma Nov 16 th, 2006.
CIM2564 Introduction to Development Frameworks 1 Overview of a Development Framework Topic 1.
Sapana Mehta (CS-6V81) Overview Of J2EE & JBoss Sapana Mehta.
ISYS 546 Client/Server Database Application Development.
28/1/2001 Seminar in Databases in the Internet Environment Introduction to J ava S erver P ages technology by Naomi Chen.
1 Copyright 2002 © Paulo Merson J2EE – Building Component-based Enterprise Web Applications 05/09/2002 Paulo Merson.
Outline IS400: Development of Business Applications on the Internet Fall 2004 Instructor: Dr. Boris Jukic Server Side Web Technologies: Part 2.
J2EE vs..NET Nigam Patel. Topics Background –Web Services, J2EE and.NET Similarities Differences Conclusion –Pros and Con (J2EE and.NET)
J2EE Java 2 Enterprise Edition. Relevant Topics in The Java Tutorial Topic Web Page JDBC orial/jdbc
1 Java Server Pages Can web pages be created specially for each user? What part does Java play?
Object Oriented Analysis and Design 1 Chapter 8 - Web Application System Design  Modeling Web Application using UML  Application Server  Web Application.
L EC. 01: J AVA FUNDAMENTALS Fall Java Programming.
Emmanuel Cecchet et al.  Performance Scalability of J2EE application servers.  Test effect of: ◦ Application Implementation Methods ◦ Container Design.
Web-based Software Development - An introduction.
Java Vs .Net Presented By, Naveen Kumar Ratkal.
Microsoft.Net vs. J2EE Suresh Ramachandran Duke Energy.
Rajeswari Indupuri Introduction to.NET Framework.
A Free sample background from © 2001 By Default!Slide 1.NET Overview BY: Pinkesh Desai.
Overview of Microsoft.Net and Vb.Net ITSE 2349 Spring 2002 Material from Microsoft.Net an Overview for ACC faculty by Stuart Laughton and Introduction.
Chapter 10 EJB Concepts of EJB Three Components in Creating an EJB Starting/Stopping J2EE Server and Deployment Tool Installation and Configuration of.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
Introduction to .Net Framework
ASP.NET The.NET Framework. The.NET Framework is Microsoft’s distributed run-time environment for creating, deploying, and using applications over the.
High thoughts must have high language. Aristophanes
J2EE /.NET Liz Farricker Whitney Mayoras Patrick Bailey.
Introduction to.NET Framework. .NET – What Is It? Software platform Language neutral In other words:.NET is not a language (Runtime and a library for.
Introduction to .NET Rui Ye.
Enterprise Java Beans CS-422. Application Servers In the late 1980s and though the mid 1990s a number of corporations (Broadvision, Netscape…) marketed.
1 J2EE. 2 Agenda 1. Application servers 2. What is J2EE?  Main component types  Application Scenarios  J2EE APIs and Services 3. EJB – a closer look.
CS 493/693: Distributed Systems Programming V. “Juggy” Jagannathan CSEE, West Virginia University March 21, 2005.
11/16/2012ISC329 Isabelle Bichindaritz1 Web Database Application Development.
Enterprise JavaBeans. What is EJB? l An EJB is a specialized, non-visual JavaBean that runs on a server. l EJB technology supports application development.
第十四章 J2EE 入门 Introduction What is J2EE ?
J2EE Structure & Definitions Catie Welsh CSE 432
® IBM Software Group © 2007 IBM Corporation J2EE Web Component Introduction
Enterprise Java Beans Java for the Enterprise Server-based platform for Enterprise Applications Designed for “medium-to-large scale business, enterprise-wide.
Programming in C#. I. Introduction C# (or C-Sharp) is a programming language. C# is used to write software that runs on the.NET Framework. Although C#
Source: Peter Eeles, Kelli Houston, and Wojtek Kozaczynsky, Building J2EE Applicationa with the Rational Unified Process, Addison Wesley, 2003 Prepared.
Rajiv and Shipra Introduction to.NET (asp.net,c#,vb)
Introducing ASP.NET 2.0. Internet Technologies WWW Architecture Web Server Client Server Request Response Network HTTP TCP/IP PC/Mac/Unix + Browser (IE,
Databases JDBC (Java Database Connectivity) –Thin clients – servlet,JavaServer Pages (JSP) –Thick clients – RMI to remote databases –most recommended way.
DotNet Vs. J2EE Mosaad Alomery CIS Mosaad Alomery - CIS 764 the internet platform –Services Electronic commerce Communications ( , news, chat,
Internet Engineering Course Web Application Architectures.
PRIOR TO WEB SERVICES THE OTHER TECHNOLOGIES ARE:.
ASP.NET (Active Server Page) SNU OOPSLA Lab. October 2005.
Microsoft.Net vs. J2EE. J2EE – Enterprise Java  J2EE: Java 2 Enterprise Edition  Superset of Java 2 Standard Edition (J2SE)  Adds enterprise features.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Getting Started with.NET Getting Started with.NET/Lesson 1/Slide 1 of 31 Objectives In this lesson, you will learn to: *Identify the components of the.NET.
Introduction to EJB. What is an EJB ?  An enterprise java bean is a server-side component that encapsulates the business logic of an application. By.
1 Distributed System using J2EE. 2 What is J2EE?  J2EE (Java2 Enterprise Edition) offers a suite of software specification to design, develop, assemble.
Java Programming: Advanced Topics 1 Enterprise JavaBeans Chapter 14.
INTRODUCTION CHAPTER #1 Visual Basic.NET. VB.Net General features It is an object oriented language  In the past VB had objects but focus was not placed.
©NIIT Introducing Enterprise JavaBeans (EJB) Lesson 1A / Slide 1 of 43J2EE Server Components Objectives In this lesson, you will learn about: The features.
Alan L. Batongbacal CS 4244 / 01 Nov 2000
July 22, 2001Introduction to.NET1 Introduction to.NET Framework Gholamali Semsarzadeh July 2001.
Text Introduction to.NET Framework. CONFIDENTIAL Agenda .NET Training – Purpose  What is.NET?  Why.NET?  Advantages  Architecture  Components: CLR,
Introduction to .NET Framework
Suresh Ramachandran Duke Energy
Web-based Software Development - An introduction
Introduction to .NET Framework
Distributed System Using Java 2 Enterprise Edition (J2EE)
BHUBANESWAR,KHURDA,ODISHA
Introduction to .NET Framework
Presentation transcript:

Internet Engineering Course Web Application Architectures

Agenda 1. Application servers 2. J2EE 3..Net 4. Comparison between J2EE and.Net

1. Application Servers In the beginning, there was darkness and cold. Then, … Centralized, non-distributed terminals mainframe terminals

Application Servers In the 90’s, systems should be client-server

Application Servers Today, enterprise applications use the multi- tier model

Three-Tier Architecture

Web Application Architecture

Application Servers “Multi-tier applications” have several independent components An application server provides the infrastructure and services to run such applications

Application Servers Application server products can be separated into 3 categories: ◦ J2EE-based solutions ◦ Non-J2EE solutions (PHP, ColdFusion, Perl, etc.) ◦ And the Microsoft solution (ASP/COM and now.NET with ASP.NET, VB.NET, C#, etc.)

J2EE Application Servers Major J2EE products: ◦ BEA WebLogic ◦ IBM WebSphere ◦ Sun iPlanet Application Server ◦ Oracle 9iAS ◦ HP/Bluestone Total-e-Server ◦ Borland AppServer ◦ Jboss (free open source)

Web Server and Application Server Web Server (HTTP Server) App Server 1 App Server 2 Internet Browser HTTP(S)

What is J2EE? What is J2EE? It is a public specification that embodies several technologies Current version is 1.4 J2EE defines a model for developing multi- tier, web based, enterprise applications with distributed components

J2EE Architecture

J2EE Benefits High availability Scalability Integration with existing systems Freedom to choose vendors of application servers, tools, components Multi-platform

J2EE Benefits Flexibility of scenarios and support to several types of clients Programming productivity: ◦ Services allow developer to focus on business ◦ Component development facilitates maintenance and reuse ◦ Enables deploy-time behaviors ◦ Supports division of labor

Main technologies JavaServer Pages (JSP) Servlet Enterprise JavaBeans (EJB)  JSPs, servlets and EJBs are application components

JSP Used for web pages with dynamic content Processes HTTP requests (non-blocking call-and- return) Accepts HTML tags, special JSP tags, and scriptlets of Java code Separates static content from presentation logic Can be created by web designer using HTML tools

Servlet Used for web pages with dynamic content Processes HTTP requests (non-blocking call-and-return) Written in Java; uses print statements to render HTML Loaded into memory once and then called many times Provides APIs for session management

A Sample Scenario Web Server Client (1) get a.jsp(2) process JVM JSP Other Components Database (4) result (5) HTTP file Servlet (3) gen. Servlet Servlet Impl.

EJB EJBs are distributed components used to implement business logic (no UI) Developer concentrates on business logic Availability, scalability, security, interoperability and integrability handled by the J2EE server Client of EJBs can be JSPs, servlets, other EJBs and external aplications Clients see interfaces

J2EE Multi-tier Model

J2EE Application Scenarios Multi-tier typical application

J2EE Application Scenarios Stand-alone client

J2EE Application Scenarios Web-centric application

J2EE Application Scenarios Business-to-business

J2EE Services and APIs Java Message Service (JMS) ◦ Implicit invocation ◦ Communication is loosely coupled, reliable and asynchronous ◦ Supports 2 models:  point-to-point  publish/subscribe

JMS Point-to-point ◦ Destination is “queue”

JMS Publish-subscribe ◦ Destination is “topic”

J2EE Services and APIs JNDI - Naming and directory services ◦ Applications use JNDI to locate objects, such as environment entries, EJBs, datasources, message queues ◦ JNDI is implementation independent ◦ Underlying implementation varies: LDAP, DNS, DBMS, etc.

J2EE Services and APIs Transaction service: ◦ Controls transactions automatically ◦ You can demarcate transactions explicitly ◦ Or you can specify relationships between methods that make up a single transaction

J2EE Services and APIs Security ◦ Java Authentication and Authorization Service (JAAS) is the standard for J2EE security ◦ Authentication via userid/password or digital certificates ◦ Role-based authorization limits access of users to resources (URLs, EJB methods) ◦ Embedded security realm

J2EE Services and APIs J2EE Connector Architecture ◦ Integration to non-J2EE systems, such as mainframes and ERPs. ◦ Standard API to access different EIS ◦ Vendors implement EIS-specific resource adapters Support to Corba clients

J2EE Services and APIs JDBC JavaMail Java API for XML Parsing (JAXP) Web services APIs

3. EJB – a closer look

Home Interface Methods to create, remove or locate EJB objects The home interface implementation is the home object (generated) The home object is a factory

Remote Interface Business methods available to clients The remote interface implementation is the EJB object (generated) The EJB object acts as a proxy to the EJB instance

Stub/Skeleton-Layer Remoting in Java Several possibilities: RMI/CORBA ◦ RMI can use JRMP or IIOP as a transport protocol ◦ Not pluggable – changes in the code are necessary ClientServer StubSkeleton Remote Reference Manager Transport Layer

EJB – The Big Picture

EJB at runtime Client can be local or remote

EJB at runtime

Types of EJB New!

Session Bean Stateful session bean: ◦ Retains conversational state (data) on behalf of an individual client ◦ If state changed during this invocation, the same state will be available upon the following invocation ◦ Example: shopping cart

Session Bean Stateless session bean: ◦ Contains no user-specific data ◦ Business process that provides a generic service ◦ Container can pool stateless beans ◦ Example: shopping catalog

Entity Bean Represents business data stored in a database  persistent object Underlying data is normally one row of a table A primary key uniquely identifies each bean instance Allows shared access from multiple clients Can live past the duration of client’s session Example: shopping order

Entity Bean Bean-managed persistence (BMP): bean developer writes JDBC code to access the database; allows better control for the developer Container-managed persistence (CMP): container generates all JDBC code to access the database; developer has less code to write, but also less control

Message-Driven Bean Message consumer for a JMS queue or topic Benefits from EJB container services that are not available to standard JMS consumers Has no home or remote interface Example: order processing – stock info

Example of EJB Application It consists of number of clients accessing session beans and entity beans Each Session bean provides specialized processing on behalf of client e.g. Travel Agent session bean makes travel reservations while Flight Scheduler bean schedules planes to fly on various routes. Each Entity Bean represent different type of business entity. e.g.Passengers, seats, planes, flights are entity beans

Example EJB Application

JBoss- J2EE Product FIND OUT MORE ABOUT TODAY’S MOST SUCCESSFUL OPEN SOURCE- DEVELOPED PPLICATION SERVER

What is Jboss? Created in 1999, JBoss is the product of an OpenSource developer community dedicated to developing the best J2EE-compliant application server in the market With 1000 developers worldwide and a steadily growing number of downloads per month, reaching 72,000 for October ’01 (per independent JBoss is arguably the most downloaded application server in the world today Distributed under an LGPL license, JBoss is absolutely FREE for use. No cost. Period.

JBoss- Application Server

Introduction to.NET Framework

.NET – What Is It? Software platform Language neutral In other words:.NET is not a language (Runtime and a library for writing and executing written programs in any compliant language)

What Is.NET.Net is a new framework for developing web-based and windows-based applications within the Microsoft environment. The framework offers a fundamental shift in Microsoft strategy: it moves application development from client-centric to server-centric.

.NET – What Is It? Operating System + Hardware.NET Framework.NET Application

Base Class Library Common Language Specification Common Language Runtime ADO.NET: Data and XML VBVC++VC# Visual Studio.NET ASP.NET: Web Services and Web Forms JScript… Windows Forms Framework, Languages, And Tools

The.NET Framework.NET Framework Services Common Language Runtime Windows ® Forms ASP.NET ◦ Web Forms ◦ Web Services ADO.NET, evolution of ADO Visual Studio.NET

Common Language Runtime (CLR) CLR works like a virtual machine in executing all languages. All.NET languages must obey the rules and standards imposed by CLR. Examples: ◦ Object declaration, creation and use ◦ Data types, language libraries ◦ Error and exception handling ◦ Interactive Development Environment (IDE)

Common Language Runtime Development ◦ Mixed language applications  Common Language Specification (CLS)  Common Type System (CTS)  Standard class framework  Automatic memory management ◦ Consistent error handling and safer execution ◦ Potentially multi-platform Deployment ◦ Removal of registration dependency ◦ Safety – fewer versioning problems

Common Language Runtime Multiple Language Support CTS is a rich type system built into the CLR –Implements various types (int, double, etc) –And operations on those types CLS is a set of specifications that language and library designers need to follow –This will ensure interoperability between languages

Intermediate Language (IL).NET languages are not compiled to machine code. They are compiled to an Intermediate Language (IL). CLR accepts the IL code and recompiles it to machine code. The recompilation is just-in-time (JIT) meaning it is done as soon as a function or subroutine is called. The JIT code stays in memory for subsequent calls. In cases where there is not enough memory it is discarded thus making JIT process interpretive.

Languages Languages provided by MS ◦ VB, C++, C#, J#, JScript Third-parties are building ◦ APL, COBOL, Pascal, Eiffel, Haskell, ML, Oberon, Perl, Python, Scheme, Smalltalk…

Compilation in.NET C# VB.NET C++ Perl Compiler MSIL + Metadata Loader/ Verifier JIT Managed Code Execution Garbage Collection, Security, Multithreading,...

Windows Forms Framework for Building Rich Clients –RAD (Rapid Application Development) –Rich set of controls –Data aware –ActiveX ® Support –Licensing –Accessibility –Printing support –Unicode support –UI inheritance

ASP.NET ASP.NET, the platform services that allow to program Web Applications and Web Services in any.NET language ASP.NET Uses.NET languages to generate HTML pages. HTML page is targeted to the capabilities of the requesting Browser ASP.NET “Program” is compiled into a.NET class and cached the first time it is called. All subsequent calls use the cached version.

ASP.NET Logical Evolution of ASP –Supports multiple languages –Improved performance –Control-based, event-driven execution model –More productive –Cleanly encapsulated functionality

ASP.NET Web Forms Allows clean cut code ◦ Code-behind Web Forms Easier for tools to generate Code within is compiled then executed Improved handling of state information Support for ASP.NET server controls ◦ Data validation ◦ Data bound grids

ASP.NET Web Services A technical definition ◦ “A programmable application component accessible via standard Web protocols”

Web Services It is just an application… …that exposes its features and capabilities over the network… …using XML… …to allow for the creation of powerful new applications that are more than the sum of their parts…

ADO.NET (Data and XML) New objects (e.g., DataSets) Separates connected / disconnected issues Language neutral data access Uses same types as CLR Great support for XML

Visual Studio.NET Development tool that contains a rich set of productivity and debugging features

Summary of.NET The.NET Framework ◦ Dramatically simplifies development and deployment ◦ Provides robust and secure execution environment ◦ Supports multiple programming languages

Comparison between J2EE and.NET

J2EE – Enterprise Java  J2EE: Java 2 Enterprise Edition  Superset of Java 2 Standard Edition (J2SE)  Adds enterprise features to Java Libraries  Defined through the Java Community Process (JCP)  Wholly owned property of Sun Microsystems

J2EE Solutions vs Microsoft.Net Solutions Similarities  Both multi-tiered, similar computing technologies  Both support “standards”  Both offer different tools & ways to achieve the same goal.  A lot of parallelism can be seen.  Very difficult to compare and qualify the comparison because each has its own advantages & disadvantages.

Microsoft.Net vs. J2EE Comparison Language  C# and Java both derive from C and C++.  MS says: “C# combines the power of VC++ with the ease of usage of VB”  Significant features include garbage collection, hierarchical namespaces) are present in both.  Different Syntax but same result.  Java runs on any platform with a Java VM. C# only runs in Windows for the foreseeable future.  C# is implicitly tied into the CLR and is compiled entirely into native code. Java code runs as Java Virtual Machine and executes byte code

Microsoft.Net vs. J2EE Comparison Java vs. C# // This is a comment in Java code class HelloWorld{ public static void main(String[] args){ for(int i= 1; i<= 100; i++) System.out.println("Hello!"); } } // This is a comment in C# using System; class HelloWorld{ static void Main(){ for(int i=1; i<=100; i++) Console.WriteLine("Hello"); } } }

Microsoft.Net vs. J2EE Comparison Presentation Layer ASP(+) vs. JSP ASP(+) can use Visual Basic, C#, and possibly other languages for code snippets. JSPs use Java code (snippets, or JavaBean references), compiled into Java Win Forms/Web Forms Vs Swing/Java Server Faces

Microsoft.Net vs. J2EE - A technical Comparison Common Elements Concepts J2EE.NET Presentation JSP/Servlets ASP.NET Business Logic EJB/Servlets Code Behind, Remoted Classes Language Java C#, VB.NET Platform Any Windows DB Connectivity JDBC ADO.NET (OLE-DB, ODBC) Web Services JWSDP Web Services MessagingJMSMTS Runtime JRE CLR Transaction JTA/JTS, XA Com+, DTC Distributed computing RMI, CORBA, SOAP SOAP, DCOM XML Parser JAXP, Others Built-in (System.XML)

CriteriaJ2EE.NETComments Ease Of Use (Development Environment)****** VB.net and C# are easier to use than J2EE Scalability***** Execute Java Code on Mainframe Single Language Multiple Platforms***** Java Can run on many platforms through the JVM Multiple Languages Single Platform***** VB,C#,J# all run in the same run-time environment Reliability******VB/Com development in 1993 Performance*** Equal Performance Speed of development****VB code easiar to learn Reuse****** Deploy same code on multiple platforms and multiple projects Open Standards****** Java, JVM are open standards Overall56%51% Microsoft.Net vs. J2EE Scorecard

A typical.NET Enterprise Solution A typical.NET Enterprise Solution SQL Server IIS on W2k Server.NET managed component ASP.NET Windows Client Browser

A typical J2EE Enterprise Solution DB Server Java App Server EJB Servlet JSP Java Client Browser

Porting Java Pet Store (Example) to.NET Java Pet Store Lines of Code Required User Interface 4,410 Data TierMiddle Tier 2,865.NET Petshop 14,273 5,891 ConfigurationTotal Lines of Code 710 5, ,566

Forrester Report: The State of Technology Adoption Source: db7bcc5980b9/TheStateofTechnologyAdoption.pdf db7bcc5980b9/TheStateofTechnologyAdoption.pdf db7bcc5980b9/TheStateofTechnologyAdoption.pdf

Microsoft.Net vs. J2EE Comparison CLR vs JVM C# Managed C/C++ Lots of other Languages VB.Net CLR Runtime Services MSIL Windows OS Java JRE (JVM) Runtime Services Byte Codes MacUnixLinux Win Both are ‘middle layers’ between an intermediate language & the underlying OS

. Net Disadvantages  Security .NET better than prior frameworks (DNA, DCOM, ActiveX, etc.), but still based on Windows  Immaturity  Version 1.0 issues, likely to change in future  Language changes for developers new to.NET  Application migration to.NET costly  Not enough real world use yet to evaluate  Vendor lock-in  Future direction determined by Microsoft.

Choosing between Java/J2EE and.Net  The ultimate choice usually depends not on technical superiority, but on:  Cultural/political preferences  Customer preference  Vendor relations  Cost  Platform Dependency  Skill set of your developers

Sources & Resources The J2EE Tutorial. Sun Microsystems IBM WebSphere Application Server manuals BEA WebLogic Server manuals

Sources & Resources Java 2 Platform Enterprise Edition Specification, v1.3 Designing Enterprise Applications with the Java 2, Enterprise Edition. Nicholas Kassen and the Enterprise Team Does the App Server Maket Still Exist? Jean-Christophe Cimetiere The State of The J2EE Application Server Market. Floyd Marinescu