Component Based Systems Analysis Introduction
Why Components? t Development alternatives: –In-house software –Standard packages –Components 60% of the functionality in a typical information system is the same for all organisations (IBM)
What is a Component? t “A component is a piece of software small enough to create and maintain, big enough to deploy and support and with standard interfaces for interoperability” (Jed Harris) t Components are executable
Component Models t Standard specification of how components should behave in a given environment –Versioning –Open tool palettes –Configuration management –Event notification –Metadata and introspection –Licensing
Levels of Components Customer, Product, Order, Currency Subscriber Telephone service Domain Components Technical Components General Business Components InsuranceTelecomAerospace GUI components Security services
Component Based Development Supply - Build new - Wrap existing - Buy Supply - Build new - Wrap existing - Buy Consume - Assemble applications Consume - Assemble applications Manage - Publish - Subscribe - Catalogue - Browse Manage - Publish - Subscribe - Catalogue - Browse
Objects and Components Analysis Design Construction Object oriented Component based A component does not have to be an object
Client/Server Architecture A server providing services A client requesting services ATMs Thin and fat clients
Advantages of Client/Server t Scalability –Horizontal, more clients –Vertical, more powerful server t Dedicated servers t Shared resources t Maintenance –Server centrally –Client locally
Three Level Architecture Data Presentation Application logic User interface provided via a browser Java servlets running on a server Data served from a DBMS Handles data from different sources within client/server
Distributed Objects t Objects encapsulate data and operations t Ordinary objects –Reside in a single program –Cease to be separate entities after compilation t Distributed objects –Reside anywhere on a network –Exist as physical standalone entities –Accessible by other objects
Middleware t Distributed software for supporting interaction between client and server; including client API, network transfer, and server response t Database middleware: ODBC, JDBC, … t Internet middleware: HTTP, … t Object middleware: CORBA, COM/DCOM, Enterprise JavaBeans,...
Application objects OMG Object Management Architecture Common facilities Object services Object Request Broker
Architectural Patterns t Context –Designing a living room t Problem –Making people feel comfortable t Forces –People want to sit down –People want to be close to the light t Solution –Put a sitting place close to the windows
Design Patterns t Context –Developing software with a human-computer interface t Problem –Interfaces vary often t Forces –Easy to modify the interface –Modifying the interface should not impact the application logic t Solution –Model-View-Controller
A Design Pattern - MVC Model core data notify getData View myModel display update Controller myView handleEvent update
Properties of Patterns t Address recurring problems t Document well-proven experience t Specify abstract solutions
Analysis Patterns Employment Period of Time Organisation Person A person is employed in an organisation for a period of time.
Analysis Patterns Management Role Period of Time Organisation Person A person has a certain management role for a period of time.
Analysis Patterns Marriage Period of Time Person Two people are married for a period of time.
Analysis Patterns Accountability Period of TimeOrganisationPerson One party is accountable to another party for something for a period of time. Accountability type Organisation
Course contents Analysis patterns Fowler Component models JavaBeans SanFrancisco DOT Java Servlets EJB CORBA COM/DCOM