Top Banner
Notes on Software Development, Platform and Modernisation Alan McSweeney
41
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Notes On Software Development, Platform And Modernisation

Notes on Software Development, Platform and Modernisation

Alan McSweeney

Page 2: Notes On Software Development, Platform And Modernisation

April 10, 2023 2

Objectives

• Provide information on the advantages and disadvantages of .NET and Java development and operational platforms

• Provide information on approaches to software development

• Provide information on approaches to refresh of existing software

• Focus on banking systems and IBM platforms

Page 3: Notes On Software Development, Platform And Modernisation

April 10, 2023 3

Agenda

• Context of application development• Comparison of .Net and Java• Application design and delivery landscape• Software modernisation

Page 4: Notes On Software Development, Platform And Modernisation

April 10, 2023 4

View of Application Development and Deployment

• Decision is wider than just selecting a development platform

• 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

Page 5: Notes On Software Development, Platform And Modernisation

April 10, 2023 5

High Level View of Application and System Landscape

IT Assets

AccountabilityReduce Cost New Channels VisibilityNew

Services

Customer ServiceShareholder Value Governance Business Drivers

BusinessRequirements

BetterInformation

insight

Support Business

RequirementsFaster

EfficientDelivery Of

New Services

Automation ofExisting

Processes

Reusable, Standard Services

Standard Integration of Services

BusinessProcesses

ServicesServicesServicesServices

Business Service

Business Service

Business Service

Business Service

Services

Business Service

Business UnitsLegacy SystemsWeb Sites Databases Core Applications

Page 6: Notes On Software Development, Platform And Modernisation

April 10, 2023 6

View of Long-Term Application Landscape

IT Assets

Reusable, Standard Services

Standard Integration of Services

BusinessProcesses

ServicesServicesServicesServices

Business Service

Business Service

Business Service

Business Service

Services

Business ServiceService

OrientedArchitecture

IT Assets

Business UnitsLegacy Systems

Web Sites Databases Core Applications

BusinessRequirements

BetterInformation

insight

Support Business

RequirementsFaster

EfficientDelivery Of

New Services

Automation of

ExistingProcesses

BusinessProcess

Management

AccountabilityReduce CostNew

ChannelsVisibility

New Services

Customer ServiceShareholder Value Governance

Business Drivers

BusinessProcess

Improvement

Page 7: Notes On Software Development, Platform And Modernisation

April 10, 2023 7

Java and .NET Comparison Notes

Page 8: Notes On Software Development, Platform And Modernisation

April 10, 2023 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

Page 9: Notes On Software Development, Platform And Modernisation

April 10, 2023 9

J2EE Application Architecture

Page 10: Notes On Software Development, Platform And Modernisation

April 10, 2023 10

.NET Application Architecture

Page 11: Notes On Software Development, Platform And Modernisation

April 10, 2023 11

Overview of J2EE and .NET

FEATURE J2EE .NET

Type of Technology Standard Product

Middleware Vendors Oracle, IBM, Oracle, Apache and many others

Microsoft

Web Pages and HTML JSPs ASP.NET

Middle-Tier Components EJBs .Net Managed Components

Database Connectivity JDBC ADO.NET

Execution Engine JVM (Java Virtual Machine) CLR (Common Language Runtime)

Portability Variety of Operating systems Windows

Interpreter JRE CLR

Language support JAVA Multiple Languages

Tools support Rational, Eclipse, JBuilder etc.

Visual Studio.Net

Page 12: Notes On Software Development, Platform And Modernisation

April 10, 2023 12

Detail of J2EE and .NET

FEATURE J2EE .NET

HTML generation JSPs and Servlets ASP.NET under Internet Information Server (IIS)

Transactions Manual transaction management or automated through containers

Manual transaction management or automated through CLR

Calling Remote Objects JNDI finds server-side components such as EJBs or JMS queues

.Net remoting allows calls to remote objects distributed across application domains, processes, and machine boundaries

Data Access Two main types of entity beans are used to model persistent data which are container-managed and bean-managed

