Nipissing University, North Bay, Ontario, Canada 1 Building Reusable Components with Service-Oriented -IBM Eclipse Innovation Grant -IBM Eclipse Innovation.

Slides:



Advertisements
Similar presentations
웹 서비스 개요.
Advertisements

Web Service Ahmed Gamal Ahmed Nile University Bioinformatics Group
Software Engineering 2003 Jyrki Nummenmaa 1 OBJECT ARCHITECTURE DESIGN These slides continue with our example application, based on the simplified.
Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)
7M701 1 Software Engineering Object-oriented Design Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 12 )
A New Computing Paradigm. Overview of Web Services Over 66 percent of respondents to a 2001 InfoWorld magazine poll agreed that "Web services are likely.
16/13/2015 3:30 AM6/13/2015 3:30 AM6/13/2015 3:30 AMIntroduction to Software Development What is a computer? A computer system contains: Central Processing.
Fall 2007CS 225 Introduction to Software Design Chapter 1.
Web Services Andrea Miller Ryan Armstrong Alex. Web services are an emerging technology that offer a solution for providing a common collaborative architecture.
Copyright © 2006 Addison-Wesley. All rights reserved.1-1 ICS 410: Programming Languages Chapter 3 : Describing Syntax and Semantics Operational Semantics.
Karlstad University Computer Science Design Contracts and Error Management Design Contracts and Errors A Software Development Strategy (anpassad för PUMA)
©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or display. COMPSCI 125 Introduction to Computer Science I.
Chapter 2: Impact of Machine Architectures What is the Relationship Between Programs, Programming Languages, and Computers.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
School of Computer ScienceG53FSP Formal Specification1 Dr. Rong Qu Introduction to Formal Specification
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen-Bolzano Lesson 1 – Component-Based.
CSC230 Software Design (Engineering)
UNIT-V The MVC architecture and Struts Framework.
A Scalable Application Architecture for composing News Portals on the Internet Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta Famagusta.
Modelling information systems
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
Understanding the CORBA Model. What is CORBA?  The Common Object Request Broker Architecture (CORBA) allows distributed applications to interoperate.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements.
CSE 303 – Software Design and Architecture
SOME IMPORTANT FACTORS IN TEACHING SOFTWARE ENGINEERING COURSES Presenter: Jingzhou Li Depart of ECE, University of Calgary,
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
Coupling and Cohesion Pfleeger, S., Software Engineering Theory and Practice. Prentice Hall, 2001.
1 COSC 4406 Software Engineering COSC 4406 Software Engineering Haibin Zhu, Ph.D. Dept. of Computer Science and mathematics, Nipissing University, 100.
Web Services (SOAP, WSDL, and UDDI)
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Session-8 Data Management for Decision Support
Patterns and Reuse. Patterns Reuse of Analysis and Design.
1 A Role-Based Approach to Robot Agent Team Design Author: Haibin Zhu, Senior Member, IEEE Dept. of Computer Science and mathematics, Nipissing University,
Component Technology. Challenges Facing the Software Industry Today’s applications are large & complex – time consuming to develop, difficult and costly.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
1 Encourage Participants’ Contributions by Roles -IBM Eclipse Innovation Grant -IBM Eclipse Innovation Grant -IBM Eclipse Innovation Grant Haibin Zhu,
1 COSC 4406 Software Engineering COSC 4406 Software Engineering Haibin Zhu, Ph.D. Dept. of Computer Science and mathematics, Nipissing University, 100.
1 Text Reference: Warford. 2 Computer Architecture: The design of those aspects of a computer which are visible to the programmer. Architecture Organization.
SOME ISSUES OF ROLE- BASED COLLABORATION Haibin Zhu, PhD Member, IEEE, Assistant Professor Dept. of Computer Science, Nipissing University, 100 College.
Nipissing University, North Bay, Ontario, Canada 1 Challenges to Reusable Services - IBM Eclipse Innovation Grant - IBM Eclipse Innovation Grant - IBM.
Jini Architecture Introduction System Overview An Example.
Advanced Web Technologies Lecture #4 By: Faraz Ahmed.
Methodology First and Language Second -A Way to Teach Object-Oriented Programming Haibin Zhu, PhD Department of Computer Science and Mathematics Nipissing.
Slide 1 Service-centric Software Engineering. Slide 2 Objectives To explain the notion of a reusable service, based on web service standards, that provides.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
Riyadh Philanthropic Society For Science Prince Sultan College For Woman Dept. of Computer & Information Sciences CS 251 Introduction to Computer Organization.
An Evolutional Cooperative Computation Based on Adaptation to Environment Naoyasu UBAYASHI and Tetsuo TAMAI Graduate School of Arts and Sciences University.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
Coupling and Cohesion Schach, S, R. Object-Oriented and Classical Software Engineering. McGraw-Hill, 2002.
Coupling and Cohesion Pfleeger, S., Software Engineering Theory and Practice. Prentice Hall, 2001.
A service Oriented Architecture & Web Service Technology.
Victoria Ibarra Mat:  Generally, Computer hardware is divided into four main functional areas. These are:  Input devices Input devices  Output.
A Semi-Automated Digital Preservation System based on Semantic Web Services Jane Hunter Sharmin Choudhury DSTC PTY LTD, Brisbane, Australia Slides by Ananta.
Maitrayee Mukerji. INPUT MEMORY PROCESS OUTPUT DATA INFO.
12. DISTRIBUTED WEB-BASED SYSTEMS Nov SUSMITHA KOTA KRANTHI KOYA LIANG YI.
Service Oriented Architecture (SOA) Prof. Wenwen Li School of Geographical Sciences and Urban Planning 5644 Coor Hall
WEB SERVICES.
Self Healing and Dynamic Construction Framework:
Java Beans Sagun Dhakhwa.
Generations of Computers
Service-centric Software Engineering
Computers: Hardware and Software
Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta
GREATER SUDBURY POLICE SERVICE
OBJECT ARCHITECTURE DESIGN
Combinational Circuits
Combinational Circuits
From Use Cases to Implementation
Software Architecture & Design
Presentation transcript:

