SlideShare une entreprise Scribd logo
1  sur  178
Télécharger pour lire hors ligne
trait Speaker {
val name:String
val aliases:Set[String]
}
trait Organization{
val bu = "tmall"
val group = "alibaba"
}
object WangFuqiang extends Speaker with Organization{
val name = "王福强"
val aliases = Set("千任", "@囚千任")
val blog = “http://afoo.me”
}
架构模式与实践漫谈
Sunday, July 14, 13
Architecture
Sunday, July 14, 13
Architecture Principles
• Abstraction
• Modularity
• Scalability
• Robustness
• Security
• Availability
• Reusability
• name it more...
Sunday, July 14, 13
Exciting?
Sunday, July 14, 13
Don’t Be Silly!
Sunday, July 14, 13
Overload
Sunday, July 14, 13
How About
Practices + Patterns
Sunday, July 14, 13
Roadmap First
Sunday, July 14, 13
Consistency
Layering
Isolation
Immutability
Clustering
Buffering
Async
Throttling
单结点 多结点
Sunday, July 14, 13
Sunday, July 14, 13
So Far, So Good
Sunday, July 14, 13
Consistency
Layering
Caching
Isolation
Immutability
Clustering
Async
Throttling
Sunday, July 14, 13
What we do?
Sunday, July 14, 13
Sure,
1. Scale Up!纵向扩展
Sunday, July 14, 13
“I try so hard, I got so far...”
‘cause hardware can’t work well
without proper software
Sunday, July 14, 13
Sunday, July 14, 13
Sunday, July 14, 13
Buffering缓冲
Sunday, July 14, 13
Queues
fucking simple idea, right?
Sunday, July 14, 13
Queue Everywhere
• cpu task run queue
• thread pool task queue
• actors’ mailbox
• TCP stack send buffer /receive buffer
• MOM
• etc.
Sunday, July 14, 13
Batching分批处理
when they slowly move
Sunday, July 14, 13
Sunday, July 14, 13
When to batch
When to flush
Sunday, July 14, 13
Problem With
Nagle Algorithm
Sunday, July 14, 13
Latency
VS.
Throughput
It’s your choice!
Sunday, July 14, 13
Smart Batching
focus on the whole pipeline
Sunday, July 14, 13
http://mechanical-sympathy.blogspot.com/2011/10/smart-
batching.html
• Lock-free
• 100K+ TPS
Sunday, July 14, 13
Disruptor
Start 2 use it today
Sunday, July 14, 13
--------割--------
Sunday, July 14, 13
Sunday, July 14, 13
Throttling
限流|flow control
Sunday, July 14, 13
Rate Control
Backpressure
Sunday, July 14, 13
Rate Control
Sunday, July 14, 13
Semaphore
Sunday, July 14, 13
僵硬 活
Sunday, July 14, 13
Let’s apply
BackPressureButterfly Effect
Sunday, July 14, 13
Sunday, July 14, 13
Sunday, July 14, 13
Sunday, July 14, 13
表征
位置
(反
馈
)方
式
what
where how
Back
Pressure
load, rt, etc.
ack, nack, etc.hardware, os, app, etc.
Sunday, July 14, 13
--------割--------
Sunday, July 14, 13
2 + 2 = ?
Sunday, July 14, 13
Sunday, July 14, 13
Sunday, July 14, 13
Caching缓存
Sunday, July 14, 13
Why Caching?
Sunday, July 14, 13
Sunday, July 14, 13
Cache Everywhere
• CPU Level1-3 cache
• Browser-side cache
• Server-side cache
• Business-layer cache
• DAL-layer cache
• Database-level cache
• Reverse Proxy
• DNS
• Name it more...
Sunday, July 14, 13
Cache Types
• Local Cache
• Map
• Ehcache * (BigHeap)
• Redis
• Remote Cache
• Tair *
• Memcached
• In-Memory Data Grid - IMDG
• Coherence
• GemFire
* means Hybrid
Sunday, July 14, 13
Cache Strategy
Dimension Synchronous Asynchronous
READ Read-Through Refresh-Ahead
WRITE Write-Through Write-Behind
Sunday, July 14, 13
Caching Tricks
• Dummy Value
• non-exist entities in storage
• Versioning
• long-period-cached files
K1
K2
K3
K1
K2
K3
K4 K4
K5 K5
Cache Storage
file1.v1
file1.v2
index.html <=> file1
Sunday, July 14, 13
Case Study - 支付宝双11预充值
我爬...
我也爬...
我跟着爬...
我等?!
Sunday, July 14, 13
--------割--------
Sunday, July 14, 13
Async 步
Sunday, July 14, 13
give me the quote of EUR/USD
here u are
buy 2 lots
transaction result
Story Background...
Sunday, July 14, 13
Future<Double> rateQuoteFuture = executor.submit(new Callable<Double>() {
@Override
public Double call() throws Exception {
connection.getCurrentValue(USD);
}
});
try {
Double rateQuote = rateQuoteFuture.get(5, TimeUnit.SECONDS); // Blocking wait
Future<Integer> future = executor.submit(new Callable<Object>() {
@Override
public Integer call() throws Exception {
if(isProfitable(rateQuote)) connection.buy(amount, rateQuote) else throw n
Exception("not profitable");
}
});
Integer amount = future.get(5, TimeUnit.SECONDS); // Blocking wait
System.out.println("Purchased "+ amount + " USD");
} catch (InterruptedException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | Fi
} catch (ExecutionException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | Fi
} catch (TimeoutException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | Fi
}
Go Async
Sunday, July 14, 13
The Pain In The Neck
blocking wait
Sunday, July 14, 13
1. val rateQuote = future {
2. connection.getCurrentValue(USD)
3. }
5. rateQuote onSuccess { case quote =>
6. val purchase = future {
7. if (isProfitable(quote)) connection.buy(amount, quote)
8. else throw new Exception("not profitable")
9. }
10.
11. purchase onSuccess {
12. case _ => println("Purchased " + amount + " USD")
13. }
14.}
Go Reactive
Sunday, July 14, 13
Behind The Pretty Face
blocking still exists
Sunday, July 14, 13
Task Scheduling Matters
Sunday, July 14, 13
Async & Task Schedule Granularity
•Process
•Thread
•Actor
•Coroutine
•Continuation
Sunday, July 14, 13
Go Non-Blocking
Sunday, July 14, 13
And Think In Big Picture
Sunday, July 14, 13
Sir, Yes, Sir.
Sunday, July 14, 13
R All Async Good?
Sunday, July 14, 13
“Trade A For A” Async
Anti-Pattern
Sunday, July 14, 13
A yelled ‘get it done’
B working...
A looking/waiting/
smoking...
Sunday, July 14, 13
Future<Double> rateQuoteFuture = executor.submit(new Callable<Double>() {
@Override
public Double call() throws Exception {
connection.getCurrentValue(USD);
}
});
Double rateQuote = rateQuoteFuture.get(5, TimeUnit.SECONDS);
// Nothing more to do, just wait and return
Sunday, July 14, 13
Future<Double> rateQuoteFuture = executor.submit(new Callable<Double>() {
@Override
public Double call() throws Exception {
connection.getCurrentValue(USD);
}
});
Double rateQuote = rateQuoteFuture.get(5, TimeUnit.SECONDS);
// Nothing more to do, just wait and return
Why don’t U do it in current thread?
Sunday, July 14, 13
It’s All About
RESOURCE UTILITY资源利用率是 键
Sunday, July 14, 13
SEDA
A grand master of buffering + async
Sunday, July 14, 13
Sunday, July 14, 13
--------割--------
Sunday, July 14, 13
Sunday, July 14, 13
Sunday, July 14, 13
Layering
Isolation
Immutability
Clustering
Buffering
Async
ThrottlingManage
Dependencies
Wisely明智地管理依赖
Sunday, July 14, 13
WhereWe
Stand Service2
Service1
Service3
Sunday, July 14, 13
Exception
Start Small, But Basic!
Sunday, July 14, 13
What we do after catch?
retry?
ignore?
throw up?
Sunday, July 14, 13
Sunday, July 14, 13
Sunday, July 14, 13
Timeout Everywhere
• Thread.join(long)
• Future.get(long, TimeUnit)
• ExecutorService.awaitTermination(long, TimeUnit)
• CountDownLatch.await(long, TimeUnit)
• RPC Framework, say, HSF or Dubbo
• IO timeout
• you name it...
Sunday, July 14, 13
Circuit Breaker
Pattern
I want it to be automatic!
Sunday, July 14, 13
Sunday, July 14, 13
Sunday, July 14, 13
SwitchesI don’t need you here!
Sunday, July 14, 13
Sunday, July 14, 13
trait PartialFunction[-A, +B] extends (A => B) { self =>
  import PartialFunction._
  /** Checks if a value is contained in the function's domain.
*
* @param x the value to test
* @return `'''true'''`, iff `x` is in the domain of this function,
`'''false'''` otherwise.
*/
  def isDefinedAt(x: A): Boolean
...
}
trait Function1[@specialized(..) -T1, @specialized(..) +R] extends AnyRef { self =>
  /** Apply the body of this function to the argument.
* @return the result of function application.
*/
  def apply(v1: T1): R
http://www.infoq.com/cn/articles/function-switch-realize-better-continuous-implementations
Switch.reduce{
}
Sunday, July 14, 13
Hard
Enough
Sunday, July 14, 13
2. Scale Out横向扩展
Sunday, July 14, 13
We r gonna
Cluster it.
Sunday, July 14, 13
Symmetric
Stateful
State
Asymmetric
Stateless
ComputationSunday, July 14, 13
Replicas 制品, 副本
Sunday, July 14, 13
Replica means
Symmetric
Sunday, July 14, 13
When It Goes
Stateless
Sunday, July 14, 13
Computational
Replicas
Sunday, July 14, 13
Master-Workers
Pattern
Sunday, July 14, 13
Sunday, July 14, 13
Sunday, July 14, 13
Most of the time, Computation and state are so close...
Sunday, July 14, 13
State Replicas
Sunday, July 14, 13
Read Scales
Redundancy
Sunday, July 14, 13
Replication
Sunday, July 14, 13
Replication Types
• Consistency Concerning Replication
• Synchronous Replication
• Asynchronous Replication
• Bandwidth Concerning Replication
• Intra-IDC Replication
• Inter-IDC Replication
• Other Views...
Sunday, July 14, 13
Load-Balancing
Sunday, July 14, 13
Sunday, July 14, 13
So short?
Just Stay with me
Sunday, July 14, 13
--------割--------
Sunday, July 14, 13
Shards分片,分区
aka. Partitioning
Sunday, July 14, 13
Write Scales
Storage Scales
Sunday, July 14, 13
Routing
Sunday, July 14, 13
Lookup Table
Sunday, July 14, 13
Hashing
Sunday, July 14, 13
Consistent
Hashing
Sunday, July 14, 13
Sharding Strategy Matters
• Capacity Planning
• Capacity Expanding
• State Transferring
• State Access Pattern
• Fault-Tolerance
• etc.
Sunday, July 14, 13
L.B. Vs. Routing
Sunday, July 14, 13
--------割--------
Sunday, July 14, 13
Shit
Happens
Sunday, July 14, 13
Sunday, July 14, 13
Isolation隔离性
Sunday, July 14, 13
Bulkhead Pattern
Sunday, July 14, 13
Sunday, July 14, 13
One Tab, One Process
Sunday, July 14, 13
Linux Container
Sunday, July 14, 13
Single Box
In A Cluster
Sunday, July 14, 13
A Whole Cluster
Goes Bad...
Sunday, July 14, 13
So When you deploy clusters of
• Search Service
• HSF/Dubbo Service
• Data Storage Service
• Caching Service(Tair, Redis, memcached...)
• Whatever that’s important or have higher priority, NO Share!
Sunday, July 14, 13
What Do U Think?
Sunday, July 14, 13
--------割--------
Sunday, July 14, 13
Sunday, July 14, 13
Redundancy冗余
Sunday, July 14, 13
Symmetric Cluster?
Sunday, July 14, 13
Symmetric Cluster?
What A Lucky Boy!
Sunday, July 14, 13
What About
Asymmetric Cluster?
Sunday, July 14, 13
BinaryStar
Pattern
Sunday, July 14, 13
Sunday, July 14, 13
--------割--------
Sunday, July 14, 13
Way&Style
Sunday, July 14, 13
Consistency一致性
Sunday, July 14, 13
Why
Consistency?
Sunday, July 14, 13
Sunday, July 14, 13
Sunday, July 14, 13
Consistency Everywhere
• Religion
• Bible
• Brotherhood initiation
• Psychology
• Gambling
• Debating
• Industry
大众就一款⻋车高尔夫,拍窄点就是菠萝,加个屁股就是新桑塔纳和新捷达,继续拍一拍就是速腾和朗逸、再捏一把就是新宝来,
扩大一圈就是新帕萨特,再拍一拍就是迈腾,再加大一圈就是辉腾,拍成方的就是途安,加多三个后座就是夏朗,加高底盘就是
途观,再 大点就是途锐,拍 就是尚酷,搓圆了就是甲 虫。
Sunday, July 14, 13
Show Time...
Sunday, July 14, 13
统一构建原则
Sunday, July 14, 13
In Framework Design like Spring
Sunday, July 14, 13
-- Haskell is a pure functional language and
even the I/O system can't break this purity.
Sunday, July 14, 13
Go Consistency
When Necessary
Sunday, July 14, 13
Layering分层
Sunday, July 14, 13
Why Layering?
Sunday, July 14, 13
impact
Sunday, July 14, 13
Layer Patterns Everywhere
Can U Name More?
Sunday, July 14, 13
Cake Pattern
Sunday, July 14, 13
Stackable Traits Pattern
Decorator Pattern In Scala
Sunday, July 14, 13
--------割--------
Sunday, July 14, 13
Immutability不变性
Sunday, July 14, 13
Sunday, July 14, 13
Sunday, July 14, 13
Sunday, July 14, 13
Persistent Data Structure
Sunday, July 14, 13
Familiar?
Sunday, July 14, 13
Event Sourcing
Sunday, July 14, 13
Capture all changes to an application state as a sequence of events.
Sunday, July 14, 13
Real World ES
• Binlog, HLog . . .
• Kafka’s Storage Strategy
• MetaQ - Java Clone of Kafka,
• LMAX Platform
• Many home-brew tools
• Ultra Messaging Stream Edition(UMS) - Informatica
• Available Projects/Solutions
• https://github.com/eligosource/eventsourced
• https://github.com/sbtourist/Journal.IO
• https://github.com/fusesource/hawtjournal
Sunday, July 14, 13
案例分析
•TMS编辑和发布的并发控制与潜在冲突
•模板中变量名变更的追踪无案底可查
Sunday, July 14, 13
Lambda Pattern
Sunday, July 14, 13
Does Lambda’s face inspire U?
Sunday, July 14, 13
Sunday, July 14, 13
Sunday, July 14, 13
http://www.infoq.com/presentations/High-Performance-Network-Applications-in-the-Capital-Markets
Todd-Montgomery
Sunday, July 14, 13
Sunday, July 14, 13
Log VS. JMX
Your Opinion?
Sunday, July 14, 13
--------割--------
Sunday, July 14, 13
Composability
Yes, This is a principle :0)
组合
Sunday, July 14, 13
活运用工具的能力
比工具质量要重要的多
Sunday, July 14, 13
It’sNot The Ending, It’s The Beginning...
Sunday, July 14, 13
推荐书目
Sunday, July 14, 13
Have Fun &
Happy
Sunday, July 14, 13

