|
SAP NetWeaver Enterprise Portal DevelopmentHere is a concise yet in-depth explanation of how to install and customize SAP Enterprise Portal from a hands-on approach, without the sales hype and repetition typical of tutorials. Differences among versions are described. These SAP Netweaver topics are linked to certification exam content and other web pages. Detailed diagrams of the underlying infrastructure accompanied by well-sequenced descriptions make the complexity easy to understand. Cross-reference tables of PCD objects and classes plainly cut through the confusion. Portal layout components are listed for quick reference.
|
SAP Enterprise Portal 6.0 SP2 Learning Maps OKP in SAP Service Marketplace |
Topics this page: | Related Topics: |
Portal Technical Consultant Certification Content IndexHere are links to exam content for the SAP C_TEP10_04s Technology Consultant SAP NetWeaver 2004s - Portal 3 hr. 40 ques. exam. and the C_TEP12_04s 3 hours 80 ques. Developer exam.
|
Portal Development Consultant Certification Content IndexHere are links to the SAP NW Portal Development classroom course TEP12 and exam content for the SAP C_TEP12_04s 3 hours 80 ques. Developer exam.
|
Product Version History
SAP purchased its Enterprise Portal (EP) technology from TopTier in 2000.
SAP EP 6.0 SP2 has reached end of maintenance (SAP Note 961629)
http://service.sap.com/ep6 Media Library
EP6 requires OS environment variables JAVA_HOME=/usr/j2sdk1_3_1_06 and $JAVA_HOME/bin in PATH |
Starting SAP Portals run as a "SAP J2EE Engine" cluster instance started by
|
Technical Walththrough
Communication among J2EE and portal apps are managed by the PRT (Portal Runtime), packaged as a J2EE Web App called the Enterprise Portal Base Component (EPBC), which provides the hosting environme for the Portal Server logical environment. The PRT Container manages deployment of portal applications Each Portal Application project consists of: Portal applications are defined by its portalapp.xml file stored in the Application Reposity Incoming HTTP requests are routed through the J2EE Dispatcher Servlet, which determines which application/project the request belongs, then checks the web.xml file in the WEB-INF of that project/application. The request is sent to the gateway servlet defined by the web.xml (servlet-class com.sap.portal.navigation.Gateway). The gateway servlet matches a url-pattern associated with a servlet-name in the web.xml: After authentication, the J2EE engine hands off the request (with a logon cookie) to the PRT dispatcher servlet (servlet-class com.sapportals.portal.prt.dispatcher.Dispatcher).
A request from an internet browser client (such as Internet Explorer or Firefox) such as:
The Request Manager (Page Builder) builds the POM (Portal Object Model) tree of all components involved in generating HTML for a request with code such as: request.getNode().getPortalNode().addChildNode(componentNode); The PRT stores its configuration settings, personalization, etc. in a Portal Content Directory (PCD) within a Portal System Database (PSD) instance "su - orapor". The Object Broker manages the creation, class loading, and dependency issues of all portal component and service objects.
|
Portal Content Directory (PCD) of Objects
The PCD is a JNDI provider. Instead of using low-level JNDI interfaces such as javax.naming.directory.DirContext, Core applications are deployed on each server node (not stored in the PCD). The PCD stores (as a collection of attributes) semantic portal objects: The PCD queries portal semantic object providers (such as iView, Page, Layout, and System) defined by attribute com.sap.portal.pcd.gl.ObjectClass aspect (environment variable in a Hashtable specifying the type of object returned) determined by the semantic object factory. The PCD is organized in a tree hierarchy of folders from this top level:
Atomoic names (such as "stocks") are looked up using a PCD Name path with a prefix:
PCD Folders are accessed by object class com.sap.portal.pcd.gl.GlContext. Within each folder are objects: Only units (semantic objects whose parent hierarchy consists only of plain folders) have ACLs and can be cached and transported. System landscape files in the PCD define connection information: Follow Portal Content Naming Conventions in SDN Portals and Collaboration > Vendor Zone > Development > Development Resources |
Business Packages and Roles
Business packages are predefined collections of role-based portal content that are often shipped with worksets which admins assign to roles. This is a key differentiator for SAP. Sample code for coding portal apps are included in the NetWeaver Developer Cockpit business package. Where is this??? Business Package for Common Parts (com.sap.pct.erp.common.erp_common) uses ERP Common. For example, the Business Package for Manager Self-Service runs on top of the HCM capability of the mySAP HR solution. Among 100+ Roles are Customer, Partner, Employee, Supplier. The Universal Worklist has four tabs: Inbox, Outbox, Resubmission, and Information. Support for the WSRP (Web Services for Remote Portals) standard defines sharing (syndicated and federated portal scenarios) for any portlet, including MS.NET. Support for the JSR 168 portlet standard means use of a common Java API. www.iviewstudio.com, SAP's portal content catalog claims to have 75 business and 15 vendor packages. Wiki features SAP Germany calls Web Editing and offers on a Consulting basis only. |
PDK
|
<application-config> PropertiesIn the DD xml, within <application-config> are properties <perperty name="startup" value="true" /> is added if the app should always be started (initialized) when the server is started. Its default is "false". <perperty name="releaseable" value="false" /> is added if the app should NOT be released (e.g., should be resident). Its default is "true".
<perperty name="PrivateSharingReference" value="?"/>
<perperty name="SharingReference" specify what ClassLoader loads into the portal app's memory space.
is specified when web services are shared/exposed to other servers. This defines "trasitive" API extensions. In EP5, this was the ShervicesReference property.
<value="com.sap.portal.navigation.navigationtaglibrary"/>
<value="com.sap.myApp"/>
<perperty name="DeploymentPolicy" value="5.0" /> specifies that resources are treated during local deployment as if it was EP50. <perperty name="ClassLoadingPolicy" value="transitive" /> is assumed for EP6 unless "5.0" specifies that definitions of the app are exported and imported by this and other apps as if it was EP50. |
Consuming External Web Services
To access external web services, the PRT generates proxies used by portal apps. For example, to make use of Google's Custom Search Engine (public search service), the portalapp.xml <services> section contains:
<service alias=GoogleSearch" name="GoogleSearch">
<service-config> properties can be programmatically accessed through the interface
com.sapportals.portal.prt.service.IServiceConfig.
This can be generated by IBM Eclipse-based wizards
within SAP's Portal Development Kit (PDK) 6.0.
A Portal Applications and objects within them
can be created from File > New > Other...
Web services configurations are stored in Central Config. Storage.
|
Exposing Web Services to Others
A portal's web services are exposed in a URL like External clients use the WSDL to prepares a SOAP request sent over HTTP. The PRT listens for SOAP requests by running the service inqmyXML parser in component com.sap.portal.runtime.application.soap.par within the inqmysoap.jar external library, an implementation of JAXM (Java XML) 1.0 API developed as JSR 067: Java APIs for XML Messaging 1.0 under Sun's Java Community Process. The portal processes the SOAP message by deserializing its information to Java objects. The portal may return a SOAP message back to the requesting client. A web service can be defined from IBM Eclipse-based wizards within SAP's Portal Development Kit (PDK) 6.0. UDDIThe service may be published to a registry of services so that they can be discovered through a industry-standard mechanism called UDDI (Universal Description Discovery and Integration).SAP's UDDI Business Registry is at uddi.sap.com.
|
Connectors and Resource Adapters
A portal application can access SAP R/3, databases (via JDBC), and other systems (such as Sibel and PeopleSoft) by making use of SAP Java Connector (JCo) technology (from thomas schuessler [tgs] at ARAsoft). JCo has been deprecated by SAP as of EP 6.0 in favor of the SAP Connector Framework based on industry JCA (J2EE Connector Architecture) standards (with JCA 1.5 support to come). The JCo library consists of the JCO.lib referencing in the Windows System32 librfc32.dll, plus jRFC11.dll (for Jco 1.1 with JDK 1.1) or jRFC12.dll (for JCo 2.0 with Java 2 and SAP 6.20+). Connectors run on the SAP J2EE Engine, not on the PRT or the portal platform. To simplify connection coding, the Connector Framework (CF) API makes use of pre-defined resource adapters to specific systems (such as SAP R/3, Siebel, etc.). Resource adapters enable use of generic connector Interfaces which includee: The JAR files containing the code of the connector are packaged into a RAR (Resource Adapter Archive) file (such as "SAPCFConnector.rar and jdbcConnector.jar) which also contain a ra.xml descriptor file. A portal ConnectorWebService can be defined to provide these interfaces.
The SAP PDK contains a Connector Framework SDK which includes the Eclipse "SAP Connector Framework Wizard" plug-in to create new connectors. Its toolbar is made visible by selecting "SAP Portal Actions" from Window > Customize Perspective > Other. The portal extracts them to the SAP J2EE additional lib folder. JAR files there are listed in the library.txt and reference.txt files which the JNDI connection factory uses to look up connectors. This DevX article describes use of Jco code to access the traditional "Hello, World" example for Web-enabling SAP -- BAPI_COMPANYCODE_GETLIST.
|
Portal Services called from WebDynPro within WebAS 6.40
Portal Services can be called from within WebDynPro apps (running within the same J2EE Engine) by using the WebDynProRuntime API com.sap.tc.webdynpro.clientserver.portal.WDPortalUtils described in Help Contents. The calling code is:
IMyPortalService portalService =
(IMyPortalService)
WDPortalUtils.getserviceReference(String ParName.ServiceName);
Enable this by adding in the "Java Build Path" The Portal Application API prtapi.jar within /irj/root/WEB-INF/portal/lib. On the portal server, add "PORTAL:sap.com/portal app name in Sharing References among "Web Dynpro References" properties.
|
Embedding WebDynpro apps within a Portal iView
As long as the WebDynpro app and EP6 are on the same URL domain, an example:
These packages are used in the WebDynproRuntime API:
WDPortalEventing.subscribe() is used with
|
HTMLB
HTMLB (HTML for Business) is, like Java AWT, a set of classes, methods, and JSP tags to display the GUI. HTMLB and EPCM are considered too heavy-weight for external-facing (public) web sites. The need for Javascript eventing is specified by a component's EPCFLevel profile property.
With Java DynPage, the first call by user invokes
dInitialization() and doProcessBeforeOutput().
onMyClick(Event event) doProcessBeforeOutput() |
Functional Testing
SOAP Test Suite???
|
Portal Performance Testing
JLin, a plug-in to SAP NetWeaver Development Studio, contain rules to perform static code checks which spot coding issues known to be of concern, such as: These rules can be exported and import as an XML file. Coding techniques known to improve performance include: APIs are known to be I/O intensive: Measure the performance of custom objects rather than the performance of core functionality provided by the package. What is the cost of typically "expensive" activities done dynamically? How does PCD GL JNDI performance degrade as more semantic portal data is stored in the PCD? The impact of a custom component can be measured by comparing its cost versus a standard component performing similar functionality. |
Tuning for Performance
|
SAP Portal Core Monitoring Points
|
SAP Portal Web Tier Monitoring Points
|
Resources
|
Related Topics:
LoadRunner
SNMP
Rational Robot
Free Training!
Tech Support
| Your first name: Your family name: Your location (city, country): Your Email address: |
Top of Page
Thank you! |