4/29/10 1 Service-Oriented System Engineering: A New Paradigm ...


Published on

  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

4/29/10 1 Service-Oriented System Engineering: A New Paradigm ...

  1. 1. Service-Oriented System Engineering: A New Paradigm for System Engineering W. T. Tsai Department of Computer Science and Engineering Arizona State University Tempe, AZ 85287 [email_address]
  2. 2. SOA as a New Computing Paradigm <ul><li>SOA is being considered as a new computing paradigm. </li></ul><ul><li>But what does it mean that it is a paradigm? </li></ul><ul><li>What kinds of technology can be considered as new paradigm? </li></ul><ul><li>If SOA is a new paradigm, what are its implications? </li></ul>
  3. 3. Impact of a New Computing Paradigm <ul><li>Mindset </li></ul><ul><li>Technology </li></ul><ul><li>Education </li></ul><ul><li>Business and market </li></ul><ul><li>Daily life </li></ul>
  4. 4. OO Computing as a New Computing Paradigm <ul><li>OO was introduced by SIMULA, and then later by SMALLTALK in early 1970’s. </li></ul><ul><li>But OO was not accepted as new computing paradigm until around 1983-1985. </li></ul><ul><li>Note carefully it was NOT technology innovation that triggered the new computing paradigm, it was technology adoption by industries and government . </li></ul><ul><li>Even after it was accepted as a new paradigm, many of OO technologies are not mature or ready. For example, OO design and C++. </li></ul><ul><li>After it was accepted, 7 to 10 years later, true OO technologies then emerged. </li></ul>
  5. 5. Impact of the OO Paradigm <ul><li>Mindset </li></ul><ul><ul><li>From Data Abstraction and Subroutines to Classes and Objects </li></ul></ul><ul><li>Technology </li></ul><ul><ul><li>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. </li></ul></ul><ul><li>Education </li></ul><ul><ul><li>Significant changes, every CS student need to learn UML and design patterns, but OO education did not start until 7-10 years later. </li></ul></ul><ul><li>Business and markets </li></ul><ul><ul><li>Wide market acceptance only about 7 years later. Every competitive computer company use OO technologies. </li></ul></ul>
  6. 6. Can we learn something from the OO history? <ul><li>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. </li></ul><ul><li>Several true and lasting OO techniques (UML, design patterns) came only after about 10 to 12 years later . </li></ul><ul><li>The education aspect did not get started until 10 years later . </li></ul><ul><li>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 . </li></ul><ul><li>This shows that we human are still extremely limited and we should be humble. </li></ul>
  7. 7. SOA as New Paradigm <ul><li>Around 2001, something that never happened before has happened: </li></ul><ul><ul><li>All the major computer companies adopted SOA including IBM, Microsoft, Oracle, SAP, Sun Microsystems, Intel, and BEA. </li></ul></ul><ul><ul><li>Even US government agencies DoD also adopted SOA </li></ul></ul><ul><li>This is a historical event, and this means SOA is the new computing paradigm. </li></ul><ul><li>Why not component-based software engineering? </li></ul>
  8. 8. Impact of SOA as a New Computing Paradigm <ul><li>Mindset </li></ul><ul><ul><li>Think in terms of workflow and services, and instead of programming, think composition. </li></ul></ul><ul><li>Technology </li></ul><ul><ul><li>All software and hardware technologies are affected, and expect similar or even greater impact as OO technologies did </li></ul></ul><ul><li>Education </li></ul><ul><ul><li>Very significant changes will come several years later </li></ul></ul><ul><li>Business and market </li></ul><ul><ul><li>Business and market will change significantly </li></ul></ul><ul><li>Daily life </li></ul><ul><ul><li>Life changing impact! </li></ul></ul>
  9. 9. New SOA Mindsets <ul><li>We need a new mindset for SOA, and it should be rather different from the previous paradigm. </li></ul><ul><ul><li>Earlier, we used dataflow analysis for OO design, and we should make the counterpart mistakes again. </li></ul></ul><ul><li>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. </li></ul><ul><li>Focus on applications and composition rather than development and programming . </li></ul><ul><li>Compose millions lines of code in minutes. </li></ul><ul><li>Teach SOA as the first software course to establish a new mindset. </li></ul>
  10. 10. SOA is/is not <ul><li>SOA is about composition using reusable components (services) represented by open standards. </li></ul><ul><li>SOA is NOT about how these WS protocols. </li></ul><ul><li>The differences between car manufacturers and car users. </li></ul><ul><li>Training for SOA infrastructure developers vs SOA application developers. 1M vs 1 Billion. </li></ul>
  11. 11. Car Manufacturer <ul><li>Design car body, engine, transmission, battery, car seats, airbags, steering, security systems, lights, navigation, tires, and belts. </li></ul><ul><li>Science and engineering: thermodynamics, mechanical design, control theory,…. </li></ul>
  12. 12. Car Users <ul><li>Drive cars to achieve some missions – fun driving or go to work. </li></ul><ul><li>Science and engineering needed: </li></ul><ul><ul><li>Map reading </li></ul></ul><ul><ul><li>Traffic laws and signs </li></ul></ul><ul><ul><li>Hand and leg coordination </li></ul></ul><ul><ul><li>No drink-and-drive </li></ul></ul>
  13. 13. Servicetized Systems
  14. 14. Tornado: Reusability via Progression
  15. 15. Another Illustration of Reusability
  16. 16. Reusability Pathway <ul><li>Start with almost nothing; </li></ul><ul><li>Gradually develop services/workflows/application templates for reusability </li></ul><ul><li>Start from internal services/workflows/application templates gradually to external ones. </li></ul><ul><li>This will address many quality issues. </li></ul>
  17. 17. Reusability will Explode like a Tornado <ul><li>As more services, workflows, and application templates are created, additional issues will pop out. </li></ul><ul><li>An immediate issue is portfolio management. The company needs to maintain a portfolio of reusable assets. </li></ul><ul><li>As more reusable assets are available, more assets will be reused. </li></ul><ul><li>The rate of reuse will also increase. </li></ul><ul><li>The quality of reusable assets increases as reusability increases. </li></ul><ul><li>The above three attributes contribute to the Tornado Reusability model. </li></ul>
  18. 18. SOA changes the Software Market <ul><li>From the current vertical market to horizontal market where each supplier can compete at each stack layer. </li></ul><ul><li>This will drive the software price significantly lower, but at the same time will drive the market much bigger than before. </li></ul><ul><li>Even grandma will need to learn SOA eventually to do their daily work. </li></ul><ul><li>Every college student needs to learn SOA instead of just computer science students. </li></ul>
  19. 19. SOA affects Computing Technologies <ul><li>Enterprise software level </li></ul><ul><li>Application software </li></ul><ul><li>Computing infrastructure </li></ul><ul><ul><li>GUI, compilers, operating systems, database management systems, security mechanisms. </li></ul></ul><ul><li>Hardware </li></ul><ul><ul><li>Service-oriented hardware </li></ul></ul><ul><ul><li>Hardware support for SOC </li></ul></ul><ul><li>Communication </li></ul><ul><ul><li>Service-oriented communication </li></ul></ul><ul><ul><li>Communication support for SOC </li></ul></ul>
  20. 20. From Object-Oriented Paradigm to Service-Oriented Paradigm OO Languages OO Modeling Languages & IDE Object- Oriented Concept & Architecture Simula Smalltalk Objective C C++ Java UML CORBA MS .Net JDK GCC OO Technology & Framework OO system engineering (OOSE) OO testing OO maintenance OO application frameworks OO databases (OODB) OO lifecycle (XP? MDA?) SO Modeling Languages & IDE SO Standards XML UDDI ebXML WSDL SOAP OWL Service- Oriented Concept & Architecture BPEL WSFL XLANG MS. Net WebSphere 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)
  21. 21. SOA Changes System and Software Development <ul><li>Service-oriented requirement engineering </li></ul><ul><ul><li>Model-based </li></ul></ul><ul><ul><li>Architecture-based </li></ul></ul><ul><ul><li>Reuse-oriented </li></ul></ul><ul><ul><li>Framework-oriented analysis </li></ul></ul><ul><ul><li>Simulation-based analysis with formal analysis </li></ul></ul><ul><ul><li>Ontology-based </li></ul></ul><ul><li>Service-oriented architecture and design </li></ul><ul><ul><li>Enterprise computing </li></ul></ul><ul><ul><li>Dynamic collaboration </li></ul></ul><ul><ul><li>Dynamic system composition </li></ul></ul><ul><ul><li>Dynamic system analysis </li></ul></ul><ul><ul><li>Various service-oriented architecture </li></ul></ul>
  22. 22. SOA Changes System and Software Development <ul><li>Service-oriented programming languages </li></ul><ul><ul><li>Model-based development </li></ul></ul><ul><ul><li>Automated code generation </li></ul></ul><ul><li>Service-oriented implementation </li></ul><ul><ul><li>Dynamic discovery </li></ul></ul><ul><ul><li>Dynamic composition </li></ul></ul><ul><ul><li>Model-based architecture </li></ul></ul><ul><ul><li>Automated code generation </li></ul></ul><ul><li>Collaborative verification and validation (CV&V) </li></ul><ul><ul><li>Dynamic testing including test generation, execution, monitoring, and evaluation </li></ul></ul><ul><ul><li>Dynamic model checking </li></ul></ul><ul><ul><li>Dynamic simulation including simulation code generation, distributed simulation </li></ul></ul><ul><ul><li>Dynamic reliability estimation, data collection, control, evaluation </li></ul></ul>
  23. 23. SOA Changes System and Software Development <ul><li>Operation </li></ul><ul><ul><li>Dynamic monitoring and automated generation of monitors </li></ul></ul><ul><ul><li>Dynamic policy enforcement including policy specification, analysis, simulation, checking, enforcement, and evaluation on various policies such as security policies. </li></ul></ul><ul><li>Maintenance </li></ul><ul><ul><li>Dynamic re-binding (change of services) </li></ul></ul><ul><ul><li>Dynamic re-composition (change of workflow) </li></ul></ul><ul><ul><li>Dynamic re-architecture (change of the overall structure) </li></ul></ul><ul><ul><li>For fault tolerance, performance, workload, or new functionality </li></ul></ul>
  24. 24. Adaptive Control Framework for SOC
  25. 25. Service-Oriented Engineering <ul><li>Dynamic testing, verification, evaluation, simulation, reliability analysis of services </li></ul><ul><li>Dynamic policy construction, verification, simulation, enforcement of security and other policies using formal policy languages </li></ul><ul><li>System maintenance and update will be via service re-composition and possibly architectural reconfiguration </li></ul>
  26. 26. SOA Provides a New View on Software Architecture vs. Traditional architecture Generic SOA application architecture
  27. 27. What is a Software Program? <ul><li>It is NOT a collection of modules. </li></ul><ul><li>It is essentially a model with data and a pool of reusable services, workflows, and application templates . </li></ul><ul><li>This is drastically different from traditional view of software. </li></ul><ul><li>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. </li></ul><ul><li>This means that model and data will be more important than the reusable assets. </li></ul>
  28. 28. A Complex SOA Design
  29. 29. Model-based XX <ul><li>Model-based requirement engineering </li></ul><ul><li>Model-based design </li></ul><ul><li>Model-based automated code generation </li></ul><ul><li>Model-based distributed testing </li></ul><ul><li>Model-based simulation </li></ul><ul><li>Model-based reliability evaluation </li></ul><ul><li>Model-based monitoring </li></ul><ul><li>Model-based analysis </li></ul>
  30. 30. Software Reliability Models <ul><li>Instead of relying on ancient historical data, and various reliability models. </li></ul><ul><li>SOA can use architecture-based reliability models, and can use data just collected to accurately evaluate the model. </li></ul>
  31. 31. SOA Affects Educations <ul><li>Change the business practice and model </li></ul><ul><li>Change the basic computing practice </li></ul><ul><li>Change the course materials and curriculum </li></ul><ul><li>Market now needs people to know how to apply computer technology to specific application domains, not just knowledge of computers only. </li></ul>
  32. 32. What kinds of SOA Education are we aiming? <ul><li>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? </li></ul><ul><li>Now, we have SOA, do we teach how to use SOA in applications or we teach SOA protocols used to implement the SOA infrastructure? </li></ul><ul><ul><li>SOA application engineers vs SOA infrastructure developers. </li></ul></ul>
  33. 33. Current CS or CE Curriculum <ul><li>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. </li></ul><ul><li>Recent addition (last 10 years) include OO Modeling, design patterns, bioinformatics, information assurance, SOA, and Java, </li></ul>
  34. 34. Model Undergraduate Curriculum <ul><li>Usual first year and second year program like Calculus, Physics, Chemistry, Writing, Social Sciences. Basic SOA principles and programming. </li></ul><ul><li>Junior year: Formal SOA education including dynamic composition, architecture, requirements, modeling, design, V&V, simulation, policy, data provenance, real-time computing. </li></ul><ul><li>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. </li></ul><ul><li>Traditional CS courses updated, e.g., instead of writing device drivers, we ask students to use device drivers for certain SOA applications. </li></ul>
  35. 35. SOA as the First Programming Course <ul><li>Crazy? </li></ul><ul><li>The basic principles of SOA are not difficult to teach. </li></ul><ul><li>Teach our young children to compose applications (LEGO) rather than programming applications. </li></ul><ul><li>Making first programming course fun and exciting with robots, visualization, simulation, and dynamic behaviors. </li></ul>
  36. 36. SOA as a National Priority <ul><li>SOA will have more impact than people have thought it could. </li></ul><ul><li>The impact will be dramatic and drastic, even though it will come slowly. </li></ul><ul><li>Market and business practice will change. </li></ul><ul><li>Education system will change, and we will have a very different CS program in the future. Major textbooks will be re-written. </li></ul><ul><li>SOA will be used by almost every one who can use a web browswers. </li></ul><ul><li>Hundred of millions of lines of code will be composed. </li></ul><ul><li>A new engineering approach will emerge and that will be very different from the current practice. </li></ul>