Upload
zubin67
View
408
Download
0
Tags:
Embed Size (px)
DESCRIPTION
Citation preview
23/4/723/4/7 11
Service-Oriented System Service-Oriented System Engineering: A New Paradigm Engineering: A New Paradigm
for System Engineeringfor System Engineering
W. T. Tsai W. T. Tsai
Department of Computer Science and EngineeringDepartment of Computer Science and Engineering
Arizona State UniversityArizona State University
Tempe, AZ 85287Tempe, AZ 85287
[email protected]@asu.edu
23/4/723/4/7 22
SOA as a New Computing SOA as a New Computing ParadigmParadigm
• SOA is being considered as a new computing paradigm.
• But what does it mean that it is a paradigm?
• What kinds of technology can be considered as new paradigm?
• If SOA is a new paradigm, what are its implications?
23/4/723/4/7 33
Impact of a New Computing ParadigmImpact of a New Computing Paradigm
• Mindset
• Technology
• Education
• Business and market
• Daily life
23/4/723/4/7 44
OO Computing as a New OO Computing as a New Computing ParadigmComputing Paradigm
• OO was introduced by SIMULA, and then later by SMALLTALK in early 1970’s.
• But OO was not accepted as new computing paradigm until around 1983-1985.
• Note carefully it was NOT technology innovation that triggered the new computing paradigm, it was technology adoption by industries and government.
• Even after it was accepted as a new paradigm, many of OO technologies are not mature or ready. For example, OO design and C++.
• After it was accepted, 7 to 10 years later, true OO technologies then emerged.
23/4/723/4/7 55
Impact of the OO ParadigmImpact of the OO Paradigm
• Mindset– From Data Abstraction and Subroutines to Classes and Objects
• Technology– Software engineering (90% difference between pre-1983 and
post-1997) such as design patterns, UML, and OO frameworks, compilers (OO compilers), database (OODB), programming languages (Java), applications.
• Education– Significant changes, every CS student need to learn UML and
design patterns, but OO education did not start until 7-10 years later.
• Business and markets– Wide market acceptance only about 7 years later. Every
competitive computer company use OO technologies.
23/4/723/4/7 66
Can we learn something from the Can we learn something from the OO history?OO history?
• While OO has been a hot topic for an extended period time (more than 7 years from 1983), OO concepts were still misunderstood, and many false claims and/or false impressions were made.
• Several true and lasting OO techniques (UML, design patterns) came only after about 10 to 12 years later.
• The education aspect did not get started until 10 years later.
• This is in spite of fact that hundreds of thousands of smart researchers have been working on OO during the extended 10 years time span with probably billions of US dollars invested in this technology.
• This shows that we human are still extremely limited and we should be humble.
23/4/723/4/7 77
SOA as New ParadigmSOA as New Paradigm
• Around 2001, something that never happened before has happened: – All the major computer companies adopted SOA
including IBM, Microsoft, Oracle, SAP, Sun Microsystems, Intel, and BEA.
– Even US government agencies DoD also adopted SOA
• This is a historical event, and this means SOA is the new computing paradigm.
• Why not component-based software engineering?
23/4/723/4/7 88
Impact of SOA as a New Computing Impact of SOA as a New Computing ParadigmParadigm
• Mindset– Think in terms of workflow and services, and instead of
programming, think composition.
• Technology– All software and hardware technologies are affected, and expect
similar or even greater impact as OO technologies did
• Education– Very significant changes will come several years later
• Business and market– Business and market will change significantly
• Daily life– Life changing impact!
23/4/723/4/7 99
New SOA MindsetsNew SOA Mindsets
• We need a new mindset for SOA, and it should be rather different from the previous paradigm.– Earlier, we used dataflow analysis for OO design, and we should
make the counterpart mistakes again.• SOA is going to change the world, and it is going to
change the technology, education, and business practices, and the changes will be so great that it is difficult to imagine.
• Focus on applications and composition rather than development and programming.
• Compose millions lines of code in minutes.• Teach SOA as the first software course to establish a
new mindset.
23/4/723/4/7 1010
SOA is/is notSOA is/is not
• SOA is about composition using reusable components (services) represented by open standards.
• SOA is NOT about how these WS protocols.• The differences between car manufacturers and
car users.• Training for SOA infrastructure developers vs
SOA application developers. 1M vs 1 Billion.
23/4/723/4/7 1111
Car ManufacturerCar Manufacturer
• Design car body, engine, transmission, battery, car seats, airbags, steering, security systems, lights, navigation, tires, and belts.
• Science and engineering: thermodynamics, mechanical design, control theory,….
23/4/723/4/7 1212
Car UsersCar Users
• Drive cars to achieve some missions – fun driving or go to work.
• Science and engineering needed:– Map reading– Traffic laws and signs– Hand and leg coordination– No drink-and-drive
23/4/723/4/7 1313
Servicetized SystemsServicetized Systems
Behavior
Data
SOA Design with Dynamic
Recomposition/Reconfiguration
Loosely coupled services
Services
23/4/723/4/7 1414
Tornado: Reusability via ProgressionTornado: Reusability via Progression
23/4/723/4/7 1515
Another Illustration of ReusabilityAnother Illustration of Reusability
23/4/723/4/7 1616
Reusability PathwayReusability Pathway
• Start with almost nothing;
• Gradually develop services/workflows/application templates for reusability
• Start from internal services/workflows/application templates gradually to external ones.
• This will address many quality issues.
23/4/723/4/7 1717
Reusability will Explode like a TornadoReusability will Explode like a Tornado
• As more services, workflows, and application templates are created, additional issues will pop out.
• An immediate issue is portfolio management. The company needs to maintain a portfolio of reusable assets.
• As more reusable assets are available, more assets will be reused.
• The rate of reuse will also increase.• The quality of reusable assets increases as reusability
increases.• The above three attributes contribute to the Tornado
Reusability model.
23/4/723/4/7 1818
SOA changes the Software SOA changes the Software MarketMarket
• From the current vertical market to horizontal market where each supplier can compete at each stack layer.
• This will drive the software price significantly lower, but at the same time will drive the market much bigger than before.
• Even grandma will need to learn SOA eventually to do their daily work.
• Every college student needs to learn SOA instead of just computer science students.
23/4/723/4/7 1919
SOA affects Computing SOA affects Computing TechnologiesTechnologies
• Enterprise software level• Application software• Computing infrastructure
– GUI, compilers, operating systems, database management systems, security mechanisms.
• Hardware– Service-oriented hardware– Hardware support for SOC
• Communication– Service-oriented communication– Communication support for SOC
23/4/723/4/7 2020
From Object-Oriented Paradigm to Service-Oriented Paradigm
OO Languages
OO ModelingLanguages &IDE
Object-OrientedConcept
& Architecture
SimulaSmalltalk
Objective C C++Java
UMLCORBA
MS .NetJDKGCC
OO Technology & Framework
OO system engineering (OOSE)OO testing
OO maintenanceOO application frameworks
OO databases (OODB)OO lifecycle (XP? MDA?)
SO ModelingLanguages & IDESO Standards
XMLUDDI ebXMLWSDLSOAPOWL
Service-OrientedConcept
& Architecture
BPELWSFL
XLANG
MS. NetWebSphere
SO Technology & Framework
SO System Engineering (SOSE?)SO testing (WebStrar?)
SO maintenance (re-composition?)SO frameworks (FERA? SOI?)
SO databases (Ontology DB, SODB?)
SO Lifecycle (MDA, [re-]composition)
23/4/723/4/7 2121
SOA Changes System and SOA Changes System and Software DevelopmentSoftware Development
• Service-oriented requirement engineering– Model-based – Architecture-based – Reuse-oriented– Framework-oriented analysis– Simulation-based analysis with formal analysis– Ontology-based
• Service-oriented architecture and design – Enterprise computing– Dynamic collaboration– Dynamic system composition – Dynamic system analysis– Various service-oriented architecture
23/4/723/4/7 2222
SOA Changes System and SOA Changes System and Software DevelopmentSoftware Development
• Service-oriented programming languages – Model-based development– Automated code generation
• Service-oriented implementation – Dynamic discovery– Dynamic composition– Model-based architecture– Automated code generation
• Collaborative verification and validation (CV&V)– Dynamic testing including test generation, execution, monitoring, and
evaluation– Dynamic model checking– Dynamic simulation including simulation code generation, distributed
simulation– Dynamic reliability estimation, data collection, control, evaluation
23/4/723/4/7 2323
SOA Changes System and SOA Changes System and Software DevelopmentSoftware Development
• Operation – Dynamic monitoring and automated generation of monitors– Dynamic policy enforcement including policy specification,
analysis, simulation, checking, enforcement, and evaluation on various policies such as security policies.
• Maintenance– Dynamic re-binding (change of services)– Dynamic re-composition (change of workflow)– Dynamic re-architecture (change of the overall structure)– For fault tolerance, performance, workload, or new functionality
23/4/723/4/7 2424
Adaptive Control Framework for SOCAdaptive Control Framework for SOC
DSCA forReasoning
and Control
Policyenforcement
Testing
Deployment
Reliabilitymodeling
C&C
Modelchecking
Simulation
Application
Data collectionData mining
DSCA forReasoning
and Control
Policyenforcement
Testing
Deployment
Reliabilitymodeling
C&C
Modelchecking
Simulation
Application
Data collectionData mining
23/4/723/4/7 2525
Service-Oriented EngineeringService-Oriented Engineering
• Dynamic testing, verification, evaluation, simulation, reliability analysis of services
• Dynamic policy construction, verification, simulation, enforcement of security and other policies using formal policy languages
• System maintenance and update will be via service re-composition and possibly architectural reconfiguration
23/4/723/4/7 2626
SOA Provides a New View on Software SOA Provides a New View on Software ArchitectureArchitecture
Component 1
Compoent 3 Component 4
Component 2
Control CenterCommunication Backbone
Service 1 Service 2 Service 3
Service 4 Service 5 Service N... ...
vs.
Service 1 Service 3 Service 4Service 2
Service 1
Service 3
Service 4
Service 2
Service 1
Service 3 Service 4Service 2
Traditional architecture
Generic SOA application architecture
23/4/723/4/7 2727
What is a Software Program?What is a Software Program?
• It is NOT a collection of modules.• It is essentially a model with data and a pool of reusable
services, workflows, and application templates.• This is drastically different from traditional view of
software.• Reusable assets will be subjected to numerous quality
assurance mechanisms and thus they will become stable in the future. Only the best services, workflows, and application templates can survive.
• This means that model and data will be more important than the reusable assets.
23/4/723/4/7 2828
A Complex SOA DesignA Complex SOA Design
Fault-Tolerant Communication Backbone
Service 1 w/ DRS
Service 2 w/ DRS
Service 3 w/ DRS
Service 4 w/ DRS
Service 5 w/ DRS
Service N w/ DRS
Dynamic Composition
Manager
DynamicWorkflow
Specification
Data Collection
Analysis
DRS
23/4/723/4/7 2929
Model-based XXModel-based XX
• Model-based requirement engineering• Model-based design• Model-based automated code generation• Model-based distributed testing• Model-based simulation• Model-based reliability evaluation• Model-based monitoring• Model-based analysis
23/4/723/4/7 3030
Software Reliability ModelsSoftware Reliability Models
• Instead of relying on ancient historical data, and various reliability models.
• SOA can use architecture-based reliability models, and can use data just collected to accurately evaluate the model.
23/4/723/4/7 3131
SOA Affects EducationsSOA Affects Educations
• Change the business practice and model
• Change the basic computing practice
• Change the course materials and curriculum
• Market now needs people to know how to apply computer technology to specific application domains, not just knowledge of computers only.
23/4/723/4/7 3232
What kinds of SOA Education are What kinds of SOA Education are we aiming?we aiming?
• When we have high-level programming language, do we teach students how to develop compilers as the first programming course or we teach programming constructs?
• Now, we have SOA, do we teach how to use SOA in applications or we teach SOA protocols used to implement the SOA infrastructure? – SOA application engineers vs SOA infrastructure
developers.
23/4/723/4/7 3333
Current CS or CE CurriculumCurrent CS or CE Curriculum
• Heavily traditional programs focus on data structure, programming languages, operating systems, database, software engineering, computer networks, compilers, theory of computation, algorithms, simulation, AI, numerical analysis, robotics, parallel processing, and architecture.
• Recent addition (last 10 years) include OO Modeling, design patterns, bioinformatics, information assurance, SOA, and Java,
23/4/723/4/7 3434
Model Undergraduate CurriculumModel Undergraduate Curriculum
• Usual first year and second year program like Calculus, Physics, Chemistry, Writing, Social Sciences. Basic SOA principles and programming.
• Junior year: Formal SOA education including dynamic composition, architecture, requirements, modeling, design, V&V, simulation, policy, data provenance, real-time computing.
• Senior year: elective in one of core application areas such as business, supply chain, bioinformatics, healthcare, bioengineering, mechanical engineering, robotics, Arts and Media, human machine interfaces.
• Traditional CS courses updated, e.g., instead of writing device drivers, we ask students to use device drivers for certain SOA applications.
23/4/723/4/7 3535
SOA as the First Programming SOA as the First Programming CourseCourse
• Crazy?• The basic principles of SOA are not
difficult to teach.• Teach our young children to compose
applications (LEGO) rather than programming applications.
• Making first programming course fun and exciting with robots, visualization, simulation, and dynamic behaviors.
23/4/723/4/7 3636
SOA as a National PrioritySOA as a National Priority
• SOA will have more impact than people have thought it could.
• The impact will be dramatic and drastic, even though it will come slowly.
• Market and business practice will change.• Education system will change, and we will have a very
different CS program in the future. Major textbooks will be re-written.
• SOA will be used by almost every one who can use a web browswers.
• Hundred of millions of lines of code will be composed.• A new engineering approach will emerge and that will be
very different from the current practice.