Contenu connexe

En vedette

Gold investment types introduction
Gold investment types introductionGold investment types introduction
Gold investment types introductionFuqiang Wang
 
モナドをつくろう
モナドをつくろうモナドをつくろう
モナドをつくろうdico_leque
 
Continuations in scala (incomplete version)
Continuations in scala (incomplete version)Continuations in scala (incomplete version)
Continuations in scala (incomplete version)Fuqiang Wang
 
Zookeeper In Simple Words
Zookeeper In Simple WordsZookeeper In Simple Words
Zookeeper In Simple WordsFuqiang Wang
 
From cache to in-memory data grid. Introduction to Hazelcast.
From cache to in-memory data grid. Introduction to Hazelcast.From cache to in-memory data grid. Introduction to Hazelcast.
From cache to in-memory data grid. Introduction to Hazelcast.Taras Matyashovsky
 
MongoDB as a fast and queryable cache
MongoDB as a fast and queryable cacheMongoDB as a fast and queryable cache
MongoDB as a fast and queryable cacheMongoDB
 

En vedette (6)

Gold investment types introduction
Gold investment types introductionGold investment types introduction
Gold investment types introduction
 
モナドをつくろう
モナドをつくろうモナドをつくろう
モナドをつくろう
 
Continuations in scala (incomplete version)
Continuations in scala (incomplete version)Continuations in scala (incomplete version)
Continuations in scala (incomplete version)
 
