OOW 2016: CON 1283
Maarten Smeets
Oracle Application Container Cloud Service
Back-End Integration Using Node.js
Introduction
• About AMIS
– Located in the Netherlands
• About me
– Oracle Integration Consultant
– Experience with Oracle SOA Suite since 2007
– Well certified (SOA, BPM, Java, SQL,
PL/SQL among others)
– Author of a lot of blog articles
(http://javaoraclesoa.blogspot.com)
@MaartenSmeetsNL
https://nl.linkedin.com/in/smeetsm
Agenda
Node.js introduction Backend integration Application Container Cloud What to use for your
integration?
Introducing Node.js
Node.js
Using threads is hard
• Concurrency control mechanisms (e.g. locking)
• Coordination over threads (IPC)
• Memory overhead
• Synchronization
• Programming thread safe code is not easy
What is Node.js
• Node.js uses a single thread!
• Node.js has been created
To write high-performance servers fast
• Node.js is:
– a set of bindings to V8 for non-browser work: sockets, files, etc.
– only exposes non-blocking, asynchronous interfaces
– only one thread, one call stack (like a browser)
– low level features: half-closed TCP connections, TCP throttling, UDP
– has killer HTTP support
Node.js architecture
node standard library
node bindings
(socket, http, etc)
V8
thread pool
(libeio)
event loop
(libev)
C/C++JavaScript
Node.js why should you care?
Node.js
What do they use it for?
“On the server side, our entire mobile software stack is completely built in Node”
“We are moving every product & every site within PayPal to Node”
“We’ve been busy building our next-generation Netflix.com web
application using Node”
“MuleSoft's Anypoint platform services are implemented in Node”
Node.js
Integration. Overview
POST /myservice
Receive request
Service
Implementation
Processing input
Creating output
Message processing
Backend
Front-end connectivity
Routing
Back-end connectivity
Flow control
Node.js
Integration. Overview
Front-end connectivity
• URL handling
• HTTP connection handling
Back-end connectivity
• Connect to other services
• Drivers to access technology
diverse systems
• Connection pooling
Drivers / modules such as
• Oracle Database
• Oracle NoSQL Database
• Mongo Database
• SOAP and JSON services
What
Frameworks such as
• Express
• Hapi
• Koa
• Sails
• xml2js
• node-soap
Message processing
Middleware
• Routing
• Mapping
Flow control • Async
• Promises
How
Node.js
Frameworks
• Abstraction
• Generic functionality
• Facilitate development
• Drawbacks
– Performance cost
– Need framework knowledge
– Only specific functionality
https://raygun.com/blog/2016/06/node-performance/
0
2000
4000
6000
8000
10000
12000
14000
raw node koa express restify hapi
Requestspersecond
Framework
Node.js
Frameworks: Express.js
• Express is a minimal and flexible Node.js web application framework that provides a robust set of features
for web and mobile applications.
• Express.js is used in many other popular frameworks like Sails, MEAN, LoopBack
• It is maintained by StrongLoop (IBM).
Started in 2009. 191 contributers. 6,823,598 downloads last month *
* Contributers from github.com. Downloads from npmjs.com. Determined 28 aug 2016
Node.js
Without framework
var http = require('http');
var server = http.createServer(function (req, res) {
if (req.method === 'GET') {
res.end("Hello World");
}
});
server.listen(3000);
Node.js
With express.js
var express = require('express');
var app = express();
app.get('/', function (req, res) {
res.send('Hello World');
});
app.listen(3000);
Quick and easy
Node.js
Frameworks: Other
• Hapi
A rich framework for building applications and services. Configuration is better
than code. Business logic must be isolated from the transport layer.
Started in 2011 146 contributers 234,103 downloads last month.
• Koa
Expressive, light-weight HTTP framework for Node.js to make web applications
and APIs more enjoyable to write.
Started in 2013 89 contributers 132,790 downloads last month.
• Sails
Sails is the most popular MVC framework for Node.js. It is designed for building
practical, production-ready Node.js apps. Build on top of express.
Started in 2012 210 contributers 59,518 downloads last month.
Node.js
Callback hell
Error handling in every callback handler
Nested callbacks
Node.js
Callback hell
Error handling in every callback handler
Nested callbacks
Node.js
Flow control. Executing in series
• Async
Async is a utility module which provides straight-forward, powerful
functions for working with asynchronous JavaScript.
• Promises
A Promise object represents a value that may not be available yet,
but will be resolved at some point in the future. It allows you to
write asynchronous code in a more synchronous fashion.
• Generators
The Generator object is returned by a generator function and it
conforms to both the iterable protocol and the iterator protocol.
Node.js modules
Convert XML <> JSON
• xml2js
Ever had the urge to parse XML? And wanted to access the data in some sane, easy way? Don't want to
compile a C parser, for whatever reason? Then xml2js is what you're looking for!
• xml2js uses SAX (Simple API for XML)
– Event driven asynchronous processing of XML
– Memory friendly
Does not require creating a Document Object Model (DOM) of the XML document in memory
</> {}
Node.js modules
How does JSONized SOAP look?
Mind the namespace prefixes!
Node.js modules
node-soap
node-soap is a module that offers SOAP support
Node.js modules
node-soap
Define the service logic
Load the WSDL
Create the server
Host the webservice
Node.js and back-end integration
Database integration with Node.js
Oracle NoSQL highlights
• Key value pair database
• Dynamic data model
• Transparent load balancing
• Highly scalable
• Options for transactional
mechanisms
• Options for eventual consistency
• Built on BerkelyDB
NoSQL highlights
http://www.oracle.com/technetwork/database/nosqldb/overview/nosql-transactions-497227.html
Transactional mechanisms
Consistency models
Node.js and NoSQL
Node.js
Node.js and NoSQL
Application
Node.js
Application
RMI
RMIJSON
Thrift
nosqldb-oraclejs
JVM
NoSQL Java proxy
kvclient
WL/GlassFish/Tomcat
REST Data Services
(ORDS)
kvclient
Node.js and MongoDB
BSON
Node.js
Application
mongoose
Node.js and the Oracle Database
node-oracledb
• Maintained by Oracle and actively being developed
• Requires Oracle database client software installed
Application Container Cloud already provides this
• Very rich in features and well documented!
https://github.com/oracle/node-oracledb
Node.js
Application
nosqldb-oraclejs
Node.js and the Oracle Database
node-oracledb: Features
• Promises, Callbacks and Streams
• SQL and PL/SQL execution
• REF CURSORs
• Large Objects: CLOBs and BLOBs
• Oracle Database 12.1 JSON datatype
• Query results as JavaScript objects or arrays
• Smart mapping between JavaScript and Oracle types
with manual override available
• Data binding using JavaScript objects or arrays
• Transaction Management
• Inbuilt Connection Pool with Queueing
• Database Resident Connection Pooling (DRCP)
• External Authentication
• Row Prefetching
• Statement Caching
• Client Result Caching
• End-to-end Tracing, Mid-tier Authentication, and
Auditing
• Oracle High Availability Features
– Fast Application Notification (FAN)
– Runtime Load Balancing (RLB)
– Transparent Application Failover (TAF)
Node.js and the Oracle Database
node-oracledb: Features
• Promises, Callbacks and Streams
• SQL and PL/SQL execution
• REF CURSORs
• Large Objects: CLOBs and BLOBs
• Oracle Database 12.1 JSON datatype
• Query results as JavaScript objects or arrays
• Smart mapping between JavaScript and Oracle types
with manual override available
• Data binding using JavaScript objects or arrays
• Transaction Management
• Inbuilt Connection Pool with Queueing
• Database Resident Connection Pooling (DRCP)
• External Authentication
• Row Prefetching
• Statement Caching
• Client Result Caching
• End-to-end Tracing, Mid-tier Authentication, and
Auditing
• Oracle High Availability Features
– Fast Application Notification (FAN)
– Runtime Load Balancing (RLB)
– Transparent Application Failover (TAF)
Node.js and the Oracle Database
node-oracledb: Calling PL/SQL
Define bind variables IN
Define bind variables OUT
Call a PL/SQL function
Node.js and the Oracle Database
node-oracledb: Connection pooling
Good sample: http://stackoverflow.com/questions/29846188/node-js-express-oracle-connection-pooling-ora-24418-cannot-open-further-sess
Create a connection pool
Grab a connection from the pool and use it
Close when done. Also in case of errors!
Inbuilt queueing
Node.js and the Oracle Database
Using DRCP with node-oracledb
• Database Resident Connection Pooling (DRCP)
http://www.oracle.com/technetwork/articles/oracledrcp11g-1-133381.pdf
Node.js and the Oracle Database
Using DRCP with node-oracledb
• On the client:
– Set oracledb.ConnectionClass = ‘poolname’
– Easy Connect syntax like myhost/sales:POOLED, or by using a tnsnames.ora alias for a connection that contains (SERVER=POOLED)
– Set externalAuth to true in getConnection or createPool
• On the database
– execute dbms_connection_pool.start_pool(“poolname”);
https://www.youtube.com/watch?v=3p6rutSLlkg
Simple to use
Node.js and the Oracle Database
Performance with node-oracledb
• Make sure you create a connection pool in the
right scope to promote re-use
• Consider increasing the LibUV thread pool size.
The default is 4. Can be set with environment
variable: UV_THREADPOOL_SIZE
• Explicitly release connections to the pool
• Use a resultSet when the number of rows fetched is large
• Consider using DRCP
Read: http://docs.oracle.com/database/121/ADFNS/adfns_perf_scale.htm#ADFNS228
Introducing Application Container Cloud
Node.js
What doesn’t it provide?
• High availability
– Clustering capabilities
– Load balancer
– On demand scaling
• Management and monitoring
• Support
• Provisioning
• Deployment
• Patching
• Back-end drivers
99.999%
Node.js
What doesn’t it provide?
• High availability
– Clustering capabilities
– Load balancer
– On demand scaling
• Management and monitoring
• Support
• Provisioning /Deployment
• Patching
• Back-end drivers
99.999%
Application Container Cloud
Enterprise Grade Features for Node.js
Application Container Cloud Service
Architecture
Tenant1
Tenant2
(App 1) (App 2) (App 3)
Load Balancer
Database Cloud
Java Cloud
Messaging Cloud
Storage Cloud
Developer Cloud
Customers
< / >
Developers
Application Container Cloud Service
Enterprise grade features for Node.js
• On demand scale out/in.
Adding/Removing instances
• On demand scale up/down.
Adding/Removing memory per instance
• Automatic load balancer configuration
• One click patching
Application Container Cloud Service
Enterprise grade features for Node.js
• Easy web interface for
deployments
• Also possible using the API
and Developer Cloud Service
Easy!
Application Container Cloud Service
Enterprise grade features for Node.js
• Easy web interface for managing configuration
• Including service bindings
such as database connections
Application Container Cloud Service
Enterprise grade features for Node.js
• Browse log files from the webinterface
Application Container Cloud Service
Enterprise grade features for Node.js
https://docs.oracle.com/cloud/latest/apaas_gs/APCSR/
Application Container Cloud Service
Integration with Developer Cloud Service
pom.xml
maven-assembly-plugin
assembly.xml
YourApplication.zip
Node.js application
manifest.json
Application Container Cloud Service
Integration with Developer Cloud Service
Application Container Cloud Service
Integration with Developer Cloud Service
Application Container Cloud Service
Integration with Developer Cloud Service
• Build and deploy with Developer Cloud Service
Application Container Cloud Service
Integration with Developer Cloud Service
Application Container Cloud Service
Integration with Developer Cloud Service
Application Container Cloud Service
Integration with Developer Cloud Service
Application Container Cloud Service
Integration with Developer Cloud Service
Integration: SOA Suite or Node.js?
Node.js versus SOA Suite
Node.js versus SOA Suite
SOA Suite
Node.js architecture
node standard library
node bindings
(socket, http, etc)
V8
thread pool
(libeio)
event loop
(libev)
C/C++JavaScript
Node.js
Integration with Node.js or SOA Suite
• Node.js assets
– thin stateless services like microservices
– tying simple things together with minimal effort
– technology focus: JavaScript + REST/JSON
– High performance
• Node.js challenges
– no adapters, workflow, …
– no wizard driven IDE
– requires (a lot of) custom code
– no high availability / management / monitoring options
Consider Application Container Cloud to provide those
Questions
@MaartenSmeetsNL
https://nl.linkedin.com/in/smeetsm
Download sample code at
https://github.com/MaartenSmeets/nodejssamples
Oracle application container cloud back end integration using node final

Oracle application container cloud back end integration using node final

  • 1.
    OOW 2016: CON1283 Maarten Smeets Oracle Application Container Cloud Service Back-End Integration Using Node.js
  • 2.
    Introduction • About AMIS –Located in the Netherlands • About me – Oracle Integration Consultant – Experience with Oracle SOA Suite since 2007 – Well certified (SOA, BPM, Java, SQL, PL/SQL among others) – Author of a lot of blog articles (http://javaoraclesoa.blogspot.com) @MaartenSmeetsNL https://nl.linkedin.com/in/smeetsm
  • 3.
    Agenda Node.js introduction Backendintegration Application Container Cloud What to use for your integration?
  • 4.
  • 5.
    Node.js Using threads ishard • Concurrency control mechanisms (e.g. locking) • Coordination over threads (IPC) • Memory overhead • Synchronization • Programming thread safe code is not easy
  • 6.
    What is Node.js •Node.js uses a single thread! • Node.js has been created To write high-performance servers fast • Node.js is: – a set of bindings to V8 for non-browser work: sockets, files, etc. – only exposes non-blocking, asynchronous interfaces – only one thread, one call stack (like a browser) – low level features: half-closed TCP connections, TCP throttling, UDP – has killer HTTP support Node.js architecture node standard library node bindings (socket, http, etc) V8 thread pool (libeio) event loop (libev) C/C++JavaScript
  • 7.
  • 8.
    Node.js What do theyuse it for? “On the server side, our entire mobile software stack is completely built in Node” “We are moving every product & every site within PayPal to Node” “We’ve been busy building our next-generation Netflix.com web application using Node” “MuleSoft's Anypoint platform services are implemented in Node”
  • 9.
    Node.js Integration. Overview POST /myservice Receiverequest Service Implementation Processing input Creating output Message processing Backend Front-end connectivity Routing Back-end connectivity Flow control
  • 10.
    Node.js Integration. Overview Front-end connectivity •URL handling • HTTP connection handling Back-end connectivity • Connect to other services • Drivers to access technology diverse systems • Connection pooling Drivers / modules such as • Oracle Database • Oracle NoSQL Database • Mongo Database • SOAP and JSON services What Frameworks such as • Express • Hapi • Koa • Sails • xml2js • node-soap Message processing Middleware • Routing • Mapping Flow control • Async • Promises How
  • 11.
    Node.js Frameworks • Abstraction • Genericfunctionality • Facilitate development • Drawbacks – Performance cost – Need framework knowledge – Only specific functionality https://raygun.com/blog/2016/06/node-performance/ 0 2000 4000 6000 8000 10000 12000 14000 raw node koa express restify hapi Requestspersecond Framework
  • 12.
    Node.js Frameworks: Express.js • Expressis a minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications. • Express.js is used in many other popular frameworks like Sails, MEAN, LoopBack • It is maintained by StrongLoop (IBM). Started in 2009. 191 contributers. 6,823,598 downloads last month * * Contributers from github.com. Downloads from npmjs.com. Determined 28 aug 2016
  • 13.
    Node.js Without framework var http= require('http'); var server = http.createServer(function (req, res) { if (req.method === 'GET') { res.end("Hello World"); } }); server.listen(3000);
  • 14.
    Node.js With express.js var express= require('express'); var app = express(); app.get('/', function (req, res) { res.send('Hello World'); }); app.listen(3000); Quick and easy
  • 15.
    Node.js Frameworks: Other • Hapi Arich framework for building applications and services. Configuration is better than code. Business logic must be isolated from the transport layer. Started in 2011 146 contributers 234,103 downloads last month. • Koa Expressive, light-weight HTTP framework for Node.js to make web applications and APIs more enjoyable to write. Started in 2013 89 contributers 132,790 downloads last month. • Sails Sails is the most popular MVC framework for Node.js. It is designed for building practical, production-ready Node.js apps. Build on top of express. Started in 2012 210 contributers 59,518 downloads last month.
  • 16.
    Node.js Callback hell Error handlingin every callback handler Nested callbacks
  • 17.
    Node.js Callback hell Error handlingin every callback handler Nested callbacks
  • 18.
    Node.js Flow control. Executingin series • Async Async is a utility module which provides straight-forward, powerful functions for working with asynchronous JavaScript. • Promises A Promise object represents a value that may not be available yet, but will be resolved at some point in the future. It allows you to write asynchronous code in a more synchronous fashion. • Generators The Generator object is returned by a generator function and it conforms to both the iterable protocol and the iterator protocol.
  • 19.
    Node.js modules Convert XML<> JSON • xml2js Ever had the urge to parse XML? And wanted to access the data in some sane, easy way? Don't want to compile a C parser, for whatever reason? Then xml2js is what you're looking for! • xml2js uses SAX (Simple API for XML) – Event driven asynchronous processing of XML – Memory friendly Does not require creating a Document Object Model (DOM) of the XML document in memory </> {}
  • 20.
    Node.js modules How doesJSONized SOAP look? Mind the namespace prefixes!
  • 21.
    Node.js modules node-soap node-soap isa module that offers SOAP support
  • 22.
    Node.js modules node-soap Define theservice logic Load the WSDL Create the server Host the webservice
  • 23.
  • 24.
  • 25.
    Oracle NoSQL highlights •Key value pair database • Dynamic data model • Transparent load balancing • Highly scalable • Options for transactional mechanisms • Options for eventual consistency • Built on BerkelyDB
  • 26.
  • 27.
  • 28.
    Node.js Node.js and NoSQL Application Node.js Application RMI RMIJSON Thrift nosqldb-oraclejs JVM NoSQLJava proxy kvclient WL/GlassFish/Tomcat REST Data Services (ORDS) kvclient
  • 29.
  • 30.
    Node.js and theOracle Database node-oracledb • Maintained by Oracle and actively being developed • Requires Oracle database client software installed Application Container Cloud already provides this • Very rich in features and well documented! https://github.com/oracle/node-oracledb Node.js Application nosqldb-oraclejs
  • 31.
    Node.js and theOracle Database node-oracledb: Features • Promises, Callbacks and Streams • SQL and PL/SQL execution • REF CURSORs • Large Objects: CLOBs and BLOBs • Oracle Database 12.1 JSON datatype • Query results as JavaScript objects or arrays • Smart mapping between JavaScript and Oracle types with manual override available • Data binding using JavaScript objects or arrays • Transaction Management • Inbuilt Connection Pool with Queueing • Database Resident Connection Pooling (DRCP) • External Authentication • Row Prefetching • Statement Caching • Client Result Caching • End-to-end Tracing, Mid-tier Authentication, and Auditing • Oracle High Availability Features – Fast Application Notification (FAN) – Runtime Load Balancing (RLB) – Transparent Application Failover (TAF)
  • 32.
    Node.js and theOracle Database node-oracledb: Features • Promises, Callbacks and Streams • SQL and PL/SQL execution • REF CURSORs • Large Objects: CLOBs and BLOBs • Oracle Database 12.1 JSON datatype • Query results as JavaScript objects or arrays • Smart mapping between JavaScript and Oracle types with manual override available • Data binding using JavaScript objects or arrays • Transaction Management • Inbuilt Connection Pool with Queueing • Database Resident Connection Pooling (DRCP) • External Authentication • Row Prefetching • Statement Caching • Client Result Caching • End-to-end Tracing, Mid-tier Authentication, and Auditing • Oracle High Availability Features – Fast Application Notification (FAN) – Runtime Load Balancing (RLB) – Transparent Application Failover (TAF)
  • 33.
    Node.js and theOracle Database node-oracledb: Calling PL/SQL Define bind variables IN Define bind variables OUT Call a PL/SQL function
  • 34.
    Node.js and theOracle Database node-oracledb: Connection pooling Good sample: http://stackoverflow.com/questions/29846188/node-js-express-oracle-connection-pooling-ora-24418-cannot-open-further-sess Create a connection pool Grab a connection from the pool and use it Close when done. Also in case of errors! Inbuilt queueing
  • 35.
    Node.js and theOracle Database Using DRCP with node-oracledb • Database Resident Connection Pooling (DRCP) http://www.oracle.com/technetwork/articles/oracledrcp11g-1-133381.pdf
  • 36.
    Node.js and theOracle Database Using DRCP with node-oracledb • On the client: – Set oracledb.ConnectionClass = ‘poolname’ – Easy Connect syntax like myhost/sales:POOLED, or by using a tnsnames.ora alias for a connection that contains (SERVER=POOLED) – Set externalAuth to true in getConnection or createPool • On the database – execute dbms_connection_pool.start_pool(“poolname”); https://www.youtube.com/watch?v=3p6rutSLlkg Simple to use
  • 37.
    Node.js and theOracle Database Performance with node-oracledb • Make sure you create a connection pool in the right scope to promote re-use • Consider increasing the LibUV thread pool size. The default is 4. Can be set with environment variable: UV_THREADPOOL_SIZE • Explicitly release connections to the pool • Use a resultSet when the number of rows fetched is large • Consider using DRCP Read: http://docs.oracle.com/database/121/ADFNS/adfns_perf_scale.htm#ADFNS228
  • 38.
  • 39.
    Node.js What doesn’t itprovide? • High availability – Clustering capabilities – Load balancer – On demand scaling • Management and monitoring • Support • Provisioning • Deployment • Patching • Back-end drivers 99.999%
  • 40.
    Node.js What doesn’t itprovide? • High availability – Clustering capabilities – Load balancer – On demand scaling • Management and monitoring • Support • Provisioning /Deployment • Patching • Back-end drivers 99.999%
  • 41.
    Application Container Cloud EnterpriseGrade Features for Node.js
  • 42.
    Application Container CloudService Architecture Tenant1 Tenant2 (App 1) (App 2) (App 3) Load Balancer Database Cloud Java Cloud Messaging Cloud Storage Cloud Developer Cloud Customers < / > Developers
  • 43.
    Application Container CloudService Enterprise grade features for Node.js • On demand scale out/in. Adding/Removing instances • On demand scale up/down. Adding/Removing memory per instance • Automatic load balancer configuration • One click patching
  • 44.
    Application Container CloudService Enterprise grade features for Node.js • Easy web interface for deployments • Also possible using the API and Developer Cloud Service Easy!
  • 45.
    Application Container CloudService Enterprise grade features for Node.js • Easy web interface for managing configuration • Including service bindings such as database connections
  • 46.
    Application Container CloudService Enterprise grade features for Node.js • Browse log files from the webinterface
  • 47.
    Application Container CloudService Enterprise grade features for Node.js https://docs.oracle.com/cloud/latest/apaas_gs/APCSR/
  • 48.
    Application Container CloudService Integration with Developer Cloud Service pom.xml maven-assembly-plugin assembly.xml YourApplication.zip Node.js application manifest.json
  • 49.
    Application Container CloudService Integration with Developer Cloud Service
  • 50.
    Application Container CloudService Integration with Developer Cloud Service
  • 51.
    Application Container CloudService Integration with Developer Cloud Service • Build and deploy with Developer Cloud Service
  • 52.
    Application Container CloudService Integration with Developer Cloud Service
  • 53.
    Application Container CloudService Integration with Developer Cloud Service
  • 54.
    Application Container CloudService Integration with Developer Cloud Service
  • 55.
    Application Container CloudService Integration with Developer Cloud Service
  • 56.
  • 57.
  • 58.
    Node.js versus SOASuite SOA Suite Node.js architecture node standard library node bindings (socket, http, etc) V8 thread pool (libeio) event loop (libev) C/C++JavaScript Node.js
  • 59.
    Integration with Node.jsor SOA Suite • Node.js assets – thin stateless services like microservices – tying simple things together with minimal effort – technology focus: JavaScript + REST/JSON – High performance • Node.js challenges – no adapters, workflow, … – no wizard driven IDE – requires (a lot of) custom code – no high availability / management / monitoring options Consider Application Container Cloud to provide those
  • 60.

Editor's Notes

  • #3 Recent awards: Oracle EMEA Middleware Partner of the Year, 3 times Oracle Netherlands Middleware partner of the year. One of the rare moments in the Netherlands when it isn’t raining.
  • #6 Using threads has a lot of overhead
  • #7 Node.js single thread. Do not block it! You get help for that
  • #8 JET, MCS, ACCS
  • #9 Netflix: http://techblog.netflix.com/2014/11/nodejs-in-flames.html https://www.quora.com/What-companies-are-using-Node-js-in-production Usage to host front and backend
  • #10 How does this look in practice. Lifecycle
  • #11 1 voor 1 lagen door
  • #13 Express Middleware: https://github.com/senchalabs/connect?_ga=1.53053800.1929169438.1472377864#middleware
  • #15 Express middleware has been put in separate modules since 4.x. Some examples: body-parser Node.js body parsing middleware morgan HTTP request logger middleware for node.js. Morgan was built to do logging in the way that servers like Apache and Nginx log to the error_log or access_log.
  • #16 Hapy pronounced similar to happy
  • #18 Callback hell This is much worse on enterprise level. Node.js is not just pretty but there are challenges
  • #19 Wat wil ik hiermee zeggen. Om integratie in node te doen…
  • #20 Memory friendly + ACC
  • #21 Rode pijl, namespaces
  • #23 Mostly suitable as client. Less as server
  • #29 Run the proxy on the same host as the driver. Use one proxy per driver instance Specify hosts. Split Application and driver
  • #30 Clustering done with AS mongos
  • #36 Database Resident Connection Pooling (DRCP) provides a connection pool in the database server for typical Web application usage scenarios where the application acquires a database connection, works on it for a relatively short duration, and then releases it. DRCP pools "dedicated" servers. A pooled server is the equivalent of a server foreground process and a database session combined. Authenticate to the broker.
  • #37 Driver needs to talk to the connection broker
  • #40 There are separate open source solutions available for each of these, but… Do you want to do a product selection for each of them? Do you want to deal with potentially several suppliers? Do you want to invest in tying everything together? How are you going to deal with upgrades / patches?
  • #41 There are separate open source solutions available for each of these, but… Do you want to do a product selection for each of them? Do you want to deal with potentially several suppliers? Do you want to invest in tying everything together? How are you going to deal with upgrades / patches?
  • #59 SOA Suite runs on top of an application server. Node is a platform on which an application can be build.
  • #60 Iets doen met echte applicaties