Application Composer Rich Internet User Interfaces for Enterprise Applications Björn Müller.

Slides:



Advertisements
Similar presentations
31242/32549 Advanced Internet Programming Advanced Java Programming
Advertisements

1 CGICGI Common Gateway Interface Server-side Programming Lecture.
Servlets Enterprise Systems Programming. Servlets  Servlets: server-side Java programs that enable dynamic processing of web-based requests  Web-based.
The Developer Perspective Michelle Osmond. Design – Requirements Gathering Sales & Research projects –Prototypes/Demos User group meetings Usability workshops.
DT228/3 Web Development WWW and Client server model.
Building New SOA and AJAX- Based Business Applications Mark Barnard R&D Manager – Natural Business Services Software AG (Canada) Inc.
February 11, 2007 Can Ajax be OS for the Browser? Kevin Hakman Co-Founder General Interface Ajax Toolkit Director, Developer Evangelism TIBCO Software.
G O B E Y O N D C O N V E N T I O N WORF: Developing DB2 UDB based Web Services on a Websphere Application Server Kris Van Thillo, ABIS Training & Consulting.
Integrating SOA and the Application Development Framework Shaun O’Brien Principal Product Manager – Oracle JDeveloper / ADF.
Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)
© 2007 IBM Corporation IBM Emerging Technologies Enabling an Accessible Web 2.0 Becky Gibson Web Accessibility Architect.
AJAX Presented by: Dickson Fu Dimas Ariawan Niels Andreassen Ryan Dial Jordan Nielson CMPUT 410 University of Alberta 2006.
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
TimeTracker 2, Take 1  Servlets Web Interface (jsp) Servlet (business logic and processing) App Engine Datastore Form Submit R/W.
Session-01. What is a Servlet? Servlet can be described in many ways, depending on the context: 1.Servlet is a technology i.e. used to create web application.
© 2006 by IBM 1 How to use Eclipse to Build Rich Internet Applications With PHP and AJAX Phil Berkland IBM Software Group Emerging.
UNIT-V The MVC architecture and Struts Framework.
CSCI 6962: Server-side Design and Programming Course Introduction and Overview.
Introduction to AJAX AJAX Keywords: JavaScript and XML
Presented by, MySQL & O’Reilly Media, Inc. Data Services: Mashing and Shredding Data Using XAware.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
JavaScript & jQuery the missing manual Chapter 11
XForms: A case study Rajiv Shivane & Pavitar Singh.
Overview of Previous Lesson(s) Over View  ASP.NET Pages  Modular in nature and divided into the core sections  Page directives  Code Section  Page.
AJAX Without the “J” George Lawniczak. What is Ajax?
SednaSpace A software development platform for all delivers SOA and BPM.
Java Omar Rana University of South Asia. Course Overview JAVA  C/C++ and JAVA Comparison  OOP in JAVA  Exception Handling  Streams  Graphics User.
COP 4991 Component Based Software Development Lecture #4 Java Web Services Onyeka Ezenwoye.
Intro to Ajax Fred Stluka Jan 25, /25/2006Intro to AjaxFred Stluka2 What is Ajax? "Asynchronous JavaScript and XML" New name for an old technique:
© 2006 IBM Corporation IBM WebSphere Portlet Factory Architecture.
Matrix Mapping Tool Sam Gross Internship at Virtual Technology Corporation.
J2EE Structure & Definitions Catie Welsh CSE 432
Ajax. –Asynchronous JavaScript and XML –Umbrella term for technologies that often: Use client-side scripting for layout and formatting Use less than full.
Lecturer: Prof. Piero Fraternali, Teaching Assistant: Alessandro Bozzon, Advanced Web Technologies: Struts–
Presentation. Recap A multi layer architecture powered by Spring Framework, ExtJS, Spring Security and Hibernate. Taken advantage of Spring’s multi layer.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
.  A multi layer architecture powered by Spring Framework, ExtJS, Spring Security and Hibernate.  Taken advantage of Spring’s multi layer injection.
INTRODUCTION TO WEB APPLICATION Chapter 1. In this chapter, you will learn about:  The evolution of the Internet  The beginning of the World Wide Web,
Asynchronous Javascript And XML AJAX : an introduction UFCEUS-20-2 : Web Programming.
the acronym for Asynchronous JavaScript and XML.
RIA and Web2.0 Development with no Coding Juan Camilo Ruiz Senior Product Manager Development Tools.
Ajax for Dynamic Web Development Gregory McChesney.
Chapter 16: Ajax-Enabled Rich Internet Applications with XML and JSON TP2543 Web Programming Mohammad Faidzul Nasrudin.
INT222 - Internet Fundamentals Shi, Yue (Sunny) Office: T2095 SENECA COLLEGE.
Google Web Toolkit Dynamic web on Java (Script) Jordan Jordanov 6 March 2008.
ZK AJAX FRAMEWORK  R.RAJESH. What is ZK?  ZK is an open-source Ajax Web application framework, written in Java that enables creation of rich graphical.
AJaX and SOA Partha Kuchana. Agenda What is AJaX Benefits & Problems AJaX & SOA AJaX architecture AJaX with No XML.
Presentation.
Meeting Scheduling System Capstone Project - Team#5 Fall2007.
AJAX Use Cases for WSRP Subbu Allamaraju BEA Systems Inc WSRP F2F Meeting, May 2006.
INFSO-RI Enabling Grids for E-sciencE Web Services Mike Mineter National e-Science Centre, Edinburgh.
JavaScript & Introduction to AJAX
INNOV-2: Build a Better Web Interface Using AJAX Chris Morgan Pandora Software Systems
 AJAX technology  Rich User Experience  Characteristics  Real live examples  JavaScript and AJAX  Web application workflow model – synchronous vs.
