Engaging User Interfaces with Adobe Flex
Over the last year I have met with many SAP developers within SAP, with SAP partners and customers and talked about user interface technologies. Clearly the web wide trend of Rich Internet Applications is reaching into the enterprise. An increasing number of SAP customers implement custom web applications on top of the SAP backend infrastructure. Developers sometimes question the need for compelling, visually engaging UIs, yet the UI is critical to successful user adoption and productivity. Take for example Philips Lighting who teamed up with Apollogic to build innovative and easy-to-use UIs with Adobe Flex connected to their SAP CRM system. They were able to streamline the number of clicks and made daily activities like pricing updates intuitive and fast to execute. The overwhelming positive feedback from the end users (mainly in sales and marketing) and the short development time of the original project convinced them to expand the usage of Flex to additional SAP applications. If you are attending SDN Community day in Munich you will be able to talk to Sirko Pelzl from Apollogic about this interesting project and his experience with Flex.
But I am getting ahead of myself. You might still wonder what Adobe Flex is all about. Flex is a development framework which enables developers to build applications which can be executed in the Flash Player. Yes, that is the same Flash Player which is too often abused for these terrible “skip intro” web pages. However the Flash Player is in fact at the core of a vibrant ecosystem of technologies that provide rich user interfaces, networking, data management, scripting, security and plug-and-play access to enterprise servers with desktop-like performance. The Flash Player is installed on 98% of all PC’s in the world (Windows, Mac OS and Linux) and Flex developers can leverage this client runtime to run their rich user interfaces consistently across platforms and browsers. The Flex product family consists of the Flex SDK and Flex Builder and is further complemented by LiveCycle Data Services. The Flex SDK (similar to the JDK) which is open source and freely available provides the necessary component libraries and Flex compiler to compile Flex applications (which are typically a mixture of MXMLActionScript) into the Flash byte code which is executed in the Flash Player. If you are looking for an advanced IDE to develop Flex applications you should consider Flex Builder (which is based on Eclipse) and provides code and design views including code hinting, debugging and component management. If you are writing applications which require a lot of data transfer between server and client you should also consider LiveCycle Data Services which provide advanced data management capabilities to facilitate communication between server and client. LiveCycle Data Services is implemented as a Java server application which can be deployed on SAP Web AS or other J2EE compliant app servers.
So your next question might be how Flex integrates with SAP applications. As usual in the SAP universe there is no single answer to this, but there are actually many options available. When I talked to a number of SAP customers who use Flex today it became clear that depending on the SAP version and the specific application needs various integration methods are successful. The easiest way to connect your Flex app with SAP is via Web Services and leveraging eSOA. The latest SAP applications based on NetWeaver either provide Web Service interfaces out of the box or Web Services can be enabled from BAPIs and RFCs via simple configuration. There are many Blogs and papers on SDN which cover this subject. Since the Flash Player is a “Service Oriented Client”, it has a Web Services communication stack build in which can be used by Flex applications to communicate directly with the SAP backend. As you probably know Web Services come with a certain communication and processing overhead (SOAP envelope XML marshalling/unmarshalling). If your application requires large data sets (tables with 1000s of rows) to be communicated between client and server you should consider Flex remoting, which establishes a binary connection between a Java API and the Flash Player. On the backend you will need to expose the SAP BAPI or RFC as a Java API using the SAP Java Connector. These Java APIs can then communicate via LiveCycle Data Services directly with the Flex application running in the client. In this case you have a high performing end-to-end binary data connection. Check out James Wards performance benchmarks on this subject. The Spanish lens manufacturer Indo used this setup for a Flex product configuration application connected to their R/3 backend. LiveCycle Data Services also support real-time messaging protocols and integration with JMS, enabling data to be pushed from the server into the client without the need of constant refreshes.
For this year’s SAP Community Day and SAP TechEd in Las Vegas and in Munich we have collaborated with SAP on a number of Flex related developer activities. At the Community Day we are offering a two hour Flex hands-on workshop. Dan McWeeney and Ed Hermann, the winners of last year’s demo jam will provide their perspective on Flex and lead through some hands-on exercises. Additionally we will have experts who implemented Flex apps on top of SAP join us to share their experience (Andreas Tan from Adobe IS in Las Vegas and Sirko Pelzl from Apollogic in Munich). Make sure you register for Community Day right away so that you can take advantage of this exclusive opportunity. Did I mention we will give away Flex books as well? Adobe will also have a booth with dedicated demo stations for Flex and SAP Interactive Forms by Adobe.
I am looking forward to see you at SAP Community Day and SAP TechEd and am excited to be part of an user interface improvement revolution which will benefit the SAP ecosystem.
In the meantime here are some great Flex resources: