Application Servers G22.3033-011

Session 1 - Main Theme Legacy Application Server Technology

Dr. Jean-Claude Franchitti

New York University Computer Science Department Courant Institute of Mathematical Sciences

1

Agenda

„ Application Servers Generics

„ Course Logistics, Structure and Objectives

„ Knowledge Required

„ Application Servers Evolution

„ Supporting Technology

„ Expected Features

„ Related XML Technology

„ Introduction to Component Technologies

„ Summary

„ Class Project Overview

„ Readings

„ Assignment #1 2

1 Part I

Introduction

3

Application Servers Generics

„ Modern Application Server Properties

„ Rich/portable software

„ Middleware between pervasive devices and back-office systems

„ Platform independent programming interface

„ Support legacy applications integration (EAI/B2Bi)

„ XML-enabled

„ Web-services enabled

4

2 Course Logistics

„ Course Web Site

„ http://cs.nyu.edu/courses/fall01/G22.3033-011/index.htm

„ http://www.nyu.edu/classes/jcf/g22.3033-011/

„ Login/Password: appserv/appserv (not currently protected)

„ Review syllabus

„ Textbooks

„ Building J2EE Applications with IBM WebSphere

„ Microsoft .Net Distributed Applications: Integrating XML Web Services and .Net Remoting

5

Knowledge Required

„ Programming Languages (g22.2110)

„ Operating Systems(g22.2250)

„ Programming for the WWW

„ Ability to program in Java

„ Some exposure to XML and associated technologies

6

3 Other Useful Knowledge

„ Web server configuration and the HTTP protocol

„ Scripting languages (e.g., JavaScript, , TCL, etc.)

„ Database theory (normalization rules)

„ Web publishing

„ Enterprise applications design

„ See Session 1 Sub-Topic 1 on “Sample Enterprise Application Design”

„ See Session 1 Sub-Topic 2 on “Sample Project Development Methodology”

„ See Session 1 Sub-Topic 3 on “Detailed Project Development

Methodology” 7

Application Servers Evolution

„ Traditional client-server technology

„ CGI frameworks

„ Page-based extended HTML environments

„ Distributed object computing platforms

„ Java-Based

„ Object Management Architectures (OMAs)

„ Component-based computing environments

„ Web Services platforms

„ Next generation application servers (reflective, multimedia- and agent enabled, MDA-compliant, etc.) 8

4 Part II

Supporting Technology

9

Underlying Facilities

„ (Network) Communication Protocols

„ e.g., TCP/IP, HTTP, RPC, GIOP/IIOP, RMI, XML, XML- RPC, SOAP/DIME/ROPE, UDDI/DISCO, WSDL

„ Client-Server Technology

„ Distributed Object Computing

„ Component Models and Frameworks

„ Secure Messaging Infrastructures

10

5 Old Client/Server Model

„ Connection Customers (and partners) were required to have dedicated lines, leased lines, dialups, or some other access to your company.

„ Network Protocol Customers had to use the same network protocols as the company they wanted to communicate with, TCP/IP, IPX/SPX, NetBUI, etc.

„ Hardware Requirements Customers had to meet specific machine requirements: microprocessor speed; screen resolution; RAM; hard disk space; modem speed; etc. Customers were required to make a huge investment in hardware.

„ Operating System Requirements The customer had to run a specific Operating System and version.

„ Software Updates Application updates via floppy disks or CDs had to be infrequent. The customer was required to perform the costly installation or update. 11

Web Business Evolution

„ First it was Online Publishing

„ The World Wide Web - a Global Information Network Emerged (The Information Superhighway)

„ The Web Browser Provided Platform-Independent Access to Information

„ People Could View the Same Content Anywhere in the World

„ There was Explosive Growth in the Number of Business Web sites

„ Now it’s Online Services and Web Applications.

„ Businesses are Building Relationships with Web-based Customers

„ Value-Based Services are Ensuring a Steady Flow of Web-based Traffic

„ Overhead is Reduced with Automated Online Services