A variety of data sources can be accessed by developers through .Net's ADO.Net classes

Database Connectivity JDBC ADO.NET

Execution Engine Java source code compiles into machine-independent byte code, which the JVM interprets at runtime

The CLR environment executes .Net's Microsoft Intermediate Language code

Portability J2EE offers complete cross-platform portability

.Net only supports the Windows platform

Language support Only Java is supported It is language independent and can use any language once a mapping exists from that language to IL

Tools support Java features a wide variety of tools – Rational, Eclipse, JBuilder, JDeveloper etc

Visual Studio .Net, the single IDE for building .Net windows, web applications, or XML Web services

Page 13: Notes On Software Development, Platform And Modernisation

April 10, 2023 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

IntegrationLayer

Legacy

Backend Server

MainframeFrontend

Layer(Web Server)

Web Service User/Provider

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

Core Elements of Web Application Framework

Clients

Page 14: Notes On Software Development, Platform And Modernisation

April 10, 2023 14

.Net Implementation of Framework

.NET Devices

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

Host Integration, Application Center

.NET Foundation ServicesPassport, 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 ApplicationServices)

Windows Forms(Controls, Drawing, Windows Application Services)

Page 15: Notes On Software Development, Platform And Modernisation

April 10, 2023 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)

Page 16: Notes On Software Development, Platform And Modernisation

April 10, 2023 16

.NET And/Or Java

• Not just one or the other – can use a mixed application environment Pure Windows applications are probably better 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

Page 17: Notes On Software Development, Platform And Modernisation

April 10, 2023 17

Sample Scoring

Criteria J2EE .NET Comments• Ease Of Use

(Development Environment)

** **** • VB.net and C# are easier to use than J2EE

• Scalability *** ** • Execute Java Code on Mainframe

• Single Language Multiple Platforms

**** * • Java Can run on many platforms through the JVM

• Multiple Languages Single Platform

* **** • VB,C#,J# all run in the same run-time environment

• Reliability ** **** • VB/Com development since 1993

• Performance **** *** • Java more scalable for very large systems

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

• Reuse **** ** • Deploy same code on multiple platforms and multiple projects

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

Page 18: Notes On Software Development, Platform And Modernisation

April 10, 2023 18

Java Development Options Comparison

Page 19: Notes On Software Development, Platform And Modernisation

April 10, 2023 19

Application Design and Delivery Landscape Notes

Page 20: Notes On Software Development, Platform And Modernisation

April 10, 2023 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

Page 21: Notes On Software Development, Platform And Modernisation

April 10, 2023 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

Page 22: Notes On Software Development, Platform And Modernisation

April 10, 2023 22

Change and Release Management - IBMUse 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

Page 23: Notes On Software Development, Platform And Modernisation

April 10, 2023 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

Page 24: Notes On Software Development, Platform And Modernisation

April 10, 2023 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

Page 25: Notes On Software Development, Platform And Modernisation

April 10, 2023 25

Govern The Process of Software Development

Budget Statusfrom Rational Portfolio

Manager

Defect Glide Pathfrom Rational ClearQuest

Testing Statusfrom Rational TestManager

Requirements Volatilityfrom Rational RequisitePro

Code Churnfrom Rational ClearCase

Page 26: Notes On Software Development, Platform And Modernisation

April 10, 2023 26

Software Modernisation Notes

Page 27: Notes On Software Development, Platform And Modernisation

April 10, 2023 27

Software Modernisation Issues

• To enable flexibility, IT must overcome challenges such as:−No electronic inventory of current IT assets−Complex application architectures−Skills lock-in− Islands of development−No flexibility for new investments

Page 28: Notes On Software Development, Platform And Modernisation

April 10, 2023 28

Rational Toolset

• Use Rational ClearQuest Test Manager to manage your testing process integrating requirements from Rational RequisitePro

• Use Rational Manual Tester to provide comprehensive testing of anything including printed documents, internal processes, etc.

• Save time and improve quality by automating tests with Rational Functional Tester (RFT), including extensions for 3270, 5250, and VT

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

