What's
not
new
in
modular
Java!
Milen Dyankov
@ milendyankov
Featuring
JDK 9 Early Access
with Project Jigsaw
Developer advocate
@ Liferay
Think of
not new
as in
not new
concept
and not as in
not new
car
Why
is it
about time
to start
thinking
about
modularity
in Java?
JSR 277
JSR 294
JSR 376
JEP 200
JEP 201
JEP 220
JEP 260
JEP 261
...
2005
2014
Antwerp, Belgium,
November 2015
“Survey” at
Javantura v4 - What’s NOT new in modular Java - Milen Dyankov
Javantura v4 - What’s NOT new in modular Java - Milen Dyankov
What
is
modularity
/particularly in Java/
anyway?
"When I use a word,"
Humpty Dumpty said,
in rather a scornful tone,
"it means
just what I choose
it to mean - neither
more nor less."
Modularity Maturity Model
proposed by Dr Graham Charters
at the OSGi Community Event 2011
Level 1 Ad Hoc nothing
Level 2 Modules decoupled from artifact
Level 3 Modularity decoupled from identity
Level 4 Loose-Coupling decoupled from implementation
Level 5 Devolution decoupled from ownership
Level 6 Dynamism decoupled from time
Level 1 Ad Hoc nothing
Level 2 Modules decoupled from artifact
Level 3 Modularity decoupled from identity
Level 4 Loose-Coupling decoupled from implementation
Level 5 Devolution decoupled from ownership
Level 6 Dynamism decoupled from time
Level 7 Peter Kriens only available to people who are Peter Kriens
Modularity Maturity Model
proposed by Dr Graham Charters
at the OSGi Community Event 2011
Modularity Maturity Model
proposed by Peter Kriens
in foreword to “Java Application Architecture”
Level 1 Ad Hoc
Level 2 Modules
Level 3 Modularity
Level 4 Loose-Coupling
Level 5 Devolution
Level 6 Dynamism
Unmanaged / chaos
Managing dependencies
Proper isolation
Minimize coupling
Service-oriented architecture
Level 1 Monolith
Level 2 Composite
Level 3 Containers
Level 4 Discovery
Level 5 JuServices
Buzzword compliant
Modularity Maturity Model
Level 1 Monolith Unaware of own dependencies
Level 2 Composite Aware of infrastructural dependencies
Level 3 Containers Aware of functional dependencies
Level 4 Discovery Aware of functional requirements
Level 5 Adapts to changing requirementsJuServices
Buzzword compliant
Modularity Maturity Model
Level 1 Monolith
Level 2 Composite
Level 3 Containers
Level 4 Discovery
Level 5 JuServices
Buzzword compliant
Modularity Maturity Model
Level 1 Monolith
Level 2 Composite
Level 3 Containers
Level 4 Discovery
Level 5 JuServices
Buzzword compliant
Modularity Maturity Model
Buzzword compliant
Modularity Maturity Model
JuServices
Level 1 Monolith
Level 2 Composite
Level 3 Containers
Level 4 Discovery
Level 5
Buzzword compliant
Modularity Maturity Model
JuServices
Level 1 Monolith
Level 2 Composite
Level 3 Containers
Level 4 Discovery
Level 5 OSGi
Buzzword compliant
Modularity Maturity Model
JuServices OSGi
JPMS
Level 1 Monolith
Level 2 Composite
Level 3 Containers
Level 4 Discovery
Level 5
Buzzword compliant
Modularity Maturity Model
JuServices OSGi
JPMS
Level 1 Monolith
Level 2 Composite
Level 3 Containers
Level 4 Discovery
Level 5
What
is
modularity
from
application
perspective ?
Java
application
Java
application
Java Platform
Libraries
OSGi
There is nothing
we can do about it!
OSGi
class loaders
There is nothing
we can do about it!
OSGi
class loaders
There is nothing
we can do about it!
Dynamic multi-layer
modular runtime!
OSGi
class loaders
There is nothing
we can do about it!
Dynamic multi-layer
modular runtime!
It's so easy,
everyone
should
release
bundles
(modules)!
OSGi
“Many
people claim
OSGi is hard without
acknowledging that modularizing
applications is the hard part.
. . .
JSR 376 will demonstrate that OSGi
was just the messenger and actually not the cause.”
Peter Kriens
JPMS
Modules are
first class citizens!
JPMS
JPMS
Modules are
first class citizens!
Nothing to do about it,
must use modules!
JPMS
Modules are
first class citizens!
Nothing to do about it,
must use modules!
It's so easy,
everyone
must
release
modules!
not new
except now
you kinda
have to
new
Modular
Java SE
Platform!
Modular
Java SE
Applications!
“A lot of people
will discover that
their babies are not as
modular as they thought”
Peter Kriens
When
is
“keep it
simple!”
not enough?
product
intermediate
intermediate
material
Javantura v4 - What’s NOT new in modular Java - Milen Dyankov
Javantura v4 - What’s NOT new in modular Java - Milen Dyankov
Javantura v4 - What’s NOT new in modular Java - Milen Dyankov
Product
Entity
Entity
Entity
Entity
Entity Entity
Offer
Offer
Offer
Offer
Offer
Offer
Offer
Offer
Offer
Offer
Offer
Application
Artifact
Artifact
Artifact
Artifact
Artifact Artifact
Export
Export
Export
Export
Export
Export
Export
Export
Export
Export
Export
Artifact
OSGi JPMS
Manifest-Version: 1.0
Bundle-SymbolicName: 
com.mycompany.mymodule
...
MANIFEST.MF
module com.mycompany.mymodule {
...
}
module-info.java
Level 2
decoupled from
artifact
Buzzword compliant
Modularity Maturity Model
JuServices OSGi
JPMS
Level 1 Monolith
Level 2 Composite
Level 3 Containers
Level 4 Discovery
Level 5
OK!
Artifact
OSGi
Manifest-Version: 1.0
Bundle-SymbolicName: 
com.mycompany.mymodule
Export-Package: 
com.mycompany.mypackage
...
MANIFEST.MF
module com.mycompany.mymodule {
exports com.mycompany.mypackage;
...
}
module-info.java
Export
Level 3
decoupled from
identity
JPMS
OSGi
Manifest-Version: 1.0
Bundle-SymbolicName: 
com.mycompany.mymodule
Require-Bundle: 
other.module
Import-Package: 
com.some.package;
version="[2,3)",...
...
MANIFEST.MF
module com.mycompany.mymodule {
requires other.module;
...
}
module-info.java
Artifact
Export
Artifact
Level 3
decoupled from
identity
JPMS
OSGi
Manifest-Version: 1.0
Bundle-SymbolicName: 
com.mycompany.mymodule
Require-Bundle: 
com.foo
Import-Package: 
com.generic.powerplug;
version="[2,3)",...
...
MANIFEST.MF
module com.mycompany.mymodule {
requires com.foo;
...
}
module-info.java
Foo
Me
I need power plug!
I need Foo because
I know it offers
power plugs and
I know only Foo
offers power plugs!
Level 3
decoupled from
identity
JPMS
OSGiLevel 3
decoupled from
identity
Manifest-Version: 1.0
Bundle-SymbolicName: 
com.mycompany.mymodule
Require-Bundle: 
com.foo
Import-Package: 
com.generic.powerplug;
version="[2,3)",...
...
MANIFEST.MF
module com.mycompany.mymodule {
requires com.foo;
...
}
module-info.java
Foo
Me I'm compatible
with all 2.x.x
versions!
I expect
developer/user to
know which version
will work and provide
it on module path!
JPMS
OSGiLevel 3
decoupled from
identity
Manifest-Version: 1.0
Bundle-SymbolicName: 
com.mycompany.mymodule
Export-Package: 
com.mycompany.mypackage;
uses:="com.some.package”
...
MANIFEST.MF
module com.mycompany.mymodule {
exports com.mycompany.mypackage;
requires public other.module;
...
}
module-info.java
Artifact
Artifact
Artifact
Export
Uses
Export
JPMS
OSGiLevel 3
decoupled from
identity
Manifest-Version: 1.0
Bundle-SymbolicName: 
com.mycompany.devices
Export-Package: 
com.mycompany.pc; 
uses:="foo.tools.powerplug”
...
MANIFEST.MF
module com.mycompany.devices {
exports com.mycompany.pc;
requires public foo.tools;
...
}
module-info.java
Me
Consumer
Foo
I used a power
plug from Foo!
You may need it!
I used something
from Foo tools,
so you now depend
on Foo tools
as well!
JPMS
Buzzword compliant
Modularity Maturity Model
JuServices OSGi
JPMS
Level 1 Monolith
Level 2 Composite
Level 3 Containers
Level 4 Discovery
Level 5
Not fully decoupled from identity!
OK!
OSGiLevel 4
decoupled from
implementation
Artifact
Artifact
Requirement
Need to
connect
device to
power outlet!
Capability
Can
connect
device to
power outlet!
RESOLVER
Bundles with custom
metadata
Requirements and
Capabilities with
LDAP like filters
Bundle lifecycle events
and listeners
Extender pattern
Nothing OOTB.
Use OSGi :)
Probably doable via
external resolver
dynamic modules and
layers
JEE or 3rd
party
solutions on top of JSR
376 may provide
solutions
JPMS
Buzzword compliant
Modularity Maturity Model
JuServices OSGi
JPMS
Level 1 Monolith
Level 2 Composite
Level 3 Containers
Level 4 Discovery
Level 5
Not fully decoupled from identity!
Some very basic APIs only!
OK!
OSGiLevel 5
decoupled from
ownership & time
JuServices
Artifact
Artifact
REGISTRY
Service
Service
Service
Service
Service registry with
metadata
Finding services via
LDAP like filters
Service lifecycle,
events and listeners
Multiple component
frameworks
Whiteboard pattern
Traditional Java
ServiceLoader
(not dynamic) moved to
module descriptor
Alternative: minimal
standalone Java
applications with
external service
discovery
JPMS
Buzzword compliant
Modularity Maturity Model
JuServices OSGi
JPMS
Level 1 Monolith
Level 2 Composite
Level 3 Containers
Level 4 Discovery
Level 5
Not fully decoupled from identity!
Very limited service layer! DIY dynamism!
OK!OK!
Some very basic APIs only!
Does this mean JPMS
got modularity wrong?
When they say
modular Java
it means
just what they
choose it to mean -
neither
more nor less!
JPMS solves some
issues in Java platform!
Level 5 modularity was never one of them!
Reliable
configuration
Strong
encapsulation
A scalable Java SE
Platform
Greater platform
integrity
Improved
performance
“... once modularization
becomes part of the
Java core tool set,
developers will begin to
embrace it en-masse,
and as they do so, they
will seek more robust
and more mature
solutions. Enter OSGi!”
Victor Grazi
When
an application
needs
modularity
at
higher level ?
The essence of
modularity is
Not knowing
1 platform
over 100 apps
over 600 modules
over 2500 μServices
Some examples of how
deals with not knowing
The essence of
modularity is
Not knowing
Require-Capability: 
osgi.contract; 
filter:="(&(osgi.contract=JavaJAXRS)(version=2))"
Provide-Capability: 
osgi.contract; 
osgi.contract=JavaJAXRS; 
Uses:= "javax.ws.rs, 
javax.ws.rs.core, 
javax.ws.rs.client, 
javax.ws.rs.container, 
javax.ws.rs.ext"; 
version:Version=2
Some examples of how
deals with not knowing
The essence of
modularity is
Not knowing
@Component(
immediate = true,
property = {"javax.portlet.name=other_Portlet"},
service = PortletFilter.class
)
public class MyFilter implements RenderFilter {
...
Some examples of how
deals with not knowing
The essence of
modularity is
Not knowing
@Component(
immediate = true,
property = {"destination.name=" + MONITORING},
service = {MessageListener.class}
)
public class MonitoringMessageListener ...
@Reference(
cardinality = ReferenceCardinality.MULTIPLE,
policy = ReferencePolicy.DYNAMIC,
policyOption = ReferencePolicyOption.GREEDY
)
protected synchronized void registerProcessor(
...
Some examples of how
deals with not knowing
The essence of
modularity is
Not knowing
The essence of
modularity is
Not knowing
Which enforces
optimization for
Predictability
Which results in
application
Agility
The essence of
modularity is
Not knowing
Which enforces
optimization for
Predictability
Javantura v4 - What’s NOT new in modular Java - Milen Dyankov
milen.dyankov@liferay.com
@MilenDyankov
http://www.liferay.com
@Liferay

More Related Content

PDF
Javantura v4 - Support SpringBoot application development lifecycle using Ora...
PDF
Javantura v4 - Android App Development in 2017 - Matej Vidaković
PDF
Javantura v4 - CroDuke Indy and the Kingdom of Java Skills - Branko Mihaljevi...
PDF
Javantura v4 - The power of cloud in professional services company - Ivan Krn...
PDF
Javantura v4 - Angular2 - Ionic2 - from birth to stable versions - Hrvoje Pek...
PDF
Javantura v4 - Security architecture of the Java platform - Martin Toshev
PDF
Front-end for Java developers Devoxx France 2018
PDF
Javantura v4 - JVM++ The GraalVM - Martin Toshev
Javantura v4 - Support SpringBoot application development lifecycle using Ora...
Javantura v4 - Android App Development in 2017 - Matej Vidaković
Javantura v4 - CroDuke Indy and the Kingdom of Java Skills - Branko Mihaljevi...
Javantura v4 - The power of cloud in professional services company - Ivan Krn...
Javantura v4 - Angular2 - Ionic2 - from birth to stable versions - Hrvoje Pek...
Javantura v4 - Security architecture of the Java platform - Martin Toshev
Front-end for Java developers Devoxx France 2018
Javantura v4 - JVM++ The GraalVM - Martin Toshev

What's hot (20)

PDF
Devoxx Belgium 2017 - easy microservices with JHipster
PDF
Micronaut Deep Dive - Devoxx Belgium 2019
PDF
Java Technology Trends
PPTX
Сергей Моренец: "Gradle. Write once, build everywhere"
PPTX
GWT and Angular - Relatives or Foes
PDF
Common blind spots on the journey to production vijay raghavan aravamudhan
PDF
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...
PPTX
Build software like a bag of marbles, not a castle of LEGO®
PPTX
Gradle.Enemy at the gates
PDF
ColdBox Hierarchical MVC - Transform Your Monolith
PDF
Take your CFML Legacy Apps to Modernization
PPTX
Exploring the power of Gradle in android studio - Basics & Beyond
PPTX
Overview of PaaS: Java experience
PDF
Landscape of Eclipse MicroProfile Tools
PPTX
[Webinar] The Frog And The Butler: CI Pipelines For Modern DevOps
PPTX
The new java developers kit bag
PDF
MicroProfile Devoxx.us
PPTX
PDF
LV Dev Efficiency NIDays 2015
PDF
Micro Frontends
Devoxx Belgium 2017 - easy microservices with JHipster
Micronaut Deep Dive - Devoxx Belgium 2019
Java Technology Trends
Сергей Моренец: "Gradle. Write once, build everywhere"
GWT and Angular - Relatives or Foes
Common blind spots on the journey to production vijay raghavan aravamudhan
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...
Build software like a bag of marbles, not a castle of LEGO®
Gradle.Enemy at the gates
ColdBox Hierarchical MVC - Transform Your Monolith
Take your CFML Legacy Apps to Modernization
Exploring the power of Gradle in android studio - Basics & Beyond
Overview of PaaS: Java experience
Landscape of Eclipse MicroProfile Tools
[Webinar] The Frog And The Butler: CI Pipelines For Modern DevOps
The new java developers kit bag
MicroProfile Devoxx.us
LV Dev Efficiency NIDays 2015
Micro Frontends
Ad

Viewers also liked (20)

PDF
Javantura v4 - (Spring)Boot your application on Red Hat middleware stack - Al...
PDF
Javantura v4 - Test-driven documentation with Spring REST Docs - Danijel Mitar
PDF
Javantura v4 - Let me tell you a story why Scrum is not for you - Roko Roić
PDF
Javantura v4 - True RESTful Java Web Services with JSON API and Katharsis - M...
PDF
Javantura v4 - Java and lambdas and streams - are they better than for loops ...
PDF
Javantura v4 - DMN – supplement your BPMN - Željko Šmaguc
PDF
Javantura v4 - FreeMarker in Spring web - Marin Kalapać
PDF
Javantura v4 - Getting started with Apache Spark - Dinko Srkoč
PDF
Javantura v4 - Keycloak – instant login for your app - Marko Štrukelj
PDF
Javantura v4 - KumuluzEE – Microservices with Java - Matjaž B. Jurič & Tilen ...
PDF
Javantura v4 - Cloud-native Architectures and Java - Matjaž B. Jurič
PDF
Javantura v4 - Spring Boot and JavaFX - can they play together - Josip Kovaček
PDF
Javantura v4 - Java or Scala – Web development with Playframework 2.5.x - Kre...
PDF
Javantura v4 - Self-service app deployment with Kubernetes and OpenShift - Ma...
ODP
Javantura v3 - Real-time BigData ingestion and querying of aggregated data – ...
PPTX
Javantura v3 - Just say it – using language to communicate with the computer ...
PPTX
Javantura v3 - ES6 – Future Is Now – Nenad Pečanac
PPTX
Javantura v3 - The Internet of (Lego) Trains – Johan Janssen, Ingmar van der ...
PPTX
Javantura v3 - Spring Boot under the hood– Nicolas Fränkel
PPTX
Javantura v3 - What really motivates developers – Ivan Krnić
Javantura v4 - (Spring)Boot your application on Red Hat middleware stack - Al...
Javantura v4 - Test-driven documentation with Spring REST Docs - Danijel Mitar
Javantura v4 - Let me tell you a story why Scrum is not for you - Roko Roić
Javantura v4 - True RESTful Java Web Services with JSON API and Katharsis - M...
Javantura v4 - Java and lambdas and streams - are they better than for loops ...
Javantura v4 - DMN – supplement your BPMN - Željko Šmaguc
Javantura v4 - FreeMarker in Spring web - Marin Kalapać
Javantura v4 - Getting started with Apache Spark - Dinko Srkoč
Javantura v4 - Keycloak – instant login for your app - Marko Štrukelj
Javantura v4 - KumuluzEE – Microservices with Java - Matjaž B. Jurič & Tilen ...
Javantura v4 - Cloud-native Architectures and Java - Matjaž B. Jurič
Javantura v4 - Spring Boot and JavaFX - can they play together - Josip Kovaček
Javantura v4 - Java or Scala – Web development with Playframework 2.5.x - Kre...
Javantura v4 - Self-service app deployment with Kubernetes and OpenShift - Ma...
Javantura v3 - Real-time BigData ingestion and querying of aggregated data – ...
Javantura v3 - Just say it – using language to communicate with the computer ...
Javantura v3 - ES6 – Future Is Now – Nenad Pečanac
Javantura v3 - The Internet of (Lego) Trains – Johan Janssen, Ingmar van der ...
Javantura v3 - Spring Boot under the hood– Nicolas Fränkel
Javantura v3 - What really motivates developers – Ivan Krnić
Ad

Similar to Javantura v4 - What’s NOT new in modular Java - Milen Dyankov (20)

PDF
Moved to https://slidr.io/azzazzel/what-s-not-new-in-modular-java
PDF
Modular JavaScript in an OSGi World - S Mak
PDF
Java 9, JShell, and Modularity
PPTX
Java modularization
PPTX
Managing modular software for your nu get, c++ and java development
PPTX
Session 02 - Elements of Java Language
PDF
MvvmCross Seminar
PDF
MvvmCross Introduction
PPTX
Nodejs from zero to hero
PPSX
Elements of Java Language
PDF
Instant download Osgi in Action Creating Modular Applications in Java Unedite...
PDF
OSGi: Don't let me be Misunderstood
PDF
Java 9 / Jigsaw - LJC / VJUG session (hackday session)
PPTX
Java Modularity with OSGi
PDF
Java modularity: life after Java 9
PDF
Moved to https://slidr.io/azzazzel/osgi-fundamentals
KEY
Polyglot OSGi
PDF
effective java
PDF
Osgi in Action Creating Modular Applications in Java Unedited Draft 1st Editi...
PDF
Modular Java EE in the Cloud
Moved to https://slidr.io/azzazzel/what-s-not-new-in-modular-java
Modular JavaScript in an OSGi World - S Mak
Java 9, JShell, and Modularity
Java modularization
Managing modular software for your nu get, c++ and java development
Session 02 - Elements of Java Language
MvvmCross Seminar
MvvmCross Introduction
Nodejs from zero to hero
Elements of Java Language
Instant download Osgi in Action Creating Modular Applications in Java Unedite...
OSGi: Don't let me be Misunderstood
Java 9 / Jigsaw - LJC / VJUG session (hackday session)
Java Modularity with OSGi
Java modularity: life after Java 9
Moved to https://slidr.io/azzazzel/osgi-fundamentals
Polyglot OSGi
effective java
Osgi in Action Creating Modular Applications in Java Unedited Draft 1st Editi...
Modular Java EE in the Cloud

More from HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association (20)

PDF
Java cro'21 the best tools for java developers in 2021 - hujak
PDF
JavaCro'21 - Java is Here To Stay - HUJAK Keynote
PDF
Javantura v7 - Behaviour Driven Development with Cucumber - Ivan Lozić
PPTX
Javantura v7 - The State of Java - Today and Tomowwow - HUJAK's Community Key...
PPTX
Javantura v7 - Learning to Scale Yourself: The Journey from Coder to Leader -...
PDF
JavaCro'19 - The State of Java and Software Development in Croatia - Communit...
PDF
Javantura v6 - Java in Croatia and HUJAK - Branko Mihaljević, Aleksander Radovan
PDF
Javantura v6 - On the Aspects of Polyglot Programming and Memory Management i...
PPTX
Javantura v6 - Case Study: Marketplace App with Java and Hyperledger Fabric -...
PDF
Javantura v6 - How to help customers report bugs accurately - Miroslav Čerkez...
PDF
Javantura v6 - When remote work really works - the secrets behind successful ...
PDF
Javantura v6 - Kotlin-Java Interop - Matej Vidaković
PDF
Javantura v6 - Spring HATEOAS hypermedia-driven web services, and clients tha...
PDF
Javantura v6 - End to End Continuous Delivery of Microservices for Kubernetes...
PPTX
Javantura v6 - Istio Service Mesh - The magic between your microservices - Ma...
PDF
Javantura v6 - How can you improve the quality of your application - Ioannis ...
PDF
Javantura v6 - Automation of web apps testing - Hrvoje Ruhek
PDF
Javantura v6 - Master the Concepts Behind the Java 10 Challenges and Eliminat...
PDF
Javantura v6 - Building IoT Middleware with Microservices - Mario Kusek
PDF
Javantura v6 - JDK 11 & JDK 12 - Dalibor Topic
Java cro'21 the best tools for java developers in 2021 - hujak
JavaCro'21 - Java is Here To Stay - HUJAK Keynote
Javantura v7 - Behaviour Driven Development with Cucumber - Ivan Lozić
Javantura v7 - The State of Java - Today and Tomowwow - HUJAK's Community Key...
Javantura v7 - Learning to Scale Yourself: The Journey from Coder to Leader -...
JavaCro'19 - The State of Java and Software Development in Croatia - Communit...
Javantura v6 - Java in Croatia and HUJAK - Branko Mihaljević, Aleksander Radovan
Javantura v6 - On the Aspects of Polyglot Programming and Memory Management i...
Javantura v6 - Case Study: Marketplace App with Java and Hyperledger Fabric -...
Javantura v6 - How to help customers report bugs accurately - Miroslav Čerkez...
Javantura v6 - When remote work really works - the secrets behind successful ...
Javantura v6 - Kotlin-Java Interop - Matej Vidaković
Javantura v6 - Spring HATEOAS hypermedia-driven web services, and clients tha...
Javantura v6 - End to End Continuous Delivery of Microservices for Kubernetes...
Javantura v6 - Istio Service Mesh - The magic between your microservices - Ma...
Javantura v6 - How can you improve the quality of your application - Ioannis ...
Javantura v6 - Automation of web apps testing - Hrvoje Ruhek
Javantura v6 - Master the Concepts Behind the Java 10 Challenges and Eliminat...
Javantura v6 - Building IoT Middleware with Microservices - Mario Kusek
Javantura v6 - JDK 11 & JDK 12 - Dalibor Topic

Recently uploaded (20)

PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Enhancing emotion recognition model for a student engagement use case through...
PDF
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
PDF
Unlock new opportunities with location data.pdf
PDF
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
STKI Israel Market Study 2025 version august
PDF
DP Operators-handbook-extract for the Mautical Institute
PDF
sustainability-14-14877-v2.pddhzftheheeeee
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
Five Habits of High-Impact Board Members
PDF
August Patch Tuesday
PPT
What is a Computer? Input Devices /output devices
PDF
A contest of sentiment analysis: k-nearest neighbor versus neural network
PPTX
O2C Customer Invoices to Receipt V15A.pptx
PPTX
Benefits of Physical activity for teenagers.pptx
PDF
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
PPT
Geologic Time for studying geology for geologist
PPTX
Modernising the Digital Integration Hub
PDF
NewMind AI Weekly Chronicles – August ’25 Week III
Assigned Numbers - 2025 - Bluetooth® Document
Enhancing emotion recognition model for a student engagement use case through...
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
Unlock new opportunities with location data.pdf
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
Group 1 Presentation -Planning and Decision Making .pptx
STKI Israel Market Study 2025 version august
DP Operators-handbook-extract for the Mautical Institute
sustainability-14-14877-v2.pddhzftheheeeee
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
Five Habits of High-Impact Board Members
August Patch Tuesday
What is a Computer? Input Devices /output devices
A contest of sentiment analysis: k-nearest neighbor versus neural network
O2C Customer Invoices to Receipt V15A.pptx
Benefits of Physical activity for teenagers.pptx
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
Geologic Time for studying geology for geologist
Modernising the Digital Integration Hub
NewMind AI Weekly Chronicles – August ’25 Week III

Javantura v4 - What’s NOT new in modular Java - Milen Dyankov