„ A New Global Marketplace is Emerging - Web Applications/services are Available from Anywhere in the World 24x7

„ Web Application Updates Occur Instantly and Universally

„ Doing Business is now Cheaper, Faster, and Easier 12

6 Basic Web Applications

Documents

DB Internet Connection Databases

Client Web Enterprise Browser Server Data CGI, SSJS, NSAPI, ISAPI, WAI, Etc.

13

Robust Web Applications

Presentation Business Logic Tier Data Tier Tier

HTTP Documents Databases

Web Web Browser Servers

Enterprise C/S P IIO Applications

Application Server(s)

Rich Clients Legacy (Java C/C++, VB) Systems14

7 Mission Critical Applications Requirements

„ High Performance and Scalability

„ Benchmarks demonstrate 6000+ concurrent users, 12,000 TPM on a 4-CPU Sparc

„ High Availability & Reliability

„ Customers like E*Trade & ISN demand 24x7 reliability with software & hardware fault tolerance „ eBay on WebSphere „ 30 billion transactions per day „ Over 8,000 tps! „ Countrywide Insurance on WebSphere „ Over 20,000 tps!

15

Mission Critical Applications Requirements (continued)

„ Rapid Development through Pre-built Application & System Services

„ Proven that large-scale enterprise applications can be built in half the time with equivalent resources

„ Enterprise Integration

„ Need for high-performance integration to databases, legacy systems, client/server applications and ERP applications

„ Open & Extensible „ Need for standards-based, cross-platform supporting Windows/UNIX, JAVA/C++, CORBA/IIOP, RMI/IIOP, and .Net/COM+

16

8 Application Servers Selection Criteria

„ Usability

„ Scalability

„ Concurrency

„ Extensibility

„ Security

„ Manageability

„ Fault tolerance, auto-deployment, communications, development environment, monitoring tools

„ Reusability

„ Support 17 „ Skills

Application Server Categories

„ Legacy technology

„ Page-based extended HTML environments

„ OMA-based

„ Web Services platforms

„ MDA-based

„ Next generation

„ http://www.appserver-zone.com/guide.asp used to list many unclassified products

18

9 Application Servers Examples

„ CGI-Perl custom environments

„ ColdFusion MX, PHP 4, ASP, JSP

„ Websphere 5.0

„ WebLogic 8.1

„ JBoss

„ Inprise, iPlanet, Sybase EAServer

19

Application Packages (SAP, PeopleSoft, Baan)

„ ERP, and B2Bi Suites

„ Human Resources

„ Sales Automation

„ Financial/Accounting

„ Retail/Point of Purchase

„ Manufacturing/Inventory

„ Supply Chain Management

20

10 Part III

Expected Features

21

Sample Features

„ High performance & scalability Create applications that deliver data quickly and scale to hundreds and thousands of concurrent users.

„ Maximum availability (24x7) Create applications that are available 24 hours a day, 7 days a week, even when you are updating them!

„ Client Independence Access applications using web browsers or rich Java/C++ clients.

„ Rapid application development (RAD) Develop your applications quickly and easily with pre-built system and application services, application builder, extension builder, and a variety of third-party tools.

„ Enterprise Application Integration Connect to backend databases, existing client/server applications, and your22 existing legacy systems.

11 Value Proposition What Customers are Building with it...

z on-line credit card Customer z customer care & billing Self-Service z portfolio management z benefits administration

z package tracking z claims processing Business-to-Business Efficiencies z supply chain management z sales automation

z on-line retailing, on-line trading Revenue Expansion z loyalty programs z travel and entertainment 23

Development Methodology Develop, Deploy & Manage Business-Critical Applications

Develop Deploy Manage

Application Builder

Develop & deploy business applications in Java/C++

Extension Builder

Develop & deploy Application Servers Administrator ‘Extensions’ in Java/C++ for enterprise application • High Performance & Scalability • Application integration • High Availability Administration • Client-Independence & Management • Rapid Development of • Server & Cluster Business Applications Management24 • Enterprise Integration

