Synergies between J2EE, SOA & Web2.0 Ramesh Loganathan VP, Middleware Technologies, Pramati Technologies Speaking at IndicThreads conference on Java Technologies Pune, December 1, 2006
www.pramati.com
Over the next hour..
IT Landscape today Enter SOA and Web2.0 Where does J(2)EE fit in J2EE enables Web2.0 Bite Sized SOA Going forward
J2EE, enabling SOA quickstart
2
lves o v E ape Web2.0 c s d an nd t in a IT L A i er SO s J2EE f b2.0 Ent doe ling We How nab OA e E J2E d S e z i S ard Bite w r o ng F Goi
IT Landscape evolves From monolithic mainframe, thru multi-tier applications, to SOA and Web2.0
www.pramati.com
IT landscape today IT solutions today are localized solutions for specific biz/problems
User connects to each system And checks up individual status Order Processing Solution J2EE
CRM App. .NET
SAP ERP Solution IT Islands
Warehouse & Logistics J2EE
HR People Soft
How did we get here.. J2EE, enabling SOA quickstart
4
1990s: from monolithic, to multi tier UI UI/Presentation Biz logic in UI
2 tier
UI & Biz logic Tier separation not very strict.
Database Tier Midtier Functional Modules
Mod 1
Mod 2
…
3 tier
Database Tier
J2EE, enabling SOA quickstart
5
Onto.. Web based architectures WebBrowsers
UI & Biz logic not clearly separated. Tier separation not very strict.
UI Internet/intranet
UI/Presentation Biz login\c in UI
Midtier
Data Center
Functional Modules
Mod 1
Mod 2
…
Database Tier
J2EE, enabling SOA quickstart
6
2000, extended organization (integration) WebBrowsers
Internet/intranet
Data Center Midtier UI/Presentation
Functional Modules
Mod 1
Mod 2
…
JCA
Biz logic in UI
IBM JCA
UI
Database Tier J2EE, enabling SOA quickstart
7
SAP
HTTP Server
Java Clients
Resource Pooling
Transaction Service
Resource Service
Naming Service
Load Balancing
Webbased Administration via JMX Console
Cluster Manager
Remote Admin
JMS Server (Async Messaging) Enterprise Java Applications Elsewhere
J2EE, enabling SOA quickstart
8
Mainframes
Lifecycle Handling
SFS
Fail over
MDB
LDAP
DB Connectivity
Persistence Management
Mail Server
Session Management
Enterprise JavaBeans
Legacy Applications (like ERP)
Servlets
Connector API
CORBA Clients
RDBMS
JSPs
Enterprise Level Security Framework
Web Browsers
J(2)EE- Enterprise Platform Evolves
lves o v E ape Web2.0 c s d an nd t in a IT L A i er SO s J2EE f b2.0 Ent doe ling We How nab OA e E J2E d S e z i S ard Bite w r o ng F Goi
www.pramati.com
Enter, SOA and Web2.0
Interactions exist, even before SOA Business Processing triggered by sending form to the first dept. Form
Customer Care Dept
Order Processing
start
Mailroom 1
1
Raw Materials
Mailroom
2
Mailroom 3
3
Organization
end
6
6 Mailroom 6
Shipping
4
Mailroom
Mailroom 4
Warehouse
Form/ document
Manu facturing
•Document “flows” thru the organization, and gets processed. •Simplifying and Automating these flows is the objective of SOA.. J2EE, enabling SOA quickstart
10
SOA.. Extend “existing” systems •SOA Adoption today, helps “automating” the biz flows •Must be able to easily “extend” existing systems to form SOA fabric •Enable Orchestration of services & integration across systems
PORTA L SERVIC E
USERDEFINED SERVICE APPLICATI ON SERVER
BROAD-SCALE INTEROPERABIL ITY MODULARITY / RELATION REUSE INCREMENTAL AL DEPLOYMENT DATABAS PROCESS FLEXIBILIT E SERVER Y LEGACY APPLICATI ON
BATCH SYSTEM
J2EE, enabling SOA quickstart
11
Existing Systems fitting into SOA E
C
B
App bus Services Registry
Outbound Services access
Local interactions Façade/WS user
UI
Leg acy
app
A
Schema repository
wrappers Inbound access
EJB Session Beans
J2EE, enabling SOA quickstart
Inbound and Outbound services. 12
From SOA.. to service centric Web(2.0) • SOA is about – Services – Processes – Enterprise services infrastructure
• Web 2.0.. The next gen web- beyond just web sites and pages – Rich UI – Richer user interactions – Rich Internet Architecture – Access Resources over the web – Access Services over the web
Now, why Web2.0, suddenly.. J2EE, enabling SOA quickstart
13
Web2.0: in the enterprise Web
Enabling Web2.0
Services
Services Ama zon
Info
WebBrowsers Rich UI
Searc h engine
WEB / Internet intranet
E
Commerc e
Flickr (taggin g)
Wiki pedi a
Blogs & Info sites
mysp Communities aces
Application RIA Application Server
Google earth Geo-spatial
SOA
Net/financial services Pay.t eBay
Gateway
Banks
J2EE, enabling SOA quickstart
14
Web 2.0.. A marketing gimmick? • It started with O’Reily pushing for discussions around the new possibilities around the Web • Web as more than just “browse”: Web 1.0
Web 2.0
DoubleClick
>
Google AdSense
Ofoto
>
Flickr
Akamai
>
BitTorrent
mp3.com
>
Napster
Britannica Online
>
Wikipedia
personal websites
>
blogging
screen scraping
>
web services
publishing
>
participation
content management systems
>
wikis
directories (taxonomy)
>
tagging ("folksonomy")
stickiness
>
syndication
J2EE, enabling SOA quickstart
15
Different people.. Different strokes Solution Architects Usability Engineer
Information Designer
UI Designer
Enterprise Solutions
Portals & Application Designers
Bring SOA To the User (UI) Fat clientsFocus more Better user exp On backend services
Simple Interactions. Refer Multiple sites
Content Producers
Wide Consumer base
Web 2.0
SMB Software Software As a service Developers
Collated & Aggregated
More Online Usage potential
Rich UI
Simple, & rich, Solutions
User J2EE, enabling SOA quickstart
16
Services
Web2.0 and SOA- how similar? •
XML based
• Services over web (SOAP/REST) • Access data as XML (RSS/WSdoc-literal)
BPEL processes
Rich UI AJAX
SOAP Client http
XML
SOAP/http
web
REST
WS* RSS
Services
SAAS
Admin
Resources
Even better, Web2 can be a front for SOA.. J2EE, enabling SOA quickstart
17
Web2.0.. a front to SOA • SOA access patterns- typically only from other solutions – SOA is seen as an enterprise biz processing “backend” – The integration models for UI and service/process backends still evolving – Standards in this space (Such as SCA and SDO)
• As SOA solutions build, direct user access will be inevitable – Web2.0 opening up the space- alternate access models (direct SOA access from rich UI) – Web 2.0 very XML aware- ready processing environment – Web 2.0 access- direct SOAP access, or thru a local proxy – AJAX interactions- compose input XML, invoke service, process the returned XML
• J2EE based Design approaches and patterns for Web2.0 accessing SOA services
J2EE, enabling SOA quickstart
18
lves o v E ape Web2.0 c s d an nd t in a IT L A i er SO s J2EE f b2.0 Ent doe ling We How nab OA e E J2E d S e z i S ard Bite w r o ng F Goi
www.pramati.com
Where does J2EE fit in all these
HTTP Server
Java Clients
JMS Server
Lifecycle Handling
Asynchronous Messaging
Fail over
Load Balancing
Cluster Manager
Resource Pooling Remote Admin
Enterprise Services Webbased Administration via JMX Console Enterprise Java Applications Elsewhere
J2EE, enabling SOA quickstart
20
SFS
CORBA Clients
Persistence Management EJB Container
LDAP
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
J2EE extended.. the Stacks J2EE New Web
WS*
SOA
Portals
Web UI Components Functional Components Data Access
J2EE, enabling SOA quickstart
21
Programming Models
Web App Frameworks
J2EE extended.. the Stacks New Web
RIA, AJAX
WS*
Struts, JSF, Spring
Functional
SCA, JBI
Portal
ROR
JSP, Servlets Session Beans
Data Access
JDO/Castor, Hibernate, Entity beans, SDO
J2EE, enabling SOA quickstart
22
Spring, AspectJ
Frameworks
UI
SOA
J2EE
Where is J(2)EE Heading Apart from now.. Dropping the “2” in the name.. Integrated platforms? RIA, Richclients, AJAX
Mobile Apps
JBI, WS*
Web 2.0
SOA
Spring, Hibernate, Struts, ..
Stacks
ejb3
JEE 5
SCA & SDO standards
SCA/SDO
J(2)EE
Paradigms?
AOP? ROR?
• J2EE- a leading infrastructure platform for applications • Services in J2EE today – Foundations: Strong Web Services support, ubiquitous XML handling, and extensive enterprise integration adapters – Design patterns promote service “facades”- so, already service “oriented” – InBuilt JMS support for building async processing
• Can easily, extend a simple J2EE with standard biz processes J2EE, enabling SOA quickstart
23
J2EE.. Enabling web2.0 and SOA WebBrowsers
Web 2.0
Services/Resources over web Internet/intranet
SOA Bus Data Center Midtier
Rich UI backend
UI/Presentation
Functional Modules
Mod 1
Mod 2
IBM …
JCA
Biz logic in UI
facades JCA
UI
Database Tier J2EE, enabling SOA quickstart
24
SAP
lves o v E ape Web2.0 c s d an nd t in a IT L A i er SO s J2EE f b2.0 Ent doe ling We How nab OA e E J2E d S e z i S ard Bite w r o ng F Goi
J2EE.. And web2.0
www.pramati.com
Anatomy of a Web 2.0 Application Web 2.0 Client APIs
Services Access
Rich UI
UI Layouts
Flash? AJAX
http
JS components
Local processing (JS)
Data Handling XML
Load AJAX page
Aggregators
AJAX
SOAP
JSF?
REST
Media
Audio/Video++
RSS
Bindings
Local “flows”
JS/AJAX
Access Resources Over net
Client
Web 2.0 Portal
App Navigation
• • •
JSPs
Struts Flow
Control J2EE, enabling SOA quickstart
26
Designed per Web 2.0.. Access other net sites & services Expose RSS, REST, ++ access
J2EE support for Web 2.0 • Powerful, TAGLIB based model for encapsulating client side handling – Built into reusable serverside tags – Programming in simple JSP, with all JavaScript embedded in tags
• Web Service standards complimented by newer XML based standards – Such as SDO for data access over web and services – Enables a more integrated XML based eco system, client UI included
• J2EE getting SOA friendly- helps easier integration with Web2.0 • JSF for better web2.0. Facilitates: – Tight proxies for web2.0 fronts- for RIA – Enabling PUSH from server to clients – Maintaining state when ASYNC calls are being made – Enabling services J2EE, enabling SOA quickstart access from AJAX27 clients, thru server
What is Java Server Faces? JSF Application Architecture
J2EE, enabling SOA quickstart
28
Case: Ajax4Jsf
J2EE, enabling SOA quickstart
29
Case: ICEsoft ICEfaces
J2EE, enabling SOA quickstart
30
lves o v E ape Web2.0 c s d an nd t in a IT L A i er SO s J2EE f b2.0 Ent doe ling We How nab OA e E J2E d S e z i S ard Bite w r o ng F Goi
Bite-sized-SOA J2EE for SOA quickstart How J2EE enables quick adoption
www.pramati.com
SOA, to automate flows and services Business Processing triggered by sending form to the first dept. Form
Customer Care Dept
Order Processing
start
Mailroom 1
1
Raw Materials
Mailroom
2
Mailroom 3
3
Organization
end
6
6 Mailroom 6
Shipping
4
Mailroom
Mailroom 4
Warehouse
Form/ document
Manu facturing
Automate, across “existing” systems J2EE, enabling SOA quickstart
32
SOA adoption: Where should one start Implementation Roadmap
• Standardize and then implement? • Or, even as you standardize, start implementing?
Enterprise Architecture Team •
Build competencies
POC
• Top-down- CIO driven
• • •
– Standardize on infrastructure first – Then get each application in the enterprise to get “wired” into this infra
Strategic Alignment Delivery Model
• Bottom-up- developer driven – Start incorporating “Service orientation” into each application – Build Facades – Build processes – Ready to integrate with any SOA infrastructure J2EE, enabling SOA quickstart
Get hands around Tech Understand the platform Get Service “oriented”
Build Skills
Evolve Architecture • • •
Roadmap Platform & Standard Third Parties (B2B)
Constant Reengineering 33
Bottom-up: Service orientation is the key! • Existing applications must first “think” services – Only then can they integrate into an enterprise wide services environment
• Building “Service orientation” into applications – Think services – Extend existing applications to enable services – Build notion of processes into the applications – A localized solution, without overloading this with an organization wide SOA adoption
• Starting to solve localized problems, and get the "service orientation" into the IT organization's grassroot level is a key to a successful SOA adoption. – Get services and processes into a "point" solution first – Say, in a single full J2EE app that could eventually be a part of a Start local. Expand global. larger SOA J2EE, enabling SOA quickstart
34
J2EE, perfect..
SOA inJ2EE, layering on existing apps Process Designer
Processes (BPEL) Process Engines
schemas
XML bus
XML
Services Tools: Service Development
Services (Java/other)
Build Services (facades) and Processes onto existing J2EE applications
SOA/ESB Connectors
Legacy Apps J2EE/.NET J2EE, enabling SOA quickstart
35
J2EE solutions, to be brought into SOA.. E
C
B
App bus Services Registry
Other services
app
Local interactions Façade/WS user
Web
Leg acy
A
wrappers Inbound access
EJB Session Beans
J2EE, enabling SOA quickstart
36
Schema repository
Bottom-up: Typical missing pieces browser
1.Customization involves Java code. Even for simple process changes
AppUI
External Applications
2. Work to enable Inward requests via WS/JMS WS external access to app’s services
MVC
Biz Delegate
Service Locator
Txns
Module Level Facades
5. Leverage the new web2.0 abstractions
Fine grained Business components
SB’s
JCA
Database access
J2EE, enabling SOA quickstart
Adapters
4. No simple mechanism to get an integrated UI across apps
Security
Web Service
Legacy, SAP, DB2, etc.,
3. No simple mechanism to access services from other apps
37
The “re-engineered” Application browser
appUI
Outward requests via Web Service
Processes
(Workflow, BI, BPEL) EJB
MDB
MVC
WS
Txns
Security
Business Facades SLS Must use J2EE security and transactions
Module Level Facades
Fine grained Business components
Inward requests via WS/JMS
SB’s
Integrate lower level operations
Portlets
External Applications
Web Service
JCA
Legacy, SAP, DB2, etc.,
Database (Hibernate/EJB3.0 EB) New, to be built
Schema Rep J2EE, enabling SOA quickstart
38
The interactions • Application is now in three parts:
App B
– UI – BPEL Processes – Session Bean facades include data access
portlets
Portlets, access other BPELs
• UI- could use AJAX and/or portlets
Façade/WS
UI
user Rich/ajax
Bpel Processes
– All DB access and other internal processing (more session beans) is inside this layer
EJB Session Beans
App A
• BPEL: the embedded “process” layer – can access the session facades of this module, or can access Web Services anywhere else in the app-Bus J2EE, enabling SOA quickstart
BPEls access other services
Embed other portlets in UI
• MVC action classes accesses the functional layers • Facades are Session beans, providing the high level biz functionality
facades
app bus
– AJAX thru JSF – Portlets- access JSPs, through the MVC framework
– Either BPEL processes or Facades
bpel
Local accesses
External (app) accesses
39
Now, integrating apps becomes easier • BPEL processes essentially consist of process flow and service steps • Steps can be any service access – Services in the same application – Other processes in this application – Services or processes provided by other applications
• Additionally, a service step in a biz process could be an external Web service as well – Using the same approach for accessing legacy systems and other supply chain services
J2EE, enabling SOA quickstart
40
Othe apps
facades
External Web services Other processes
Now, the app is ready for SOA E
C
Leg acy
B
App bus Services Registry
Other services
app
A
Schema repository
app bus/ communications Façade/WS UI Bpel [AJAX, ++] Processes
EJB Session Beans
J2EE, enabling SOA quickstart
Four key parts: 2. An integrated UI 3. Biz flows in easy to view and edit form of BPEL 4. Well defined functional services as facades 5. Facades and Biz Processes by default available as Web Services
41
J2EE 1.4- inbuilt “Service” foundations • In-built Web Services support in J2EE 1.4 – Support to extend Session Beans, Message Driven Beans, servlets as web services. – Components can easily be exposed as a servicec from with-in the container environment – J2EE platform includes the complete Web Services runtime- a port component for the web and EJB containers, with SOAP/HTTP or Services JMS transports.
• Support for WS-*
Service Container Service
Implementation
Client App ESB Lib
Authorization Authentication
Encryption Dig Signature
Encryption
Trust Mgmt
Dig Signature
infra
User/Tokens Message Security Audit / Logging J2EE, enabling SOA quickstart
SECURE COMMUNICATIONS
User/Auth Repository 42
Certificate Store
In Parting..
www.pramati.com
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
J2EE, enabling SOA quickstart
44
Extending our Product/technology strengths PRODUCT EXPERIENCE
Middleware Products
Custom Product Development
CORE COMPETENCY • High quality software design and development • In depth understanding of app servers, middleware, platforms, web services PRODUCTS SERVICES • Participation in Java standards •Deep Expertise in Java, J2EE, XML and tools • Process and automated Systems that are proven to produce reliable software • India advantage
DOMAIN UNDERSTANDING
Technology Consulting
We have done it for our products. Now, extending it to help build custom products And Technology Consulting. J2EE, enabling SOA quickstart
45
Awards and Recognition Best shrink wrapped product from India – CSI Infosys Award, 2003 Entrepreneur of the year – HMA, 2003 Best product – HYSEA , 2002 Hewitt Associates Survey – Top 20 employers in India Top10 Indian software product company – NASSCOM, 2002 Globally first to be certified for J2EE™ 1.3 Invited presentation at NASDAQ by 10 select IT companies from India Best Application Server: 5-star rating by ServerWatch
J2EE, enabling SOA quickstart
46
Questions ?
www.pramati.com
rns. e t t a tiP ystems n A . erns rns in S ls Patt atte I Too P a v Ja n U A/ESB i s n er SO r Patt o f erns ns Patt o clusi Con
“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
Thank You
[email protected] http://jroller.com/page/rameshl www.pramati.com
.
J2EE, enabling SOA quickstart
49
J2EE- comprehensively enabling services •Summary: J2EE 1.4 is an umbrella framework for Web services that addresses overall Web services programming
•
JAX-RPC – – – – – –
•
model is based on JAX-RPC and EJB 2.1. It also supports Deployment model, WSDL binding and Security and provides supports to plug-in the WS-* standards easily.
•
–
– –
Transports
J2EE, enabling SOA quickstart
Standard Java API for performing registry operations over diverse set of registries Web service publication & discovery A unified information model for describing business registry content Provides multi-layered API abstractions • •
•
Handles low-level SOAP message handling Contains the API for creating and populating a SOAP messages conforming to SOAP 1.1and SOAP with Attachment specifications Used by high-level APIs (such as JAXRPC runtime) Contains API necessary for sending request-response (non-provider-model) messages
JAXR – – – – – – –
Servlet-based Web service endpoint model XML data types to/from Java types mapping WSDL to/from Java mapping JAX-RPC Client Programming Models SOAP Message Handler framework Extensible type mapping
SAAJ –
•
architecture over J2EE. The Client model is based on JAX-RPC, The server
Level 0: for UDDI Level 1: for ebXML registry/repository.
EJB 2.1 – –
Servlets, Stateless SB and MDBs can be exposed as a web service Stateless Session Bean-based Web services endpoint model •
–
Web services endpoint interface • •
50
Stateless session bean can be web services implementation (servicedefinition interface) for Stateless session bean Can implement SOAP Message Handlers for Stateless session bean based endpoint