First, a caveat that most of this is purely my opinion based on the facts found via:
- Personal experience or observation,
- Research via various sap.com web sites, and
- Discussion with other experienced people.
Most importantly, I’ll try providing some guidelines, but everyone’s requirements are unique. In addition, skill-sets and ongoing support are major factors but regardless, hopefully this may still help you come up with a candidate architecture to discuss further.
Lastly, this is a huge topic and really suited better to a discussion, hence I’ve kept explanations and details pretty lean, so a good understanding of Portal and web development is required to get through this.
SCN Community Day
This was, I believe, the 3rd or 4th Australian SCN Community Day. Most likely due to the GFC (or the fact it was a Sunday), the turnout for SCN Day was pretty small this year but as always, the discussions were great, the networking a little awkward for me (I’ve never been able to describe what I do to others) and lots to learn from each other. This was also the first year a non-SAP MC ran the show, and kudos to SAP Mentor Graham Robinson for being an excellent MC.
The sessions I attended were all great. I listened to Oliver Mayer describe all things JAVA including his views on JAVA after the Oracle acquisition of SUN (in summary – not a big deal) plus where CE fits in, and how BPM is going to be the killer app to put CE firmly on the map (I may be paraphrasing that quite a bit).
I also attended a session by Ingo Hilgefort who gave a good overview of all things Business Objects even allowing us to ask lots of dumb questions. Note – Can someone please blog a “how to create and load an sflight based Cube, make a Query, expose it in the Universe, and leverage it in Xcelsius blog” from a developer’s view?
Of course afterwards the bar was only a few metres away, so further SAP related and unrelated discussion continued from there.
So in summary, it’s definitely worth coming to if you’re thinking about it next year but it’s up to you to get as much as you can out of it.
Best Practices for External Customer Portals Session
So between Oliver and Ingo’ sessions, I ran a discussion on what best practices are for external customer portals. To clarify, I’m referring to Customer’s who log into a Portal and typically access back-end ERP data. I’m not referring to anonymously accessed web sites with published SAP data (like product catalogues, pricing or similar) as these usually have quite a different set of requirements with performance, caching and minimisation of load being pretty critical.
So with that said, I believe most Customer Portals are made up of two key components which are the framework and the content. Both are quite different in terms of what they bring, hence I broke up the best practices into two separate sections.
So here we go…
I describe the framework as what is usually the sideways L-shaped frame around a web site which contains the Information Architecture (or navigation structure) plus all the general colours and styles that define the overall look of the website. Refer to help.sap.com for a more accurate explanation.
Frameworks are very powerful for “portals” as they take care of many aspects with the most important aspect being authentication and (to a major extent) the authorisations a user has via the available menus. They are effectively the gateway to all of your content providing the navigation structure. There’s a lot to be said about them, but to simplify things on the day, the focus was on the following major factors to consider when choosing a framework:
Now assuming you’re companies strategy is to stick with SAP, my opinion is that the best choices available for building frameworks are:
Leveraging a NetWeaver Portal, or
Developing your own BSP framework.
In terms of browser compatibility, the NetWeaver Portal is quite limited unless you take responsibility for changes to quite a lot of SAP code. On the other hand, a custom BSP framework can be made to be very compatible without too much effort. That said, you’ll need to forego most of the standard BSP elements which are not usually standard compliant to achieve browser nirvana. An added benefit is if you have an extreme requirement to have no frames, then that is even a possibility if you can stay entirely within the BSP domain.
Alternatively, if you can stick to Firefox 3.0 and IE 7.0 compatibility, then Portal comes back into play. Plus if you add security as a requirement (which it should always be for external frameworks), then the Portal leaps ahead. Security for BSP is in your hands to take care of, and when you think about it, BSP usually runs directly on your main ERP and do we really want anonymous users hitting this system directly (eg. prior to authentication).
Some other things to consider are the look and feel of the web site. Portal has traditionally given you two choices: Heavy and Light framework. Heavy is typically way too heavy for Customer Portals, which left the light framework. Unfortunately, the look and usability of the light framework requires quite a few changes to make it workable. Luckily, from 7.02, the AJAX Framework Page is available for external use with Firefox and IE support and from experience, it’s pretty sweet. It’s got great caching techniques, looks good, and can be tailored quite substantially without doing any significant code changes.
Anyway, in summary, if you can limit browser compatibility, go with the NetWeaver Portal for the framework. If browser compatibility is key and you’re predominantly an ABAP organisation with very little JAVA skills, then BSP might be for you. Then again, if you have a Flex and SOA team handy and browser compatibility is critical then maybe you can go with a full Flash web site with Web Service integration (not sure how you handle authentication and trust between systems – mini Portal implementation perhaps…).
Typically Customer Portals will consist of almost static pages (like news, information, etc) and dynamic pages based on back-end data (customer information, status information, etc).
The discussion of static pages was not really the focus, but I suggest that KM is a reasonable place for this but after another year or so (maybe sooner), Web Page Composer will become an excellent tool to manage this KM content as it allows non-web developers to maintain content. Another tool I’ve seen for this is btexx easyWCM which is very powerful if your web site undergoes many regular updates.
So this brings me to dynamic content. There are numerous tools available within NetWeaver, and many ways of combining these tools. Some key areas are:
- ITS (hmm – Maybe for simple mobile portals)
So this is where it comes down to how Web 2.0 you want the web site to be, or how secure, what your companies capabilities are or want to be, etc.
Most ERP places don’t have the best JAVA skills available, but if you have JAVA skills and they are already managing your web content including managing some level of integration; then maybe this is appropriate. Picking up WD4J may not be for them but maybe you have a large CE/BPM team that can take on portal to diversify themselves!
If you’d like to remain mainly in the ABAP space, WD4A is good choice for many scenarios. It’s quite heavy, though has improved substantially with the light speed rendering. It’s secure by default. In short, I recommend this for heavy transactional portals transactions or for simply speeding up the development process, but it’s biggest issue may be that you can’t get pixel perfect websites the way a graphic designer would provide. Flash islands can also help with look, but I’d prefer recommending flash islands when you need flash like functionality. Another consideration is that this is a stateful technology which will have a larger load on your ERP system. Also, if you have a site where people will sit on a page for an hour,then click the next button, then you need a stateless approach and WD4A is not the right choice.
For pixel perfect web pages, or stateless operation; BSP is an excellent choice. All you need is to be a bit more careful about security plus have a few patterns to work with to ensure it doesn’t become a nightmare to support. Flash can also be embedded easily in BSP and the Flash can call other BSP pages to return data or perform actions in a secure manner (provided you use Logon Tickets or similar).
For me, Flex/Flash is amazing. My experience with it is pretty limited from a developer perspective, but getting BSP/HTML to look good and get signed off was so much more difficult than presenting Flash embedded content for approval (people just gravitate towards it). It’s also nearly installed everywhere now, so supportability is no longer an issue. Also, the runtime license is free which is nice to hear in the world nowdays.
Silverlight was also discussed, and although Silverlight Island support is coming in 7.02 (from memory); I believe it’s still playing catch up to Flash from a user base perspective and I’m not sure of the value proposition of choosing Silverlight over Flash unless you’re a Microsoft site.
Security and other things
- Reverse Proxies are pretty much mandatory. Deny as default.
- Error Pages should be user friendly…Factor time in to changing these and understand what you do for planned outages. Maybe if you use an Apache reverse proxy, a simple site maintenance web page can be used for this purpose.
- Consider timeouts when you have stateful applications.
- If the portal is also part of your company’s identity, then use a Visual Design company. The challenge will be for them to understand the SAP limitations so as to not force you to rewrite everything.
- Accessibility adds another dimension to this discussion as to does multi-lingual requirements.
- A little bit of flash just on the home page can make a big difference even if it’s the only flash on your website.
There is no single best practice, but if you can pull all the right requirements and considerations together, then you’re half way there to choosing your architecture. But be aware, technology is always changing, especially in the web world. The above is probably already out of date (eg. no Google Wave integration) and Customer always expect bigger, better, faster, more; so be warned.