Middleware provides an abstraction layer between distributed applications and operating system communication mechanisms. It hides the complexity of distributed systems and enables different styles of communication including remote procedure calls, object-oriented remote method invocation, message-oriented asynchronous messaging, and event-based publish-subscribe interactions. Common examples of middleware technologies discussed are RPC, CORBA, Java RMI, message-oriented middleware like JMS, and event-based systems using content-based routing of published events to subscribed interests. Middleware aims to support scalable many-to-many communication patterns while providing programming models suited to distributed applications.
Layer between OS and distributed applications,Hides complexity and heterogeneity of distributed system ,Bridges gap between low-level OS communications and programming language abstractions,Provides common programming abstraction and infrastructure for distributed applications.
Overview of Network Programming, Remote Procedure Calls, Remote Method Invocation, Message Oriented Communication, and web services in distributed systems
Distributed Systems Introduction and Importance SHIKHA GAUTAM
Distributed Systems Introduction and Importance. It covers the following Topics: Characterization of Distributed Systems: Introduction, Examples of distributed Systems, Resource sharing and the Web Challenges. Architectural models, Fundamental Models.
Theoretical Foundation for Distributed System: Limitation of Distributed system, absence of global clock, shared memory, Logical clocks ,Lamport’s & vectors logical clocks.
Concepts in Message Passing System.
Layer between OS and distributed applications,Hides complexity and heterogeneity of distributed system ,Bridges gap between low-level OS communications and programming language abstractions,Provides common programming abstraction and infrastructure for distributed applications.
Overview of Network Programming, Remote Procedure Calls, Remote Method Invocation, Message Oriented Communication, and web services in distributed systems
Distributed Systems Introduction and Importance SHIKHA GAUTAM
Distributed Systems Introduction and Importance. It covers the following Topics: Characterization of Distributed Systems: Introduction, Examples of distributed Systems, Resource sharing and the Web Challenges. Architectural models, Fundamental Models.
Theoretical Foundation for Distributed System: Limitation of Distributed system, absence of global clock, shared memory, Logical clocks ,Lamport’s & vectors logical clocks.
Concepts in Message Passing System.
Open source building blocks for the Internet of Things - Jfokus 2013Benjamin Cabé
The Eclipse M2M Industry Working Group (http://m2m.eclipse.org) is an open-source initiative delivering a set of building blocks for creating IoT solutions. This talk will walk you through the different projects and technologies this group is developing (from embedded application framework, to communication protocols, including development tools) and a live demo will show you how you can very quickly combine the components we provide with Open-Source Hardware platforms (Arduino & Raspberry Pi) to build a complete solution. Join us if you want to learn more about the Lua programming language, the MQTT protocol, and all the cool technologies that we use :)
The Overview of Microservices ArchitectureParia Heidari
After reading, you are able to answer the following questions.
Why migrating to Microservices?
What are the advantages and drawbacks of Monolithic Architecture?
What are the advantages and disadvantages of Microservices Architecture?
What is the process of messaging in Microservices?
What is the process of integrating microservices with Pub/Sub?
Middleware and Middleware in distributed applicationRishikese MR
The seminar discuss about the common middleware concept and middleware in distributed applications .Also we discuss about 4 different types of middleware. MOM( Message oriented Middleware), ORB (object request broker), TP Monitors, Request procedure calls RPC.
The slide also gives the advantages and disadvantages of each.
Composable Software Architecture with SpringSam Brannen
What does the architecture of a modern enterprise Java application look like? What have we as a community learned from our past? What does it mean to design a composable architecture? And how can Spring help developers meet the needs of enterprise applications in 2013 and beyond?
In this keynote presentation at Java Breeze, core Spring Framework committer Sam Brannen invites the audience to explore what it means to design, develop, and test modern enterprise Java applications following a composable software architecture model. Along the way, Sam will show how the Spring ecosystem and programming model fit into the larger picture of modern enterprise Java applications.
Adding Real-time Features to PHP ApplicationsRonny López
It's possible to introduce real-time features to PHP applications without deep modifications of the current codebase.
Using WAMP you can build distributed systems out of application components which are loosely coupled and communicate in (soft) real-time.
There is no need to learn a whole new language, with the implications it has.
It also opens the door to write reactive, event-based, distributed architectures and to achieve easier scalability by distributing messages to multiple systems.
IBM IMPACT 2014 - AMC-1882 Building a Scalable & Continuously Available IBM M...Peter Broadhurst
An introduction to one possible MQ architecture - an active/active multiple queue manager client<->server environment.
Summary of detailed topology articles available here:
http://ow.ly/vrUUV
And MQDev blog+discussion on client attachment here:
http://ibm.co/MM8rMl
Developing Enterprise Applications for the Cloud,from Monolith to MicroservicesDavid Currie
Presented at IBM InterConnect 2105. Is your next enterprise application ready for the cloud? Do you know how to build the kind of low-latency, highly available, highly scalable, omni-channel, micro-service modern-day application that customers expect? This introductory presentation will cover what it takes to build such an application using the multiple language runtimes and composing services offered on IBM Bluemix cloud.
Enterprise Resource Planning System includes various modules that reduce any business's workload. Additionally, it organizes the workflows, which drives towards enhancing productivity. Here are a detailed explanation of the ERP modules. Going through the points will help you understand how the software is changing the work dynamics.
To know more details here: https://blogs.nyggs.com/nyggs/enterprise-resource-planning-erp-system-modules/
May Marketo Masterclass, London MUG May 22 2024.pdfAdele Miller
Can't make Adobe Summit in Vegas? No sweat because the EMEA Marketo Engage Champions are coming to London to share their Summit sessions, insights and more!
This is a MUG with a twist you don't want to miss.
Open source building blocks for the Internet of Things - Jfokus 2013Benjamin Cabé
The Eclipse M2M Industry Working Group (http://m2m.eclipse.org) is an open-source initiative delivering a set of building blocks for creating IoT solutions. This talk will walk you through the different projects and technologies this group is developing (from embedded application framework, to communication protocols, including development tools) and a live demo will show you how you can very quickly combine the components we provide with Open-Source Hardware platforms (Arduino & Raspberry Pi) to build a complete solution. Join us if you want to learn more about the Lua programming language, the MQTT protocol, and all the cool technologies that we use :)
The Overview of Microservices ArchitectureParia Heidari
After reading, you are able to answer the following questions.
Why migrating to Microservices?
What are the advantages and drawbacks of Monolithic Architecture?
What are the advantages and disadvantages of Microservices Architecture?
What is the process of messaging in Microservices?
What is the process of integrating microservices with Pub/Sub?
Middleware and Middleware in distributed applicationRishikese MR
The seminar discuss about the common middleware concept and middleware in distributed applications .Also we discuss about 4 different types of middleware. MOM( Message oriented Middleware), ORB (object request broker), TP Monitors, Request procedure calls RPC.
The slide also gives the advantages and disadvantages of each.
Composable Software Architecture with SpringSam Brannen
What does the architecture of a modern enterprise Java application look like? What have we as a community learned from our past? What does it mean to design a composable architecture? And how can Spring help developers meet the needs of enterprise applications in 2013 and beyond?
In this keynote presentation at Java Breeze, core Spring Framework committer Sam Brannen invites the audience to explore what it means to design, develop, and test modern enterprise Java applications following a composable software architecture model. Along the way, Sam will show how the Spring ecosystem and programming model fit into the larger picture of modern enterprise Java applications.
Adding Real-time Features to PHP ApplicationsRonny López
It's possible to introduce real-time features to PHP applications without deep modifications of the current codebase.
Using WAMP you can build distributed systems out of application components which are loosely coupled and communicate in (soft) real-time.
There is no need to learn a whole new language, with the implications it has.
It also opens the door to write reactive, event-based, distributed architectures and to achieve easier scalability by distributing messages to multiple systems.
IBM IMPACT 2014 - AMC-1882 Building a Scalable & Continuously Available IBM M...Peter Broadhurst
An introduction to one possible MQ architecture - an active/active multiple queue manager client<->server environment.
Summary of detailed topology articles available here:
http://ow.ly/vrUUV
And MQDev blog+discussion on client attachment here:
http://ibm.co/MM8rMl
Developing Enterprise Applications for the Cloud,from Monolith to MicroservicesDavid Currie
Presented at IBM InterConnect 2105. Is your next enterprise application ready for the cloud? Do you know how to build the kind of low-latency, highly available, highly scalable, omni-channel, micro-service modern-day application that customers expect? This introductory presentation will cover what it takes to build such an application using the multiple language runtimes and composing services offered on IBM Bluemix cloud.
Enterprise Resource Planning System includes various modules that reduce any business's workload. Additionally, it organizes the workflows, which drives towards enhancing productivity. Here are a detailed explanation of the ERP modules. Going through the points will help you understand how the software is changing the work dynamics.
To know more details here: https://blogs.nyggs.com/nyggs/enterprise-resource-planning-erp-system-modules/
May Marketo Masterclass, London MUG May 22 2024.pdfAdele Miller
Can't make Adobe Summit in Vegas? No sweat because the EMEA Marketo Engage Champions are coming to London to share their Summit sessions, insights and more!
This is a MUG with a twist you don't want to miss.
Navigating the Metaverse: A Journey into Virtual Evolution"Donna Lenk
Join us for an exploration of the Metaverse's evolution, where innovation meets imagination. Discover new dimensions of virtual events, engage with thought-provoking discussions, and witness the transformative power of digital realms."
E-commerce Application Development Company.pdfHornet Dynamics
Your business can reach new heights with our assistance as we design solutions that are specifically appropriate for your goals and vision. Our eCommerce application solutions can digitally coordinate all retail operations processes to meet the demands of the marketplace while maintaining business continuity.
Mobile App Development Company In Noida | Drona InfotechDrona Infotech
Looking for a reliable mobile app development company in Noida? Look no further than Drona Infotech. We specialize in creating customized apps for your business needs.
Visit Us For : https://www.dronainfotech.com/mobile-application-development/
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeAftab Hussain
Understanding variable roles in code has been found to be helpful by students
in learning programming -- could variable roles help deep neural models in
performing coding tasks? We do an exploratory study.
- These are slides of the talk given at InteNSE'23: The 1st International Workshop on Interpretability and Robustness in Neural Software Engineering, co-located with the 45th International Conference on Software Engineering, ICSE 2023, Melbourne Australia
AI Genie Review: World’s First Open AI WordPress Website CreatorGoogle
AI Genie Review: World’s First Open AI WordPress Website Creator
👉👉 Click Here To Get More Info 👇👇
https://sumonreview.com/ai-genie-review
AI Genie Review: Key Features
✅Creates Limitless Real-Time Unique Content, auto-publishing Posts, Pages & Images directly from Chat GPT & Open AI on WordPress in any Niche
✅First & Only Google Bard Approved Software That Publishes 100% Original, SEO Friendly Content using Open AI
✅Publish Automated Posts and Pages using AI Genie directly on Your website
✅50 DFY Websites Included Without Adding Any Images, Content Or Doing Anything Yourself
✅Integrated Chat GPT Bot gives Instant Answers on Your Website to Visitors
✅Just Enter the title, and your Content for Pages and Posts will be ready on your website
✅Automatically insert visually appealing images into posts based on keywords and titles.
✅Choose the temperature of the content and control its randomness.
✅Control the length of the content to be generated.
✅Never Worry About Paying Huge Money Monthly To Top Content Creation Platforms
✅100% Easy-to-Use, Newbie-Friendly Technology
✅30-Days Money-Back Guarantee
See My Other Reviews Article:
(1) TubeTrivia AI Review: https://sumonreview.com/tubetrivia-ai-review
(2) SocioWave Review: https://sumonreview.com/sociowave-review
(3) AI Partner & Profit Review: https://sumonreview.com/ai-partner-profit-review
(4) AI Ebook Suite Review: https://sumonreview.com/ai-ebook-suite-review
#AIGenieApp #AIGenieBonus #AIGenieBonuses #AIGenieDemo #AIGenieDownload #AIGenieLegit #AIGenieLiveDemo #AIGenieOTO #AIGeniePreview #AIGenieReview #AIGenieReviewandBonus #AIGenieScamorLegit #AIGenieSoftware #AIGenieUpgrades #AIGenieUpsells #HowDoesAlGenie #HowtoBuyAIGenie #HowtoMakeMoneywithAIGenie #MakeMoneyOnline #MakeMoneywithAIGenie
Utilocate offers a comprehensive solution for locate ticket management by automating and streamlining the entire process. By integrating with Geospatial Information Systems (GIS), it provides accurate mapping and visualization of utility locations, enhancing decision-making and reducing the risk of errors. The system's advanced data analytics tools help identify trends, predict potential issues, and optimize resource allocation, making the locate ticket management process smarter and more efficient. Additionally, automated ticket management ensures consistency and reduces human error, while real-time notifications keep all relevant personnel informed and ready to respond promptly.
The system's ability to streamline workflows and automate ticket routing significantly reduces the time taken to process each ticket, making the process faster and more efficient. Mobile access allows field technicians to update ticket information on the go, ensuring that the latest information is always available and accelerating the locate process. Overall, Utilocate not only enhances the efficiency and accuracy of locate ticket management but also improves safety by minimizing the risk of utility damage through precise and timely locates.
OpenMetadata Community Meeting - 5th June 2024OpenMetadata
The OpenMetadata Community Meeting was held on June 5th, 2024. In this meeting, we discussed about the data quality capabilities that are integrated with the Incident Manager, providing a complete solution to handle your data observability needs. Watch the end-to-end demo of the data quality features.
* How to run your own data quality framework
* What is the performance impact of running data quality frameworks
* How to run the test cases in your own ETL pipelines
* How the Incident Manager is integrated
* Get notified with alerts when test cases fail
Watch the meeting recording here - https://www.youtube.com/watch?v=UbNOje0kf6E
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Crescat
Crescat is industry-trusted event management software, built by event professionals for event professionals. Founded in 2017, we have three key products tailored for the live event industry.
Crescat Event for concert promoters and event agencies. Crescat Venue for music venues, conference centers, wedding venues, concert halls and more. And Crescat Festival for festivals, conferences and complex events.
With a wide range of popular features such as event scheduling, shift management, volunteer and crew coordination, artist booking and much more, Crescat is designed for customisation and ease-of-use.
Over 125,000 events have been planned in Crescat and with hundreds of customers of all shapes and sizes, from boutique event agencies through to international concert promoters, Crescat is rigged for success. What's more, we highly value feedback from our users and we are constantly improving our software with updates, new features and improvements.
If you plan events, run a venue or produce festivals and you're looking for ways to make your life easier, then we have a solution for you. Try our software for free or schedule a no-obligation demo with one of our product specialists today at crescat.io
Zoom is a comprehensive platform designed to connect individuals and teams efficiently. With its user-friendly interface and powerful features, Zoom has become a go-to solution for virtual communication and collaboration. It offers a range of tools, including virtual meetings, team chat, VoIP phone systems, online whiteboards, and AI companions, to streamline workflows and enhance productivity.
Atelier - Innover avec l’IA Générative et les graphes de connaissancesNeo4j
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Allez au-delà du battage médiatique autour de l’IA et découvrez des techniques pratiques pour utiliser l’IA de manière responsable à travers les données de votre organisation. Explorez comment utiliser les graphes de connaissances pour augmenter la précision, la transparence et la capacité d’explication dans les systèmes d’IA générative. Vous partirez avec une expérience pratique combinant les relations entre les données et les LLM pour apporter du contexte spécifique à votre domaine et améliorer votre raisonnement.
Amenez votre ordinateur portable et nous vous guiderons sur la mise en place de votre propre pile d’IA générative, en vous fournissant des exemples pratiques et codés pour démarrer en quelques minutes.
Do you want Software for your Business? Visit Deuglo
Deuglo has top Software Developers in India. They are experts in software development and help design and create custom Software solutions.
Deuglo follows seven steps methods for delivering their services to their customers. They called it the Software development life cycle process (SDLC).
Requirement — Collecting the Requirements is the first Phase in the SSLC process.
Feasibility Study — after completing the requirement process they move to the design phase.
Design — in this phase, they start designing the software.
Coding — when designing is completed, the developers start coding for the software.
Testing — in this phase when the coding of the software is done the testing team will start testing.
Installation — after completion of testing, the application opens to the live server and launches!
Maintenance — after completing the software development, customers start using the software.
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteGoogle
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
👉👉 Click Here To Get More Info 👇👇
https://sumonreview.com/ai-pilot-review/
AI Pilot Review: Key Features
✅Deploy AI expert bots in Any Niche With Just A Click
✅With one keyword, generate complete funnels, websites, landing pages, and more.
✅More than 85 AI features are included in the AI pilot.
✅No setup or configuration; use your voice (like Siri) to do whatever you want.
✅You Can Use AI Pilot To Create your version of AI Pilot And Charge People For It…
✅ZERO Manual Work With AI Pilot. Never write, Design, Or Code Again.
✅ZERO Limits On Features Or Usages
✅Use Our AI-powered Traffic To Get Hundreds Of Customers
✅No Complicated Setup: Get Up And Running In 2 Minutes
✅99.99% Up-Time Guaranteed
✅30 Days Money-Back Guarantee
✅ZERO Upfront Cost
See My Other Reviews Article:
(1) TubeTrivia AI Review: https://sumonreview.com/tubetrivia-ai-review
(2) SocioWave Review: https://sumonreview.com/sociowave-review
(3) AI Partner & Profit Review: https://sumonreview.com/ai-partner-profit-review
(4) AI Ebook Suite Review: https://sumonreview.com/ai-ebook-suite-review
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxrickgrimesss22
Discover the essential features to incorporate in your Winzo clone app to boost business growth, enhance user engagement, and drive revenue. Learn how to create a compelling gaming experience that stands out in the competitive market.
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Mind IT Systems
Healthcare providers often struggle with the complexities of chronic conditions and remote patient monitoring, as each patient requires personalized care and ongoing monitoring. Off-the-shelf solutions may not meet these diverse needs, leading to inefficiencies and gaps in care. It’s here, custom healthcare software offers a tailored solution, ensuring improved care and effectiveness.
Transform Your Communication with Cloud-Based IVR SolutionsTheSMSPoint
Discover the power of Cloud-Based IVR Solutions to streamline communication processes. Embrace scalability and cost-efficiency while enhancing customer experiences with features like automated call routing and voice recognition. Accessible from anywhere, these solutions integrate seamlessly with existing systems, providing real-time analytics for continuous improvement. Revolutionize your communication strategy today with Cloud-Based IVR Solutions. Learn more at: https://thesmspoint.com/channel/cloud-telephony
Transform Your Communication with Cloud-Based IVR Solutions
12-middleware.ppt
1. 1
Distributed Applications
Distributed Applications
Operating System Comms
Operating System Comms
Network
Network
Introduction to Middleware I
• What is Middleware?
– Layer between OS and distributed applications
– Hides complexity and heterogeneity of distributed system
– Bridges gap between low-level OS communications and programming
language abstractions
– Provides common programming abstraction and infrastructure for
distributed applications
– Overview at: http://www.middleware.org
Distributed Applications
Middleware
Operating System Comms
(packets, bits…)
(remote calls, object invocation,
messages, …)
(sockets, IP, TCP, UDP, …)
Network
Middleware
2. 2
Introduction to Middleware II
• Middleware provides support for (some of):
– Naming, Location, Service discovery, Replication
– Protocol handling, Communication faults, QoS
– Synchronisation, Concurrency, Transactions, Storage
– Access control, Authentication
• Middleware dimensions:
– Request/Reply vs. Asynchronous Messaging
– Language-specific vs. Language-independent
– Proprietary vs. Standards-based
– Small-scale vs. Large-scale
– Tightly-coupled vs. Loosely-coupled components
Middleware
3. 3
Outline
• Part I: Remote Procedure Call (RPC)
– Historic interest
• Part II: Object-Oriented Middleware (OOM)
– Java RMI
– CORBA
– Reflective Middleware
• Part III: Message-Oriented Middleware (MOM)
– Java Message Service
– IBM MQSeries
– Web Services
• Part IV: Event-Based Middleware
– Cambridge Event Architecture
– Hermes
Middleware
4. 4
Part I: Remote Procedure Call (RPC)
• Masks remote function calls as being local
• Client/server model
• Request/reply paradigm usually implemented with
message passing in RPC service
• Marshalling of function parameters and return value
Caller RPC Service RPC Service Remote
Function
call(…)
1) Marshal args
2) Generate ID
3) Start timer 4) Unmarshal
5) Record ID
6) Marshal
7) Set timer
8) Unmarshal
9) Acknowledge
fun(…)
message
Middleware
5. 5
Properties of RPC
Language-level pattern of function call
• easy to understand for programmer
Synchronous request/reply interaction
• natural from a programming language point-of-view
• matches replies to requests
• built in synchronisation of requests and replies
Distribution transparency (in the no-failure case)
• hides the complexity of a distributed system
Various reliability guarantees
• deals with some distributed systems aspects of failure
Middleware
6. 6
Failure Modes of RPC
• Invocation semantics supported by RPC in the light of:
network and/or server congestion,
client, network and/or server failure
note DS independent failure modes
• RPC systems differ, many examples, local was Mayflower
Exactly once (RPC system retries a few times)
• Hard error return – some failure most likely
note that “exactly once” cannot be guaranteed
Maybe or at most once (RPC system tries once)
• Error return – programmer may retry
Middleware
7. 7
Disadvantages of RPC
Synchronous request/reply interaction
• tight coupling between client and server
• client may block for a long time if server loaded
leads to multi-threaded programming at client
• slow/failed clients may delay servers when replying
multi-threading essential at servers
Distribution Transparency
• Not possible to mask all problems
RPC paradigm is not object-oriented
• invoke functions on servers as opposed to methods on objects
fork(…)
join(…)
remote call
Middleware
8. 8
Part II: Object-Oriented Middleware (OOM)
• Objects can be local or remote
• Object references can be local or remote
• Remote objects have visible remote interfaces
• Masks remote objects as being local using proxy objects
• Remote method invocation
object A
proxy
object B
OOM OOM
skeleton
object B
object B
local remote
object
request
broker
/
object
manager
object
request
broker
/
object
manager
Middleware
9. 9
Properties of OOM
Support for object-oriented programming model
– objects, methods, interfaces, encapsulation, …
– exceptions (were also in some RPC systems e.g. Mayflower)
Synchronous request/reply interaction
– same as RPC
Location Transparency
– system (ORB) maps object references to locations
Services comprising multiple servers are easier to build with OOM
– RPC programming is in terms of server-interface (operation)
– RPC system looks up server address in a location service
Middleware
10. 10
Java Remote Method Invocation (RMI)
• Covered in 1B Advanced Java programming
• Distributed objects in Java
public interface PrintService extends Remote {
int print(Vector printJob) throws RemoteException;
}
• RMI compiler creates proxies and skeletons
• RMI registry used for interface lookup
• Entire system written in Java (single-language system)
Middleware
11. 11
CORBA
• Common Object Request Broker Architecture
– Open standard by the OMG (Version 3.0)
– Language- and platform independent
• Object Request Broker (ORB)
– General Inter-ORB Protocol (GIOP) for communication
– Interoperable Object References (IOR) contain object location
– CORBA Interface Definition Language (IDL)
• Stubs (proxies) and skeletons created by IDL compiler
– Dynamic remote method invocation
• Interface Repository
– Querying existing remote interfaces
• Implementation Repository
– Activating remote objects on demand
Middleware
12. 12
CORBA IDL
• Definition of language-independent remote interfaces
– Language mappings to C++, Java, Smalltalk, …
– Translation by IDL compiler
• Type system
– basic types: long (32 bit),
long long (64 bit), short,
float, char, boolean,
octet, any, …
– constructed types: struct, union, sequence, array, enum
– objects (common super type Object)
• Parameter passing
– in, out, inout
– basic & constructed types passed by value
– objects passed by reference
typedef sequence<string> Files;
interface PrintService : Server {
void print(in Files printJob);
};
Middleware
13. 13
CORBA Services (selection)
• Naming Service
– Names remote object references
• Trading Service
– Attributes (properties) remote object references
• Persistent Object Service
– Implementation of persistent CORBA objects
• Transaction Service
– Making object invocation part of transactions
• Event Service and Notification Service
– In response to applications‘ need for asynchronous communication
– built above synchronous communication with push or pull options
– not an integrated programming model with general IDL messages
Middleware
14. 14
Disadvantages of OOM
Synchronous request/reply interaction only
• So CORBA oneway semantics added and -
• Asynchronous Method Invocation (AMI)
• But implementations may not be loosely coupled
Distributed garbage collection
• Releasing memory for unused remote objects
OOM rather static and heavy-weight
• Bad for ubiquitous systems and embedded devices
Middleware
15. 15
OOM experience
Keynote address at Middleware 2009
Steve Vinoski
From Middleware Implementor to Middleware User
(There and back again)
Available from the course materials page and the MW09
program on the website
Middleware
16. 16
Reflective Middleware
• Flexible middleware (OOM) for mobile and context-aware
applications – adaptation to context through monitoring
and substitution of components
• Interfaces for reflection
– Objects can inspect middleware behaviour
• Interfaces for customisability
– Dynamic reconfiguration depending on environment
– Different protocols, QoS, ...
– e.g. use different marshalling strategy over unreliable wireless link
Middleware
17. 17
Part III: Message-Oriented Middleware (MOM)
• Communication using messages
• Messages stored in message queues
• message servers decouple client and server
• Various assumptions about message content
Client App.
local message
queues
Server App.
local message
queues
message
queues
Network Network Network
Message Servers
Middleware
18. 18
Properties of MOM
Asynchronous interaction
– Client and server are only loosely coupled
– Messages are queued
– Good for application integration
Support for reliable delivery service
– Keep queues in persistent storage
Processing of messages by intermediate message server(s)
– May do filtering, transforming, logging, …
– Networks of message servers
Natural for database integration
Middleware
19. 19
IBM MQSeries
• One-to-one reliable message passing using queues
– Persistent and non-persistent messages
– Message priorities, message notification
• Queue Managers
– Responsible for queues
– Transfer messages from input to output queues
– Keep routing tables
• Message Channels
– Reliable connections between queue managers
• Messaging API: MQopen Open a queue
MQclose Close a queue
MQput Put message into opened queue
MQget Get message from local queue
Middleware
20. 20
Java Message Service (JMS)
• API specification to access MOM implementations
• Two modes of operation *specified*:
– Point-to-point
• one-to-one communication using queues
– Publish/Subscribe
• cf. Event-Based Middleware
• JMS Server implements JMS API
• JMS Clients connect to JMS servers
• Java objects can be serialised to JMS messages
• A JMS interface has been provided for MQ
• pub/sub (one-to-many) - just a specification?
Middleware
21. 21
Disadvantages of MOM
Poor programming abstraction (but has evolved)
• Rather low-level (cf. Packets)
• Request/reply more difficult to achieve, but can be done
Message formats originally unknown to middleware
• No type checking (JMS addresses this – implementation?)
Queue abstraction only gives one-to-one communication
• Limits scalability (JMS pub/sub – implementation?)
Middleware
22. 22
Web Services
• Use well-known web standards for distributed computing
Communication
• Message content expressed in XML
• Simple Object Access Protocol (SOAP)
– Lightweight protocol for sync/async communication
Service Description
• Web Services Description Language (WSDL)
– Interface description for web services
Service Discovery
• Universal Description Discovery and Integration (UDDI)
– Directory with web service description in WSDL
Middleware
23. 23
Properties of Web Services
Language-independent and open standard
SOAP offers OOM and MOM-style communication:
• Synchronous request/reply like OOM
• Asynchronous messaging like MOM
• Supports internet transports (http, smtp, ...)
• Uses XML Schema for marshalling types to/from programming
language types
WSDL says how to use a web service
UDDI helps to find the right web service
• Exports SOAP API for access
http://api.google.com/GoogleSearch.wsdl
Middleware
24. 24
Disadvantages of Web Services
Low-level abstraction
• leaves a lot to be implemented
Interaction patterns have to be built
• one-to-one and request-reply provided
• one-to-many?
• still synchronous service invocation, rather than notification
• No nested/grouped invocations, transactions, ...
No location transparency
Middleware
25. 25
What we lack, so far
General interaction patterns
• we have one-to-one and request-reply
• one-to-many? many to many?
• notification?
• dynamic joining and leaving?
Location transparency
• anonymity of communicating entities
Support for pervasive computing
• data values from sensors
• lightweight software
Middleware
26. 26
Part IV: Event-Based Middleware a.k.a. Publish/Subscribe
• Publishers (advertise and) publish events (messages)
• Subscribers express interest in events with subscriptions
• Event Service notifies interested subscribers of published events
• Events can have arbitrary content (typed) or name/value pairs
Event Service
(event-broker
network)
Subscriber
Subscriber
Subscriber
Publisher
Publisher
Publisher
publish
publish
publish
subscribe
subscribe
subscribe
notify
notify
notify
Middleware
27. 27
Topic-Based and Content-Based Pub/Sub
• Event Service matches events against subscriptions
• What do subscriptions look like?
Topic-Based Publish/Subscribe
– Publishers publish events belonging to a topic or subject
– Subscribers subscribe to a topic
subscribe(PrintJobFinishedTopic, …)
(Topic and) Content-Based Publish/Subscribe
– Publishers publish events belonging to topics and
– Subscribers provide a filter based on content of events
subscribe(type=printjobfinished, printer=‘aspen’, …)
Middleware
28. 28
Properties of Publish/Subscribe
Asynchronous communication
• Publishers and subscribers are loosely coupled
Many-to-many interaction between pubs. and subs.
• Scalable scheme for large-scale systems
• Publishers do not need to know subscribers, and vice-versa
• Dynamic join and leave of pubs, subs, (brokers - see lecture DS-8)
(Topic and) Content-based pub/sub very expressive
• Filtered information delivered only to interested parties
• Efficient content-based routing through a broker network
Middleware
29. 29
Composite Event Detection (CED)
• Content-based pub/sub may not be expressive enough
– Potentially thousands of event types (primitive events)
– Subscribers interest: event patterns (define high-level events, ref DS-2)
• Event Patterns
PrinterOutOfPaperEvent or PrinterOutOfTonerEvent
• Composite Event Detectors (CED)
– Subscribe to primitive events and publish composite events
Publisher
Publisher
Publisher
CED
CED
CED
Publisher
Subscriber
Subscriber
Middleware
30. 30
Summary
• Middleware is an important abstraction for building
distributed systems
• Synchronous vs. asynchronous communication
• Scalability, many-to-many communication
• Language integration
• Ubiquitous systems, mobile systems
1. Remote Procedure Call
2. Object-Oriented Middleware
3. Message-Oriented Middleware
4. Event-Based Middleware
Middleware