Zookeeper In Simple Words
Zookeeper In Simple WordsZookeeper In Simple Words
Zookeeper In Simple Words
 
From cache to in-memory data grid. Introduction to Hazelcast.
From cache to in-memory data grid. Introduction to Hazelcast.From cache to in-memory data grid. Introduction to Hazelcast.
From cache to in-memory data grid. Introduction to Hazelcast.
 
MongoDB as a fast and queryable cache
MongoDB as a fast and queryable cacheMongoDB as a fast and queryable cache
MongoDB as a fast and queryable cache
 

Similaire à Architecture patterns and practices

Beyond DOM Manipulations: Building Stateful Modules with Events and Promises
Beyond DOM Manipulations: Building Stateful Modules with Events and PromisesBeyond DOM Manipulations: Building Stateful Modules with Events and Promises
Beyond DOM Manipulations: Building Stateful Modules with Events and PromisesCrashlytics
 
Seattle.rb 6.4
Seattle.rb 6.4Seattle.rb 6.4
Seattle.rb 6.4deanhudson
 
Unleashing the Rails Asset Pipeline
Unleashing the Rails Asset PipelineUnleashing the Rails Asset Pipeline
Unleashing the Rails Asset PipelineKenneth Kalmer
 
Ember and containers
Ember and containersEmber and containers
Ember and containersMatthew Beale
 