12 Internal Architecture

Client

Scalable, HTML Reliable Application Architecture

Java

C/C++

Visual Basic

13 Services (continued)

„ Key System Services

z Multi-process, Multi-threaded

z Dynamic Load Balancing

z Application Partitioning

z Asynchronous Processing

z Event Logging & Tracking

z Kernel Services

z Directory Services

z E-mail Messaging „ Key Administration Services

z Application Management

z Server Management 27

Application Builder

„ Rapid Development of Business Applications

z Wizards for Point-&-click Development

z Pre-built Application Services and Class Libraries (Java, C/C++)

z Reusable Application Components

z Distributed Deployment of Application Components

z Distributed Development Using Three-Tier Programming Model

Wizards for Point-&-click Development

14 Application Builder

„ Robust Application Development Tools

z Application Logic Designer

z HTML Designer

z Query Designer

z Project Manager

z Third-party Tool Support

Project Manager

29

Server Administration

„ Advanced cluster management

„ Enterprise-wide views of all servers and processes

„ Event monitoring & alerts

„ Multi-view graphical performance monitoring

„ ACL, User & Group Management

„ Load balancing customization

„ Application administration

„ Application partitioning

„ Integrated deployment

Performance Monitor 30

15 Extension Builder Extending Application Servers Functionality Application Server Extensions Existing Applications and Systems • Client/server applications • Enterprise Systems • Legacy Applications • Third-party Web solutions

Pre-built System Extension Builder & Application (Create Custom Extensions) Services OR Use Pre-built Extensions • IBM MQ Series Business Logic • BEA Tuxedo • IBM CICS, IMS • ERP Extensions

Technical Architecture Open and Extensible

Extensions s

Application n • TP Monitors o i • Legacy

Server s

(Java, C/C++) n

e • Client/server

t x

E Data Sources Browsers Web •RDBMS Servers • Oracle ISAPI, NSAPI, CGI ISAPI, NSAPI, • Informix Web Connectors •Sybase (HTTP, KCP, IIOP) (HTTP, KCP, •DB2

Protocol Manager •SQL Server

Open Client Library L • OODBMS C Embedded (bundled) • ODI O IONA ORB • ODBC & JDBC Data Access Engine Data Access

Platforms Rich Clients Java, C/C++,VB • Sun Solaris •HP-UX •SGI Irix • Windows32 NT

16 Part IV

Related XML Technology

33

XML-Based Architectures

„ Presentation-Oriented Publishing Frameworks

„ XML-Based Application Servers

„ Message-Oriented Middleware Frameworks

„ Web Services Frameworks

„ Peer to Peer (P2P) Computing

„ XML-Based e-Services Protocols and Architectures

34

17 XML MOM and POP Frameworks

„ An XML support framework must include:

„ XML Parser (conformity checker)

„ XML applications that use the output of the Parser to achieve unique objectives)

35

POP Applications Support Frameworks

„ Objective is to “serve” XML

„ HTML generation applications are provided

„ Sample solutions

„ XML::Parser module with Perl

„ XML processing via Java servlets

„ e.g., IBM Alphaworks’ XMLEnabler

„ See session 2’s sub-topic 2.3.2 on “XML POP Application Server Framework”

„ Apache’s Cocoon

„ http://www.xml.com/lpt/a/2002/02/13/cocoon2.html

„ Active Server Pages (ASP) with MSXML (see “Serving XML with ASP”, and rocket) 36

18 XML POP Packaged Solutions

„ Enterprise Information Portal (EIP) toolkits

„ e.g., DataChannel’s XML framework

„ Structured content management and retrieval systems

„ e.g.,

„ Vignette’s StoryServer

„ Gauss Interprise’s VIP’XML-Gateway

„ Poet’s Content Management Suite

„ Chrystal Software’s Astoria

37

MOM Applications Support Frameworks

„ Many applications can be envisioned

„ One objective is to support application integration via XML data interchange

„ Sample solutions:

„ XML::Parser module with Perl

„ XML processing via Java applications

