Tools to Develop New Linux Applications
IBM Software Development Platform Tools for every member of the Development Team Supports best practices in Software Development Analyst Architect Developer Tester Deployment Manager Model, simulate and monitor business processes Model applications and data Construct, program, and generate code Design, create, and execute tests Configuration Management Performance Monitoring Project Manager Follow a common process Track project status Manage requirements Manage change and assets Manage quality 2
IBM Software Development Platform Let's focus on the Developer First Analyst Architect Developer Tester Deployment Manager Model, simulate and monitor business processes Model applications and data Construct, program, and generate code Design, create, and execute tests Configuration Management Performance Monitoring Project Manager Follow a common process Track project status Manage requirements Manage change and assets Manage quality 3
Fundamental Change: Eclipse Individual Tools Integrated Tools Tool A Tool D Tool B Tool A Tool B Tool C Tool D... Tool E Tool E Tool C Tool... Tool... Open Source (www.eclipse.org) Challenges: Each task requires different tool Multiple repositories Multiple skills required for each tool Different look and feel Different semantics Difficult to manage Duplicate functions Benefits: Tools integrated on open source platform Consistent User Interface Same semantics Supports multiple roles Common Repository between all tools Pluggable tools framework Integrated Test Environment 4
Eclipse Momentum and Success Continues To date over 18 Million download requests, Over 90 Terabytes of data This does not include data from over 30 mirror sites worldwide Site continues to see days with downloads in excess of 10,000 Over ~880K developers, companies, or organizations from over 125 countries IBM Strategic Directions (Announced March 2004) The entire Software Development Platform will be Eclipse based 1. Makes it easier for developers to link any of the tools in Software Development Platform 2. Tight integration at the metadata level regardless of platform (Windows, Linux, Unix) Eclipse Directions New Eclipse Version 3.0 released in June 2004 Eclipse.org moved to Eclipse Foundation According to developer surveys Eclipse is now the most frequently used developer tool 5
Rational Application Developer Advantages IBM Software Tools (plug-ins) Partner Middleware Tools (plug-ins) Developer Freedom of Choice Web Task-Oriented Development Tools ("Perspectives") Java J2EE XML Web Debug Server... Services Rational Application Developer Extensible, Integrated Tooling Infrastructure with Common Services Many Others Rational Application Developer - Role Based Development Common Desktop and Help Common User Interface Common Source Code Mgmt Common Repository Common Project View Plug-In Services Open Source Tooling Eclipse 6
Rational Application Developer - The Facts Consistent User Interface All tools have same GUI and support Perspectives, Views, Editors Productivity! Developer integration Easy to move between roles Reduced learning / training HTML EJB Enterprise Common repository between tools Team development Versioning and source control across tool families Easy sharing and reuse of components Pluggable tools framework Third party plug-ins may be added Rapid adoption of new technologies into the same framework Integrated Test Environment Unique productivity enhancement Local or remote 7
Demo: On Demand Insurance Company WebSite Basic Insurance information Quotes on Insurance Previous quotes ODIC Database customer table Customers On Demand Insurance -------------------- Web Application quote table heatsource Table material Table dwellingtype Table 8
Rational Application Developer Support for Web User Interface Contruction Visual Site Layout Tools Web Diagram Editor Drag and Drop Components web client construction supporting range of web client technologies HTML, JSP, Servlets Struts JSF SDO 9
Simplifying J2EE Development with Rational Application Developer Rational Application Developer Introspect Introspect JSF Automatically Link SDO Database Drag and Drop Association of JSF and SDO Components 10
JSF and SDO Interactions Client Devices Server UI Components Implemented in Rational Application Developer as Code Behind Render Text Box Event Listeners Database Kit Label (html today) (future kits planned) Button Model Objects Faces Components SDO SDO Introspected by Rational Application Developer for easy coupling with JSF interface components 11
Java Server Faces What Does it Provide? Drag and Drop Development of User Interfaces User Interface Component Model Set of standard widgets Specification allows extending custom GUI components (i.e. DataTable, Graphing, Tree, Panel) User Interface components are decoupled from its rendering Allows for other technologies and pervasive devices (e.g. WML, etc) to be used Validation Framework allows server-side validation Server side management of User Interface, session and state info Event driven architecture Server-side rich user interface components respond to client events Actions organize and process business logic Navigation model manages page flow using JSP path aliases 12
Faces Client Component Features Client side infrastructure supporting Data Tables Web Services Event handling Manages data changes Sends updates to server NLV functions Leverage JavaScript / XML in the Browser Browser Runtime JavaScript Grid Control Data Grid Table Web Services Form Macromedia Flash Plug-in 13
Service Data Objects (SDO) The Problem Many different models and APIs for Data retrieval, Data representations, Meta-data retrieval, Meta-data representations, logic components No reasonable API available for typed XML data Lack of support for standard application patterns Optimistic concurrency, pagination of large data-sets, etc. Data Access APIs Client Data Access APIs Data Data APIs Data APIs APIs Data APIs Data Access APIs Meta-Data Access APIs Client Mediator Data Access APIs Data Data APIs Data APIs Data APIs APIs Meta-Data Access APIs Meta-Data APIs Meta-Data APIs (Current Architectures) (SDO) 14
Service Data Objects (SDO) Data Access APIs Meta-data model Client Data APIs Pluggable Data Mediator Meta-Data Access APIs Data model (DataObject) Meta-Data APIs SDO DataObject with XSD & EMF provide a single, standard API (& implementation) for data & meta-data that we can use in place of many other APIs Data is stored in a disconnected, source-independent format defined by the DataObject DataObjects are stored in a graph called a DataGraph Provides both dynamic loosely-typed and static strongly-typed interfaces to the data Remembers change history Data Mediator Service is responsible for filling graph of DataObjects from data source, updating data source from DataObject changes 15
Demo: On Demand Insurance Company built using JSF Basic Insurance information Quotes on Insurance Previous quotes Modify page to display quote history using JSF and SDO ODIC Database customer table Customers On Demand Insurance -------------------- Web Application quote table heatsource Table material Table dwellingtype Table 16
Other RAD Features Database tools Explore and Design database schema SQL Query Builder Stored procedure builder Web Services Tools WSDL visual editor UDDI Registry browser XML Tools XML and XSD tooling support Rich Client UI Construction Visual Editor for Java for rich client composition Java Development J2SE development tools Code completion, search, refactoring Plug-in development environment of extensibility 17
Let's now Develop Software as a Team!