Title: ServiceOriented System Engineering: A New Paradigm for System Engineering
1Service-Oriented System Engineering A New
Paradigm for System Engineering
- W. T. Tsai
- Department of Computer Science and Engineering
- Arizona State University
- Tempe, AZ 85287
- wtsai_at_asu.edu
2SOA as a New Computing Paradigm
- 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?
3Impact of a New Computing Paradigm
- Mindset
- Technology
- Education
- Business and market
- Daily life
4OO Computing as a New Computing Paradigm
- OO was introduced by SIMULA, and then later by
SMALLTALK in early 1970s. - 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.
5Impact 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.
6Can we learn something from the 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.
7SOA 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?
8Impact of SOA as a New Computing Paradigm
- 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!
9New 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.
10SOA 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.
11Car 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,.
12Car 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
13Servicetized Systems
14Tornado Reusability via Progression
15Another Illustration of Reusability
16Reusability 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.
17Reusability 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.
18SOA changes the Software Market
- 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.
19SOA affects Computing Technologies
- 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
20From Object-Oriented Paradigm to Service-Oriented
Paradigm
OO Modeling Languages IDE
OO Technology Framework
OO Languages
OO system engineering (OOSE) OO testing OO
maintenance OO application frameworks OO
databases (OODB) OO lifecycle (XP? MDA?)
Object- Oriented Concept Architecture
Simula Smalltalk Objective C C Java
UML CORBA MS .Net JDK GCC
SO Modeling Languages IDE
SO Technology Framework
SO Standards
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)
XML UDDI ebXML WSDL SOAP OWL
Service- Oriented Concept Architecture
BPEL WSFL XLANG MS. Net WebSphere
21SOA Changes System and Software 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
22SOA Changes System and Software 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 (CVV)
- 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
23SOA Changes System and Software 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
24Adaptive Control Framework for SOC
25Service-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
26SOA Provides a New View on Software Architecture
Traditional architecture
vs.
Generic SOA application architecture
27What 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.
28A Complex SOA Design
29Model-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
30Software 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.
31SOA 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.
32What kinds of SOA Education are 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.
33Current 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,
34Model 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, VV, 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.
35SOA as the First Programming Course
- 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.
36SOA 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.