Notes on Software Development, Platform and Modernisation Alan McSweeney
Jan 18, 2015
Notes on Software Development, Platform and Modernisation
Alan McSweeney
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
April 10, 2023 3
Agenda
• Context of application development• Comparison of .Net and Java• Application design and delivery landscape• Software 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
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
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
April 10, 2023 7
Java and .NET Comparison Notes
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
April 10, 2023 9
J2EE Application Architecture
April 10, 2023 10
.NET Application Architecture
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
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
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
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)
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)
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
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
April 10, 2023 18
Java Development Options Comparison
April 10, 2023 19
Application Design and Delivery Landscape Notes
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
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
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
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
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
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
April 10, 2023 26
Software Modernisation Notes
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
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
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
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)
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
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
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
April 10, 2023 34
Business Rule Extraction
Legacy Code Code ComponentsLegacy Code Code Components
Business Rule
Narratives
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
April 10, 2023 36
VB6 Modernisation
• Automatic conversion to either .NET or JAVA
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
April 10, 2023 38
PowerBuilder Migration Architecture
April 10, 2023 39
Sample Banking Application Infrastructure
• Sample internet banking application layers
April 10, 2023 40
Sample Banking Application Components