Architecting for Agility Subu Goparaju – Vice President SETLabs, Infosys
The World is Flattening… Loyalty through good service Loyalty through faster innovation Spending money on information Making money from information Dreading the “China Price” Being the “China Price” Winning in the straightway Winning in the turns Shift From Shift To To compete in the flattening world… Several forces began to level the playing field Structural shifts in global demographics Ubiquity of technology Accountability regulation Opening of emerging economies
The Flat World has made it imperative to innovate ‘rapidly’ Customers expect high degree of personalization, choice, and 24/7 service. Most companies are struggling to consistently exceed these rising expectations and earn customer loyalty. To earn customers’ loyalty, smart companies will focus on rapid innovation cycles that get their customers involved in co-creation.
Ease of Integration (For eg. M&A)
Ease of Business Process Change (for eg. Compliance)
New Products Development
Flexibility (for eg. On-demand usage)
Re-distribution of processes in a flat world
An Engineering Model that helps build Agile Systems
Automation; Collaboration; Services integration
Agility - Guiding Principles
Ease of business process change and enhancement - possibly by end users
Ease of applications integration – preferably services assembly
Efficient Knowledge Management for reuse, de-skilling and faster development
Use of tools for faster development and maintenance
Agile IT: Essential for Faster Innovation
Pervasive Infrastructure Services characterized by mobility, wireless connectivity, context awareness, implicit inputs, smart spaces, and natural interfaces for human-device interaction.
Dynamic processes Flexibility in analysis and re-design of business processes
Malleable Architecture Building interoperability in a changing technology and business landscape
Personalized Information Management Providing unified corporate wide information personalized to individual stakeholders
Transformational IT Management Cost-effective adaptability to change focused on ecosystem value maximization
Research projects employ a variety of technologies to realize this vision Source: Infosys Research AGILE IT
Some enabling technologies that realize Agile IT IT organization Research Low cost Devices Legacy Systems RTOS, Embedded Systems Solution Methodologies RFID Knowledge Management Grid Computing Knowledge Engineering/ Ontology .Net IT Management Sensor Networks Data warehousing Open Source Enterprise Collaboration J2EE IT Strategy Convergent Technologies Business Intelligence Software Architecture Intelligent Systems Linux Outsourcing Mobile Computing Enterprise Content Management Web Services SOA Business Process Management Software Engineering ( Engineering Methodologies, Performance Engineering , QoS, Platform Engineering ) Regulatory compliance Transformational IT Management Maintenance COE Peer to Peer Networks Security, Infrastructure Multi-processor architectures High availability systems Technology Platforms Pervasive Infrastructure Personalized Information Malleable Architecture Dynamic Processes
Key enabling technologies for Agility and Faster Innovation
A “ business process centric service oriented ” architecture
Business Process Management
Grid Computing (enabling utility computing and virtualization)
Enabling a proactive “ sense and respond ” capability
Over an “ automated”, “collaborative ”
Software Engineering paradigm
Leveraging BPM for Agility
Agile Processes: Ability to change processes ‘faster’, with reduced dependence on ‘skill’, with minimal disruption to existing operations and systems
Collaborative Modeling environments (involving both Business & IT)
Simulation capabilities to envisage benefits from new processes
BPMS execution engines capable of changing processes in near real-time fashion
Increased control for business over process change
Process Visibility: Visibility into Process Execution / Adherence; Visibility into Process Performance / Metrics
Eg, BAM systems
Delivering agility leveraging the SOA paradigm: Reuse of the existing IT application infrastructure through services
Enabling an agile IT organization:
Faster response by IT to need for process changes on IT systems
Reduced overheads for making process changes on IT
Solutions and Challenges in BPM
Research and development of process orchestration or execution server which can execute BPML/BPEL based processes
Research and development of business modeling languages and tools
Developing methods and techniques for Business process query languages & process level transaction support
Bringing Software agents techniques and technology into BPM infrastructure
BPM for Solution Blueprint
Taking BPM Forward- Challenges
Changing Process mindset
Challenge in enforcing standardization and consistency
business modeling languages and tools
Alignment with existing Architecture
Proper BPM/SOA roadmap
Integration with existing applications
Scalability and Performance challenges
How SOA can bring agility
Basic loose coupling in SOA allows for faster response to change
Independence of service interface from implementation enables dynamic change of service providers while keeping consuming applications intact (smart sourcing)
SOA in conjunction with BPM enables flexible business processes
Architecture in SOA enables extensibility for future needs – e.g. – new partner, new channel , new product, new customer
SOA principles allow virtualization and standardization and hence cost savings
Legacy systems reuse and revitalization via services brings agility and cost savings
Solutions and Challenges in SOA
Service Lifecycle Management methodologies and tools
Research and development of Service description (semantics)
SOA at data tier via shared data services platform
Non-functional requirements adoption in Services
Service Orchestration in BPM
Web 2.0 for rich service ecosystems
Taking SOA forward - challenges
Going from SOA to SOSE – service oriented software engineering
Performance Constraints in SOA
Optimization via XML compression
Identification of services from processes
Rich Service Contract defn.-Semantic SOA
SOA Governance – organizational, design time and run time dimensions
Web 2.0 based web Re-engineering from a service consumer perspective
Grid for Infrastructure Agility
The infrastructure needs to be agile, virtualized, should have capacity-on-demand.
The infrastructure should allow proper utilization balancing, policy-based management, scalability, availability and redundancy.
The ownership model of infrastructure should change into a pay-per-usage basis with proper metering and chargeback.
Grid computing and virtualization allows the twin benefits of scalability and flexibility and promises the vision of Next Generation Data Center (NGDC)
Source: SETLabs Research 2005 2012
Solution Approach and challenges
How do we create an effective data replication strategy for large-scale distributed data management problem using P2P and Grid?
How do we achieve application / process migration across virtual machine environments (say, between Xen hypervisor and full-system virtualization platform like VMWare)?
How do we transform a legacy monolithic code into optimized message passing (MP) or distributed shared memory (DSM) code for Grid?
How do we build an effective dynamic database query partitioning and scheduling framework to do Adaptive Query Processing (AQP) over Grid nodes?
Container Service - Provides Grid execution container for better isolation and resource guarantees to meet SLA
Virtual Machine Manager - Provides Generic Virtualization Management tool to aid in virtual infrastructure management.
Distributed Resource Manager - Provide standard and policy based management of virtual infrastructure for Next Generation Data Center
Workflow Manager - Provide business process workflow management over Grid Infrastructure
Distributed Software Development and Maintenance
How can the engineering productivity be improved- accuracy, faster turn around time?
How can the collaboration among people, computing resources can be made structured, precise and effective?
How can the development/maintenance be made assembly line and less dependent on human expert?
How can one ensure various quality traits like performance, security, modularity..?
How can one improve application re-engineering – program comprehension, modularization, service-orientation..?