Rails Sojourn: One Man's Journey - Wicked Good Ruby Conference 2013
Rails Sojourn: One Man's Journey - Wicked Good Ruby Conference 2013Rails Sojourn: One Man's Journey - Wicked Good Ruby Conference 2013
Rails Sojourn: One Man's Journey - Wicked Good Ruby Conference 2013Mike Desjardins
 
Cassandra Meetup: Real-time Analytics using Cassandra, Spark and Shark at Ooyala
Cassandra Meetup: Real-time Analytics using Cassandra, Spark and Shark at OoyalaCassandra Meetup: Real-time Analytics using Cassandra, Spark and Shark at Ooyala
Cassandra Meetup: Real-time Analytics using Cassandra, Spark and Shark at OoyalaDataStax Academy
 
Zeno rocha - HTML5 APIs para Mobile
Zeno rocha - HTML5 APIs para MobileZeno rocha - HTML5 APIs para Mobile
Zeno rocha - HTML5 APIs para MobileiMasters
 
DevOps Nirvana: Seven Steps to a Peaceful Life on AWS (ARC210) | AWS re:Inven...
DevOps Nirvana: Seven Steps to a Peaceful Life on AWS (ARC210) | AWS re:Inven...DevOps Nirvana: Seven Steps to a Peaceful Life on AWS (ARC210) | AWS re:Inven...
DevOps Nirvana: Seven Steps to a Peaceful Life on AWS (ARC210) | AWS re:Inven...Amazon Web Services
 
