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, 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” 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
Apache Tomcat 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 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)
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