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
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
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
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,
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
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
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
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)
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
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
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.
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
Internal Architecture
Scalable, Reliable Application Architecture HTML C/C++ Java Visual BasicClient
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
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 MonitorApplication 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 & JDBCOpen 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
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
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
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
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
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
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
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
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
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)
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)
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
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
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)