Bring the Noise
Bring the NoiseBring the Noise
Bring the NoiseJon Cowie
 
OmniOS Motivation and Design ~ LISA 2012
OmniOS Motivation and Design ~ LISA 2012OmniOS Motivation and Design ~ LISA 2012
OmniOS Motivation and Design ~ LISA 2012Theo Schlossnagle
 
Recommender Systems with Ruby (adding machine learning, statistics, etc)
Recommender Systems with Ruby (adding machine learning, statistics, etc)Recommender Systems with Ruby (adding machine learning, statistics, etc)
Recommender Systems with Ruby (adding machine learning, statistics, etc)Marcel Caraciolo
 
Node.js Patterns and Opinions
Node.js Patterns and OpinionsNode.js Patterns and Opinions
Node.js Patterns and OpinionsIsaacSchlueter
 
SF Hadoop Users Group August 2014 Meetup Slides
SF Hadoop Users Group August 2014 Meetup SlidesSF Hadoop Users Group August 2014 Meetup Slides
SF Hadoop Users Group August 2014 Meetup SlidesYash Ranadive
 

Similaire à Architecture patterns and practices (20)

Beyond DOM Manipulations: Building Stateful Modules with Events and Promises
Beyond DOM Manipulations: Building Stateful Modules with Events and PromisesBeyond DOM Manipulations: Building Stateful Modules with Events and Promises
Beyond DOM Manipulations: Building Stateful Modules with Events and Promises
 