Nipissing University, North Bay, Ontario, Canada 1 Building Reusable Components with Service-Oriented -IBM Eclipse Innovation Grant -IBM Eclipse Innovation Grant -IBM Eclipse Innovation Grant Haibin Zhu, Ph.D. Dept. of Computer Science and mathematics, Nipissing University, 100 College Dr., North Bay, ON P1B 8L7, Canada

Nipissing University, North Bay, Ontario, Canada2 Nipissing University

Nipissing University, North Bay, Ontario, Canada3 Barrie2.5 Brantford4.5 Hamilton Kitchener/ Waterloo 4.5 London5.5 Ottawa Owen Sound4 Pembroke2.5 Peterborough3.5 Sault Ste. Marie Sudbury1.5 Timmins Toronto

Nipissing University, North Bay, Ontario, Canada4 Contents 1.The Difficulties of Software Reuse 2.The Key Problems of Reusable Components 3.Fundamental Architectures for Services 4.Issues of Reusable Services 5.Conclusions

Nipissing University, North Bay, Ontario, Canada5 The Difficulties of Software Reuse  The initial idea of component-based development is learning from the hardware industry to reuse hardware components such as integrated circuits (IC), large-scale integrated circuit (LSI), very large scale integrated circuits (VLSI), chips, chip-sets, boards, etc  Reusing hardware components is well accepted, because in hardware engineering, to understand a component is much easier than to make it.  It is impossible for application developers to develop hardware components such as chips and boards.

Nipissing University, North Bay, Ontario, Canada6 The Difficulties of Software Reuse  It is possible for application developers to develop software components such as a program segment, a function, or even a class.  In the software industry, a software component either is too simple or has too complicated specifications. –If it is too simple, the programmers believe that they can make it by themselves. –If the specifications are too complex, the situation is that, after understanding the component’s specification, the programmers believe that they can make a better one by themselves.

Nipissing University, North Bay, Ontario, Canada7 The Difficulties of Software Reuse  The key difficulty is to make specifications much simpler than the implementation logic.  Service-oriented architectures brought about new light to the research and practice of reusable components, because the “register, find, bind and execute” paradigm is a good style for software development.

Nipissing University, North Bay, Ontario, Canada8 Make services more reusable  One is that we must provide the services that are difficult to develop and we should have an advanced development environment that is difficult or expensive for application developers to build or purchase.  The other one is that we should make the services easy to apply and we should provide cheap service application tools that are easy and cheap to install.  That is why the “register, find, bind and execute” paradigm is a possible way to make more reusable components.

