There is growing skepticism among the developer’s community about the future of Web Dynpro Java. There is extensive talk of Web Dynpro Java being phased out by SAP. Myself being a Web Dynpro Java developer, I try to explore the possible roadmap for Web Dynpro Java developers within SAP NetWeaver, with this blog.
Business Process Management: Netweaver BPM is a java based Business process orchestrating tool available with SAP NetWeaver Composite Environment. If in the near future Java Web Dynpro is no longer the technology of choice within SAP, you will have to create a business process in a Java Stack and then create the user interfaces for that business process in an ABAP stack. This means you will need at least two technology stacks just to execute the core of a business process. This will add unneeded complexity in a solution that already is complex enough.
Based on this analysis, Web Dynpro Java can be the recommended UI for Business processes using SAP NetWeaver BPM. So, just stick to Web Dynpro Java as there is still hope within the BPM worldJ. (The above argument can be used in discussion with the customer when they ask “Why not Web Dynpro ABAP?”)
On a lighter note: BPM suites may not have any programming and would require you to use drag and drop to design process. The developers may find it unexciting. BPM actually encourages the Business managers to model process but fortunately for java developers they are too intimidated to use these tools.
User Interface technology: Rich UI frameworks have appeared as an alternative within SAP NetWeaver server, to Web Dynpro Java. For software developers who have preference towards Java based technology, they need to build their skill sets in Rich and Open (Not so open anymore) Java technologies. Even though AJAX is used within the latest Web Dynpro Java runtime, we need to understand the impact of AJAX in applications. The Web 2.0 technologies like JSF, AJAX etc. with their features of asynchronous interaction, rich UI, client footprint(for desktop like applications) and stateless applications, will serve as an alternate technology for customers who prefer a lightweight UI on top of SAP NetWeaver server. Also, it will open doors for traditional Java developers into SAP NetWeaver.
Servise Oriented Architecture (SOA): Web services have been traditionally consumed and handled by Java based applications. Web Dynpro Java in CE 7.1, 7.2 and 7.3 is well prepared to consume wide range of Web Services and Enterprise services. The seamless access to SAP ESR is an added advantage with Web Dynpro Java. If the architect proposes SOA as the paradigm (which should by now be the preferred guideline) then Web Dynpro Java within SAP NetWeaver becomes the preferred choice to develop business applications.
Web Dynpro ABAP is being prepared to consume the Web Services. It may eventually be able to handle the web/enterprise services but it will be second to Web Dynpro java in terms of maturity to handle SOA based scenarios.
Business Applications: Business applications predominently interact with enterprise systems like SAP. In general the Java based applications for SAP do not interact directly. There is usually an underlying Oracle/DB2 database which acts as a proxy to SAP data. The data from SAP is regularly moved to the underlying DB. This movement is manual and done using Excel or XML files. It definitely is not the best way to handle business data especially with respect to data redundancy and duplicity.
Web Dynpro Java with its enhanced features is the best option to interact with SAP and non-SAP systems. It interacts directly and eliminates the need to maintain an additional data copy.
IMP NOTE: The Gateway server can be used to package the business logic from the backend to be used within these Java applications. It would be beneficial for the developer community to keep an eye on Gateway server to develop applications.
Fundamentally, as it goes in life the only way to be operational is to keep learning. Enjoy learning new technologies like you did the first time you worked on Web Dynpro Java.