Introduction to Distributed Objects and Services David Rabinowitz.

Slides:



Advertisements
Similar presentations
Web Service Architecture
Advertisements

General introduction to Web services and an implementation example
RPC Robert Grimm New York University Remote Procedure Calls.
A little Software Engineering: Agile Software Development C Sc 335 Rick Mercer.
Alternate Software Development Methodologies
Software Life Cycles ECE 417/617: Elements of Software Engineering
Presentation 7 part 1: Web Services Introduced. Ingeniørhøjskolen i Århus Slide 2 Outline Definition Overview of Web Services Examples Next Time: SOAP.
Agile Requirements Methods CSSE 371 Software Requirements and Specification Mark Ardis, Rose-Hulman Institute October 26, 2004.
.NET Review Intro to Software Engineering David Talby.
Agile Methodology: The New Wave in Software Development By Patricia Cleary Thesis Hypothesis: The agile methodologies are better than the current methodology.
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
Middleware Technologies compiled by: Thomas M. Cosley.
Extreme Programming Mark Steverson. What Is Extreme Programming? ● Extreme Programming (XP) is a lightweight, agile methodology developed by Kent Beck.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
XP and Refactoring David Talby. Development Methodologies The Software Crisis – 84% of software projects are not on time – 31% of software projects never.
.NET and J2EE Intro to Software Engineering David Talby.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Web Services Michael Smith Alex Feldman. What is a Web Service? A Web service is a message-oriented software system designed to support inter-operable.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Introduction SOAP History Technical Architecture SOAP in Industry Summary References.
Chapter 5 Software Process Models. Problems with “Traditional” Processes 1.Focused on and oriented towards “large projects” and lengthy development time.
Web Services Architecture1 - Deepti Agarwal. Web Services Architecture2 The Definition.. A Web service is a software system identified by a URI, whose.
1 G52IWS: Distributed Computing Chris Greenhalgh.
UNIT – II ARCHITECTING WEB SERVICES. WHAT ARE WEB SERVICES ? Web Services are loosely coupled, contracted components that communicate via XML-based interfaces.
Chapter 3: Objects, Components, and the Web Textbook IT Architectures and Middleware, Second Edition Chris Britton and Peter Bye AIT 600 Jeff Schmitt September.
1 Chapter 38 RPC and Middleware. 2 Middleware  Tools to help programmers  Makes client-server programming  Easier  Faster  Makes resulting software.
Distributed Communication via ASP.Net Web Services and.Net Remoting By Richard King.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Lecture 15 Introduction to Web Services Web Service Applications.
Comparison of Web Services, RMI, CORBA, DCOM Usha, Lecturer MCA Department of Computer Science and Engineering.
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
Web Services based e-Commerce System Sandy Liu Jodrey School of Computer Science Acadia University July, 2002.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
June 05 David A. Gaitros Jean Muhammad Introduction to OOD and UML Dr. Jean Muhammad.
SEMINOR. INTRODUCTION 1. Middleware is connectivity software that provides a mechanism for processes to interact with other processes running on multiple.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 1 Method/Process = step-by-step description of the steps involved.
Chapter 2 Software processes. Topics covered Software process models Process activities Coping with change.
CS 501: Software Engineering Fall 1999 Lecture 12 System Architecture III Distributed Objects.
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
S imple O bject A ccess P rotocol Karthikeyan Chandrasekaran & Nandakumar Padmanabhan.
Extreme Programming Based on and
Center for Advanced Studies, Research and Development in Sardinia Network Distributed Application XP4IDE Applying XP Practices to Project Management Open.
CSIT 220 (Blum)1 Remote Procedure Calls Based on Chapter 38 in Computer Networks and Internets, Comer.
S O A P ‘the protocol formerly known as Simple Object Access Protocol’ Team Pluto Bonnie, Brandon, George, Hojun.
An Introduction to Web Services Web Services using Java / Session 1 / 2 of 21 Objectives Discuss distributed computing Explain web services and their.
Introduction to Web Services. Agenda Motivation History Web service model Web service components A walkthrough examples.
1 Chapter 38 RPC and Middleware. 2 Middleware  Tools to help programmers  Makes client-server programming  Easier  Faster  Makes resulting software.
Agile Methods Presentation By: Jason Abbett. Definition A process to rapidly develop software Many kinds of agile methods but few are practiced.
EXtreme Programming and Open Source engineering paradigm A comparison
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
A service Oriented Architecture & Web Service Technology.
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 15 System Architecture III.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Software Development Life Cycle. The Software Life Cycle  Encompasses all activities from initial analysis until end of work  Formal process for software.
Project Management Software development models & methodologies
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Embedded Systems Software Engineering
Software Development.
CSC 355 – Newer Approaches to System Development Life Cycles & Processes, Spring 2017 March 2017 Dr. Dale Parson.
Sabri Kızanlık Ural Emekçi
CORBA Alegria Baquero.
Extreme Programming.
Component-Based Software Engineering: Technologies, Development Frameworks, and Quality Assurance Schemes X. Cai, M. R. Lyu, K.F. Wong, R. Ko.
CORBA Alegria Baquero.
The future of distributed systems architecture
3 Cloud Computing.
Component--based development
Service Oriented Architecture (SOA)
Chapter 5: New and Emerging Process Methodologies
Presentation transcript:

Introduction to Distributed Objects and Services David Rabinowitz

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

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 ?

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

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

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

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

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

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

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

Intro to Software Engineering Extreme Programming David Talby

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

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.

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

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

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

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

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

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

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

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

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

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

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

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