Nov. 12-15, 2002 Java Development Tools in Detail Joachim Jakob, SAP AG SAP Labs, LLC. SAP TechEd 2002 November 12-15, 2002 (JAVA102) / 1
Overall Java Development Infrastructure Tool Integration Platform Software Logistics (SL) Java Java Dictionary J2EE Web Dynpro Web Service DTR/CBS/SL Integration Component Build Service (CBS) Deploy Run Time J2EE Server Graphics Tool Service Layer Generic Model Abstraction Layer Local File System Design Time Repository (DTR) 2002 SAP Labs, LLC, JAVA102, Joachim Jakob 2
Learning Objectives As a result of this workshop, you will be able to: Know which development tools for Java will by offered by SAP beyond the J2EE toolset Describe how these tools fit into SAP s new development infrastructure Get a feeling of how you can work with these tools 2002 SAP Labs, LLC, JAVA102, Joachim Jakob 3
Agenda Why J2EE is not enough The Java Dictionary The idea The Type System The Database Layer Developing database objects Accessing data with SQLJ The Business Layer Web Services The Presentation Layer Web Dynpro Summary 2002 SAP Labs, LLC, JAVA102, Joachim Jakob 4
Agenda Why J2EE is not enough The Java Dictionary The idea The Type System The Database Layer Developing database objects Accessing data with SQLJ The Business Layer Web Services The Presentation Layer Web Dynpro Summary 2002 SAP Labs, LLC, JAVA102, Joachim Jakob 5
Why J2EE is not enough The J2EE programming models provides mechanisms for all aspects of business applications... User Interface Servlet + JSP as base mechanism Taglibraries Business logic Development and deployment of enterprise Java beans (EJB) Session Beans Entity Beans Java persistence J2EE Container managed persistence (CMP) Dynamic database access using JDBC Presentation layer Servlet, JSP Business layer Session Beans Entity Beans JDBC Database layer 2002 SAP Labs, LLC, JAVA102, Joachim Jakob 6
Why J2EE is not enough but the J2EE programming model is not sufficient for SAP s needs! Platform independence Support for several databases Support for different browsers Cross-platform development (Java, ABAP) Performance Large-scaled applications require a very efficient database layer Efficiency in development Lack of higher levels of abstraction Lack of efficient development infrastructure SAP has to support higher-level programming models SAP has to provide a highly productive development infrastructure 2002 SAP Labs, LLC, JAVA102, Joachim Jakob 7
Agenda Why J2EE is not enough The Java Dictionary The idea The Type System The Database Layer Developing database objects Accessing data with SQLJ The Business Layer Web Services The Presentation Layer Web Dynpro Summary 2002 SAP Labs, LLC, JAVA102, Joachim Jakob 8
Java Dictionary The Idea Content exists independent of program code Describe content outside of program code Generate programming language specific access layer Usage of content description in declarative programming environments (Web Dynpro, Web Services, Persistence Frameworks) Content has many aspects Extend content description with framework specific information Generate appropriate interfaces for different scenarios, e.g. Metadata interface (e.g. field length in Web Dynpro) UI Service interfaces (e.g. field labels, value help,...) Use standards for content description XML Schema is the recommended type system for Web Service description XML Schema is the supported type system of SAP s Interface Repository 2002 SAP Labs, LLC, JAVA102, Joachim Jakob 9
Java Dictionary Simple Type example SimpleType Core datatype information Restriction base Restriction base Restriction base Constraints UI related information Database related information Web Service related information <simpletype name='airline'> <restriction base='string'> <maxlength value='3'/> <enumeration value='lh '/> <enumeration value='ua '/> <enumeration value='aa '/> </restriction> <annotation> <fieldlabel value='airline'/> <col_label value='airline'/> </annotation> <annotation> <notnull value='true'/> </annotation> </simpletype> 2002 SAP Labs, LLC, JAVA102, Joachim Jakob 10
Java Dictionary Simple Type example 2002 SAP Labs, LLC, JAVA102, Joachim Jakob 11
Java Dictionary Simple Type example 2002 SAP Labs, LLC, JAVA102, Joachim Jakob 12
Java Dictionary Simple Type example 2002 SAP Labs, LLC, JAVA102, Joachim Jakob 13
Java Dictionary Simple Type example 2002 SAP Labs, LLC, JAVA102, Joachim Jakob 14
Java Dictionary - The Type System DataType ScalarType ComplexType BuiltinType SimpleType Structure List FlatStructure User-defined Type Abstract Type 2002 SAP Labs, LLC, JAVA102, Joachim Jakob 15
Java Dictionary Services attached to datatypes Classification Value Services Text Services Other Services Service Format / Parse Validate Simple value sets Complex value sets History Default value Field label Column label Value description Quick info Help texts / documentation Metadata Access Parameters Data Source, Locale Data Source Data Source, Locale Data Source, Locale Locale, Sector,... Locale, Sector,... Locale, Sector,... Locale, Sector,... Locale, Sector,... Locale, Sector, 2002 SAP Labs, LLC, JAVA102, Joachim Jakob 16
Java Dictionary Benefits Datatypes can be used in all layers of application development Enhance portability of application development regarding Development platform (Web Dynpro for ABAP, Java,.Net) Database platform Central source of definition Reuse Central points for extension/modification Services are attached centrally Seamless integration into Java development infrastructure Java IDE based on Eclipse Local, component-based development process Fits well into declarative frameworks like Web Dynpro 2002 SAP Labs, LLC, JAVA102, Joachim Jakob 17
Agenda Why J2EE is not enough The Java Dictionary The idea The Type System The Database Layer Developing database objects Accessing data with SQLJ The Business Layer Web Services The Presentation Layer Web Dynpro Summary 2002 SAP Labs, LLC, JAVA102, Joachim Jakob 18
Database Layer - Requirements Support for several RDBMSs Platform-independent access to data Platform-independent definition of database objects Performance Caching of data Caching of statements SQL trace Fit into local development process Definition and deployment of database objects Checked usage of database objects Support for relational persistence as well as for object relational persistence 2002 SAP Labs, LLC, JAVA102, Joachim Jakob 19
Database Layer Open SQL for Java Java program Relational Persistence Object Relational Persistence unchecked SQL Open SQL/ Native SQL Open SQL/ JDBC Open SQL/ SQLJ Open SQL Engine SQL Processor DB access layer EJB CMP JDO Table buffer Table catalog Statement cache portable SQL Vendor JDBC Open SQL for Java SQL trace RDBMS 2002 SAP Labs, LLC, JAVA102, Joachim Jakob 20
Database Layer Support for database objects Development tool integrated into IDE DB platform independent maintenance of database objects Database tables Indexes Database views For very limited scenarios it should be possible to bypass DB platform independence Fieldtypes can bound to datatypes of the Java Dictionary Generation of deployment information and runtime objects Deployment of DB objects based on deployment information Analysis of existing DB catalog Generation of DDL-Statements DB table conversion if necessary Catalog Reader for Open SQL for Java layer 2002 SAP Labs, LLC, JAVA102, Joachim Jakob 21
Database Layer Support for database objects Designtime Build Phase Deployment Eclipse Based IDE Project Browser Table/index editor Checker Build Server Archive Pool Deployment Tools: SDM Dictionary Deployment Tools Designtime Repository DB 2002 SAP Labs, LLC, JAVA102, Joachim Jakob 22
Database Layer Definition of DB tables 2002 SAP Labs, LLC, JAVA102, Joachim Jakob 23
Database Layer Definition of DB tables 2002 SAP Labs, LLC, JAVA102, Joachim Jakob 24
Database Layer Definition of DB tables 2002 SAP Labs, LLC, JAVA102, Joachim Jakob 25
Database Layer SQLJ (embedded SQL) Test.sqlj String from, to, conn_id; String carr_id; #sql { SELECT CITYFROM, CITYTO FROM SFLIGHT INTO :from, :to WHERE CARRID = :carr_id AND CONNID = :conn_id }; SFlight.dbtable FieldName IsKey Type Length CARRID True Airline 3 CONNID True String 4 FLDATE True Date... System.out.println (from + ", " + to); Editing SQLJ sources Features of standard Java source editor SQLJ-specific features, e.g. syntax coloring of SQL-blocks Debugging of SQLJ sources Setting of breakpoints in SQLJ source Display of SQLJ source instead of Java source in Debugger Step by step debugging (step over single sql-statement) 2002 SAP Labs, LLC, JAVA102, Joachim Jakob 26
Database Layer SQLJ (embedded SQL) Test.sqlj String from, to, conn_id; String carr_id; #sql { SELECT CITYFROM, CITYTO FROM SFLIGHT INTO :from, :to WHERE CARRID = :carr_id AND CONNID = :conn_id }; SFlight.dbtable FieldName IsKey Type Length CARRID True Airline 3 CONNID True String 4 FLDATE True Date... System.out.println (from + ", " + to); SQLJ Translator SAP SQLJ Checker SAP-specific SQLJ checker Uses database object metadata instead of not database catalog IDE integration of SQLJ checker Display of translation errors (-> SQL syntax errors) Navigation to error position in coding 2002 SAP Labs, LLC, JAVA102, Joachim Jakob 27
Database Layer SQLJ Tool support 2002 SAP Labs, LLC, JAVA102, Joachim Jakob 28
Database Layer SQLJ Tool support 2002 SAP Labs, LLC, JAVA102, Joachim Jakob 29
Database Layer SQLJ Tool support 2002 SAP Labs, LLC, JAVA102, Joachim Jakob 30
Agenda Why J2EE is not enough The Java Dictionary The idea The Type System The Database Layer Developing database objects Accessing data with SQLJ The Business Layer Web Services The Presentation Layer Web Dynpro Summary 2002 SAP Labs, LLC, JAVA102, Joachim Jakob 31
Business Layer The Web Service Paradigm Service Discovery Service Publication Service Directory UDDI WSDL XML/ SOAP HTTP Service Requestor Service Invocation Service Provider 2002 SAP Labs, LLC, JAVA102, Joachim Jakob 32
Business Layer Web Service Development WS Development IDE WS Usage IDE WS Definition Virt. Endpoint Configuration Publish UDDI Lookup Proxy generation Generate WS Endpoint (e.g. EJB) Checkin DTR Get definition WS Proxy Checkin WS Client WS Server SAP Web AS Deploy WS Client SAP Web AS WS Endpoint SOAP Framework SOAP SOAP Framework WS Client 2002 SAP Labs, LLC, JAVA102, Joachim Jakob 33
Business Layer Web Service Toolset Tools for Web Service definition Web Service creation wizard Virtual endpoint definition Tools for calling Web Services Browsing of UDDI directory Client proxy generation Efficient development process Server configuration UDDI publishing Web Service build and deployment Web Service test environment 2002 SAP Labs, LLC, JAVA102, Joachim Jakob 34
Agenda Why J2EE is not enough The Java Dictionary The idea The Type System The Database Layer Developing database objects Accessing data with SQLJ The Business Layer Web Services The Presentation Layer Web Dynpro Summary 2002 SAP Labs, LLC, JAVA102, Joachim Jakob 35
Presentation Layer - Web Dynpro Improve User Experience through a "High Fidelity Web UI" browser based frontend, zero footprint flicker-free screen, minimal refreshs client-side dynamics minimal response times personalization of the user interface 508 accessibility compliance Web Dynpro Tools Web Dynpro Meta-Data Web Dynpro Runtime.NET J2EE ABAP Deliver an Enterprise Quality Web Development Environment minimize coding, maximize design support reuse of components support web services and data-binding separate layout and programming logic Achieve Independence... from platform from UI technology 2002 SAP Labs, LLC, JAVA102, Joachim Jakob 36 Multi Device Internet
Presentation Layer Web Dynpro Toolset Key features Complete toolset based on Eclipse IDE Graphical design of view composition and navigation flow WYSIWYG view designer Standard Java editor for implementing event handlers Efficient development cycle (edit build deploy run) 2002 SAP Labs, LLC, JAVA102, Joachim Jakob 37
Demo Demo 2002 SAP Labs, LLC, JAVA102, Joachim Jakob 38
Agenda Why J2EE is not enough The Java Dictionary The idea The Type System The Database Layer Developing database objects Accessing data with SQLJ The Business Layer Web Services The Presentation Layer Web Dynpro Summary 2002 SAP Labs, LLC, JAVA102, Joachim Jakob 39
Summary Extended SAP J2EE programming model Presentation Layer Servlet JSP Web Dynpro Java Dictionary Business Layer Session Beans Entity Beans JDBC Business Layer Web Services JDO SQLJ Open SQL Datatypes Schema SAP supports standard J2EE In addition SAP supports higher-level programming models 2002 SAP Labs, LLC, JAVA102, Joachim Jakob 40
Summary The Java Dictionary provides a uniform datatype system for all layers of business applications The Java Dictionary allows the definition and deployment of platform-independent database objects Tool support for SQLJ enables checked access to data from relational database tables Benefit from the active information market using the Web Service toolset Web Dynpro is the toolkit for rapid user interface development 2002 SAP Labs, LLC, JAVA102, Joachim Jakob 41
Questions? Q&A 2002 SAP Labs, LLC, JAVA102, Joachim Jakob 42
Feedback Please complete your session evaluation and drop it in the box on your way out. Be courteous deposit your trash, and do not take the handouts for the following session. The SAP TechEd 02 New Orleans Team 2002 SAP Labs, LLC, JAVA102, Joachim Jakob 43
Copyright 2002 SAP AG. All Rights Reserved No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of SAP AG. The information contained herein may be changed without prior notice. Some software products marketed by SAP AG and its distributors contain proprietary software components of other software vendors. Microsoft, WINDOWS, NT, EXCEL, Word, PowerPoint and SQL Server are registered trademarks of Microsoft Corporation. IBM, DB2, DB2 Universal Database, OS/2, Parallel Sysplex, MVS/ESA, AIX, S/390, AS/400, OS/390, OS/400, iseries, pseries, xseries, zseries, z/os, AFP, Intelligent Miner, WebSphere, Netfinity, Tivoli, Informix and Informix Dynamic ServerTM are trademarks of IBM Corporation in USA and/or other countries. ORACLE is a registered trademark of ORACLE Corporation. UNIX, X/Open, OSF/1, and Motif are registered trademarks of the Open Group. Citrix, the Citrix logo, ICA, Program Neighborhood, MetaFrame, WinFrame, VideoFrame, MultiWin and other Citrix product names referenced herein are trademarks of Citrix Systems, Inc. HTML, DHTML, XML, XHTML are trademarks or registered trademarks of W3C, World Wide Web Consortium, Massachusetts Institute of Technology. JAVA is a registered trademark of Sun Microsystems, Inc. JAVASCRIPT is a registered trademark of Sun Microsystems, Inc., used under license for technology invented and implemented by Netscape. MarketSet and Enterprise Buyer are jointly owned trademarks of SAP AG and Commerce One. SAP, SAP Logo, R/2, R/3, mysap, mysap.com and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP AG in Germany and in several other countries all over the world. All other product and service names mentioned are trademarks of their respective companies. 2002 SAP Labs, LLC, JAVA102, Joachim Jakob 44
Copyright 2002 SAP AG. Alle Rechte vorbehalten Weitergabe und Vervielfältigung dieser Publikation oder von Teilen daraus sind, zu welchem Zweck und in welcher Form auch immer, ohne die ausdrückliche schriftliche Genehmigung durch SAP AG nicht gestattet. In dieser Publikation enthaltene Informationen können ohne vorherige Ankündigung geändert werden. Die von SAP AG oder deren Vertriebsfirmen angebotenen Softwareprodukte können Softwarekomponenten auch anderer Softwarehersteller enthalten. Microsoft, WINDOWS, NT, EXCEL, Word, PowerPoint und SQL Server sind eingetragene Marken der Microsoft Corporation. IBM, DB2, DB2 Universal Database, OS/2, Parallel Sysplex, MVS/ESA, AIX, S/390, AS/400, OS/390, OS/400, iseries, pseries, xseries, zseries, z/os, AFP, Intelligent Miner, WebSphere, Netfinity, Tivoli, Informix und Informix Dynamic ServerTM sind Marken der IBM Corporation in den USA und/oder anderen Ländern. ORACLE ist eine eingetragene Marke der ORACLE Corporation. UNIX, X/Open, OSF/1 und Motif sind eingetragene Marken der Open Group. Citrix, das Citrix-Logo, ICA, Program Neighborhood, MetaFrame, WinFrame, VideoFrame, MultiWin und andere hier erwähnte Namen von Citrix-Produkten sind Marken von Citrix Systems, Inc. HTML, DHTML, XML, XHTML sind Marken oder eingetragene Marken des W3C, World Wide Web Consortium, Massachusetts Institute of Technology. JAVA ist eine eingetragene Marke der Sun Microsystems, Inc. JAVASCRIPT ist eine eingetragene Marke der Sun Microsystems, Inc., verwendet unter der Lizenz der von Netscape entwickelten und implementierten Technologie. MarketSet und Enterprise Buyer sind gemeinsame Marken von SAP AG und Commerce One. SAP, SAP Logo, R/2, R/3, mysap, mysap.com und weitere im Text erwähnte SAP-Produkte und -Dienst-leistungen sowie die entsprechenden Logos sind Marken oder eingetragene Marken der SAP AG in Deutschland und anderen Ländern weltweit. Alle anderen Namen von Produkten und Dienstleistungen sind Marken der jeweiligen Firmen. 2002 SAP Labs, LLC, JAVA102, Joachim Jakob 45