38

19 XML MOM Applications

„ Component-based modeling

„ e.g., XML Metadata Interchange (XMI)

„ Enterprise Application Integration

„ Business-to-Customer (B2C) Applications

„ e.g., e-Commerce

„ Business-to-Business (B2B) Applications

„ e.g.,

„ WebMethods

„ Bluestone’s XML-Server,

„ eXcelon 2.0

„ XMLSolutions’ ExeterXML server 39

Java and the Apache XML Project

„ See related article at: „ http://www.informit.com/content/index.asp?product_id=%7B1 1D8FB42-EC59-4F7B-8215-EDBD80F6A471%7D „ List of XML Sub-Projects: ƒ Xerces: XML parsers in Java, C++ (with Perl and COM bindings) ƒ Xang: Rapid development of dynamic server pages, in JavaScript ƒ Xalan: XSLT stylesheet processors, in Java and C++ ƒ SOAP: Simple Object Access Protocol ƒ FOP: XSL formatting objects, in Java ƒ Crimson: Java XML parser derived from the Sun Project X Parser ƒ Cocoon: XML-based Web publishing, in Java ƒ Batik: Java-based toolkit for Scalable Vector Graphics (SVG) ƒ AxKit: XML-based Web publishing, in mod_perl

40

20 XML and Java Standards

„ XML is a family of technologies „ XSL, XML Schema, XML Query, XPath, XPointer, XLink, XML Base, DOM, CSS, XSL/XSLT, XHTML, XForms, XML Encryption, XML Key Management, XML Signature, RDF, MathML, SMIL, SVG, X3D, etc. „ Review the current state of the XML standards at http://www.w3c.org/XML „ Review the current state of Java Technology and XML (JAXP) standards at http://java.sun.com/XML „ Review the Java binding to DOM 2.0 at http://www.w3.org/TR/2000/REC-DOM-Level-2- Core-20001113/java-binding.zip „ DOM Level 3 still at the specification stage

41

XML and Java Standards (continued)

„ Java XML Pack

„ Java Architecture for XML Binding (JAXB)

„ Java API for XML Messaging (JAXM)

„ Java API for XML Processing (JAXP)

„ Java API for XML Registries (JAXR)

„ Java API for XML-based RPC (JAX-RPC)

„ Java Web Services Developer Pack (WSDP 1.1)

„ Java XML Pack

„ JSP Standard Tag Library (JSTL) 1.0.3

„ Ant Build Tool 1.5.1

„ Java WSDP Registry Server 1.0_04

„ Web Application Deployment Tool

„ 4.1.2 Container 42

21 Java & XML Frameworks

„ XML Parsers

„ Xerces-J

„ Crimson

„ Oracle XML parser

„ XML Server-Side POP Frameworks

„ Cocoon

„ XML P2P/B2Bi/EAI (MOM) Frameworks

„ JXTA, WebMethods, etc.

43

Java and Web Services

„ Java Web Services Developer Pack (WSDP 1.1)

„ Java XML Pack

„ JavaServer Pages Standard Tag Library (JSTL) 1.0.3

„ Ant Build Tool 1.5.1

„ Java WSDP Registry Server 1.0_04

„ Web Application Deployment Tool

„ Apache Tomcat Container 4.1.2

44

22 Java-enabled XML Technologies

„ XML provides a universal syntax for Java semantics (behavior)

„ Portable, reusable data descriptions in XML

„ Portable Java code that makes the data behave in various ways

„ XML standard extension

„ Basic plumbing that translates XML into Java

„ parser, namespace support in the parser, simple API for XML (SAX), and document object model (DOM)

„ XML data binding standard extension (JAXB)

45

Part V

Introduction to Component Technologies

46

23 Object-Oriented Programming

„ Method of implementation in which programs are organized as cooperative collections of objects

„ Objects are instances of some class

„ Classes are members of a class hierarchy

„ Classes are united via inheritance relationships in which child classes can share members of parent classes and have similar structure and behavior

„ Class

„ Language type with structure and behavior