• Identify vulnerabilities, privacy issues, quality exposures, and standards non-compliance with Rational AppScan

Page 29: Notes On Software Development, Platform And Modernisation

April 10, 2023 29

Application Transformation

zSeriesiSeriesUnix

Windows

Automated Conversion

Rational Application Developer

(RAD)

Application Environments

ApproachRational

ManagementTools

Refactoring

Rational Business

Developer (RBD)

iSeries

Deployment

WindowsLinux

Page 30: Notes On Software Development, Platform And Modernisation

April 10, 2023 30

Modernise Asset Management

• Understand and analyse the impact of change across heterogeneous enterprise applications using X-Analysis

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

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

Page 31: Notes On Software Development, Platform And Modernisation

April 10, 2023 31

Spectrum of Options for Application Modernisation

Existing Core Business

Applications

New UI refacing or rewriting

Web browser UIOr Rich UI

ModernScreens

Portal

ExtractDesign

Re-BuildNew

ApplicationEGL

Java

ILE

EGL

Java

COBOL

Transformation/Conversion

Discovery and

Analysis

Refactoring“Rationalized”

EfficientVersion of the

Application

ReusableComponents

or Services

SOA

Page 32: Notes On Software Development, Platform And Modernisation

April 10, 2023 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

Page 33: Notes On Software Development, Platform And Modernisation

April 10, 2023 33

Automated Repository Generation

Cross-ReferenceData

Data Model

Data

Source

Data Base

Programs

Displays

Existing System

Business RuleLogic

Business LogicBusiness LogicValidationCalculationsSecondary ReadsSecondary UpdatesBatch Calls

Data ModelData ModelData DictionaryLogical Files/ViewsKey MapRelationshipsSpecial Fields

Cross-Ref DataCross-Ref DataAll ObjectsAll SourceAll LanguagesAll Variables

Automated Extraction

and Refresh

X-Analysis Repository

Page 34: Notes On Software Development, Platform And Modernisation

April 10, 2023 34

Business Rule Extraction

Legacy Code Code ComponentsLegacy Code Code Components

Business Rule

Narratives

Page 35: Notes On Software Development, Platform And Modernisation

April 10, 2023 35

Software Rewrites

New IDE ToolEclipse/Rational/

Visual Studio/EGL/Plex/LANSA

Discovery, Analysis & MaintenanceX-Analysis

X-Referencing&

Documentation

X-Referencing&

Documentation

Relational Data Model

Relational Data Model

Business RuleLogic

Business RuleLogic

GraphicalFunctionDiagrams

GraphicalFunctionDiagrams

RPG as Pseudo Code

RPG as Pseudo Code

Data Flow Charting

Data Flow Charting

UML& DDL Extraction

UML& DDL Extraction

RSx/Together/CA GENSoftware Modeling Tools

Activity, Use-Case & Class

Diagrams

Activity, Use-Case & Class

Diagrams

Data Model Redesign

Data Model Redesign Persistence

CRUDSOA

PersistenceCRUDSOA

JSF/Java/RCPWeb2.0/Ajax

JSF/Java/RCPWeb2.0/Ajax

.Net/ASP/C#Silverlight/XAML

.Net/ASP/C#Silverlight/XAML

PHP/MySQLPHP/MySQL

X-Migrate

Page 36: Notes On Software Development, Platform And Modernisation

April 10, 2023 36

VB6 Modernisation

• Automatic conversion to either .NET or JAVA

Page 37: Notes On Software Development, Platform And Modernisation

April 10, 2023 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

Page 38: Notes On Software Development, Platform And Modernisation

April 10, 2023 38

PowerBuilder Migration Architecture

Page 39: Notes On Software Development, Platform And Modernisation

April 10, 2023 39

Sample Banking Application Infrastructure

• Sample internet banking application layers

Page 40: Notes On Software Development, Platform And Modernisation

April 10, 2023 40

Sample Banking Application Components

Page 41: Notes On Software Development, Platform And Modernisation

April 10, 2023 41

More Information

Alan [email protected]