The document describes the mediator pattern for implementing a chatting application. It discusses problems with a direct communication approach between users and presents a solution using a ChatServer class as an intermediate mediator. The ChatServer stores user information and routes messages, allowing for two-way communication between online users and addressing issues like message delivery to offline users. Key aspects of the mediator pattern are highlighted, including how it enables more extensible communication across multiple machines compared to the observer pattern. Pseudocode is provided for the ChatServer, User classes and their collaboration through the mediator to enable basic chat functionality.
TRUST ASSESSMENT THROUGH FTA APPROACH IN AD-HOC NETWORKcscpconf
An Ad-hoc network consists of communicating nodes to establish improvised communicationwith environment without any fixed infrastructure. Nodes in Ad-hoc network (MANET) do not
rely on a central infrastructure management but relay packets sent by other nodes. Mobile adhoc network can work properly only if the participating nodes collaborate with routing. Therefore it is required that the nodes co-operate for the intensity of operator network. Because of the high mobility of the nodes in the network, detection of misbehaviour of any node is a complex problem. Nodes have to share the routing information in order for each to find the
route to the destination. This conceptual paper is based on the relationship among the nodes which makes them to co-operate in an ad-hoc network .This require nodes to Trust each other. Thus we can say Trust is a important concept in secure routing mechanism among the nodes. In this paper we present a unique Trust based method in which each node broadcast a RQ packet if
it is received from different neighbours. The secure, efficient and reliable route towards the destination is calculated as a weighted average of the Trust value of the nodes in the route, with respect to it’s behaviour observed by the neighbour nodes and the number of nodes in the route.
TRUST ASSESSMENT THROUGH FTA APPROACH IN AD-HOC NETWORKcscpconf
An Ad-hoc network consists of communicating nodes to establish improvised communicationwith environment without any fixed infrastructure. Nodes in Ad-hoc network (MANET) do not
rely on a central infrastructure management but relay packets sent by other nodes. Mobile adhoc network can work properly only if the participating nodes collaborate with routing. Therefore it is required that the nodes co-operate for the intensity of operator network. Because of the high mobility of the nodes in the network, detection of misbehaviour of any node is a complex problem. Nodes have to share the routing information in order for each to find the
route to the destination. This conceptual paper is based on the relationship among the nodes which makes them to co-operate in an ad-hoc network .This require nodes to Trust each other. Thus we can say Trust is a important concept in secure routing mechanism among the nodes. In this paper we present a unique Trust based method in which each node broadcast a RQ packet if
it is received from different neighbours. The secure, efficient and reliable route towards the destination is calculated as a weighted average of the Trust value of the nodes in the route, with respect to it’s behaviour observed by the neighbour nodes and the number of nodes in the route.
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfPeter Spielvogel
Building better applications for business users with SAP Fiori.
• What is SAP Fiori and why it matters to you
• How a better user experience drives measurable business benefits
• How to get started with SAP Fiori today
• How SAP Fiori elements accelerates application development
• How SAP Build Code includes SAP Fiori tools and other generative artificial intelligence capabilities
• How SAP Fiori paves the way for using AI in SAP apps
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
By Design, not by Accident - Agile Venture Bolzano 2024
Mediator pattern
1. Class report
CLASS ASSIGNMENT- 3
MEDIATOR PATTERN
A CHATTING APPLICATION:
Introduction:
At first, we have to see what happens in this sort of chatting software, i.e. what
features we have to focus on.
Now, let’s see the criteria that we have to maintain in our program. One user
should be able to send message & receive message simultaneously in this sort
of chatting software, i.e. a two-way communication. Earlier, in the observer
pattern, we were concerned about one-way communication. So, let’s see
what we usually do in such cases.
There must be a User class. Let’s, see what may be there…..
Page 1 of 14
2. Class report
User:
Class User {
Name:
Description:
ID:
List <user> Friend list;
Methods like;
AddFriend (user U) {
Friend list. Add (U);
}
SendMessage (String msg ,User U)
{
Print (msg to U.name);
}
-may be present.
The main method should be as follows in such case:
Main () {
User U1 = new user (“U1”);
User U2 = new user (“U2”);
User U3 = new user (“U3”);
Page 2 of 14
3. Class report
U1.AddFriend (U2);
U2.AddFriend (U3);
U2.AddFriend (U1);
U3.AddFriend (U2);
……..
………
……….
U1.SendMessage (“Hi”, U2);
U2.SendMessage (“Hello”, U3);
………
………
………
}
Now, let’s see what are the problems that we may face if we solve in this way.
Problems:
Firstly,
If we print the following message inside the SendMessage() method
then it will only be seen on my screen, not on my friend’s which is actually not
our goal. So, the message should have not been there at all.
Page 3 of 14
4. Class report
SendMessage (String msg ,User U)
{
Print (msg to U.name);
}
So, the solution should be like this until now.
Solution:
SendMessage (msg.User U) {
U.ReceiveMessage (msg,this);
}
ReceiveMessage (msg,User U) {
Print (msg to U.name);
}
Now, another question may come in mind while giving this solution that why
we have used ‘this’? This is because we have to make him understand from
whom the message is coming as he is getting many more messages at the
same time from some other distinguished users.
Secondly;
What is the profit we have gained only by changing the position of
printing option inside the same user?
Page 4 of 14
5. Class report
Solution:
To be noted, here both U1 & U2 are instances of same class, i.e. User class. So,
the SendMessage option that we are using is for U1 & ReceiveMessage for U2.
And the message should be in the ReceiveMessage method in logical way.
Thirdly;
Once we added U2 as U1’s friend, which means U1 is also U2’s
friend. But, here we have done the later part again which is completely
redundant.
Main () {
User U1 = new user (“U1”);
User U2 = new user (“U2”);
User U3 = new user (“U3”);
U1.AddFriend (U2);
U2.AddFriend (U3);
U2.AddFriend (U1);
U3.AddFriend (U2);
……..
………
}
Solution:
Page 5 of 14
6. Class report
AddFriend (User U) {
Friend list. Add (U);
U.AddFriend (this);
}
But, point to be noted, this has become a recursive loop, i.e. a recursive
method. So, this can’t be the exact solution.
The exact solution for this certain problem be,
AddFriend (User U) {
………
………
Friend list. Add (U);
U. Friend list. Add (this);
}
Hence, there is no recursive loop now.
Fourthly,
If any user sends message to another user, the later one may be
offline/inactive, what will happen to the sent message?
Page 6 of 14
7. Class report
Solution:
SendMessage (msg, U)
{
///checking……….
If (U is not null)
U.ReceiveMessage (msg , this);
}
So, in this way we can ensure the receipt of the very message accordingly.
Fifthly,
The question comes; where will I get the user list? How will I know “A”
is a user & I can make him my friend?
Solution:
For solving the very problem, we have to make an intermediate step in
between the communication system that we have supported earlier.
That is, we have to make a chat server.
Page 7 of 14
8. Class report
User
U1
User... User
U2
Chat
Server
User User
U5 U3
User
U4
For instance;
Chat Server Class:
Chat Server {
User list; //global user list. When anyone signs up, added here.
Hashmap Friend list ;
SendMsg (msg, sender ID, receiver ID) {
Receiver= get User (receiver ID);
Receiver. ReceiveMsg (msg , sender ID);
}
Page 8 of 14
9. Class report
GetUser (User ID){
…………….
…………….
}
}
User Class:
User {
Name;
Chatserver server;
Friend list;
User (name, cs) {
………
………
Server=cs;
}
SendMsg (msg, receiver ID){
Server.SendMsg (msg, this.Id, receiver ID);
}
ReceiveMsg (msg, sender ID) {
Page 9 of 14
10. Class report
Print (“……….”);
}
Main() {
Chatserver cs = new Chat server ();
User U1 = new User (“User ID”, cs);
U1.SendMsg (msg, “user ID”);
………..
………..
………...}
So, whatever we got is;
Message History, User Status (offline/online) and Location of
message; all this information is found in server class.
To be noted;
This solution can easily work in multiple machines, which the
previous solution can’t. The previous solution can work in more than
one window, but confined in one machine. Hence, that was inextensible.
Now,
Answer to some possible questions is given below:
Page 10 of 14
11. Class report
How is it a two-way communication system?
Point to be noted,
User has both SendMessage() & ReceiveMessage() method.
So, one can send & receive message at the same time. Hence, it is a two-way
communication system.
How do we search friends?
Chat server =new Chat server ();
User ma = new User (“ma”, cs);
cs. SearchFriend(“Mahedi”); //return list that we are looking for.
Friend ID = list.getItem (s);
cs.AddFriend (“ma”, friend ID);
ma.SendMsg (“Hello”, friend ID);
Moreover,
What we can see is that user class only has SendMsg() &
ReceiveMSg() method. All other features that we have added & we are going
to add will be in the server class.
Hence, chat server acts here as an intermediate media & mediates among the
users. That’s why; this pattern is named as “Mediator Pattern”.
Though,
Both Observer Pattern & Mediator Pattern is concerned with
message passing, they have some distinct dissimilarities.
Page 11 of 14
12. Class report
Observer pattern is for one-way communication & Mediator
pattern for two-way communication.
Observer pattern has no intermediate layer whereas Mediator
pattern has so, i.e. chat server.
Thus,
The main code to solve the problem is shown below:
Main Code:
Chat Server Class:
Class ChatServer
{
User Receiver;
string s, r,m;
Hashtable hs;
Hashtable hs1;
public ChatServer()
{
hs = new Hashtable();
hs1 = new Hashtable();
}
public void AddName(string m, User u) {
hs1.Add(m,u);
}
public void SendMsg(string msg, string SenderID,string RecID) {
Page 12 of 14
13. Class report
s = SenderID;
r = RecID;
m = msg;
Receiver = (User)hs1[r];
Receiver.RecMsg(m,s);
}
public void AddFriend(string UserID, string FriendID) {
s = UserID;
r = FriendID;
hs.Add(s,r);
}
}
User Class:
Class User
{
ChatServer server;
string name;
public User(string name,ChatServer cs)
{
this.name = name;
server = cs;
}
Page 13 of 14
14. Class report
public void SendMsg(string m , string RecID) {
server.SendMsg(m,this.name,RecID);
}
public void RecMsg(string s, string SenderID) {
Console.WriteLine(" " + SenderID + " send " + s );
}
}
MainDemo Class:
class MainDemo
{
static void Main(string[] args)
{
ChatServer cs = new ChatServer();
User mahedi = new User("mahedi",cs);
cs.AddName("mahedi",mahedi);
cs.AddFriend("Mahedi","Mamun");
monir.SendMsg("hi", "Mamun");
Console.ReadKey();
}
}
}
…………………………………………………X…………………………………………………………..
Page 14 of 14