• No results found

Application Servers G Session 1 - Main Theme Legacy Application Server Technology. Dr. Jean-Claude Franchitti

N/A
N/A
Protected

Academic year: 2021

Share "Application Servers G Session 1 - Main Theme Legacy Application Server Technology. Dr. Jean-Claude Franchitti"

Copied!
29
0
0

Loading.... (view fulltext now)

Full text

(1)

1

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

2

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

(2)

3

Part I

Introduction

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

(3)

5

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

6

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

(4)

7

Other Useful Knowledge

„

Web server configuration and the HTTP protocol

„

Scripting languages (e.g., JavaScript, Perl, 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”

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,

(5)

9

Part II

Supporting Technology

10

„

(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

(6)

11

„

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.

Old Client/Server Model

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

(7)

13

Basic Web Applications

DB Databases Documents

Enterprise

Data

Web

Server

CGI, SSJS, NSAPI, ISAPI, WAI, Etc.

Client

Browser

Internet Connection

14

Robust Web Applications

Presentation Tier Rich Clients (Java C/C++, VB) Web Browser

Business Logic Tier

Web Servers Application Server(s) Data Tier Databases Enterprise C/S Applications Legacy Systems Documents HTTP IIOP

(8)

15

„

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!

Mission Critical Applications

Requirements

„

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+

Mission Critical Applications

Requirements (continued)

(9)

17

Application Servers

Selection Criteria

„

Usability

„

Scalability

„ Concurrency „ Extensibility „

Security

„

Manageability

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

„

Reusability

„

Support

„

Skills

18

„

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

Application Server Categories

(10)

19

„

CGI-Perl custom environments

„

ColdFusion MX, PHP 4, ASP, JSP

„

Websphere 5.0

„

WebLogic 8.1

„

JBoss

„

Inprise, iPlanet, Sybase EAServer

Application Servers Examples

Application Packages

(SAP, PeopleSoft, Baan)

„

ERP, and B2Bi Suites

„

Human Resources

„

Sales Automation

„

Financial/Accounting

„

Retail/Point of Purchase

„

Manufacturing/Inventory

„

Supply Chain Management

(11)

21

Part III

Expected Features

22

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 your existing legacy systems.

(12)

23 Customer

Self-Service

z on-line credit card

z customer care & billing

z portfolio management z benefits administration Business-to-Business Efficiencies z package tracking z claims processing

z supply chain management

z sales automation

Revenue Expansion

z on-line retailing, on-line trading

z loyalty programs

z travel and entertainment

What Customers are Building with it...

Value Proposition

Develop, Deploy & Manage Business-Critical Applications

Development Methodology

Develop & deploy ‘Extensions’ in Java/C++ for enterprise application integration

Develop & deploy business applications in Java/C++

Extension Builder Application Builder

Develop Deploy

• High Performance & Scalability • High Availability • Client-Independence • Rapid Development of Application Servers • Application Administration & Management

• Server & Cluster

Administrator

(13)

Internal Architecture

Scalable, Reliable Application Architecture HTML C/C++ Java Visual Basic

Client

(14)

27

„

Key Administration Services

z Application Management

z Server Management

„

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

Services (continued)

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

(15)

29

„

Robust Application Development Tools

z Application Logic Designer z HTML Designer z Query Designer z Project Manager z Third-party Tool Support

Application Builder

Project Manager 30

„ 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

Server Administration

Performance Monitor

(16)

Application Server Business Logic Pre-built System & Application Services

Extension Builder

Extending Application Servers Functionality

Extensions

Extension Builder

(Create Custom Extensions)

Use Pre-built Extensions

• IBM MQ Series • BEA Tuxedo • IBM CICS, IMS • ERP Extensions OR • Client/server applications • Enterprise Systems • Legacy Applications • Third-party Web solutions Existing Applications and Systems

Open and Extensible

Technical Architecture

Browsers Rich Clients Data Sources • RDBMS • Oracle • Informix • Sybase • DB2 • SQL Server • OODBMS • ODI • ODBC & JDBC

Open Client Library

Java, C/C++,VB Platforms • Sun Solaris • HP-UX • SGI Irix Extensions • TP Monitors • Legacy • Client/server OC L Data A c cess En gine E xt en si o n s Protoco l Manag er (H T T P , KC P, IIOP) W eb Connec tor s ISAPI, NSA P I, CGI Web Servers Application Server (Java, C/C++) Embedded (bundled) IONA ORB

(17)

33

Part IV

Related XML Technology

34

XML-Based Architectures

„

Presentation-Oriented Publishing Frameworks

„

XML-Based Application Servers

„

Message-Oriented Middleware Frameworks

„

Web Services Frameworks

„ Peer to Peer (P2P) Computing

(18)

35

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)

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

(19)

37

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

38

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

(20)

39

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

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

(21)

41

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

42

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 „ Apache Tomcat 4.1.2 Container

(22)

43

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.

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

(23)

45

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)

46

Part V

Introduction to

(24)

47

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

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

(25)

49

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)

50

Components

„

Cannot exist 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)

(26)

51

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

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)

(27)

53

Part VI

Conclusion

54

Summary

„

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

(28)

55

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)

Readings

„

Readings

„ Handouts posted on the course web site

„

Project Frameworks Setup (ongoing)

„ Apache Web Server (www.apache.org) „ Perl

(29)

57

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

58

Next Session:

Page-Based Application Servers (Part I)

„

ColdFusion 6.1/MX Environment

„

PHP 4 Environment

References

Related documents

A glossary is an alphabetical list of terms, along with their definitions, in a particular subject or

Estimate the final temperature of one mole of gas at 200.0 atm and 19.0°C as it is forced through a porous plug to a final pressure of 0.95 atm.. The Joule-Thomson coefficient of

Evaluation of soil chemical fertility in representative farmers’ fields in the Indian state of Karnataka revealed the occurrence of widespread deficiency of plant nutrients such as

From DR perspective need to consider changes to • Applications/databases • Storage • Servers • Networking Change Control Applications/Databases. • DR application tier

Q Could replace Java security manager by one that checks system and server resource access based on behalf of whom code is executing. Q Role-based access techniques

For the unfinished state at the time of testing, the absence of the facade leads to there being three modes below 15Hz with significant participation of the 10m span. These are

Expand also offers several “plug- ins” that add advanced caching techniques and packet aggregation capabilities to optimize CIFS and accelerate specific applications such as

Possible explanation would be that second year student are more socialized and therefore attending many party where drinking more at same time second year student need further