Expense Tracking System Developed by: Ardhita Maharindra Muskan Regmi Nir Gurung Sudeep Karki Tikaprem Gurung Date: December 05 th, 2008.
SDJ INFOSOFT PVT. LTD. 2 BROWSERBROWSER JSP JavaBean DB Req Res Application Layer Enterprise server/Data Sources.
Open Solutions for a Changing World™ Eddy Kleinjan Copyright 2005, Data Access WordwideNew Techniques for Building Web Applications June 6-9, 2005 Key.
Rich Internet Applications. 1 Spectrum of Internet Solution Simple HTML Broad Reach Browsing Oriented Content & Documents Rich Content Highly Interactive.
INNOV-16: Rich User Interface for the Web???? AJAX to the Rescue Ken Wilner VP of Technology Progress Software.
Labs: Create, deploy and test a simple web service
J2EE Platform Overview (Application Architecture)
Web Software Model CS 4640 Programming Languages for Web Applications
AJAX.
DWR: Direct Web Remoting
ApplinX Rod Carlson Senior Technical Lead.
Introduction of Week 11 Return assignment 9-1 Collect assignment 10-1
WebServices Using JAX-RPC
AJAX CS-422 Dick Steflik.
Intro to Ajax Fred Stluka Jan 25, 2006.
Remedy Integration Strategy Leverage the power of the industry’s leading service management solution via open APIs February 2018.
Presentation transcript:

Application Composer Rich Internet User Interfaces for Enterprise Applications Björn Müller

/ / 2 Software AG AJAX reach rich Desktop Applications Classical HTML Applications AJAX Rich Internet Applications

/ / 3 Software AG AJAX - No reloading of pages! Server Anwendung Seite HTML Seite HTML Seite HTML Seite HTML Server Application Seite HTML Page HTML Seite HTML Page HTML Seite HTML Page HTML Seite HTML Page HTML Seite Server Anwendung Data Page Server Application classical rich

/ / 4 Software AG AJAX Hype Level GoogleMaps Firefox 1.0 OpenAJAX Backbase, Dojo, Software AG, Tibco, Zimbra IE 6.0 JavaScript ???! JavaScript !!!? AJAX Classical Web Web 2.0 JSP / JSF Frustration

/ / 5 Software AG Dedicate d Areas Dedicate d Areas General Purpose Pages General Purpose Pages Why is AJAX important for Enterprise Applications? Enterprise Application Intranet Internet Employee‘s Desk „Reach“ is still critical! Interactivity is critical! AJAX classic

