Software Engineering and Middleware: a Roadmap by Wolfgang EmmerichDistributed SystemsMiddlewareMiddleware RequirementsNetwork CommunicationCoordinationReliabilityScalabilityHeterogeneityMiddleware SolutionsMiddleware SolutionsMiddleware State of the ArtAcademic SolutionsFuture ResearchMiddleware in Embedded SoftwareSoftware Engineering and Middleware: a Roadmapby Wolfgang EmmerichEbru DincelSahitya GuptaDistributed SystemsComplexLimited knowledgeMultiple points of failureFault-tolerantScalable=> A better fit for integrated, highly scalable, and adaptable systemsMiddlewareApplicationsMiddlewareOperating SystemHardwareDefinition: Infrastructure that allow multiple processes to interact across a network. Context: Distributed systemsRole: Coordination and communication (connectivity software)Implements: Session & Presentation LayersBonus: Higher level primitivesMiddleware RequirementsRequiredNetwork communicationCoordinationReliabilityScalabilityHeterogeneityDesiredEnhanced securityApplication oriented services (transaction monitoring)Interaction with other network services (security, performance management)Network Communication Implement lower level network layersProvide higher level primitivesSupport marshalling & unmarshallingCoordinationSupport concurrent execution by synchronization based on threading policiesRestore component states based on activation policiesDeliver multicast messagesReliabilityHandle individual and multiple requests (transactions)Accommodate different levels and extensions (reliable delivery, order preservation)Support replicationScalabilityLoad Balancing-Access transparency-Location transparency-Migration transparency-Replication transparencyHeterogeneityIntegrate elements from various contexts-hardware-software-operating system-middlewareSupport interoperabilityMiddleware SolutionsModel Network CommunicationCoordination Reliability Scalability HeterogeneityTransactionalIBM’s CICS,BEA’s Tuxedo,Transarc’s EncinaTransparent transportation of requests among the client and server componentsThrough synchronous and asynchronous methods. Support for activation policies Fault-tolerant due to DTP and 2 phase commit protocolSupport load balancing & replication of server componentsComponent heterogeneity supported but no support for data heterogeneityMessage-OrientedIBM’s MQSeriesSun’s JMQThrough Notification, Request and Reply messages. Content includes informationAsynchronous message delivery. More scalable and easy broadcast but difficult for synchronous requestsFault-tolerance implemented using message queuesNot scalable as no support for access, migration & replication transparency.No support for heterogeneity eitherMiddleware Solutions Model Network CommunicationCoordination Reliability Scalability HeterogeneityProceduralSun’s RPCMarshalling and unmarshalling of procedure calls into messages by the stubs and messages sent to hosts where server resideSynchronous interactions between exactly one client & server. Support for activationsAt-most once semantics are only supportedLimited Scalability as no replication mechanismsHeterogeneity of components and data supportedObject and ComponentMicrosoft’s COM,OMG’s CORBA,Sun’s EJBClient objects can request execution of a server object’s operation and client object has object reference of server objectMainly synchronous, but others supported. Also support activation policiesDefault is at-most once but others also supportedSupport for transactions tooStill limited scalability as very limited replication supportThey support both kinds of heterogeneityMiddleware State of the ArtFlexible Middleware-Trading-Reflection-Application-level Transport ProtocolScalable Middleware-ReplicationReal-time Middleware- Lack on prioritization on requests- High memory requirementsMiddleware for Mobile Computing- Lack of continuous bandwidth availability- Problems of network outages- Increased complexity of software and size efficient data representationAcademic SolutionsBrown University (Field)University of Colorado (Q)University of Maryland (Polylith)Washington University (TAO)Vrije University (Globe)Future ResearchRequirements Engineering-quantification of non-functional goals-adaptation to unstable requirementsSoftware Architecture-addressing global properties and non functional requirements-calibrated models for validation-development of middleware oriented ADLsDesign-development of middleware design notations, methods, and toolsMiddleware in Embedded Software Embedded software -specialized-demanding QoS on certain subdomains (telecommunications, multimedia, command control systems) Middleware -simplify composition and configuration of distributed systems-limitations exist (lack of real-time features & prioritization, performance optimizations, non-functional requirement support, heavy memory requirements, -future promising (industry supported flexible, adaptable, optimized, and standardized infrastructures, e.g Real-time CORBA,
View Full Document