Title: Developing Portlets for WebSphere Portal Server
1Developing Portlets forWebSphere Portal Server
- Developing SAP HR ESS/MSS Portlets
Arjen Moermans amoermans_at_bowstreet.com
2The project
- Websphere Portal Project based on SAP HR
- Government project
- Employee/Management Self Service for HR
- Still in the early stages, but first portlets
have been successfully delivered
3Tool Selection
- Much functionality required could not be
delivered out of the box - Use case scenarios asked for non-standard user
interface - Manager dashboard
- Simple user interface
- Different portlet experience for different user
types - Manager vs. Employee
- Integration with other non-SAP systems (Domino,
Email, Documentum, Call Center) - Not many SAP skills
- Not many WPS skills (Click-to-Action, SameTime)
- Short time frame to deliver
- A tool was required to deliver highly customised
flexible portlets quickly for more than just SAP
HR - Bowstreet Portlet Factory for Websphere
4Custom WebSphere Portlets Made Easy
Bowstreet Portlet Factory for WebSphere is a
dedicated Portlet creation environment for
WebSphere Portal that simplifies accelerates
the development, deployment, maintenance and
reuse of custom portlets.
Bowstreet Portlet Factory extends WebSphere
Studio to more developers by dramatically
reducing the complexity of J2EE portlet
development for WebSphere Portal
5Anatomy of a Portal Portlets
Out-of-Box
- Out-of-Box Portlets provide only a fraction of
required enterprise Portal functionality
- Custom Portlet development in J2EE remains
complex and time-consuming - Portlet re-use and customization creates multiple
application code bases/complex conditional logic
Custom
- Enterprise Apps
- Legacy Apps
- Databases
- Web Services
- New Development
Other
- Web clipping portlets and portlet wizards provide
only minimal, static, application integration
- Web Clipping
- Wizard-based
6Portlet Factory Architecture
Portlet Factory integrates with the existing
WebSphere infrastructure
- Installs J2EE-compliant Bowstreet app to the
WebSphere App Server - Provides a Bowstreet plug-in into WSAD
- Deploys highly adaptive portlets to the WebSphere
Portal Server
J2EE Application
Web Services Mgmt.
WebSphere Portal
JSP, Servlet, SOAP, XSLT, XML Schema, WSDL, etc.
WebSphere Application Server
EJB, JDBC, JCA, JMS, commerce components, custom
tag libraries, etc.
Middleware
RDBMS
LDAP
Domino
ContentMgmt.
PackagedApplication
7Portlet Factory Architecture
Portlet Factory integrates with the existing
WebSphere infrastructure
- Installs J2EE-compliant Bowstreet app to the
WebSphere App Server - Provides a Bowstreet plug-in into WSAD
- Deploys highly adaptive portlets to the WebSphere
Portal Server
J2EE Application
Web Services Mgmt.
WebSphere Portal
JSP, Servlet, SOAP, XSLT, XML Schema, WSDL, etc.
WebSphere Application Server
EJB, JDBC, JCA, JMS, commerce components, custom
tag libraries, etc.
Middleware
RDBMS
LDAP
Domino
SAP
PackagedApplication
8Portlet Factory Concepts
9Portlet Factory Concepts Builders
. . . / Generated Method _pageDispatcher
Generated by builder call bc21 / public
void _pageDispatcher(WebAppAccess
webAppAccess) com.bowstreet.webapp.JSPSuppor
t.dispatch(webAppAccess) Â / Generated
Method getFlights_PagingGetImgName Generated
by builder call bc21 / public String
getFlights_PagingGetImgName(WebAppAccess
webAppAccess, String button, String position)
PagingAssistant asst (PagingAssistant)webAppAcce
ss.getVariables().getObject("getFlights_Paging")
String img button position if
((button.equals("First") button.equals("Prev"))
!asst.hasPreviousPage()) img button
"Disabled" if ((button.equals("Next")
button.equals("Last")) !asst.hasNextPage())
img button "Disabled" return
webAppAccess.getVariables().getXmlText("getFlights
_PagingButtonImages", img) Â / Generated
Method getFlights_PagingGetAction Generated
by builder call bc21 / public String
getFlights_PagingGetAction(WebAppAccess
webAppAccess, String baseAction)
PagingAssistant asst (PagingAssistant)webAppAcce
ss.getVariables().getObject("getFlights_Paging")
. . .
- Builders
- Simplify J2EE coding complexity through
graphical, wizard-like interface - Generate error-free J2EE-compliant code
automatically - Speed development up to 12x, through development
and test time savings - Automatically generate new code when inputs
change enabling free iteration and routine
maintenance
10Builders Leverage Existing IT Assets
Enterprise JavaBeans
11Portlet Factory Concepts Profiles
Role-Based Profile Example Employee Portlet
Bowstreet Portlet Factory
WebSphere Portal Server
12Portlet Factory Concepts Profiles
- Enable rapid reuse of portlets
- Ease complex evolving business requirements
- Profiles examples
- Role (Employee, Manager, Executive, etc.)
- Group (Accounting, Sales, Customer Service, etc.)
- Geography (Time Zone, Language, etc.)
- Constituency (Customer, Partner, Vendor, etc.)
- Profiles drive Builders to dynamically change
- Presentation (format, graphics, colors, etc.)
- Logic (workflow, conditions, etc.)
- Data (sources, queries, etc.)
13Domino Builders Portal-Enable Domino
14 for dynamic Domino portlets
Allow end users to create, edit, and delete
Domino Documents
15Domino Builders Benefits
- Quickly create Domino portlets without needing to
write any Java code or learn the extensive Domino
or WebSphere Java APIs - Increase Portal ROI by leveraging current
infrastructure and investments in Domino - Enable Domino developers to smoothly transition
to J2EE with a negligible amount of training - Create many, customized versions of a Domino
portlet from one portlet instance - Speed time to market by enabling business users
to configure and customize Domino portlets
16SAP Builders Portal-Enable SAP
- Rapidly create portlets that leverage any
remote-enabled SAP function or BAPI - One Builder generates
- Input form (JSP)
- Results page (JSP)
- Details page (JSP)
- Method to get data (Java)
- Schema to describe data
- Typed variables to hold data
- Paging functionality
- Supports connection pooling
- Quickly enable single sign on
- Easily customize look feel
17for dynamic SAP portlets
18SAP Builders Benefits
- Quickly create custom SAP portlets without
needing to write any Java code or learn the SAP
(JCO) or WebSphere Java APIs - Increase Portal ROI by leveraging existing
investments in SAP - Streamline business processes and increase worker
productivity by integrating multiple, disparate
systems into one composite portal dashboard or
workspace - Create many highly tailored versions of a SAP
portlet from one portlet instance - Speed time to market by enabling business users
to configure and customize SAP portlets
19Bowstreet Portlet Factory Demo
- Show some Bowstreet portlets running on Websphere
Portal Server - Bowstreet integration with Websphere Studio
Application Developer (WSAD) / Eclipse - Create simple J2EE application to explain
- Models
- Builders
- Profiles
- Deploy simple J2EE application as a WPS portlet
- Create SAP portlet using Bowstreet SAP
integration Builders - Create multiple variations of this SAP portlet
- Add Click-to-Action (C2A) functionality for
portlet to portlet communication
20Lessons Learnt
- Portlets supporting uses cases where delivered
(just) in time - Mainly due to complex environment setup
- Use case descriptions and storybooks are still
invaluable - Do not expect miracles from a tool
- Size your development hardware to support
development tools - Time waiting for your tool is time not well spend
- SAP expertise was required to get the right BAPI
and RFC interface information
21More info
- Bowstreet
- http//www.bowstreet.com
- Bowstreet Community Portal
- http//bcp.bowstreet.com
- NetInfo
- http//www.netinfo.com
- Arjen Moermans
- mailtomoermans_at_bowstreet.com
- Phone 31 653 196 121