/ / 6 Software AG + = function calculate() { var v1 = document.getElementById("I1").value * 1; var v2 = document.getElementById("I2").value * 1; var v3 = v1 + v2; document.getElementById("O1").innerHTML = v3; } Using Javascript for interactive pages

/ / 7 Software AG Using Javascript for http-Communication Communication via explicit Javascript Classes  IE  Mozilla … or: Hidden Frame Communication function sendMessageToServer() { var req = new ActiveXObject(„Microsoft.XMLHTTP“); req.open(„GET“,“ req.send(„….“); } var req = new XMLHttpRequest(); Ouch!

/ / 8 Software AG DEMO

/ / 9 Software AG Productivity Aspects Browser HTML/Javascript AJAX Application Browser Compatibility Issues Javascript „Ugliness“ Missing Tool Support Control Concept Control Intergation Concept Page Modularization Bind Client Logic to Server Side Logic Client Server Communication WAN aware Roundtrips BasisChallengeGoal

/ / 10 Software AG Browser HTML/Javascript AJAX Application Browser Compatibility Issues Javascript „Ugliness“ Missing Tool Support Control Concept Control Intergation Concept Page Modularization Bind Client Logic to Server Side Logic Client Server Communication WAN aware Roundtrips BasisChallengeGoal Productivity Aspects XML layout definition High Quality Control Library Automated Client-Server Coupling Tool Support Application Composer overcomes these challenges!

/ / 11 Software AG Application Composer - The Basics A page is represented by an XML layout description The page‘s data is represented by an XML data document The UI  Renders the content of XML data document  Updates the XML data document  Sends XML data document to processing are adequate point of times The processing  Receives XML data document + event  Updates data document according to processing/business rules  Sends data document back to UI

/ / 12 Software AG Layout View – Arrangement of Controls <field valueprop="echoIn” width="200“/> <field valueprop="echoOut” width="200" displayonly="true"/> <field valueprop="echoIn” width="200“/> <field valueprop="echoOut” width="200" displayonly="true"/>

/ / 13 Software AG Processing View: Data + Events DATA: AAAAA Echo: AAAAA ______________________________________ EVENTS: onTest DATA: AAAAA Echo: AAAAA ______________________________________ EVENTS: onTest

/ / 14 Software AG Interaction Processing User Interface Processing AAAAA onTest! AAAAA Echo: AAAAA Interaction Processing

/ / 15 Software AG Mashup Integrate other AJAX UIs with complex processing behind in a simple way

/ / 16 Software AG Interaction Processing Java BPEL ???? Interaction Processing

/ / 17 Software AG Java Object AAAAA onTest! AAAAA onTest! public class TestEchoAdapter { public void onTest() { String echoIn = getXCIData().get(„echoIn“); String echoOut = „Echo: “ + echoIn; getXCIData().set(„echoOut“,echoOut); } public class TestEchoAdapter { public void onTest() { String echoIn = getXCIData().get(„echoIn“); String echoOut = „Echo: “ + echoIn; getXCIData().set(„echoOut“,echoOut); }

/ / 18 Software AG BPEL Object AAAAA onTest! AAAAA onTest! … <from expression=concat(‚Echo‘, bpws:getVariableData(‚xciState‘, ‘xdo‘‚‘/xo:xdo/xo:data/xo:echoIn‘))/> <to variable=‚xciState‘ part=‚xdo‘ query=‚‘/xo:xdo/xo:data/xo:echoOut‘) ‘/> … … <from expression=concat(‚Echo‘, bpws:getVariableData(‚xciState‘, ‘xdo‘‚‘/xo:xdo/xo:data/xo:echoIn‘))/> <to variable=‚xciState‘ part=‚xdo‘ query=‚‘/xo:xdo/xo:data/xo:echoOut‘) ‘/> …

/ / 19 Software AG Basic Structure Java Servlet Engine (Tomcat, Websphere, SAP NetWeaver, BEA, …) Application Composer Runtime Java Page Adapter BPEL Page Adapter http(s) Server Browser XML

/ / 20 Software AG And now – SOA! Business functions are offered through Web Service API User Interface Processing provides  Creating screens according to users‘ needs  Picking the Web Services and plug them behind User Interface  Defining processing logic Calling Web Services Managing Navigation Aspects Managing User Interface Controls Application Composer does all of this, of course! ;-)