„ Named or anonymous

„ Contain member variables and methods

„ Object

„ Instance of a class with own state, behavior, and identity 47

More on OOP

„ OOP Infrastructure

„ Language Compiler and Tools

„ Facilitate OOAD process

„ OOP Conceptual Framework

„ Object Model

„ Abstraction, encapsulation, modularity, inheritance hierarchy, polymorphic typing

„ OM notions can be applied to component programming

„ e.g., modularity in OOP via “componentization”!

„ OOP and Component Programming are Difficult to Separate

„ e.g., abstraction, encapsulation, etc. 48

24 More on OOP (continued)

„ Polymorphism

„ Subtype polymorphism

„ Abstract base classes with inheritance and abstract methods (C#)

abstract class A { void f(); } class B extends A { void f() { Console.WriteLine(“B class”);} };

„ Parametric polymorphism

„ Uses template classes or functions (C++)

„ Ad-hoc polymorphism

„ Achieved via operator and function overloading (+ -> concatenate)49

Components

„ Cannot without a component infrastructure

„ Compilers use different name calling conventions

„ Must introduce a component infrastructure that hides the underlying complexity of different tools and systems used when creating and deploying components

„ Neither an object nor a class nor a combination

„ May include many classes

„ Component exports interfaces rather than methods

„ Interfaces do not always have 1-1 correspondance with a class

„ Not a module (closed static unit that encapsulates embedded abstractions)

„ Component can only contain binary units (no source code) 50

25 Components

„ A component interface is the unit of component behavior in which some logically grouped methods are exposed to clients

„ Component properties

„ Contain compiled program files

„ Package compiled programs in a file that has a format known to the component infrastructure (e.g., DLL, CAB, JAR, EXE)

„ Language neutral

„ EJB? -> use software bridge to use JavaBeans from VC++

„ e.g., ActiveX bridge (component infrastructure)

„ Registers with Component infrastructure via a unique name

„ CB development tools may use introspection to explore

components at runtime 51

Component Infrastructures & Models

„ Component Infrastructure

„ Set of system services based on a component standard that ensure the properties of the component are immutable and enables rules of component composition and interaction

„ Component Model

„ Defines component interaction and composition standards

„ Components Subsume Standards, Component Infrastructures, Tools, and OOAD

„ Enterprise assurance

„ Performance

„ Concurrency (stateful/stateless components), caching of data or component, distributed transaction management (many components may modify databases)

„ Reusability (plug and play) & scalability (resource mgmt)52

26 Part VI

Conclusion

53

Summary Key Application Server Objectives

„ Enable Rapid Development of Business Applications

„ Provide Industry Leading Performance & Scalability

„ Provide High Availability & Reliability

„ Enable Enterprise Application Integration

„ Allow Client-Independence (HTML, Java, C++, VB)

„ Provide Open & Extensible Architecture

54

27 Class Project

„ Project Description

„ The project focus is two-fold:

„ Based on a framework-based enterprise application of your choice (e.g., “multi-channel online community platforms”), you will implement common facilities and application-level services on top of various types of application server technologies to support the various aspects of your chosen application

„ As you transition from one platform to another you will study and develop model-based migration and interoperability tools that leverage off of the cutting-edge concepts subsumed by modern Model Driven Architectures (MDAs)

55

Readings

„ Readings

„ Handouts posted on the course web site

„ Project Frameworks Setup (ongoing)

„ Apache Web Server (www.apache.org)

„ Perl

„ http://www.perl.com/pub/a/language/info/software.html

56

28 Assignment

„ Assignment:

„ #1a: Investigate legacy application server development environments. Write a short report that documents your findings and recommendations with respect to selection criteria in support of legacy development environments for application server technology

„ #1b: Come up with a framework-based business application and implement it on top of the core technology supplied as part of the homework #1 documentation

57

Next Session: Page-Based Application Servers (Part I)

„ ColdFusion 6.1/MX Environment

„ PHP 4 Environment

„ XML-Based Application Servers

58

29