Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Notes On Software Development, Platform And Modernisation


Published on

Published in: Technology, Business
  • Be the first to comment

Notes On Software Development, Platform And Modernisation

  1. 1. Notes on Software Development, Platform and Modernisation Alan McSweeney
  2. 2. Objectives <ul><li>Provide information on the advantages and disadvantages of .NET and Java development and operational platforms </li></ul><ul><li>Provide information on approaches to software development </li></ul><ul><li>Provide information on approaches to refresh of existing software </li></ul><ul><li>Focus on banking systems and IBM platforms </li></ul>
  3. 3. Agenda <ul><li>Context of application development </li></ul><ul><li>Comparison of .Net and Java </li></ul><ul><li>Application design and delivery landscape </li></ul><ul><li>Software modernisation </li></ul>
  4. 4. View of Application Development and Deployment <ul><li>Decision is wider than just selecting a development platform </li></ul><ul><li>Need to take account of other factors: </li></ul><ul><ul><li>Application lifecycle – from application design, development, testing, deployment and operation </li></ul></ul><ul><ul><li>Refresh/modernisation of existing applications </li></ul></ul><ul><ul><li>Other initiatives such as SOA </li></ul></ul><ul><ul><li>Existing application development and deployment standards and approaches </li></ul></ul><ul><li>Consider an integrated approach to application development and deployment </li></ul>
  5. 5. High Level View of Application and System Landscape IT Assets Accountability Reduce Cost New Channels Visibility New Services Customer Service Shareholder Value Governance Business Drivers Business Requirements Better Information insight Support Business Requirements Faster Efficient Delivery Of New Services Automation of Existing Processes Reusable, Standard Services Standard Integration of Services Business Processes Services Services Services Services Business Service Business Service Business Service Business Service Services Business Service Business Units Legacy Systems Web Sites Databases Core Applications
  6. 6. View of Long-Term Application Landscape IT Assets Reusable, Standard Services Standard Integration of Services Business Processes Services Services Services Services Business Service Business Service Business Service Business Service Services Business Service Service Oriented Architecture IT Assets Business Units Legacy Systems Web Sites Databases Core Applications Business Requirements Better Information insight Support Business Requirements Faster Efficient Delivery Of New Services Automation of Existing Processes Business Process Management Accountability Reduce Cost New Channels Visibility New Services Customer Service Shareholder Value Governance Business Drivers Business Process Improvement
  7. 7. Java and .NET Comparison Notes
  8. 8. Java and .NET Comparison Notes <ul><li>Both multi-tiered, similar computing technologies </li></ul><ul><li>Both support “standards” </li></ul><ul><li>Both offer different tools and ways to achieve the same goal </li></ul><ul><li>A lot of parallelism can be seen </li></ul><ul><li>Very difficult to compare and qualify the comparison because each has its own advantages and disadvantages </li></ul><ul><li>No right answer </li></ul><ul><li>Depends on business and organisation context </li></ul>
  9. 9. J2EE Application Architecture
  10. 10. .NET Application Architecture
  11. 11. Overview of J2EE and .NET Visual Studio.Net Rational, Eclipse, JBuilder etc. Tools support Multiple Languages JAVA Language support CLR JRE Interpreter Windows Variety of Operating systems Portability CLR (Common Language Runtime) JVM (Java Virtual Machine) Execution Engine ADO.NET JDBC Database Connectivity .Net Managed Components EJBs Middle-Tier Components ASP.NET JSPs Web Pages and HTML Microsoft Oracle, IBM, Oracle, Apache and many others Middleware Vendors Product Standard Type of Technology .NET J2EE FEATURE
  12. 12. Detail of J2EE and .NET Visual Studio .Net, the single IDE for building .Net windows, web applications, or XML Web services Java features a wide variety of tools – Rational, Eclipse, JBuilder, JDeveloper etc Tools support It is language independent and can use any language once a mapping exists from that language to IL Only Java is supported Language support .Net only supports the Windows platform J2EE offers complete cross-platform portability Portability The CLR environment executes .Net's Microsoft Intermediate Language code Java source code compiles into machine-independent byte code, which the JVM interprets at runtime Execution Engine ADO.NET JDBC Database Connectivity A variety of data sources can be accessed by developers through .Net's ADO.Net classes Two main types of entity beans are used to model persistent data which are container-managed and bean-managed Data Access .Net remoting allows calls to remote objects distributed across application domains, processes, and machine boundaries JNDI finds server-side components such as EJBs or JMS queues Calling Remote Objects Manual transaction management or automated through CLR Manual transaction management or automated through containers Transactions ASP.NET under Internet Information Server (IIS) JSPs and Servlets HTML generation .NET J2EE FEATURE
  13. 13. Generic Framework for Web Applications Workflow Engine Web-based and -related Protocols (HTTP, SMTP, ...) Service Description, Discovery, Integration (UDDI) Service Description (WSDL) Service Context (Who, Where, When, Why, ....) Virtual Machine Micro/Macro Services Integration Layer Legacy Backend Server Mainframe Frontend Layer (Web Server) Web Service User/Provider Core Services (Calendar, Preferences, Transactions, ...) Core Elements of Web Application Framework Clients
  14. 14. .Net Implementation of Framework .NET Devices .NET Servers SQL Server, Biztalk, Commerce, Exchange, Mobile Information, Host Integration, Application Center .NET Foundation Services Passport, Calendar, Directory & Search, Notification & Messaging, Personalization, Web-Store/XML, Dynamic Delivery of Software and Services Common Language Runtime (Memory Management, Common Type System, Lifecycle Monitor) .NET Framework & Tools Base Classes (ADO.NET, XML, Threading, IO, ....) ASP.NET (Web Services, Web Forms, ASP.NET Application Services) Windows Forms (Controls, Drawing, Windows Application Services)
  15. 15. Java Implementation of Framework Service Interface Service Container (J2EE, EJB, JSP, J2SE, J2ME, MIDP, Java Card) Process Management Service Integration (SQL, JDBC, XML, XSLT, XP, JMS, RMI, J2EE Connectors, ...) Service Platform Smart Management (SNMP, CIM, WBEM, JMX) Smart Delivery (XML, HTML, XHTML, WML, VoiceXML, XSLT, HTTP, SSL, XP, SOAP, WSDL, UDDI, ebXML, ...) Web Services Smart Process (ebXML, XAML) Smart Policy (LDAP, Kerberos, PKI, OASIS Security)) Service Creation and Assembly (JB, JSP, EJB)
  16. 16. .NET And/Or Java <ul><li>Not just one or the other – can use a mixed application environment Pure Windows applications are probably better done with .NET than Java </li></ul><ul><li>Java should be used when platform (or vendor-) independence is necessary/desirable </li></ul><ul><li>Java is more mature </li></ul><ul><li>There is Java for .NET via IBM Rational </li></ul><ul><li>Both can be used for web services - .NET is “easier” but J2EE is more scalable </li></ul><ul><li>Other practical factors must be taken into consideration </li></ul>
  17. 17. Sample Scoring <ul><li>Java, JVM are open standards </li></ul>* ***** <ul><li>Open Standards </li></ul><ul><li>Deploy same code on multiple platforms and multiple projects </li></ul>** **** <ul><li>Reuse </li></ul><ul><li>VB code easier to learn </li></ul>*** ** <ul><li>Speed of development </li></ul><ul><li>Java more scalable for very large systems </li></ul>*** **** <ul><li>Performance </li></ul><ul><li>VB/Com development since 1993 </li></ul>**** ** <ul><li>Reliability </li></ul><ul><li>VB,C#,J# all run in the same run-time environment </li></ul>**** * <ul><li>Multiple Languages Single Platform </li></ul><ul><li>Java Can run on many platforms through the JVM </li></ul>* **** <ul><li>Single Language Multiple Platforms </li></ul><ul><li>Execute Java Code on Mainframe </li></ul>** *** <ul><li>Scalability </li></ul><ul><li> and C# are easier to use than J2EE </li></ul>**** ** <ul><li>Ease Of Use (Development Environment) </li></ul>Comments .NET J2EE Criteria
  18. 18. Java Development Options Comparison
  19. 19. Application Design and Delivery Landscape Notes
  20. 20. Application Design and Delivery Landscape <ul><li>Bigger picture – put application development in context </li></ul><ul><li>Look at bigger picture </li></ul><ul><li>Management framework </li></ul><ul><ul><li>Process and portfolio management </li></ul></ul><ul><ul><ul><li>Change and release management </li></ul></ul></ul><ul><ul><ul><li>Requirements management </li></ul></ul></ul><ul><ul><ul><li>Quality management </li></ul></ul></ul><ul><ul><ul><li>Analysis, design and develop </li></ul></ul></ul><ul><ul><ul><li>Deployment and operation </li></ul></ul></ul>
  21. 21. Process and Portfolio Management – IBM Create, customise and deploy an SOA Governance Process using IBM Rational Method Composer Use IBM Rational Portfolio Manager to identify and manage your software development projects and resources, assess cost and ROI, and comply with your SOA Governance policies
  22. 22. Change and Release Management - IBM Use IBM Rational ClearCase for full lifecycle management, and version control of development artifacts Use IBM Rational ClearQuest for geographically distributed activities, changes and defect management Use IBM Rational BuildForge to achieve a repeatable, automated build process to accelerate software delivery Use IBM Rational Asset Manager to define, create, group, store, search, retrieve, measure and govern the re-use of development assets
  23. 23. Requirements and Quality Management Use IBM Rational ClearQuest and Rational Functional Tester for integrated test, activity and quality management Use Rational RequisitePro to ensure business needs drive IT investment and validate that the deployed solutions meet quality measures, managing requirements throughout the development lifecycle Use IBM Rational Performance Tester to perform performance and load testing with local/remote execution and monitoring
  24. 24. Analysis, Design and Construction Use WebSphere Business Modeler and Integration Developer to model business processes, simulate / socialise business cases and make human / automated workflows executable. Use IBM Rational Software Architect to understand your existing architecture and drive its evolution, using analysis, modeling and transformation capabilities across UML and source code boundaries Use IBM’s Eclipse-powered Rational Application Developer to code, generate, unit test, analyze and debug your applications & services across the Java, Web, Portal and open standards landscapes
  25. 25. Govern The Process of Software Development Budget Status from Rational Portfolio Manager Defect Glide Path from Rational ClearQuest Testing Status from Rational TestManager Requirements Volatility from Rational RequisitePro Code Churn from Rational ClearCase
  26. 26. Software Modernisation Notes
  27. 27. Software Modernisation Issues <ul><li>To enable flexibility, IT must overcome challenges such as: </li></ul><ul><ul><li>No electronic inventory of current IT assets </li></ul></ul><ul><ul><li>Complex application architectures </li></ul></ul><ul><ul><li>Skills lock-in </li></ul></ul><ul><ul><li>Islands of development </li></ul></ul><ul><ul><li>No flexibility for new investments </li></ul></ul>
  28. 28. Rational Toolset <ul><li>Use Rational ClearQuest Test Manager to manage your testing process integrating requirements from Rational RequisitePro </li></ul><ul><li>Use Rational Manual Tester to provide comprehensive testing of anything including printed documents, internal processes, etc. </li></ul><ul><li>Save time and improve quality by automating tests with Rational Functional Tester (RFT), including extensions for 3270, 5250, and VT </li></ul><ul><li>Ensure scalability of applications which expose existing assets in new ways (e.g. services) with Rational Performance Tester (RPT) </li></ul><ul><li>Identify vulnerabilities, privacy issues, quality exposures, and standards non-compliance with Rational AppScan </li></ul>
  29. 29. Application Transformation zSeries iSeries Unix Windows Automated Conversion Rational Application Developer (RAD) Application Environments Approach Rational Management Tools Refactoring Rational Business Developer (RBD) iSeries Deployment Windows Linux
  30. 30. Modernise Asset Management <ul><li>Understand and analyse the impact of change across heterogeneous enterprise applications using X-Analysis </li></ul><ul><li>Manage assets across their lifecycle from design and creation to consumption and change with Rational Asset Manager (RAM) </li></ul><ul><li>Deploy and manage runtime services using WebSphere Service Registry & Repository (WSRR) </li></ul>
  31. 31. Spectrum of Options for Application Modernisation Existing Core Business Applications New UI refacing or rewriting Web browser UI Or Rich UI Modern Screens Portal Extract Design Re-Build New Application EGL Java ILE E G L Java COBOL Transformation/ Conversion Discovery and Analysis Refactoring “ Rationalized” Efficient Version of the Application Reusable Components or Services SOA
  32. 32. Application Analysis, Discovery and Maintenance <ul><li>Objective and accurate forensics for impact analysis </li></ul><ul><li>System wide perspective </li></ul><ul><li>Visualisation </li></ul><ul><li>Drill-Down from high-level to detail </li></ul><ul><li>Non System/technology expert inclusion </li></ul><ul><li>Improved development quality and productivity </li></ul><ul><li>Share critical information accurately </li></ul><ul><li>Make large scale changes possible: field resizing </li></ul>
  33. 33. Automated Repository Generation Cross-Reference Data Data Model Data Source Data Base Programs Displays Existing System Business Rule Logic Business Logic Validation Calculations Secondary Reads Secondary Updates Batch Calls Data Model Data Dictionary Logical Files/Views Key Map Relationships Special Fields Cross-Ref Data All Objects All Source All Languages All Variables Automated Extraction and Refresh X-Analysis Repository
  34. 34. Business Rule Extraction Business Rule Narratives
  35. 35. Software Rewrites New IDE Tool Eclipse/Rational/ Visual Studio/EGL/ Plex/LANSA Discovery, Analysis & Maintenance X-Analysis X-Referencing & Documentation Relational Data Model Business Rule Logic Graphical Function Diagrams RPG as Pseudo Code Data Flow Charting UML& DDL Extraction RSx/Together/CA GEN Software Modeling Tools Activity, Use-Case & Class Diagrams Data Model Redesign Persistence CRUD SOA JSF/Java/RCP Web2.0/Ajax .Net/ASP/C# Silverlight/XAML PHP/MySQL X-Migrate
  36. 36. VB6 Modernisation <ul><li>Automatic conversion to either .NET or JAVA </li></ul>
  37. 37. PowerBuilder Modernisation <ul><li>PowerMigrator tool </li></ul><ul><li>Migration process: </li></ul><ul><ul><li>1: Gathering requirements </li></ul></ul><ul><ul><li>2: Generate JSP </li></ul></ul><ul><ul><li>3: Generate Component Templates </li></ul></ul><ul><ul><li>4: Select, Slice and Move </li></ul></ul><ul><ul><li>5: Testing </li></ul></ul><ul><ul><li>6: Debug </li></ul></ul><ul><ul><li>7: Deploy </li></ul></ul>
  38. 38. PowerBuilder Migration Architecture
  39. 39. Sample Banking Application Infrastructure <ul><li>Sample internet banking application layers </li></ul>
  40. 40. Sample Banking Application Components
  41. 41. More Information <ul><ul><ul><li>Alan McSweeney </li></ul></ul></ul><ul><ul><ul><li>[email_address] </li></ul></ul></ul>