/ / 21 Software AG On Top of SOA Java Servlet Engine (Tomcat, Websphere, SAP NetWeaver, BEA, …) Application Composer Runtime Java Page Adapter BPEL Page Adapter http(s) UI Processing Browser WebService Applications/ Services General Ledger General Ledger Shipping Inventory Mgmt Inventory Mgmt Mail Server Mail Server

/ / 22 Software AG On Top of SOA Registry - Repository App WebService App RPC App 3270 App xxx Workflow Runtime Governance Service Enabling Service Orchestration User Interface Business Process Management Security Communications Data Integration Development Tools

/ / 23 Software AG On Top of Natural SOA Java Servlet Engine (Tomcat, Websphere, SAP NetWeaver, BEA, …) Application Composer Runtime Java Page Adapter BPEL Page Adapter UI Processing WebService Applications/ Services Natural Application Subprogram Natural Business Services Natural Business Services Screen/ Map Processing ApplinX

/ / 24 Software AG Business Logic On Top of the SOA Stack User Interface Processing Interaction Processing Control Logic Navigation Applications / Services Web Services Web Services Application Composer Busíness Logic

/ / 25 Software AG Mapped Web Service Calling Interaction Processing Web Service Web Service XML Data of Page Input XML Output XML Request Mapping Request Mapping Response Mapping Response Mapping Mapped Web Service Call

/ / 26 Software AG Page Adapter Application Composer & Java Generated Java Base Class Implementation Class

