“If you have great engineers and you have capital and

advertisement
CSI 2004
“If you have great engineers and you have capital and
entrepreneurial skills, you've got to eventually get some
successes. I expect in the next couple of years there could
be an Indian software company that has a household name
in the U.S.”
– James Governor, Illuminata Analyst, Mar 2002
.
… The Opportunity for the Indian Software Industry!
CSI 2004
Tutorial on:
Middleware & Web Technologies
Ramesh Loganathan, VP Engineering,
Pramati Technologies
Speaking at CSI 2004, Mumbai
Scope of this Tutorial
• Overview of the Middleware & Web Technologies
– State-of-the-technology 
• Briefly trace the functional Evolution
• Understand the J2EE Space
– The standards and the Application models
• Glimpses into Current Trends
–
–
–
–
Service Oriented Architecture
Enterprise Services Bus
B2B Collaboration – Ebxml
Grid Computing
3
Outline
•
What is middleware
– RPC & EDI; Advent of the web
•
•
Anatomy of a middleware request - RPC basics
J2EE – Evolves with Web
– Web; EJB;JMS & MDB
•
•
•
J2EE Tech Trends
Web Services
Service Orientation, Integration & ESB- the next wave
– SOA; JCA; Adapters
– Ebxml
– ESB- Enterprise Services Bus
•
Case study:
Dashboard- how XML based minimal data exchange is used for live
monitoring of real-time data changes
4
CSI 2004
So.. What is Middleware?
What is Middleware
Remote Procedures/Objects
J2EE- Evolves with Web
Web Services
SOA & ESB
B2B Collaboration - ebxml
Middleware technology Trends
Pramati in Middleware space
The Changing Landscape
Client-Server
The Desktop
TheThe
Distributed
Web Application
Client
Client
Internet
LAN
Web
Server
Database
Server
6
Moving to Server Helps...
• “Power” components no more limited by client
capability
• Pooling, sharing of scarce resources now possible
from server-side
• Replication and distribution of application
• High scalability
• Design efficiency only limit to performance
• Support hundreds to millions of concurrent users
– Incremental support from server-side for
increasing number of concurrent users
7
…Multi-tier?
• Simplify the enterprise application scenario
• Remodel application development in three tiers
– Tier I: Presentation Logic Layer
– Tier II: Business Logic Layer
– Tier III: Data Access Logic Layer
• Move business and data access logic to same/separate
servers
• Keep only presentation logic on Client
8
...But new challenges appear
• Middleware systems are complex
• To build a proprietary middle-tier framework,
considerations are:
–
–
–
–
–
Multi-threading
Resource sharing
Replication
Load balancing
Various services to be able to work with each other
• Compatibility with widely heterogeneous middleware
services
9
Solution: the application server
• Application Server Sits in the middle tier
• Automates complex multi-tier features
• Manages, recycles scarce system resources
– processes, threads, memory, db links, network sessions
• Load balances to share processing across multiple systems
• Access to infrastructure services
– naming/directory, txn, persistence, security
• Specific runtime environment
10
Where it fits in
Client
Internet
Client
LAN
Web
Server
Application
Server
Database
Server
11
Options in the market
• Common Object Request Broker Architecture (CORBA)
• COM Architecture (M Transaction Server)
• Java 2 platform, Enterprise Edition (J2EE, whose core
consists of Enterprise JavaBeans)
Which do we choose?
We Chose J2EE! 
12
CSI 2004
Basics: Remote Procedures/Objects
What is Middleware
Remote Procedures/Objects
J2EE- Evolves with Web
Web Services
SOA & ESB
B2B Collaboration - ebxml
Middleware technology Trends
Pramati in Middleware space
What are we trying to achieve?
• Distributed applications
– Applications that exist on different machines and provide useful
functionalities
Machine1
Machine2
Machine2
A way of using such applications from another application!
14
Middleware systems?
• A connectivity software
• Provides set of services to enable multiple processes on
different machines to communicate.
• Promoted by
– Object Management Group(OMG) [CORBA]
– Sun/IBM etc [J2EE]
– Microsoft [COM/DCOM]
A set of distributed software between Application/OS/Network
15
Middleware continued…
Application
Application
API’s
API’s
Middleware(Distributed System Services)
Platform Interface/ JVM
Platform Interface/ JVM
Platform / OS
Platform / OS
Middleware provides communication between distributed applications.
16
Middleware services
• To locate transparently another application across the
network providing the required interaction
• To be independent from network services
• To be reliable and available
• Scale up in capacity without loosing function
Keywords: Integrity, Reliability, Scalability, Security, Manageability
17
Middleware types
•
•
•
•
•
Transaction processing (TP) monitors
Remote Procedure Call (RPC)
Message-Oriented Middleware (MOM)
Object Request Brokers (ORB)
Remote Method Invocation (RMI)
Examples: J2EE, CORBA, JMS etc.
18
TP monitors
• Tools and environment for developing and deploying
distributed applications.
• Manage Transaction
• Load balancing and failover
• Usage
– Data management
– Network Access
– Security Systems
• Vendor specific
• Detail coverage in Seminar
One of the topics for seminar
19
Remote Procedure Call (RPC)
• Enable the logic of an application to be distributed
across the network.
• Program logic on remote systems can be executed as
simply as calling local routine.
RPC runtime
RPC Runtime
Application
Client
Server
20
Message-Oriented Middleware (MOM)
•
•
•
•
Program-to-program data exchange
Asynchronous – No wait after message is sent.
Analogous to e-mail
Recipient interprets the message and take appropriate
action.
MOM
message/data
sent
Application1
message/data
delivery
Virtual Connection
Application2
21
Object Request Broker (Orb)
• Interface definition
• Location and activation of remote objects
• Communication between clients and objects
ORB
locate
service
Client
Application
establish
connection
communicate
activate
service
Remote Service
(Object)
22
CSI 2004
Overview of J2EE
- Evolution with Web
What is Middleware
Remote Procedures/Objects
J2EE- Evolves with Web
Web Services
SOA & ESB
B2B Collaboration - ebxml
Middleware technology Trends
Pramati in Middleware space
What is J2EE
• Java™ 2 platform, Enterprise Edition
• Middleware layer on top of standard Java
• A set of specifications
– Collectively drawn up by companies like Sun, IBM
– Pramati a member of the standards body for 5 years
• A definition of how middleware should work
• Independent vendors build application servers using J2EE
standard
• Application server is central to all browser-based
applications
– e-commerce, e-business, e-governance, web services
24
The big picture..
25
Why J2EE
• Open standards driven by a rich community process
– Ground-up industry support with no vendor lock-ins
• Significant market awareness and popularity
– Large-scale adoption
• OS and hardware independence
• No application boundaries - Web interface
• Reliability, scalability and re-usability
– Component model on top of object model
26
Enterprise Platform Evolves
CSI 2004
HTTP Server
Java Clients
Transaction
Service
Resource
Service
Naming
Service
Load
Balancing
Web-based Administration
via JMX Console
Cluster
Manager
Remote Admin
SFS
CORBA
Clients
Resource
Pooling
JMS Server
(Async Messaging)
Enterprise Java Applications Elsewhere
Mainframes
Lifecycle
Handling
LDAP
Fail over
MDB
Connector API
DB
Connectivity
Persistence Management
Legacy Applications (like ERP)
Session Management
Enterprise JavaBeans
Mail
Server
Web
Browsers
RDBMS
Servlets
Enterprise Level Security
Framework
JSPs
HTTP Server
Java Clients
JMS Server
Asynchronous Messaging
Fail over
Load
Balancing
Persistence
Management
EJB
Container
Lifecycle
Handling
Cluster
Manager
Resource
Pooling
LDAP
Remote Admin
Enterprise Services
SFS
CORBA
Clients
Session Management
Mainframes
Web Container
Enterprise JavaBeans
Legacy Applications (like ERP)
Servlets
DB
Connectivity
Mail
Server
JSPs
Resource
Service
RDBMS
Transaction
Service
Connector API
Naming
Service
Enterprise Level Security
Framework
Web
Browsers
Complete Enterprise Runtime
Environment
Web-based Administration via JMX Console
Enterprise Java Applications Elsewhere
28
J2EE Market Acceptance
52.38%
of Survey
Respondents
J2EE and MS.NET
Development
MS.NET
Only
14.29%
of Survey
Respondents
J2EE
Only
33.33%
of Survey
Respondents
29
J2EE: Where does it fit
Your Application
Web
Browser
Database Server
J2EE Application Server
Java (free)
Operating System
Multiple
choices
WebLogic/ WebSphere/ Pramati
30
Preserve your freedom to choose
MacOS
Solaris
HP/UX
Linux
Windows
Any OS
MySQL
Oracle
SQL Server
Any Database
Sybase
Any Hardware
Your Tools
Intel
HP PA-RISC
Sun Sparc
DB2
All Clients
Eclipse
Rational
JBuilder
Pramati Studio
Netscape Mobile Phones
Internet Explorer
31
Technology Trends- 2004
•
Web based application architectures
• Internet or Intranet de-facto part of App Architectures
•
Component based Applications
• Biz App broken down into smaller units
• Easier to manage, deploy and maintain
•
Web Services
• Extended Enterprise
• Across the Enterprise and between Enterprises
•
Access from Mobile Devices
• J2ME
32
J2EE in 2004- Enterprise wide computing
• J2EE 1.4- next iteration of the technology
– EJB 2.1
– Improved Servlet & JSP specs
– Web Services
• ebXML
– Workflow
– Security
– Transactions
• J2ME/ Wireless devices
– Elaborate set of specs to enable J2ME to J2EE integration
• Grid Computing
– Extended clusters- better server resources utilization
33
CSI 2004
SOA, Integration & ESB
What is Middleware
Remote Procedures/Objects
J2EE- Evolves with Web
Web Services
SOA & ESB
B2B Collaboration - ebxml
Middleware technology Trends
Pramati in Middleware space
An ESB is a standards-based, service-oriented backbone
capable of connecting hundreds of application endpoints.
A highly Scalable platform.
ESBs combine messaging, Web services, XML,
data transformation and management to reliably connect
and coordinate application interaction.
35
Enterprise IT- integration using ESB
User
ESB Process
ESB Bus
Write “new” ESB
service ground-up
Java/
J2EE
Legacy
XSLT/
Xquery
DB
Wire “existing” WS
off the net
“Wire” legacy fn() as
service onto ESB Bus
SAP
COBOL
.NET
Off
UDDI?
WSDL
J2EE
36
What Is ESB?
• ESB- Enterprise Services Bus
• A Distributed Runtime platform for Services/Integration
• Provides an integration infrastructure (consistent with SOA)
• Transparent & multiple communication protocols
• Service messaging and interfacing model
• Open and implementation-independent
• Service and Consumer distinctly separated
• Service definitions relatively coarse-grained
• Location-transparency and interoperability of Services
• Should isolate application code from the specifics
• Unaware of routing services and transport protocols
• Allow service implementations to be substituted
• Manage service infrastructure
• in the distributed, heterogeneous environment of today
37
ESB vs. Integration
• Why ESB is different from EAI
– EAI is more focussed on just “connecting” to the back-ends
• The shortcomings of a simple Integration approach
–
–
–
–
Orchestration is programmatic
Implementation Tightly bound to back-ends
Maintenance gets complicated
No inherent distribution of the Integration Tier
• All orchestration & back-end access logic localized
– May have scalability limitations
• Solution: ESB
38
Quick Peek
ESB’s internal Transport could be
one or many. But, transparent to Apps!
Evolution: http://www-106.ibm.com/developerworks/webservices/library/ws-esbscen/
Overvew: http://www.nwfusion.com/news/tech/2003/0602techupdate.html
39
Sample Scenario..
40
Why Web Service is NOT ESB
• SOAP/HTTP is just point-to-point integration
• No administration capability to control service addressing
and naming exists
• Service names are controlled individually by each adaptor
• Service routing not evolved WS-Routing)
• Control is dispersed between various components
• Upside- will work well on internet & heterogeneous infra
• Harder Service Implementation dependency
• Difficult to substitute service implementations
• Though- possible with UDDI abstracting the service
location
WS is one “component” of ESB
41
Key Services in ESB
• SOA implementation
– “Services” tie into the “bus”
– Support for standards
• “Bus” services
– XML support
– Transformation
– Intelligent routing
Legacy Systems to Connect
• DBMS access
• Legacy systems
–
•
EAI Adapters
–
•
CICS;IMS;Tuxedo
JCA; Custom;
Application servers
–
–
J2EE Servers • Other
‘standards’
.NET ; COM / CORBA
• Communications services
–
–
–
–
Asynchronous/Messaging
Pub / Sub
Store and Forward
JMS-based
• Orchestration & Collaboration
• Canned Services/Utilities
Enterprise Class Security
• Access control
–
–
–
•
Information security
–
–
•
User authentication
Component
authorization
Non-repudiation
Privacy (encryption)
Integrity checking
Secure Communications
42
Typical Flow- Developer adopting ESB
Service Design/Definition
Service Definition
•Service Name+Type
•Service Contract
•Service properties
Service Implementation
•Details based on type
•Write Java/Xquery/..
Service Simulation
•Based on Contract
•For testing process without
service implementation
Write ESB ‘app’
Define ESB Process
ESB Invocation
•Decisions
•XPath
•Call Services
•Custom Services
•Web Services
•DB Services
•XML Services
•Transformation
•XSLT
•Xquery
•SubProcesses
•Collaboration steps
•Simple Clients
•Invoke an ESB Service
Services ‘wired’ into process
•Invocation mapping
Can Define Services on the fly
•As Process is defined
•With or without service details
43
Inside JBI
44
SOA & ESB- Standards At A Glance
ebms
Orchestration
WS-BP
ebxml
BPEL
Collaboration
rosettanet
Ws-rm
Messaging
JMS
WS-RM
Ws-S
SOAP
Internet
Partner
Organizations
Service Containers
JBI
WSDL2
JCA
J2EE
Legacy Systems
.NET
45
JBI: Service invocation
Process
Service
Service Invocation
• All Services used in the
Process will have common
interface
– XML in
– XML out
– WSDL2 based contract
• Service implementation is
abstracted out from
Process definition
Map Process variables
onto Service contract
Input Contract (specified per WSDL2)
Service Impl
Extract required Vars from Input
Actual Service
(Java, DB, XQuery,..)
Place Output values
Output Contract (per WSDL2)
Copy output onto
Process variables
Service Return
46
CSI 2004
SOA- Collaboration Beyond the
Enterprise
WS for B2B, Ebxml
What is Middleware
Remote Procedures/Objects
J2EE- Evolves with Web
Web Services
SOA & ESB
B2B Collaboration - ebxml
Middleware technology Trends
Pramati in Middleware space
ebXml (upcoming) specs at a glance
Ebxml- BSI
Ebxml- RS
(Biz Service Interface)
(registry services)
Ebxml- BP
(Biz Process)
Ebxml- BPSS
(Biz proc schema spec)
Ebxml- CPPA
Ebxml- MSG
Ebxml- RIM
(registry info model)
Ebxml- MSH
(msg srvc Handlers)
CPA- Collaboration partner Agreements
CPP- Collaboration partner Profiles
48
ebXML Functional Service View
Business Process and Information Models
(Compliant to the ebXML Meta Model)
• Functional capabilities
Model to XML Conversion
• Business Service Interfaces
Registration
Retrieval of Profiles &
new/updated ebXML Models
Retrieval of Profiles &
new/updated ebXML Models
Registry Service
Interface
Register
Collaboration Protocol
Profile(CPP)
Register
Collaboration Protocol
Profile(CPP)
Retrieval of ebXML
Models and Profiles
Internal
Business
Application
Build
Implementers
CPP
Collaboration
Protocol
Agreement(CPA)
Business Service
Interface
Internal
Business
Application
Governs
Business Service Build
Interface
CPA
• Protocols and
Messaging Services
Registries
Payload
49
WS, ebXML & J2EE/ arch scenario
ebXML
SOAP
ebXML
MSH
Legacy
Apps
EJB
Business
Services
Internal
Firewall
ebXML
Process
Server
Business Process
Collaboration
EJB
Business
Services
DB
Orchestration Services
J2EE Application Server
Container
COTS
Apps
Legacy
Apps
Apps
J2EE Web
Container
Systems Interface
ebXML
BSI
DMZ
Internet
B2B—
Trading
Partner
CPA
BPSS
50
How ebXML works?
• ebXML is a messaging infrastructure:
– defining a reliable business message based communication
protocol.
– The protocol can be used to carry any third-party payload (i.e.
business document) for business transaction
– such as purchase order and so on.
• The complete protocol suite consists of:
– 1. Message Service (ebXML MS)
– Msg Service Handlers- ebXML MSH
– 2. Collaboration Protocol Profile/Collaboration Protocol
Agreement (CPP/CPA) ebXML-CPPA
– 3. Registry (ebXML-RS)
– 4. Business Process Specification Schema (ebXML-BPSS)
– 5. Core Component
– The above 1, 2 and 3 are under OASIS's development, while
– 4 and 5 are under UNCEFACT/ebTWG.
51
CSI 2004
Some Buzz.. : Grid Computing
Case: J2EE Grids
What is Middleware
Remote Procedures/Objects
J2EE- Evolves with Web
Web Services
SOA & ESB
B2B Collaboration - ebxml
Middleware technology Trends
Pramati in Middleware space
J2EE Beyond 2004
• J2EE 1.5 (5.0)
– EJB3
– Java Metadata driven (no painful XMLs)
– Better Persistence
• Service Oriented Architecture
– Mainstream Acceptance
• Enterprise Integration
– ESB- Enterprise Services Bus
– ebXML
• Grid Computing
– J2EE Grids
– Utility Grids
53
WS, ebXML & J2EE/ arch scenario
ebXML
SOAP
ebXML
MSH
Legacy
Apps
EJB
Business
Services
Internal
Firewall
ebXML
Process
Server
Business Process
Collaboration
EJB
Business
Services
DB
Orchestration Services
J2EE Application Server
Container
COTS
Apps
Legacy
Apps
Apps
J2EE Web
Container
Systems Interface
ebXML
BSI
DMZ
Internet
B2B—
Trading
Partner
CPA
BPSS
54
Onto Grids.. What is Grid Computing?
• Common definition of grid:
• Loosely coupled autonomous ‘cells’
• Each cell has independent existence
• Geographically distributed
• Parallel and/or distributed
• Flexible resource selection & usage
• Each cell specifies the availability, performance & Cost
• The ‘consumer’ chooses. ‘Quality of Service’ primary basis
• Each ‘cell’ manages its own resources
• No single ‘system’ or ‘central manager’
• Resources & Consumers join & leave the grid at will
• "A computational grid is a hardware and software infrastructure that
provides dependable, consistent, pervasive, and inexpensive access to
high-end computational capabilities” - Ian Foster
55
Grid Types- The buzz words..
•
•
•
•
•
•
•
•
•
Compute Grids
Data Grids
Science Grids
Access Grids & Knowledge Grids
Bio Grids & Sensor Grids
Cluster Grids
Campus Grids
Tera Grids, and
Commodity Grids.
And… Application Grids
56
Grids vs. Clusters
• Most server platforms offer Cluster Solutions
• Clusters are tightly knit
– Logically, a single “processing entity”
– Presents an integrated single view to the applications
• Central resource management
– Unlike in grids, where each cell manages itself
• Consumers of clusters are known in advance
– Grid consumers can tap into a grid dynamically- utility model
57
Where J2EE fits into Grids
• J2EE- complete enterprise application runtime
– J2EE is a well-understood Biz runtime
– Pure Standards- high level of compliance
• Well defined work-units
– Application Servers have well-defined work-units
• Unlike SETI or Globus type grids,
• Work-units are distributes across grid nodes
• In-built mechanisms to ‘locate’ components
– Say, EJBs thru the naming service, or web thru a LB
• Well positioned to form a good ‘grid-fabric’
58
Application Grids
• A grid of generic App Server cells (J2EE or .NET)
– Each cell is out of the box J2EE server- with any OS & VM vendor.
– The app server grid component will run on each cell
– Cells can go down and come up at will- grid will be unaffected
• The work-units that runs on the grid will be a J2EE app
– the grid presents one logical processing environment
– with a bunch of loosely coupled cells
• Load distribution & fail-over dynamically managed by the grid
• No single point of failure in the grid
– the app server will manage the grid abstraction
• Applications available on the grid
– Distribution strategy specificable (what app available on how many
nodes)
• Scheduling & Provisioning managed by the grid
59
J2EE Grid Constituents
• The grid can be composed of the following node types
– Standalone servers; J2EE (web+ejb) nodes
– Web nodes; EJB nodes; JMS server nodes
– Web Loadbalancer
• Implicit Service/framework components
–
–
–
–
Grid aware naming service
Application repository- what & where
Distributed Admin service- for remote administration
Cluster service- self-organising, app management, failover++
• Missing Pieces
–
–
–
–
Smart Provisioning
Ease of Management/Administration of the Grid
Binary management of all nodes on the grid
We need a Federated Naming Service and a Federated App
naming service.
60
J2EE Clusters- Very “grid ready”
• Most vendor’s Cluster solutions are “grid ready”
• Pramati’s clustering solution has all these attributes
–
–
–
–
–
self organizing cluster- nodes can join/leave at will
no single point of failure and no master
remote administration
Pure TCP connectivity between nodes
Load-distribution (scheduling)
• Single-click remote administration
– distributed non-master lock server and clustrer administration
61
J2EE ‘grid fabric’
• J2EE Grid-Fabric- a set of J2EE aware agents
– Much like the cluster service in today’s J2EE clusters
• Grid platforms have ‘agents’ at its core- as the ‘grid fabric’
– For discovery, resource management & scheduling
– Consumers, poll thru the agents
– Resources, notify availability and pick up work thru agents
• Scheduler- managed by the fabric
–
–
–
–
A basic load-scheduling mechanism
Scheduler can discover present ‘active ‘ cells
Distribute the load based on the Provisioning & QOS requirements
Partitioning of the grid for various apps
• specify %ge of resources or minimum num of actual cells per app
• get the resource partitioning at a logical level (grid as a whole)..
• .. without actually specifically marking out specific cells
• Manage resources- CPU, Memory, Object-pools, Persistence
62
What to expect
• J2EE Vendors extending to ‘grids’
– IBM, Oracle & Sun
• J2EE Grids will be relatively closer-knit
– Will not function in same mode as SETI
– Enterprises are wary of Application Security
• Value from J2EE Grids
– J2EE already popular
• Biz Applications widespread
• These apps can run as-is on the J2EE Grids
– Lower cost of ownership
– Higher availability
– Ready, reliable, Extendible Secure platform
63
CSI 2004
What we do in middleware space..
Pramati Products
What is Middleware
Remote Procedures/Objects
J2EE- Evolves with Web
Web Services
SOA & ESB
Middleware technology Trends
Pramati in Middleware space
Little about Pramati
The Vision
• Infrastructure products for global markets
– Excellence in Design and Execution
• Knowledge-based rather than cost-based
– Leverage India’s strengths and true value
– If we can do it in the Bay Area, we can do it here
• Invest in R&D for cutting-edge products
• Partner with the best, go to market together
The Result
• Global recognition of Engineering capability
• Technology leadership
• Talent Magnet
65
Key achievements
• Technology Intensive products
– Specifications still evolving
– Pramati a pioneer in server side Java space
• First server to Java Enable HTML (now, JSPs)- 1998
• First EJB1.0 implementation in 1999 (along with BEA)
• First J2EE 1.3 certified in Dec’ 2001
• Active in Standards Bodies
– Java community Process (JCP)
• Member of EJB & J2EE expert groups
– Standard Performance Evaluation Corp (SPEC)
• People: Full Product life-cycle expertise
– Strengths in Conception thru delivery, selling and support
– Only Indian company in the Infrastructure Products space!
• Process: Home grown
– Products development diff from projects
66
Product goals
•
•
•
•
Standards compliance > no proprietary lock-ins
Run time performance > best bang for the buck
Developer productivity > complexity suppression
Manageability > challenge of distributed systems
Object Designers
App Assemblers
System Admin
Java Designers
Project Managers
Database Admin
Web Designers
Create
Assemble
Deploy
EJB
Assemble
Deploy
JSP
Test
Monitor
Servlet
Package
Manage
Manage
J2EE Server
67
Design : Develop : Debug : Deploy
Model
Review
Create
Refactor
Test
Debug
Deploy
Manage
68
CSI 2004
Thank You
rameshl@pramati.com
www.pramati.com
Download