Presentation is loading. Please wait.

Presentation is loading. Please wait.

Introduction to Distributed Objects and Services David Rabinowitz.

Similar presentations


Presentation on theme: "Introduction to Distributed Objects and Services David Rabinowitz."— Presentation transcript:

1 Introduction to Distributed Objects and Services David Rabinowitz

2 15.11.2016 Object Oriented Design Course 2 Distributed Objects Why do we need remote services? History Web Services

3 15.11.2016 Object Oriented Design Course 3 Requirements Serialize / marshal data How to turn abstract data to bytes, and vice versa. Powerful, Flexible, Robust Independence Platform, OS, programming language, implementation Security How to transfer sensitive data over the internet ? How to expose the minimum of the internal network ? Did someone just said firewalls ?

4 15.11.2016 Object Oriented Design Course 4 History RPC – Remote Procedure Call Client/Server RMI – Remote Method Invocation Java Specific CORBA – Common Object Request Broker Architecture Language, OS, Vendor neutrality IDL DCOM

5 15.11.2016 Object Oriented Design Course 5 Example Program StubSkeleton Object 1. Method calling the stub 2. Serialization of arguments values 3.transmission 4. De-serialization of arguments values 5. Method call on the object 6. Method returns result 7. Serialization of result value 8.transmission 9. De-serialization of result value 10. Stub returns value to calling program

6 15.11.2016 Object Oriented Design Course 6 Problems Complexity CORBA Firewalls Almost all of them Too specific RMI, DCOM Implementation sensitivity RMI (Serialization)

7 15.11.2016 Object Oriented Design Course 7 Working With Standards XML Text, not binary Very popular for representing data Supported on all platforms XML Schema HTTP Popular transport layer Request/response By default open on firewalls

8 15.11.2016 Object Oriented Design Course 8 Web Services An XML/HTTP based remote invocation mechanism Protocol SOAP - Simple Object Access Protocol XML Based Interface Definition WSDL – Web Services Description Lang. XML Based

9 15.11.2016 Object Oriented Design Course 9 Web Services II Neutral to Language OS Implementation Interface based Sharing schema, not class Independent deployment and versioning Heterogeneous platforms

10 15.11.2016 Object Oriented Design Course 10 Web Services III New WWW applications Software and not humans navigate the web Strong security -> economic transactions Sim plifies integration between apps Major issue facing large organizations today Many systems, platforms, formats, upgrades, … A Real heterogeneous platform

11 Intro to Software Engineering Extreme Programming David Talby

12 15.11.2016 Object Oriented Design Course 12 This Lecture Introduction to Software Engineering The Software Crisis Methodologies Extreme Programming Agile Development Principles XP Practices

13 15.11.2016 Object Oriented Design Course 13 The Software Crisis 75% of the enterprise software products are considered to be a failure – they are not in use or do not fit customer’s requirements  Software errors cost US economy $59.5 billion annually (In Q2 of 2003 – investments of $200 billion in software development) Based on: Mullet, D. (July, 1999). The Software Crisis, Benchmarks Online - a monthly publication of Academic Computing Services 2(7). The National Institute of Standards and Technology (NIST), New Release of June 28, 2002.

14 15.11.2016 Object Oriented Design Course 14 The Software Crisis II Small software projects take on average 100% more time and resources than planned Large projects are one year late on average Periods of excessive time pressure occur in 75% of large projects 60% of programmers report excessive time pressure Based on: Standish Group, ‘94 Based on: Jones, ‘94 Based on: Glass, ‘94 and Jones, ‘94

15 15.11.2016 Object Oriented Design Course 15 The Software Crisis III In Words Most software is totally unusable Most software is buggy, unstable and insecure Most software development plans are unreliable Yet, software runs the world

16 15.11.2016 Object Oriented Design Course 16 What is Software Engineering? Repeatability Ability to do a similar project again well Same time, budget, quality are expected

17 15.11.2016 Object Oriented Design Course 17 What is Software Engineering? II Methodology Well-defined roles: Architect, Engineer, Tester, Deployer, … Well-defined products: Designs, Specs, Code, Test scenarios, … Standard workflow of how things are done

18 15.11.2016 Object Oriented Design Course 18 What is Software Engineering? III Legal Liability Both Civil and Criminal Certification required for life-critical issues Methodology & Notation are laws

19 15.11.2016 Object Oriented Design Course 19 State of the Software World Large Scale Lack of repeatability, even for small projects Inability to provide quality software No standard definition of roles & products No standard for requirements, design, tests, … It’s a “wild west” profession Small Scale Developers don’t produce working software Developer tools are also far from perfect

20 15.11.2016 Object Oriented Design Course 20 Development Methodologies A methodology describes An entire life cycle of a software product Roles, Products, Workflow Best Practices Classic methodologies: Linear Linear/Incremental: Waterfall model Iterative: Rational Unified Process Modern methodologies: Agile Adaptive Extreme

21 15.11.2016 Object Oriented Design Course 21 Rational Unified Process By Rational, see rational.com/ruprational.com/rup Iterative Development Decompose large system to sub-systems A team and development effort per system Architects Team does overall design, sharing Five stages of each system’s life cycle Business modeling, Requirements, Analysis & Design, Implementation, Test Many artifacts are not code or tests Highly managed, highly automated process

22 15.11.2016 eXtreme Programming By Kent Beck, see XProgramming.comXProgramming.com Embrace change Simplicity User involvement & rapid feedback Incremental pay-as-you-go design Test-first programming

23 15.11.2016 The XP Principles Develop by iterations of 1-3 weeks each: Plan (user stories) -> design (simplest!) -> test (unit tests) -> code (and refactor) Testing Functional tests: in design phase Unit tests as part of coding Continuous Integration Quality Work Refactoring, 40-Hour Week

24 15.11.2016 The 12 XP Principles Planning Game Small Releases On-Site Customer Metaphor Simple Design 40-Hour Week Pair Programming Collective Ownership Testing Refactoring Continuous Integration Coding Standard

25 15.11.2016 Summary Writing Software ≠ Delivering Products Requirements, Architecture, Design, Code, Integrate, Test, Deploy, Maintain, Update The Software Crisis Software Today < 20% of existing code is Object-Oriented > 90% of new code is Object-Oriented Reuse: Libraries, Components, Web Services Major Frameworks/Platforms: Java and.NET


Download ppt "Introduction to Distributed Objects and Services David Rabinowitz."

Similar presentations


Ads by Google