/ / 27 Software AG Page Adapter Application Composer & Java Generated Java Base Class Implementation Class protected void wsmapped_readInboxForUsers() { // generated code... } protected void wsmapped_readInboxForUsers() { // generated code... } public void onRefresh() { wsmapped_readInboxForUsers(); MessageOutput.showMessage(„Refreshed!“); } public void onRefresh() { wsmapped_readInboxForUsers(); MessageOutput.showMessage(„Refreshed!“); }

/ / 28 Software AG Page Navigation public void onNextPage(IXCIAdapterEvent event) { DataObject params = navigate_showdetails(); params.set("creditCardNumber"," "); params.set("editMode","DISPLAY"); } public void onNextPage(IXCIAdapterEvent event) { DataObject params = navigate_showdetails(); params.set("creditCardNumber"," "); params.set("editMode","DISPLAY"); } <xciparameter paramname="editMode“ paramtype="xs:string"> <xciparameter paramname="creditCardNumber" paramtype="xs:string">... <xciparameter paramname="editMode“ paramtype="xs:string"> <xciparameter paramname="creditCardNumber" paramtype="xs:string">...

/ / 29 Software AG Application Composer & Java SDO (Service Data Object) – Simple, standardized access to XML data Henry Ford limo Taurus limo Sierra Henry Ford limo Taurus limo Sierra // create XML DataObject data = new DataObject(); data.set(„firstName“,“Henry“); data.set(„lastName“,“Ford“); DataObject car; car = data.createDataObject(„car“); car.set(„type“,“limo“); cat.set(„model“,“Taurus“); car = data.createDataObjedct(„car“); car.set(„type“,“limo“); car.set(„model“,“Sierra“); // create XML DataObject data = new DataObject(); data.set(„firstName“,“Henry“); data.set(„lastName“,“Ford“); DataObject car; car = data.createDataObject(„car“); car.set(„type“,“limo“); cat.set(„model“,“Taurus“); car = data.createDataObjedct(„car“); car.set(„type“,“limo“); car.set(„model“,“Sierra“); // readXML String fn, ln; fn = data.getString(„firstName“); ln = data.getString(„lastName“); List l; l = data.getList(„car“); for (int i=0; i<l.size(); i++) { DataObject car = l.get(i); car.getString(„type“); car.getString(„model“); } // readXML String fn, ln; fn = data.getString(„firstName“); ln = data.getString(„lastName“); List l; l = data.getList(„car“); for (int i=0; i<l.size(); i++) { DataObject car = l.get(i); car.getString(„type“); car.getString(„model“); }

/ / 30 Software AG Interaction Processing Java BPEL ???? Interaction Processing

/ / 31 Software AG Interaction Processing Java BPEL Natural Interaction Processing

/ / 32 Software AG Natural AAAAA onTest! AAAAA onTest! PROCESS PAGE USING „PAGE01“ #ECHOIN #ECHOOUT DECIDE ON FIRST *EVENT VALUE „onTest“ #ECHOOUT := „Hello: “ + #ECHOIN PROCESS PAGE UPDATE END-DECIDE END PROCESS PAGE USING „PAGE01“ #ECHOIN #ECHOOUT DECIDE ON FIRST *EVENT VALUE „onTest“ #ECHOOUT := „Hello: “ + #ECHOIN PROCESS PAGE UPDATE END-DECIDE END

/ / 33 Software AG Natural

/ / 34 Software AG Natural PROCESS PAGE 'office' WITH NAME 'offices(*).id' VALUE offices.id NAME 'offices(*).name' VALUE offices.name NAME 'zip' VALUE zip NAME 'phone' VALUE phone NAME 'fax' VALUE fax NAME 'office' VALUE office NAME 'street' VALUE street NAME 'city' VALUE city NAME 'country' VALUE country NAME 'message' VALUE message NAME 'longitude' VALUE longitude NAME 'latitude' VALUE latitude NAME 'zoomlevel' VALUE zoomlevel NAME 'infotext' VALUE infotext DEFINE DATA PARAMETER 1 offices.id (U/1:*) DYNAMIC 1 offices.name (U/1:*) DYNAMIC 1 zip (P19) 1 phone (P19) 1 fax (P19) 1 office (U) DYNAMIC 1 street (U) DYNAMIC 1 city (U) DYNAMIC 1 country (U) DYNAMIC 1 message (U) DYNAMIC 1 longitude (U) DYNAMIC 1 latitude (U) DYNAMIC 1 zoomlevel (U) DYNAMIC 1 infotext (U) DYNAMIC END-DEFINE EVENT-START DECIDE ON FIRST *EVENT VALUE 'nat:page.begin' /* add event code PROCESS PAGE UPDATE VALUE 'nat:page.end' /* add event code IGNORE VALUE 'onGetDetails' /* add event code PROCESS PAGE UPDATE VALUE 'onBack' /* add event code PROCESS PAGE UPDATE NONE VALUE PROCESS PAGE UPDATE END-DECIDE EVENT-END END

/ / 35 Software AG Runtime Java Servlet Engine (Tomcat, Websphere, SAP NetWeaver, BEA, …) Application Designer Runtime http(s) Server Browser Natural Page Adapter PROCESS PAGE USING „PAGE01“ #ECHOIN #ECHOOUT DECIDE ON FIRST *EVENT VALUE „onTest“ #ECHOOUT := „Hello: “ + #ECHOIN PROCESS PAGE UPDATE END-DECIDE END PROCESS PAGE USING „PAGE01“ #ECHOIN #ECHOOUT DECIDE ON FIRST *EVENT VALUE „onTest“ #ECHOOUT := „Hello: “ + #ECHOIN PROCESS PAGE UPDATE END-DECIDE END

/ / 36 Software AG Eclipse Page Layout Definition Page Layout Definition Design time layout.xml Natural Adapter Implementation Natural Adapter Implementation PROCESS PAGE USING „PAGE01“ #ECHOIN #ECHOOUT DECIDE ON FIRST *EVENT VALUE „onTest“ #ECHOOUT := „Hello: “ + #ECHOIN PROCESS PAGE UPDATE END-DECIDE END PROCESS PAGE USING „PAGE01“ #ECHOIN #ECHOOUT DECIDE ON FIRST *EVENT VALUE „onTest“ #ECHOOUT := „Hello: “ + #ECHOIN PROCESS PAGE UPDATE END-DECIDE END Generation of Data Structure Generation of „PROCESS PAGE … END“

/ / 37 Software AG AJAX and Natural User Interface Business Logic Application Designer Application Composer Implement UI Processing in Natural! Processing Provide WebServices for Natural functions! Natural