1
1
Application Servers G22.3033-011
Session 1 - Main ThemeLegacy Application Server Technology
Dr. Jean-Claude Franchitti
New York UniversityComputer Science Department
Courant Institute of Mathematical Sciences
2
AgendaApplication Servers GenericsCourse Logistics, Structure and ObjectivesKnowledge RequiredApplication Servers EvolutionSupporting TechnologyExpected FeaturesRelated XML TechnologyIntroduction to Component TechnologiesSummaryClass Project OverviewReadingsAssignment #1
2
3
Part I
Introduction
4
Application Servers Generics
Modern Application Server PropertiesRich/portable softwareMiddleware between pervasive devices and back-office systemsPlatform independent programming interfaceSupport legacy applications integration (EAI/B2Bi) XML-enabledWeb-services enabled
3
5
Course Logistics
Course Web Sitehttp://cs.nyu.edu/courses/fall01/G22.3033-011/index.htmhttp://www.nyu.edu/classes/jcf/g22.3033-011/Login/Password: appserv/appserv (not currently protected)Review syllabus
TextbooksBuilding J2EE Applications with IBM WebSphereMicrosoft .Net Distributed Applications: Integrating XML Web Services and .Net Remoting
6
Knowledge Required
Programming Languages (g22.2110)Operating Systems(g22.2250)Programming for the WWWAbility to program in JavaSome exposure to XML and associated technologies
4
7
Other Useful Knowledge
Web server configuration and the HTTP protocolScripting languages (e.g., JavaScript, Perl, TCL, etc.)Database theory (normalization rules)Web publishingEnterprise 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”
8
Application Servers Evolution
Traditional client-server technologyCGI frameworksPage-based extended HTML environmentsDistributed object computing platformsJava-BasedObject Management Architectures (OMAs)Component-based computing environmentsWeb Services platformsNext generation application servers (reflective, multimedia- and agent enabled, MDA-compliant, etc.)
5
9
Part II
Supporting Technology
10
(Network) Communication Protocolse.g., TCP/IP, HTTP, RPC, GIOP/IIOP, RMI, XML, XML-RPC, SOAP/DIME/ROPE, UDDI/DISCO, WSDL
Client-Server TechnologyDistributed Object ComputingComponent Models and FrameworksSecure Messaging Infrastructures
Underlying Facilities
6
11
ConnectionCustomers (and partners) were required to have dedicated lines, leased lines, dialups, or some other access to your company.
Network ProtocolCustomers had to use the same network protocols as the company they wanted to communicate with, TCP/IP, IPX/SPX, NetBUI, etc.
Hardware RequirementsCustomers 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 RequirementsThe customer had to run a specific Operating System and version.
Software UpdatesApplication 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
12
Web Business EvolutionFirst 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 WorldThere 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 CustomersValue-Based Services are Ensuring a Steady Flow of Web-based TrafficOverhead is Reduced with Automated Online Services
A New Global Marketplace is Emerging -Web Applications/services are Available from Anywhere in the World 24x7Web Application Updates Occur Instantly and UniversallyDoing Business is now Cheaper, Faster, and Easier
7
13
Basic Web Applications
DB
Databases
Documents
EnterpriseData
WebServerCGI, SSJS, NSAPI,ISAPI, WAI, Etc.
ClientBrowser
Internet Connection
14
Robust Web ApplicationsPresentation
Tier
Rich Clients (Java C/C++, VB)
WebBrowser
Business Logic Tier
WebServers
Application Server(s)
Data Tier
Databases
Enterprise C/S Applications
LegacySystems
DocumentsHTTP
IIOP
8
15
High Performance and ScalabilityBenchmarks demonstrate 6000+ concurrent users, 12,000 TPM on a 4-CPU Sparc
High Availability & ReliabilityCustomers like E*Trade & ISN demand 24x7 reliability with software & hardware fault toleranceeBay on WebSphere
30 billion transactions per dayOver 8,000 tps!
Countrywide Insurance on WebSphereOver 20,000 tps!
Mission Critical Applications Requirements
16
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 IntegrationNeed for high-performance integration to databases, legacy systems, client/server applications and ERP applications
Open & ExtensibleNeed 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
UsabilityScalability
ConcurrencyExtensibility
SecurityManageability
Fault tolerance, auto-deployment, communications, development environment, monitoring tools
ReusabilitySupportSkills
18
Legacy technologyPage-based extended HTML environmentsOMA-basedWeb Services platformsMDA-basedNext generationhttp://www.appserver-zone.com/guide.aspused to list many unclassified products
Application Server Categories
10
19
CGI-Perl custom environmentsColdFusion MX, PHP 4, ASP, JSPWebsphere 5.0WebLogic 8.1JBossInprise, iPlanet, Sybase EAServer
Application Servers Examples
20
Application Packages(SAP, PeopleSoft, Baan)
ERP, and B2Bi SuitesHuman ResourcesSales AutomationFinancial/AccountingRetail/Point of PurchaseManufacturing/InventorySupply Chain Management
11
21
Part III
Expected Features
22
Sample Features
High performance & scalabilityCreate 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 IndependenceAccess 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 IntegrationConnect to backend databases, existing client/server applications, and your existing legacy systems.
12
23
CustomerSelf-Service
on-line credit card customer care & billingportfolio managementbenefits administration
Business-to-Business Efficiencies
package trackingclaims processingsupply chain managementsales automation
RevenueExpansion
on-line retailing, on-line tradingloyalty programstravel and entertainment
What Customers are Building with it...
Value Proposition
24
Develop, Deploy & Manage Business-Critical Applications
Development Methodology
Develop & deploy‘Extensions’ in Java/C++ for enterprise applicationintegration
Develop & deploybusiness applicationsin Java/C++
Extension Builder
Application Builder
Develop Deploy
• High Performance & Scalability• High Availability• Client-Independence• Rapid Development of
Business Applications• Enterprise Integration
Application Servers
• ApplicationAdministration & Management
• Server & ClusterManagement
Administrator
Manage
13
Internal Architecture
Scalable, Reliable
ApplicationArchitecture
HTML
C/C++
Java
VisualBasic
Client
N
e
t
w
o
r
k
S
e
r
v
i
c
e
s
O
p
e
r
a
t
i
n
g
S
y
s
t
e
m
D
i
s
t
r
i
b
u
t
e
d
O
b
j
e
c
t
I
n
f
r
a
s
t
r
u
c
t
u
r
e
P
r
e
-
B
u
i
l
t
S
y
s
t
e
m
&
A
p
p
l
i
c
a
t
i
o
n
S
e
r
v
i
c
e
s
V
e
r
s
i
o
n
i
n
g
S
t
a
t
e
/
S
e
s
s
i
o
n
M
g
m
t
D i r e c t o r y S
e
c
u
r
i
t
y
M
e
s
s
a
g
i
n
g
J
D
B
C
D
a
t
a
A
c
c
e
s
s
C
o
n
n
e
c
t
i
o
n
P
o
o
l
i
n
g
T r a n s a c t i o n sR e s u l t s
C a c h i n g
L o a dB a l a n c i n g
P
e
r
s
i
s
t
e
n
c
e
T h r e a dM a n a g e rF a i l S a f eS e r v i c e sA p p l i c a t i o n S e r v e rA p p l i c a t i o nL o g i c ( J a v a , C / C + + )
2 6 K e y A p p l i c a t i o n S e r v i c e s J a v a , C / C + + C l i e n t S u p p o r t State/ Session ManagementDatabase Request ManagementTransaction Management Connection Cache Results CacheDynamic Content GenerationS t r e a m i n g S e c u r i t y S e r v i c e s
14
27
Key Administration ServicesApplication ManagementServer Management
Key System ServicesMulti-process, Multi-threadedDynamic Load BalancingApplication PartitioningAsynchronous ProcessingEvent Logging & TrackingKernel ServicesDirectory ServicesE-mail Messaging
Services (continued)
Wizards for Point-&-click Development
Application Builder
Rapid Development of Business ApplicationsWizards for Point-&-click Development Pre-built Application Services and Class Libraries (Java, C/C++)Reusable Application ComponentsDistributed Deployment of Application ComponentsDistributed Development Using Three-Tier Programming Model
15
29
Robust Application Development ToolsApplication Logic DesignerHTML DesignerQuery DesignerProject ManagerThird-party Tool Support
Application Builder
Project Manager
30
Advanced cluster managementEnterprise-wide views of all servers and processesEvent monitoring & alertsMulti-view graphicalperformance monitoringACL, User & GroupManagementLoad balancingcustomizationApplication administrationApplication partitioningIntegrated deployment
Server Administration
Performance Monitor
16
Application Server
Business Logic
Pre-built System & Application Services
Extension BuilderExtending 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/serverapplications
• Enterprise Systems• Legacy Applications• Third-party
Web solutions
Existing Applicationsand Systems
32
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• Windows NT
Extensions• TP Monitors• Legacy• Client/server
OC
L
Dat
a A
cces
s En
gine
Exte
nsio
ns
Prot
ocol
Man
ager
(HTT
P, K
CP
, IIO
P)
Web
Con
nect
ors
ISA
PI,
NS
API,
CG
I
WebServers
ApplicationServer
(Java, C/C++)
Embedded (bundled)IONA ORB
17
33
Part IV
Related XML Technology
34
XML-Based Architectures
Presentation-Oriented Publishing FrameworksXML-Based Application ServersMessage-Oriented Middleware FrameworksWeb Services Frameworks
Peer to Peer (P2P) ComputingXML-Based e-Services Protocols and Architectures
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)
36
POP Applications Support Frameworks
Objective is to “serve” XMLHTML generation applications are provided Sample solutions
XML::Parser module with PerlXML processing via Java servlets
e.g., IBM Alphaworks’ XMLEnablerSee session 2’s sub-topic 2.3.2 on “XML POP Application Server Framework”
Apache’s Cocoonhttp://www.xml.com/lpt/a/2002/02/13/cocoon2.html
Active Server Pages (ASP) with MSXML (see “Serving XML with ASP”, and rocket)
19
37
XML POP Packaged Solutions
Enterprise Information Portal (EIP) toolkitse.g., DataChannel’s XML framework
Structured content management and retrieval systems
e.g., Vignette’s StoryServerGauss Interprise’s VIP’XML-GatewayPoet’s Content Management SuiteChrystal Software’s Astoria
38
MOM Applications Support Frameworks
Many applications can be envisionedOne objective is to support application integration via XML data interchange
Sample solutions:XML::Parser module with PerlXML processing via Java applications
20
39
XML MOM ApplicationsComponent-based modeling
e.g., XML Metadata Interchange (XMI)Enterprise Application IntegrationBusiness-to-Customer (B2C) Applications
e.g., e-CommerceBusiness-to-Business (B2B) Applications
e.g., WebMethodsBluestone’s XML-Server, eXcelon 2.0XMLSolutions’ ExeterXML server
40
Java and the Apache XML Project
See related article at:http://www.informit.com/content/index.asp?product_id=%7B11D8FB42-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 JavaScriptXalan: XSLT stylesheet processors, in Java and C++SOAP: Simple Object Access ProtocolFOP: XSL formatting objects, in JavaCrimson: Java XML parser derived from the Sun Project X ParserCocoon: XML-based Web publishing, in JavaBatik: Java-based toolkit for Scalable Vector Graphics (SVG)AxKit: XML-based Web publishing, in mod_perl
21
41
XML and Java StandardsXML 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/XMLReview the current state of Java Technology and XML (JAXP) standards at http://java.sun.com/XMLReview 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 PackJava 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 PackJSP Standard Tag Library (JSTL) 1.0.3Ant Build Tool 1.5.1Java WSDP Registry Server 1.0_04Web Application Deployment ToolApache Tomcat 4.1.2 Container
22
43
Java & XML Frameworks
XML Parsers Xerces-JCrimsonOracle XML parser
XML Server-Side POP FrameworksCocoon
XML P2P/B2Bi/EAI (MOM) FrameworksJXTA, WebMethods, etc.
44
Java and Web Services
Java Web Services Developer Pack (WSDP 1.1)Java XML Pack JavaServer Pages Standard Tag Library (JSTL) 1.0.3Ant Build Tool 1.5.1Java WSDP Registry Server 1.0_04Web Application Deployment ToolApache Tomcat Container 4.1.2
23
45
Java-enabled XML TechnologiesXML provides a universal syntax for Java semantics (behavior)
Portable, reusable data descriptions in XMLPortable Java code that makes the data behave in various ways
XML standard extensionBasic 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 toComponent Technologies
24
47
Object-Oriented ProgrammingMethod of implementation in which programs are organized as cooperative collections of objects
Objects are instances of some classClasses are members of a class hierarchyClasses are united via inheritance relationships in which child classes can share members of parent classes and have similar structure and behavior
ClassLanguage type with structure and behaviorNamed or anonymousContain member variables and methods
ObjectInstance of a class with own state, behavior, and identity
48
More on OOPOOP Infrastructure
Language Compiler and ToolsFacilitate OOAD process
OOP Conceptual FrameworkObject Model
Abstraction, encapsulation, modularity, inheritance hierarchy, polymorphic typing
OM notions can be applied to component programminge.g., modularity in OOP via “componentization”!
OOP and Component Programming are Difficult to Separate
e.g., abstraction, encapsulation, etc.
25
49
More on OOP(continued)
PolymorphismSubtype 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 polymorphismUses template classes or functions (C++)
Ad-hoc polymorphismAchieved via operator and function overloading (+ -> concatenate)
50
ComponentsCannot exist without a component infrastructure
Compilers use different name calling conventionsMust 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 combinationMay include many classesComponent exports interfaces rather than methodsInterfaces 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)
26
51
ComponentsA component interface is the unit of component behavior in which some logically grouped methods are exposed to clientsComponent properties
Contain compiled program filesPackage 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 nameCB development tools may use introspection to explore components at runtime
52
Component Infrastructures & ModelsComponent 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 ModelDefines component interaction and composition standards
Components Subsume Standards, Component Infrastructures, Tools, and OOADEnterprise assurance
PerformanceConcurrency (stateful/stateless components), caching of data or component, distributed transaction management (many components may modify databases)
Reusability (plug and play) & scalability (resource mgmt)
27
53
Part VI
Conclusion
54
Summary
Enable Rapid Development of Business ApplicationsProvide Industry Leading Performance & ScalabilityProvide High Availability & ReliabilityEnable Enterprise Application IntegrationAllow Client-Independence(HTML, Java, C++, VB)
Provide Open & Extensible Architecture
Key Application Server Objectives
28
55
Class Project
Project DescriptionThe 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 applicationAs 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)
56
Readings
ReadingsHandouts 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
29
57
AssignmentAssignment:
#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 EnvironmentPHP 4 EnvironmentXML-Based Application Servers