Already last year Hasso Plattner had a lecture at his “Hasso Plattner Institute” (HPI) about the so called composite applications, applications “that sit on other applications” as he said, with no own data storage.
He gave an overview of what composite applications are and illustrated this with the example of Duet, a joint project of Microsoft and SAP to integrate Microsoft Office and SAP applications. I would say this is more an example of an integration of two systems than an example of a composite application, but at least it shows how relatively easy applications can be built with the help of standardized services, on top of web-based platforms (NetWeaver and .Net).
Technically an integration has always been possible Plattner outlined, but nowadays it is easier because of the standardized protocols (e.g. SOAP) and the systematization of application integration.
Nevertheless, there are some issues to consider when composite applications are built (and just as well when systems are integrated):
- User-experience consistency: which UI-guideline is to use, e.g. that of Microsoft or that of SAP?
- Data model overlaps: the data of which system is to use, when there are overlaps?
- Process overlaps: every software has some functionality, perhaps overlapping with other systems, and will obtain new functions in the future. So only the core-processes have to be combined.
- Joint configuration: to stay in the example of Duet: MS Office has extensive configuration options, and there are thousands of customizing tables in SAP. To bring the two systems together the configuration has to match.
- Life-cycle synchronization: every software has a release-cycle, perhaps one system changes and the other does not change accordingly.
Finally, as he likes to do very often, Plattner brought an example from the automotive industry, pointing the way for the software industry: in earlier days there were radios with their own brand in cars, nowadays the radios have the “user-interface” of the cars, but the car-manufacturers still don’t produce radios on their own. This would also occur in software-industry, Plattner predicted, software would consist of services (= components) of different manufacturers, and there would be a consistent UI on top the respective application-suite.
A video of the lecture (in German) can be found here:
Technorati: sap blogger
I played around with the first beta-versions of WebDynpro Java (WDJ) already some years ago, now that NetWeaver 2004s (AS ABAP 7.0) is available I also had the chance to go in for WebDynpro ABAP (WDA). This is the version we will probably work the most with, as it doesn’t need a separate runtime environment, is directly integrated into the ERP-system and thereby makes developing business applications based on ERP-functionality much easier.
I am approaching the topic by working through the book “Web Dynpro for ABAP” by Ulli Hoffmann, which treats the subjects with hands-on examples, various source-code excerpts and screenshots rather than abstract descriptions.
The WebDynpro-framework, development tools and runtime environment apparently bring a lot of advantages to (web-)application developers (and users):
- Declarative and graphical tools speed up the development of UIs
- The MVC-model leads to a clear separation of layout and business-logic
- Data-binding makes it easier to bring the data to the frontend and enables automatic type-checking
- The componentization-options allow reuse on the presentation-level of applications
- The runtime generates highly interactive, “flicker-free” screens running within a standard-browser
But I have to say that I also like programming BSP‘s with HTMLB and the MVC-model very much. This concept has most of the mentioned advantages too, but offers more flexibility I would say, especially when it comes to dynamically generating screens or parts of screens. WebDynpro becomes slightly complex there.
Those are also good starting-points to WebDynpro ABAP (besides the mentioned book):
Technorati: sdn blogger
This article from Sun gives a nice overview of the various possibilities a software developer has if he wants to incorporate AJAX-functionality into his application.
In short, the options are:
- Do it yourself, when you need fine-grained control over your web application’s AJAX functionality.
- Use a client-server framework (e.g. Ajax4jsf), when you want to take advantage of tools such as the Sun Java Studio Creator IDE to build web applications by dragging and dropping components, or if you’re already using JavaServer Faces technology to build web applications.
- Go remote (e.g. with Direct Web Remoting), when you have business logic in server-side Java objects that you want to use to process AJAX requests.
- Go all Java technology (e.g. Google Web Toolkit), when you want to develop AJAX-enabled applications using the Java programming language exclusively.
Markus Eisele did an interesting speech at the W-JAX conference last year about “Chances and Risks of AJAX in Enterprise Applications”.
Here you can find the presentation:
Unfortunately it’s only available in German, so I try to give you the key-points in the following.
First, Markus described the characteristics of (inter-)”enterprise” applications, compared to e.g. public web-applications like flickr or Google:
- Instrument for business performance
- Robustness and reliability
- Cost-effectiveness (TCO)
- Performance requirements
- Handling of mass data
- Proven tools, methodologies and software-architectures for software-development (e.g. MVC)
Concerning all this, a new technology like AJAX offers some chances but also some challenges, namely:
- Heterogeneous client-infrastructure (PCs, hand-helds, kiosk-systems, …)
- Danger to do business-logic within the presentation layer
- AJAX is there to increase usability, but it not always does (print web-page, bookmarking, browser back-button, …)
To encounter those challenges, Markus recommended the server-side development and generation of AJAX-code within standardized frameworks like J2EE/JSF or .Net. As suitable areas to use AJAX within enterprise apps he identified:
- Asynchronous loading/update of worklists within workflow-systems
- Complex forms (dynamic loading of page-fragments instead of clicking through a lot of pages)
- Dynamic, on-demand loading of data-records for tree-structures and similar
- Client-side sort and filtering of datasets
- Automatic text-completion in input-fields (e.g. Google Suggest)
He finished with a quote from Ray Valdes (Gartner):
“The bottom line is it [AJAX] can result in an
improved user experience, which offers
significant business value, but that is not
automatic. Many developers will do what they
always do—they don’t understand user-centric
design. We’ve seen this with Java applets.
We’ve seen this with Flash.”
You can find a nice reference list here.
A few weeks ago Hasso Plattner, co-founder and former board member of SAP, did a lecture at the “Hasso-Plattner-Institut” at the university of Potsdam, an institute for IT systems engineering he founded and is financing. The topic was “Design and Innovations in Enterprise Applications”, you can find the full version of the speech here and the highlights here.
In his lecture he made some interesting notes about SOA and Gartner calling it “the next big thing”: SOA would surly be a good concept and will be widely adopted (if it not already is), but there would be no “plug and play” or “putting lego-bricks” together, believing this he noted would instead be “the next big trap”. “We can do more”, but nevertheless complexity of software systems would increase, like seen in other disciplines of engineering (e.g. cars or airplanes).
Other parts of the speech focused on “people-centric design” and the ignorance of engineers towards the needs of users or consumers. Concerning this he brought the example of German car-vendors that disregarded the need for coffee-cup holders in cars for the American market for a long time.
It’s always nice to hear someone like him, with such a big experience, insight and passion for the software industry, no matter if you agree with all aspects or not.
SAP’s Java-based application server (AS Java) is the first one that passed Sun’s Java EE 5 certification process (except Sun’s own product, certainly).
I think this is quite remarkable, as SAP is a relatively new player in the J2EE-market compared to e.g. IBM, Bea and especially Oracle, which continues to claim that SAP’s software is closed and proprietary. This is in fact true for the core ERP-system, but SAP’s customers also have the possiblity today to build custom applications on a open and standards-based platform (NetWeaver and AS Java). And that should become easier with the new Java EE 5 standard, especially for web-services and Enterprise Java Beans (EJBs).
SAP itself also builds more and more software-components on the new platform (e.g. Portal, xApps), and perhaps, some day, the whole SAP business software will be Java-based… But this will surely take some time…
UPDATE: as Vince Kraemer noted, not SAP but a Korean company called “Tmax Soft” was the first to pass the Java EE 5 certification with their application server.
Google released a new version 1.1.10 of their AJAX- and Java-based Google Web-Toolkit (GWT), which fixes some bugs.
Besides, a fist book on GWT is available from the Pragmatic Programmers.
(from Ed Burnette’s Dev Connection)
Ed Burnette appreciates Erich Gamma‘s achievements in his interesting recent blog post “A pattern of succes“. “Gang of Four” design patterns, unit testing, Eclipse – all this is asscociated to the name Erich Gamma. So it is really just logical to count him among “The People Who Shape Technology”.