Notes on Software Development, Platform and Modern is at Ion

Embed Size (px)

Citation preview

  • 8/14/2019 Notes on Software Development, Platform and Modern is at Ion

    1/41

    Notes on SoftwareDevelopment, Platformand Modernisation

    Alan McSweeney

  • 8/14/2019 Notes on Software Development, Platform and Modern is at Ion

    2/41

    November 26, 2009 2

    Objectives

    Provide information on the advantages anddisadvantages of .NET and Java development andoperational platforms

    Provide information on approaches to softwaredevelopment

    Provide information on approaches to refresh of existingsoftware

    Focus on banking systems and IBM platforms

  • 8/14/2019 Notes on Software Development, Platform and Modern is at Ion

    3/41

    November 26, 2009 3

    Agenda

    Context of application development

    Comparison of .Net and Java Application design and delivery landscape Software modernisation

  • 8/14/2019 Notes on Software Development, Platform and Modern is at Ion

    4/41

    November 26, 2009 4

    View of Application Development and Deployment

    Decision is wider than just selecting a developmentplatform

    Need to take account of other factors: Application lifecycle from application design, development,

    testing, deployment and operation Refresh/modernisation of existing applications Other initiatives such as SOA Existing application development and deployment standards

    and approaches Consider an integrated approach to application

    development and deployment

  • 8/14/2019 Notes on Software Development, Platform and Modern is at Ion

    5/41

    November 26, 2009 5

    High Level View of Application and System Landscape

    IT Assets

    AccountabilityReduce Cost New Channels VisibilityNew Services

    Customer ServiceShareholder Value Governance BusinessDrivers

    BusinessRequirements

    BetterInformation

    insight

    Support BusinessRequirements

    Faster

    EfficientDelivery Of

    New Services

    Automation of Existing

    Processes

    Reusable,Standard Services

    Standard Integrationof Services

    BusinessProcesses

    ServicesServicesServicesServices

    BusinessService

    BusinessService

    BusinessService

    BusinessService

    Services

    BusinessService

    Business UnitsLegacy SystemsWeb Sites Databases Core Applications

  • 8/14/2019 Notes on Software Development, Platform and Modern is at Ion

    6/41

    November 26, 2009 6

    View of Long-Term Application Landscape

    IT Assets

    Reusable,Standard Services

    Standard Integrationof Services

    BusinessProcesses

    ServicesServicesServicesServices

    BusinessService

    BusinessService

    BusinessService

    BusinessService

    Services

    BusinessServiceService

    OrientedArchitecture

    IT Assets

    Business UnitsLegacy SystemsWeb Sites Databases Core Applications

    BusinessRequirements

    BetterInformation

    insight

    Support BusinessRequirements

    Faster

    EfficientDelivery Of

    New Services

    Automation of Existing

    Processes

    BusinessProcess

    Management

    AccountabilityReduce Cost New Channels VisibilityNew Services

    Customer ServiceShareholder Value GovernanceBusinessDrivers

    BusinessProcess

    Improvement

  • 8/14/2019 Notes on Software Development, Platform and Modern is at Ion

    7/41

    November 26, 2009 7

    Java and .NET Comparison Notes

  • 8/14/2019 Notes on Software Development, Platform and Modern is at Ion

    8/41

    November 26, 2009 8

    Java and .NET Comparison Notes

    Both multi-tiered, similar computing technologies

    Both support standards Both offer different tools and ways to achieve the same

    goal A lot of parallelism can be seen Very difficult to compare and qualify the comparison

    because each has its own advantages and disadvantages No right answer Depends on business and organisation context

  • 8/14/2019 Notes on Software Development, Platform and Modern is at Ion

    9/41

    November 26, 2009 9

    J2EE Application Architecture

  • 8/14/2019 Notes on Software Development, Platform and Modern is at Ion

    10/41

    November 26, 2009 10

    .NET Application Architecture

  • 8/14/2019 Notes on Software Development, Platform and Modern is at Ion

    11/41

    November 26, 2009 11

    Overview of J2EE and .NET

    Visual Studio.NetRational, Eclipse, JBuilder etc.Tools support

    Multiple Languages JAVALanguage support

    CLR JREInterpreter

    WindowsVariety of Operating systemsPortability

    CLR (Common LanguageRuntime)

    JVM (Java Virtual Machine)Execution Engine

    ADO.NET JDBCDatabase Connectivity

    .Net Managed ComponentsEJBsMiddle-Tier Components

    ASP.NET JSPsWeb Pages and HTML

    MicrosoftOracle, IBM, Oracle, Apache andmany others

    Middleware Vendors

    ProductStandardType of Technology

    .NET.NET.NET.NET J2EE J2EE J2EE J2EEFEATUREFEATUREFEATUREFEATURE

  • 8/14/2019 Notes on Software Development, Platform and Modern is at Ion

    12/41

    November 26, 2009 12

    Detail of J2EE and .NET

    Visual Studio .Net, the single IDE forbuilding .Net windows, webapplications, or XML Web services

    Java features a wide variety of tools Rational, Eclipse, JBuilder, JDeveloperetc

    Tools support

    It is language independent and can useany language once a mapping existsfrom that language to IL

    Only Java is supportedLanguage support

    .Net only supports the Windowsplatform

    J2EE offers complete cross-platformportability

    Portability

    The CLR environment executes .Net'sMicrosoft Intermediate Language code

    Java source code compiles intomachine-independent byte code, whichthe JVM interprets at runtime

    Execution Engine

    ADO.NET JDBCDatabase Connectivity

    A variety of data sources can beaccessed by developers through .Net'sADO.Net classes

    Two main types of entity beans are usedto model persistent data which arecontainer-managed and bean-managed

    Data Access

    .Net remoting allows calls to remoteobjects distributed across applicationdomains, processes, and machineboundaries

    JNDI finds server-side components suchas EJBs or JMS queues

    Calling Remote Objects

    Manual transaction management orautomated through CLR

    Manual transaction management orautomated through containers

    Transactions

    ASP.NET under Internet InformationServer (IIS)

    JSPs and ServletsHTML generation

    .NET.NET.NET.NET J2EE J2EE J2EE J2EEFEATUREFEATUREFEATUREFEATURE

  • 8/14/2019 Notes on Software Development, Platform and Modern is at Ion

    13/41

    November 26, 2009 13

    Generic Framework for Web Applications

    Workflow EngineWorkflow EngineWorkflow EngineWorkflow Engine

    WebWebWebWeb----based andbased andbased andbased and ----related Protocols (HTTP, SMTP, ...)related Protocols (HTTP, SMTP, ...)related Protocols (HTTP, SMTP, ...)related Protocols (HTTP, SMTP, ...)

    Service Description, Discovery, Integration (UDDI)Service Description, Discovery, Integration (UDDI)Service Description, Discovery, Integration (UDDI)Service Description, Discovery, Integration (UDDI)

    Service Description (WSDL)Service Description (WSDL)Service Description (WSDL)Service Description (WSDL)

    Service Context (Who, Where, When, Why, ....)Service Context (Who, Where, When, Why, ....)Service Context (Who, Where, When, Why, ....)Service Context (Who, Where, When, Why, ....)

    Virtual MachineVirtual MachineVirtual MachineVirtual Machine

    Micro/Macro ServicesMicro/Macro ServicesMicro/Macro ServicesMicro/Macro Services

    IntegrationIntegrationIntegrationIntegrationLayerLayerLayerLayer

    LegacyLegacyLegacyLegacy

    Backend ServerBackend ServerBackend ServerBackend Server

    MainframeMainframeMainframeMainframeFrontendFrontendFrontendFrontend

    LayerLayerLayerLayer(Web Server)(Web Server)(Web Server)(Web Server)

    Web Service User/ProviderWeb Service User/ProviderWeb Service User/ProviderWeb Service User/Provider

    Core Services (Calendar, Preferences, Transactions, ...)Core Services (Calendar, Preferences, Transactions, ...)Core Services (Calendar, Preferences, Transactions, ...)Core Services (Calendar, Preferences, Transactions, ...)

    Core Elements of Web Application Framework

    ClientsClientsClientsClients

  • 8/14/2019 Notes on Software Development, Platform and Modern is at Ion

    14/41

    November 26, 2009 14

    .Net Implementation of Framework

    .NET Devices.NET Devices.NET Devices.NET Devices

    .NET Servers.NET Servers.NET Servers.NET ServersSQL Server, Biztalk, Commerce, Exchange, Mobile Information,

    Host Integration, Application Center

    .NET Foundation Services.NET Foundation Services.NET Foundation Services.NET Foundation ServicesPassport, Calendar, Directory & Search, Notification & Messaging,

    Personalization, Web-Store/XML, Dynamic Delivery of Software and Services

    Common Language RuntimeCommon Language RuntimeCommon Language RuntimeCommon Language Runtime(Memory Management, Common Type System, Lifecycle Monitor)

    .NET Framework & Tools.NET Framework & Tools.NET Framework & Tools.NET Framework & Tools

    Base ClassesBase ClassesBase ClassesBase Classes(ADO.NET, XML, Threading, IO, ....)

    ASP.NETASP.NETASP.NETASP.NET(Web Services, Web Forms,ASP.NET ApplicationServices)

    Windows FormsWindows FormsWindows FormsWindows Forms(Controls, Drawing,WindowsApplication Services)

  • 8/14/2019 Notes on Software Development, Platform and Modern is at Ion

    15/41

    November 26, 2009 15

    Java Implementation of Framework

    Service InterfaceService InterfaceService InterfaceService Interface

    ServiceServiceServiceServiceContainerContainerContainerContainer

    (J2EE, EJB, JSP, J2SE, J2ME,MIDP, Java Card)

    ProcessProcessProcessProcessManagementManagementManagementManagement

    ServiceServiceServiceServiceIntegrationIntegrationIntegrationIntegration

    (SQL, JDBC, XML,XSLT, XP, JMS,

    RMI, J2EE Connectors,...)

    Service PlatformService PlatformService PlatformService Platform

    Smart ManagementSmart ManagementSmart ManagementSmart Management(SNMP, CIM, WBEM, JMX)

    Smart DeliverySmart DeliverySmart DeliverySmart Delivery(XML, HTML, XHTML,

    WML, VoiceXML,XSLT, HTTP, SSL,XP, SOAP, WSDL,UDDI, ebXML, ...)

    Web ServicesWeb ServicesWeb ServicesWeb ServicesSmart ProcessSmart ProcessSmart ProcessSmart Process(ebXML, XAML)

    Smart PolicySmart PolicySmart PolicySmart Policy(LDAP, Kerberos, PKI,

    OASIS Security))

    Service Creation and AssemblyService Creation and AssemblyService Creation and AssemblyService Creation and Assembly(JB, JSP, EJB)

  • 8/14/2019 Notes on Software Development, Platform and Modern is at Ion

    16/41

    November 26, 2009 16

    .NET And/Or Java

    Not just one or the other can use a mixed applicationenvironment Pure Windows applications are probablybetter done with .NET than Java

    Java should be used when platform (or vendor-)independence is necessary/desirable

    Java is more mature There is Java for .NET via IBM Rational Both can be used for web services - .NET is easier but J2EE is more scalable

    Other practical factors must be taken into consideration

  • 8/14/2019 Notes on Software Development, Platform and Modern is at Ion

    17/41

    November 26, 2009 17

    Sample Scoring

    Java, JVM are open standards****** Open StandardsOpen StandardsOpen StandardsOpen Standards

    Deploy same code on multiple platforms

    and multiple projects

    ****** ReuseReuseReuseReuse

    VB code easier to learn***** Speed of developmentSpeed of developmentSpeed of developmentSpeed of development

    Java more scalable for very large systems******* PerformancePerformancePerformancePerformance

    VB/Com development since 1993****** ReliabilityReliabilityReliabilityReliability

    VB,C#,J# all run in the same run-timeenvironment

    ***** Multiple Languages SingleMultiple Languages SingleMultiple Languages SingleMultiple Languages SinglePlatformPlatformPlatformPlatform

    Java Can run on many platforms throughthe JVM

    ***** Single Language MultipleSingle Language MultipleSingle Language MultipleSingle Language MultiplePlatformsPlatformsPlatformsPlatforms

    Execute Java Code on Mainframe***** ScalabilityScalabilityScalabilityScalability

    VB.net and C# are easier to use than J2EE****** Ease Of Use (DevelopmentEase Of Use (DevelopmentEase Of Use (DevelopmentEase Of Use (DevelopmentEnvironment)Environment)Environment)Environment)

    CommentsCommentsCommentsComments.NET.NET.NET.NET J2EE J2EE J2EE J2EECriteriaCriteriaCriteriaCriteria

  • 8/14/2019 Notes on Software Development, Platform and Modern is at Ion

    18/41

    November 26, 2009 18

    Java Development Options Comparison

  • 8/14/2019 Notes on Software Development, Platform and Modern is at Ion

    19/41

    November 26, 2009 19

    Application Design and Delivery Landscape Notes

  • 8/14/2019 Notes on Software Development, Platform and Modern is at Ion

    20/41

    November 26, 2009 20

    Application Design and Delivery Landscape

    Bigger picture put application development in context

    Look at bigger picture Management framework

    Process and portfolio management

    Change and release management Requirements management Quality management Analysis, design and develop

    Deployment and operation

  • 8/14/2019 Notes on Software Development, Platform and Modern is at Ion

    21/41

    November 26, 2009 21

    Process and Portfolio Management IBM

    Create, customiseand deploy an SOAGovernance Processusing IBM Rational Method Composer

    Use IBM Rational Portfolio Manager toidentify and manage your software

    development projects and resources,assess cost and ROI, and comply with

    your SOA Governance policies

  • 8/14/2019 Notes on Software Development, Platform and Modern is at Ion

    22/41

    November 26, 2009 22

    Change and Release Management - IBMUse IBM Rational ClearCase

    for full lifecycle management,and version control of development artifacts

    Use IBM Rational ClearQuest forgeographically 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 developmentassets

  • 8/14/2019 Notes on Software Development, Platform and Modern is at Ion

    23/41

    November 26, 2009 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 businessneeds drive IT investment and validate that thedeployed solutions meet quality measures,

    managing requirements throughout thedevelopment lifecycle

    Use IBM Rational Performance Tester to performperformance and load testing with local/remote

    execution and monitoring

  • 8/14/2019 Notes on Software Development, Platform and Modern is at Ion

    24/41

    November 26, 2009 24

    Analysis, Design and Construction

    Use WebSphere Business Modeler and Integration

    Developer to model businessprocesses, simulate / socialise

    business cases and makehuman / automated workflows

    executable.

    Use IBM Rational Software Architect

    to understand yourexisting architecture

    and drive its evolution,using analysis,modeling and

    transformation capabilitiesacross UML and source

    code boundaries

    Use IBM s Eclipse-powered Rational

    Application Developer to code,generate, unit test,analyze and debugyour applications &services across the

    Java, Web, Portal andopen standards

    landscapes

  • 8/14/2019 Notes on Software Development, Platform and Modern is at Ion

    25/41

    November 26, 2009 25

    Govern The Process of Software Development

    Budget Statusfrom Rational Portfolio Manager Rational Portfolio Manager Rational Portfolio Manager Rational Portfolio Manager

    Defect Glide Pathfrom Rational ClearQuest Rational ClearQuest Rational ClearQuest Rational ClearQuest

    Testing Statusfrom Rational Rational Rational Rational TestManager TestManager TestManager TestManager

    Requirements Volatilityfrom Rational RequisitePro Rational RequisitePro Rational RequisitePro Rational RequisitePro

    Code Churnfrom Rational ClearCase Rational ClearCase Rational ClearCase Rational ClearCase

  • 8/14/2019 Notes on Software Development, Platform and Modern is at Ion

    26/41

    November 26, 2009 26

    Software Modernisation Notes

  • 8/14/2019 Notes on Software Development, Platform and Modern is at Ion

    27/41

    November 26, 2009 27

    Software Modernisation Issues

    To enable flexibility, IT must overcome challenges suchas:

    No electronic inventory of current IT assets Complex application architectures Skills lock-in

    Islands of development No flexibility for new investments

  • 8/14/2019 Notes on Software Development, Platform and Modern is at Ion

    28/41

    November 26, 2009 28

    Rational Toolset

    Use RationalRationalRationalRational ClearQuestClearQuestClearQuestClearQuest Test ManagerTest ManagerTest ManagerTest Manager to manage your testingprocess integrating requirements from RationalRationalRationalRational RequisiteProRequisiteProRequisiteProRequisitePro

    Use Rational Manual TesterRational Manual TesterRational Manual TesterRational Manual Tester to provide comprehensive testing of anything including printed documents, internal processes, etc. Save time and improve quality by automating tests with RationalRationalRationalRational

    Functional Tester (RFT),Functional Tester (RFT),Functional Tester (RFT),Functional Tester (RFT), including extensions for 3270, 5250,and VT

    Ensure scalability of applications which expose existing assets innew ways (e.g. services) with Rational Performance Tester (RPT)Rational Performance Tester (RPT)Rational Performance Tester (RPT)Rational Performance Tester (RPT)

    Identify vulnerabilities, privacy issues, quality exposures, andstandards non-compliance with RationalRationalRationalRational AppScanAppScanAppScanAppScan

  • 8/14/2019 Notes on Software Development, Platform and Modern is at Ion

    29/41

    November 26, 2009 29

    Application Transformation

    zSeriesiSeriesUnix

    Windows

    AutomatedConversion

    RationalApplicationDeveloper

    (RAD)

    ApplicationApplicationApplicationApplicationEnvironmentsEnvironmentsEnvironmentsEnvironments

    ApproachApproachApproachApproachRationalRationalRationalRational

    ManagementManagementManagementManagementToolsToolsToolsTools

    Refactoring

    RationalBusiness

    Developer(RBD)

    iSeries

    DeploymentDeploymentDeploymentDeployment

    WindowsLinux

  • 8/14/2019 Notes on Software Development, Platform and Modern is at Ion

    30/41

    November 26, 2009 30

    Modernise Asset Management

    Understand and analyse the impact of change acrossheterogeneous enterprise applications using X-Analysis

    Manage assets across their lifecycle from design andcreation to consumption and change withRational Asset Manager (RAM)

    Deploy and manage runtime services usingWebSphere Service Registry & Repository (WSRR)

  • 8/14/2019 Notes on Software Development, Platform and Modern is at Ion

    31/41

    November 26, 2009 31

    Spectrum of Options for Application Modernisation

    Existing CoreExisting CoreExisting CoreExisting CoreBusinessBusinessBusinessBusinessApplicationsApplicationsApplicationsApplications

    New UIrefacing or rewriting

    Web browser UIOr Rich UI

    ModernScreens

    Portal

    ExtractDesign

    Re-BuildNew

    ApplicationEGL

    Java

    ILE

    EGL

    Java

    COBOL

    Transformation/ Conversion

    Discoveryand

    Analysis

    RefactoringRationalized

    EfficientVersionof the

    Application

    ReusableComponents

    orServices

    SOA

  • 8/14/2019 Notes on Software Development, Platform and Modern is at Ion

    32/41

    November 26, 2009 32

    Application Analysis, Discovery and Maintenance

    Objective and accurate forensics for impact analysis

    System wide perspective Visualisation Drill-Down from high-level to detail Non System/technology expert inclusion Improved development quality and productivity

    Share critical information accurately Make large scale changes possible: field resizing

  • 8/14/2019 Notes on Software Development, Platform and Modern is at Ion

    33/41

    November 26, 2009 33

    Automated Repository Generation

    CrossCrossCrossCross----ReferenceReferenceReferenceReferenceDataDataDataData

    Data ModelData ModelData ModelData Model

    DataDataDataData

    SourceSourceSourceSource

    Data BaseData BaseData BaseData Base

    ProgramsProgramsProgramsPrograms

    DisplaysDisplaysDisplaysDisplays

    Existing SystemExisting SystemExisting SystemExisting System

    Business RuleBusiness RuleBusiness RuleBusiness RuleLogicLogicLogicLogic

    Business LogicBusiness LogicBusiness LogicBusiness LogicBusiness LogicBusiness LogicBusiness LogicBusiness LogicValidationCalculationsSecondary ReadsSecondary UpdatesBatch Calls

    Data ModelData ModelData ModelData ModelData ModelData ModelData ModelData ModelData DictionaryLogical Files/ViewsKey MapRelationshipsSpecial Fields

    CrossCrossCrossCrossCrossCrossCrossCross--------Ref DataRef DataRef DataRef DataRef DataRef DataRef DataRef DataAll ObjectsAll SourceAll LanguagesAll Variables

    AutomatedAutomatedAutomatedAutomatedExtraction andExtraction andExtraction andExtraction and

    RefreshRefreshRefreshRefresh

    XXXX----Analysis RepositoryAnalysis RepositoryAnalysis RepositoryAnalysis Repository

  • 8/14/2019 Notes on Software Development, Platform and Modern is at Ion

    34/41

    November 26, 2009 34

    Business Rule Extraction

    Legacy Code Code ComponentsLegacy Code Code Components

    BusinessRule

    Narratives

  • 8/14/2019 Notes on Software Development, Platform and Modern is at Ion

    35/41

    November 26, 2009 35

    Software Rewrites New IDE ToolEclipse/Rational/ Eclipse/Rational/ Eclipse/Rational/ Eclipse/Rational/ Visual Studio/EGL/ Visual Studio/EGL/ Visual Studio/EGL/ Visual Studio/EGL/

    PlexPlexPlexPlex/LANSA /LANSA /LANSA /LANSA

    Discovery, Analysis & MaintenanceXXXX----AnalysisAnalysisAnalysisAnalysis

    X-Referencing& Documentation

    X-Referencing& Documentation

    Relational DataModel

    Relational DataModel

    Business RuleLogic

    Business RuleLogic

    GraphicalFunctionDiagrams

    GraphicalFunctionDiagrams

    RPG as PseudoCode

    RPG as PseudoCode

    Data FlowCharting

    Data FlowCharting

    UML& DDLExtraction

    UML& DDLExtraction

    RSxRSxRSxRSx/Together/CA GEN /Together/CA GEN /Together/CA GEN /Together/CA GENSoftware Modeling Tools

    Activity, Use-Case& Class Diagrams

    Activity, Use-Case& Class Diagrams

    Data ModelRedesign

    Data ModelRedesign Persistence

    CRUDSOA

    Persistence

    CRUDSOA

    JSF/Java/RCPWeb2.0/Ajax

    JSF/Java/RCPWeb2.0/Ajax

    .Net/ASP/C#Silverlight/XAML

    .Net/ASP/C#Silverlight/XAML

    PHP/MySQLPHP/MySQLX-Migrate

  • 8/14/2019 Notes on Software Development, Platform and Modern is at Ion

    36/41

    November 26, 2009 36

    VB6 Modernisation

    Automatic conversion to either .NET or JAVA

  • 8/14/2019 Notes on Software Development, Platform and Modern is at Ion

    37/41

    November 26, 2009 37

    PowerBuilder Modernisation

    PowerMigrator tool Migration process:

    1: Gathering requirements 2: Generate JSP 3: Generate Component

    Templates 4: Select, Slice and Move 5: Testing 6: Debug 7: Deploy

  • 8/14/2019 Notes on Software Development, Platform and Modern is at Ion

    38/41

    November 26, 2009 38

    PowerBuilder Migration Architecture

  • 8/14/2019 Notes on Software Development, Platform and Modern is at Ion

    39/41

    November 26, 2009 39

    Sample Banking Application Infrastructure

    Sample internet bankingapplication layers

  • 8/14/2019 Notes on Software Development, Platform and Modern is at Ion

    40/41

    November 26, 2009 40

    Sample Banking Application Components

  • 8/14/2019 Notes on Software Development, Platform and Modern is at Ion

    41/41

    November 26, 2009 41

    More Information

    Alan [email protected]