Upload
alan-mcsweeney
View
221
Download
0
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]