Nipissing University, North Bay, Ontario, Canada9 Fundamental Architectures for Services  Centralized service center

Nipissing University, North Bay, Ontario, Canada10 Architectures (2)  Distributed Service Center

Nipissing University, North Bay, Ontario, Canada11 Architectures (3)  Distributed service providers with centralized service registry

Nipissing University, North Bay, Ontario, Canada12 Architectures (4)  Distributed Service Providers and Service Registries

Nipissing University, North Bay, Ontario, Canada13 Issues of Reusable Services  Questions: –How can we make a service easily understood? Or how could we make a service with a shorter cognitive distance? –How can service providers convince service requestors that their services are just what the requestors ask for? –How can application developers evaluate services? –How can we compare the financial benefits between buying services and developing by ourselves? –How can we guarantee the performance of an application with services?

Nipissing University, North Bay, Ontario, Canada14 Service Specification  S ::=, where, –N is the name of the service provider (internally an identification or Universal Resource Locator (URL) of the service provider); –P is the pattern of the service (the simplest form of the pattern is the name of the service and the most complex form is the complete function description of the service); –I is the format of inputs of the service; –R is the format of returned results of the service; and –M is the implementation of the service.

Nipissing University, North Bay, Ontario, Canada15 A Good Reusable Service  (1) Tdev(M) >> Tund(P) which means that the time to implement a service should be greatly larger than the time to understand the service pattern  (2) Q(I+R) << Q(M) that means that the space occupied by the input data and the result data should be greatly less than the space occupied by the service including data and processes.

Nipissing University, North Bay, Ontario, Canada16 Service Registry  A service registry stores and manages a collection of service specifications or a set of bindings between a service name and a service specification.  Sspec ::=, where Y is the semantics description of the service.  To manage service specifications with Java, a service registry can be expressed by a class Registry that implements the Map interface where the key of an entry for this map is a service patter P and the value is a service provider, a service input format, a returning result format, and a semantics description of the service, i.e.,.  Considering the situations of overloading, a value may consists a list of.  A service registry should support different kinds of search methods for service requesters to search a service.

Nipissing University, North Bay, Ontario, Canada17 Service Negotiation  (1) Concise and understandable: it should be easy to understand. This is the same as the requirement for service interfaces.  (2) Clear and rigid: every item should be clear and without ambiguity.  (3) Concrete and easily evaluated: for every service it should be easy to evaluate the quality of a service or to check if the service is completed.  A contract for a service is defined as x ::=, where, –Sspec is a service specification; –t is the performance requirement to complete the service; –cs is the cost of the service; and –cp is the penalty to the service provider’s failing to meet the performance requirement.

Nipissing University, North Bay, Ontario, Canada18  Service discovery and negotiation

Nipissing University, North Bay, Ontario, Canada19 Service Binding  When an application is working, there might still be new service providers joining the service network. The service requester should be able to apply the new service if it costs less or provides better performance.  “Static” means that the services will be determined before the application is running and “dynamic” means that the services might be determined when the application is running.  By “dynamic”, we have another meaning which is that the services might be removed and replaced with a new service. In this way, we need a facility to constantly contact the service providers and regularly compare and select the most economic services.

Nipissing University, North Bay, Ontario, Canada20 Listening to new services

Nipissing University, North Bay, Ontario, Canada21 Service Execution  Call-by-value or call-by-reference?  If we consider the address space of all the interconnected computers as one logical data space.  The service must reside on the computers of the service provider  The service is able to be transferred to other computers.  We may transfer the data to be processed, or we may transfer the executable code of the service if the service code is less than the data quantity and the computing power of the application developer is enough. Transferring codes is especially appropriate to the trustworthy service providers.

Nipissing University, North Bay, Ontario, Canada22 Conclusion  A service as a reusable unit is more appropriate for reusing software, because the logic of a service is generally so complicated that it is much easier for the service requesters to understand the contract than to implement the service by themselves. In this way, service requesters do not care and cannot care about the details of service implementations. This is a large step towards reusable components.  Potential topics: –Standardize service specification languages; –Provide more practical mechanisms for service publications; –Implement high performance service registry and service discovery; –Provide rigid contract negotiation tools; –Implement dynamic service binding; and –Develop strategies where the service execution should be located.

Nipissing University, North Bay, Ontario, Canada23 Question and Comments ?