Analysis & Design Method for OSGi-based Development
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Analysis & Design Method for OSGi-based Development

  • 4,920 views
Uploaded on

Analysis & Design Method for OSGi-based Development - Azrinsyah Mirza Asfian, MIMOS Berhad. Day 2. 1 June 2009. MSC Malaysia Open Source Conference 2009.

Analysis & Design Method for OSGi-based Development - Azrinsyah Mirza Asfian, MIMOS Berhad. Day 2. 1 June 2009. MSC Malaysia Open Source Conference 2009.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
4,920
On Slideshare
4,902
From Embeds
18
Number of Embeds
1

Actions

Shares
Downloads
117
Comments
1
Likes
3

Embeds 18

http://www.slideshare.net 18

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Analysis and Design Method for OSGi-based Development Azrinsyah Mirza Asfian, Engineer at MIMOS Berhad azrinsyah.asfian@mimos.my www.mimos.my © 2008 MIMOS Berhad. All Rights Reserved.
  • 2. Agenda • Introduction • Service-Oriented Programming and OSGi • Object-Oriented Analysis and Design Method • The Proposed Method – Analysis and Design Method – Example – Applying the Analysis and Design Method to the Case Study • Conclusions and Discussions www.mimos.my © 2008 MIMOS Berhad. All Rights Reserved.
  • 3. Introduction • OSGi – Open Services Gateway Initiative – technology defined and promoted by the OSGi Alliance – open specifications for network delivery of managed services to local networks and devices. • Service-orientation and component-orientation – requirements of having a new analysis and design approach – existing OOAD methodologies e.g. Booch, OMT and UML could not be applied directly • Proposes an analysis and design method for OSGi-based development www.mimos.my © 2008 MIMOS Berhad. All Rights Reserved.
  • 4. Service-Oriented Programming • Utilizes services as fundamental elements • In OO, objects are building blocks while in SO, services are its foundation blocks • A service embedded in some component – accepts one or more requests and returns one or more responses • Different from traditional methods, e.g. OO or structural • Remarkable traits – Dynamism – Substitutability • Discover and substitute at run-time • Focuses on how services are described and organized of appropriate services at run-time www.mimos.my © 2008 MIMOS Berhad. All Rights Reserved.
  • 5. Service-Oriented Interaction Pattern www.mimos.my © 2008 MIMOS Berhad. All Rights Reserved.
  • 6. Service-Oriented Programming (cont.) • OOP – problems can be modeled in terms of objects in the problem domain • SOP – problems can be modeled in terms of services which can be implemented and provided by any other components, based solely on the contract • SOA – can discover, substitute and co-ordinate service implementations at run-time – because components publish and use services in a P2P manner www.mimos.my © 2008 MIMOS Berhad. All Rights Reserved.
  • 7. Contributions of Service-Oriented Programming • Fosters code reuse • Rapid and dynamic system construction • System upgrade without restarting and • Independence from platforms, protocols and deployment environments www.mimos.my © 2008 MIMOS Berhad. All Rights Reserved.
  • 8. OSGi Concepts • Follows concept of SOP • OSGi spec defines the service framework – minimal component model – management service for the components – service registry – Initially used for service gateways – now, mainstream software devt e.g. Eclipse subproject called Equinox • Services (i.e., Java interfaces) – packaged along with implementations and associated resources into bundles – conforms to SO interaction pattern – deployed into the OSGi framework via WANs i.e., the Internet or other means e.g. GSM or memory cards. © 2008 MIMOS Berhad. All Rights Reserved.
  • 9. OSGi Concepts • Bundle is a Java JAR file that contains – physical unit of deployment – can be modified and updated without requiring system to be restarted – some combination of Java class files – native code – associated resources – manifest - meta-data describing, Java packages that the bundle requires or provides • Other competing SO architectures are NetBeans module and Java Plugin Framework www.mimos.my © 2008 MIMOS Berhad. All Rights Reserved.
  • 10. General Object-Oriented Analysis and Design (OOAD) Method • Steps available in both Booch and OMT: 1. Develop a problem statement 2. Identify the classes and objects 3. Identify the semantics (or attributes) of these classes and objects 4. Identify the relationships among these classes and objects 5. Specify the interface and then the implementation of these classes and objects www.mimos.my © 2008 MIMOS Berhad. All Rights Reserved.
  • 11. The Proposed Method • An improvement over existing OOAD methods. • Additional steps added: – Extract or reuse existing OSGi services and components (or bundles) based on their versions – Determine dependencies between services – Depict dynamic view of the system using service dependencies diagram www.mimos.my © 2008 MIMOS Berhad. All Rights Reserved.
  • 12. Analysis and Design Method • The resulting steps: 1. Develop a problem statement 2. Identify the services based on their intended responsibilities 3. Identify relationships between services during runtime. 4. Identify bundles that encapsulate a service (or services) 5. Identify classes and objects that make up a particular service and bundle 6. Identify the semantics (or attributes) of these classes and objects 7. Identify the relationships among these classes and objects 8. Specify the interface and then the implementation of these classes and objects www.mimos.my © 2008 MIMOS Berhad. All Rights Reserved.
  • 13. Example • Illustrate how to translate software requirements into design using OSGi • The requirements associated with this software: – System must be able to display all users available – When a user is selected, system must open a screen that displays details of the user. – All user information must be stored inside a centralized database. – System resides on a client computer which is remote from server that stores all the user information. www.mimos.my © 2008 MIMOS Berhad. All Rights Reserved.
  • 14. Applying the Analysis and Design Method – Overall System Architectural Diagram www.mimos.my © 2008 MIMOS Berhad. All Rights Reserved.
  • 15. Applying the Analysis and Design Method – Step 2 • Step 2 of the method is applied to the requirement specifications • Services identified: – Profile Persistence Service: Responsible in making used of Java persistence classes to perform Read operation on profile of users residing in centralized database – User Detail Screen Service: Provides a screen to open detail of a selected user – Main Screen Service: Shows the screen of main application – Table Screen Service: Provides table screen service www.mimos.my © 2008 MIMOS Berhad. All Rights Reserved.
  • 16. Applying the Analysis and Design Method – Step 3, Service Dependencies Diagram www.mimos.my © 2008 MIMOS Berhad. All Rights Reserved.
  • 17. Applying the Analysis and Design Method – Step 4 and Step 5 • Applying step 4 – results in each of the services to be in their respective bundles – need not to depict this – in complex systems where a bundle can provide more than one services, it is necessary to have a diagram on its own • Step 5 onwards will not be discussed here – same steps likewise OOAD methods – design patterns can be applied to further promote reusability within a bundle www.mimos.my © 2008 MIMOS Berhad. All Rights Reserved.
  • 18. Conclusions and Discussions • Suggested approach or step-by-step guidelines to build software systems utilizing OSGi • Weaknesses of this method are: – No formal notation defined to depict relationships between services during runtime – System architectural diagram must be depicted upfront – Identification and decompositions of services largely depends on skills and experience • A trend moving towards MDA and MDD is currently underway by OMG • In the future, this method can be improved to follow such a trend www.mimos.my © 2008 MIMOS Berhad. All Rights Reserved.
  • 19. THANK YOU www.mimos.my © 2008 MIMOS Berhad. All Rights Reserved.
  • 20. Object-Oriented Analysis and Design (OOAD) Method • In 1990s OO paradigm became popular – OO languages have been the preferred programming language – OO paradigm has introduced attributes which solve issues in structured paradigm • OOAD method – invented, likewise the structured analysis and design method is for structured paradigm – step-by-step guidelines for architects and developers on designing and developing their applications – popular methods e.g. Booch, Object Modeling Technique (OMT) and the Unified Modeling Language (UML) www.mimos.my © 2008 MIMOS Berhad. All Rights Reserved.
  • 21. OOAD Issues • Analysis and design of OO systems only • Resulting design is usually monolithic • Invented in 1990s where service-oriented and component-oriented paradigm was not common • An improved version of OOAD method is required • Do not cater for dynamism – service required or depended on by another service becomes unavailable – all components must be made available for the dependent components to be able to run or use – in SO, requires handling of unavailable service to be clearly specified during analysis and design phase www.mimos.my © 2008 MIMOS Berhad. All Rights Reserved.
  • 22. OOAD Issues (cont.) • UML does not provide formal notations to depict services • Structural view – bundle diagram that shows relationships and dependencies against other bundles – class diagram can still be used to illustrate classes within a package in a bundle • Dynamic view – OSGi bundle together with services that it offers to other services residing in other bundles – ensure that system being designed has all required services to be resolved and available during runtime www.mimos.my © 2008 MIMOS Berhad. All Rights Reserved.
  • 23. OOAD Issues (cont.) • OSGi attributes – possibility that different versions of same package providing a service to be made available – different versions of this package might be providing same service with different behaviours – Different parts of system might be using different versions of same package • Dynamic view of entire system is depicted by service dependencies diagram • Version of a service must be specified so that dependent services can be connected • Reactive approach in system development do exists www.mimos.my © 2008 MIMOS Berhad. All Rights Reserved.
  • 24. OOAD Method (cont.) • Booch and OMT clearly specify the steps required to be taken when converting system requirements into a software design • UML – does not specify the exact method – only specify the notations and type of diagrams available to provide different architectural views of a software system – designed to be compatible with those methods – methods have been recast to take advantage of the new notations available www.mimos.my © 2008 MIMOS Berhad. All Rights Reserved.