Component based / web based DS's (4) Flashcards
What are the main goals of using components?
conquering complexity
(large software projects are complex, components are easier to manage)
Managing change (easy to replace components)
Software reuse
(black- box that can be reused in other systems)
What is contract in context of designing a component platform?
A set of provided interfaces, a set of required interfaces, pre and post conditions/invariants. Extra- functional requirements (e.g. performance, security, transactions)
What are some issues with object- oriented middleware?
Implicit dependencies (an object may invoke lots of other services without showing it)
You are exposed to many low level details when interacting to middleware.
Lack of separation of concerns
No support for deployment
What is the advantage of using implicit middleware instead of object- based middleware.
Better support for separation of concerns because application logic is split from middleware concerns.
What are some examples og component- based middleware technologies?
JavaBeans
CORBA Component Model
What is included in a WSDL description?
Types (name and type of exchanged values)
Messages (Operations)
Interface (Operation parameters)
Binding (Choice of communication protocol)
Services (endpoint adresses)
What is XML?
A language to describe message formats.
It defines how the message is parsed.
Can reference resources.
It is based on UNICODE which makes it readable but inefficient.
What are some differences between using web services and distributed object?
Document orientation instead of object orientation means that we are not dependent of any particular end- system tech.
We don’t need any instantiation activation, garbage collection etc. with web services.
Distributed objects are often limited to organisations, with web services distribution, naming and referencing can have a global scope.
Web services have bigger messages which is less efficient.
In what ways are components a more natural way to build systems?
Easier to manage different parts and put them together with good overview of interfaces, protocols etc.
Few dependencies. (i.e. no implicit dependencies)
Small coherent components give better separation of concerns.
What are three essential design concepts related to component?
Component model:
C = (P, PM, RM, E) and I = (PM, E)
Connection Models and Composition:
Deployment models