Seattle.rb 6.4
Seattle.rb 6.4Seattle.rb 6.4
Seattle.rb 6.4
 
Immutability
ImmutabilityImmutability
Immutability
 
Smartgears
SmartgearsSmartgears
Smartgears
 
Unleashing the Rails Asset Pipeline
Unleashing the Rails Asset PipelineUnleashing the Rails Asset Pipeline
Unleashing the Rails Asset Pipeline
 
Ember and containers
Ember and containersEmber and containers
Ember and containers
 
Rails Sojourn: One Man's Journey - Wicked Good Ruby Conference 2013
Rails Sojourn: One Man's Journey - Wicked Good Ruby Conference 2013Rails Sojourn: One Man's Journey - Wicked Good Ruby Conference 2013
Rails Sojourn: One Man's Journey - Wicked Good Ruby Conference 2013
 
RequireJS
RequireJSRequireJS
RequireJS
 
Cassandra Meetup: Real-time Analytics using Cassandra, Spark and Shark at Ooyala
Cassandra Meetup: Real-time Analytics using Cassandra, Spark and Shark at OoyalaCassandra Meetup: Real-time Analytics using Cassandra, Spark and Shark at Ooyala
Cassandra Meetup: Real-time Analytics using Cassandra, Spark and Shark at Ooyala
 
Future layouts
Future layoutsFuture layouts
Future layouts
 
SPRINT3R-SWPSDLC2556-CLOSING
SPRINT3R-SWPSDLC2556-CLOSINGSPRINT3R-SWPSDLC2556-CLOSING
SPRINT3R-SWPSDLC2556-CLOSING
 
Zeno rocha - HTML5 APIs para Mobile
Zeno rocha - HTML5 APIs para MobileZeno rocha - HTML5 APIs para Mobile
Zeno rocha - HTML5 APIs para Mobile
 
CH07 pipelined cpu
CH07 pipelined cpuCH07 pipelined cpu
CH07 pipelined cpu
 
DevOps Nirvana: Seven Steps to a Peaceful Life on AWS (ARC210) | AWS re:Inven...
DevOps Nirvana: Seven Steps to a Peaceful Life on AWS (ARC210) | AWS re:Inven...DevOps Nirvana: Seven Steps to a Peaceful Life on AWS (ARC210) | AWS re:Inven...
DevOps Nirvana: Seven Steps to a Peaceful Life on AWS (ARC210) | AWS re:Inven...
 
Bring the Noise
Bring the NoiseBring the Noise
Bring the Noise
 
OmniOS Motivation and Design ~ LISA 2012
OmniOS Motivation and Design ~ LISA 2012OmniOS Motivation and Design ~ LISA 2012
OmniOS Motivation and Design ~ LISA 2012
 
Recommender Systems with Ruby (adding machine learning, statistics, etc)
Recommender Systems with Ruby (adding machine learning, statistics, etc)Recommender Systems with Ruby (adding machine learning, statistics, etc)
Recommender Systems with Ruby (adding machine learning, statistics, etc)
 
Dig1108 Lesson 3
Dig1108 Lesson 3Dig1108 Lesson 3
Dig1108 Lesson 3
 
Node.js Patterns and Opinions
Node.js Patterns and OpinionsNode.js Patterns and Opinions
Node.js Patterns and Opinions
 
SF Hadoop Users Group August 2014 Meetup Slides
SF Hadoop Users Group August 2014 Meetup SlidesSF Hadoop Users Group August 2014 Meetup Slides
SF Hadoop Users Group August 2014 Meetup Slides
 

Dernier

Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...apidays
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbuapidays
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 

Dernier (20)

Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 

Architecture patterns and practices