This presentation introduces Node.js in a few simple, straightforward steps. First, Node.js is presented as just JavaScript on the browser, then HTTP handling is discussed with core module http and subsequently using Express. Running Oracle JET from Node.js is explained. The implementation of APIs - REST services supporting various [operations on] resources is discussed. The single-thread nature of Node.js is presented, along with the essentials of asynchrous programming, working with callbacks and using the async module. The Node Oracle DB Database driver is introduced and demonstrated. Finally, further steps are suggested. This presentation is supported by a set of resources that constitute a three hour hands on session - sources are in GitHub https://github.com/lucasjellema/sig-nodejs-amis-2016.
Fontys Lecture - The Evolution of the Oracle Database 2016Lucas Jellema
Lucas Jellema presented on the evolution of the database and its role in application architecture. Key points include:
- The database has evolved from decentralized silos to a centralized, consolidated layer providing data, business logic and interfaces.
- The Oracle database introduced capabilities like PL/SQL, high availability, compression, and flashback queries.
- Recent trends include multitenant databases, in-memory processing, and temporal/versioned data in the cloud.
- Engineered systems optimize hardware and software to improve performance.
Soaring through the Clouds - Oracle Fusion Middleware Partner Forum 2016 Lucas Jellema
The Oracle ACE team has a new mission: complete a complex end-to-end business flow across at least ten Oracle PaaS Services – in front of a live audience. This session will demonstrate how a document driven human workflow triggers an integration flow to update a 3rd party application that in turn emits events that are processed in real time resulting in findings that are published through a REST API in a user friendly front end. Expect guest appearances by an interesting Oracle PaaS cast, including Doc CS, PCS, OSN, Sites CS and ICS and also featuring DBaaS, JCS and SOA CS, Application Container Cloud with a touch of MCS and IoT CS and finally a JET [app] cruising through the clouds. Our flight plan depends a little bit on the weather forecast: we do need a cloudy sky to realize our full potential. The team will perform some live hacking in the various cloud services to complete and tweak the end-to-end flow. We will divulge some of the behind-the-scenes challenges and our findings beyond slideware and C-level promises. A very special guest star will be participating in this session – demonstrating an important attraction of cloud based development.
Oracle OpenWorld 2016 Review - High Level Overview of major themes and grand ...Lucas Jellema
Overview of the highlights, main themes and grand announcements during Oracle OpenWorld 2016. Cloud, Big Data, Machine Learning, Infrastructure, raging against AWS and the Oracle future strategy are the chief topics.
Introduction to Apache CloudStack by David Nalleybuildacloud
Apache CloudStack is a mature, easy to deploy IaaS platform. That doesn't mean that it can be done without thought or preparation. Learn how CloudStack can be most efficiently deployed, and the problems to avoid in the process.
About David Nalley
David is a recovering sysadmin with a decade of experience. He’s a committer on the Apache CloudStack (incubating) project, a contributor to the Fedora Project and the Vice President of Infrastructure at the Apache Software Foundation.
The document discusses building a public or private cloud using OpenStack. It begins with an introduction to cloud computing and OpenStack. OpenStack is an open source cloud platform that is scalable and used by many large companies. The document then covers use cases for OpenStack like building test environments, provides examples of OpenStack implementations at CERN and Rackspace, and discusses how the group has setup OpenStack and built a sample Rails application using OpenStack Swift for photo storage. It acknowledges the challenges of implementing OpenStack and hopes to continue using it to support building large scale web applications.
This session shows an overview of the features and architecture of SQL Server on Linux and Containers. It covers install, config, performance, security, HADR, Docker containers, and tools. Find the demos on http://aka.ms/bobwardms
Openstack is an open source cloud computing platform that consists of several independent components that work together to provide infrastructure as a service capabilities. It allows users to provision compute, storage, and networking resources on demand in a self-service manner similar to public cloud providers like AWS. Some key components include Nova for compute, Glance for images, Swift for object storage, Cinder for block storage, Neutron for networking, and Keystone for identity services. Openstack can be used to build public, private, or hybrid clouds and supports a variety of use cases and workloads.
Fontys Lecture - The Evolution of the Oracle Database 2016Lucas Jellema
Lucas Jellema presented on the evolution of the database and its role in application architecture. Key points include:
- The database has evolved from decentralized silos to a centralized, consolidated layer providing data, business logic and interfaces.
- The Oracle database introduced capabilities like PL/SQL, high availability, compression, and flashback queries.
- Recent trends include multitenant databases, in-memory processing, and temporal/versioned data in the cloud.
- Engineered systems optimize hardware and software to improve performance.
Soaring through the Clouds - Oracle Fusion Middleware Partner Forum 2016 Lucas Jellema
The Oracle ACE team has a new mission: complete a complex end-to-end business flow across at least ten Oracle PaaS Services – in front of a live audience. This session will demonstrate how a document driven human workflow triggers an integration flow to update a 3rd party application that in turn emits events that are processed in real time resulting in findings that are published through a REST API in a user friendly front end. Expect guest appearances by an interesting Oracle PaaS cast, including Doc CS, PCS, OSN, Sites CS and ICS and also featuring DBaaS, JCS and SOA CS, Application Container Cloud with a touch of MCS and IoT CS and finally a JET [app] cruising through the clouds. Our flight plan depends a little bit on the weather forecast: we do need a cloudy sky to realize our full potential. The team will perform some live hacking in the various cloud services to complete and tweak the end-to-end flow. We will divulge some of the behind-the-scenes challenges and our findings beyond slideware and C-level promises. A very special guest star will be participating in this session – demonstrating an important attraction of cloud based development.
Oracle OpenWorld 2016 Review - High Level Overview of major themes and grand ...Lucas Jellema
Overview of the highlights, main themes and grand announcements during Oracle OpenWorld 2016. Cloud, Big Data, Machine Learning, Infrastructure, raging against AWS and the Oracle future strategy are the chief topics.
Introduction to Apache CloudStack by David Nalleybuildacloud
Apache CloudStack is a mature, easy to deploy IaaS platform. That doesn't mean that it can be done without thought or preparation. Learn how CloudStack can be most efficiently deployed, and the problems to avoid in the process.
About David Nalley
David is a recovering sysadmin with a decade of experience. He’s a committer on the Apache CloudStack (incubating) project, a contributor to the Fedora Project and the Vice President of Infrastructure at the Apache Software Foundation.
The document discusses building a public or private cloud using OpenStack. It begins with an introduction to cloud computing and OpenStack. OpenStack is an open source cloud platform that is scalable and used by many large companies. The document then covers use cases for OpenStack like building test environments, provides examples of OpenStack implementations at CERN and Rackspace, and discusses how the group has setup OpenStack and built a sample Rails application using OpenStack Swift for photo storage. It acknowledges the challenges of implementing OpenStack and hopes to continue using it to support building large scale web applications.
This session shows an overview of the features and architecture of SQL Server on Linux and Containers. It covers install, config, performance, security, HADR, Docker containers, and tools. Find the demos on http://aka.ms/bobwardms
Openstack is an open source cloud computing platform that consists of several independent components that work together to provide infrastructure as a service capabilities. It allows users to provision compute, storage, and networking resources on demand in a self-service manner similar to public cloud providers like AWS. Some key components include Nova for compute, Glance for images, Swift for object storage, Cinder for block storage, Neutron for networking, and Keystone for identity services. Openstack can be used to build public, private, or hybrid clouds and supports a variety of use cases and workloads.
SQL Server 2017 will bring SQL Server to Linux for the first time. This presentation covers the scope, schedule, and architecture as well as a background on why Microsoft is making SQL Server available on Linux.
It's a wrap - closing keynote for nlOUG Tech Experience 2017 (16th June, The ...Lucas Jellema
Closing keynote for the Tech Experience 2017 conference in Amersfoort, The Netherlands (16th June 2017). Touches upon the role of The Oracle Database in a changing landscape with NoSQL, CQRS, REST & JSON, Hadoop and Elastic Search. Discusses the gaps that Oracle professionals have to bridge in order to broaden their horizon and prepare for the (near) future. The session discusses the cloud - and how it will impact most organizations and Oracle specialists. It summarizes the main topics and themes from the Tech Experience 2017 conference.
Serverless / FaaS / Lambda and how it relates to MicroservicesFrank Munz
The document discusses serverless architectures and function as a service (FaaS) platforms. It provides an overview of FaaS implementations from Amazon, Google, Microsoft and Oracle. Key benefits of FaaS include pay per use pricing, automatic scaling, and eliminating the need to manage servers. Challenges include limitations on runtimes and resource usage as well as vendor lock-in. The document argues that FaaS fulfills the definition of microservices and could replace traditional container-based microservice architectures.
Oracle Java Cloud Service JCS (and WebLogic 12c) - What you Should KnowFrank Munz
This document discusses Java Cloud Service (JCS) and WebLogic Server 12c. It provides an overview of the key features of WebLogic 12c including Java EE 7, JDK 8, RESTful management, Docker support, and elastic clusters. It also summarizes the prerequisites for using JCS, including setting a replication policy for storage, creating a database service, and then creating a JCS instance. Additional sections cover accessing the JCS administration console, deploying applications, port mappings, elasticity, patching, backups, and differences between JCS, Application Container Cloud Service, and other PaaS offerings.
In this presentation Guido Schmutz talks about Apache Kafka, Kafka Core, Kafka Connect, Kafka Streams, Kafka and "Big Data"/"Fast Data Ecosystems, Confluent Data Platform and Kafka in Architecture.
Migrating and Running DBs on Amazon RDS for OracleMaris Elsins
The process of migrating Oracle DBs to Amazon RDS is quite complex. Some of the challenges are - capacity planning, efficient loading of data, dealing with limitations of RDS, provisioning instance configurations, and lack and SYSDBA's access to the database. The author has migrated over 20 databases to Amazon RDS, and will provide an insight into how these challenges can be addressed. Once done with the migrations – the support of the databases is very different too, because the SYSDBA access is not provided. The author will talk about his experience on migrating to and supporting databases on Amazon RDS for Oracle from Oracle DBAs perspective, and will reveal the different problems encountered as well the solutions applied.
This document discusses configuring and implementing a MariaDB Galera cluster for high availability on 3 Ubuntu servers. It provides steps to install MariaDB with Galera patches, configure the basic Galera settings, and start the cluster across the nodes. Key aspects covered include state transfers methods, Galera architecture, and important status variables for monitoring the cluster.
AMIS SIG - Introducing Apache Kafka - Scalable, reliable Event Bus & Message ...Lucas Jellema
Introduction of Apache Kafka - the open source platform for real time message queuing and reliable, scalable, distributed event handling and high volume pub/sub implementation.
see GitHub https://github.com/MaartenSmeets/kafka-workshop for the workshop resources.
Storing and processing data with the wso2 platformWSO2
The document discusses data storage and processing challenges posed by large amounts of data, and different solutions for structuring and scaling data, including:
1) Relational databases face scaling issues, while NoSQL databases like key-value and column-family stores are more scalable.
2) The type of data determines the best solution - for example, using graph databases for relationship data and distributed file systems for unstructured data.
3) Highly scalable systems require loosening consistency requirements and cannot support transactions or joins across thousands of nodes according to the CAP theorem. Hybrid approaches may be needed for complex data needs.
Near-realtime analytics with Kafka and HBasedave_revell
A presentation at OSCON 2012 by Nate Putnam and Dave Revell about Urban Airship's analytics stack. Features Kafka, HBase, and Urban Airship's own open source projects statshtable and datacube.
Review Oracle OpenWorld 2015 - Overview, Main themes, Announcements and FutureLucas Jellema
This presentation (part of the year AMIS Oracle OpenWorld Review session) discusses the main themes for this year's conference and introduces the all encompassing cloud strategy. It highlights some major changes at Oracle Corporation. It lists the major announcements, the hot terminology and the product roadmaps.
Scaling out a web application involves adding redundancy, separating application tiers across multiple servers, implementing load balancing, caching content, and monitoring performance. Key aspects include mirroring disks for redundancy, moving services to separate application servers, using load balancing schemes like DNS round-robin or load balancers, solving session state issues through sticky routing or database storage, and caching dynamic content to improve performance. Monitoring the environment is also important to detect failures or bottlenecks as the infrastructure scales out.
2017 OWASP SanFran March Meetup - Hacking SQL Server on Scale with PowerShellScott Sutherland
This presentation will provide an overview of common SQL Server discovery, privilege escalation, persistence, and data targeting techniques. Techniques will be shared for escalating privileges on SQL Server and associated Active Directory domains. Finally I’ll show how PowerShell automation can be used to execute the SQL Server attacks on scale with PowerUpSQL. All scripts demonstrated during the presentation are available on GitHub. This should be useful to penetration testers and system administrators trying to gain a better understanding of their SQL Server attack surface and how it can be exploited.
Sections Updated for OWASP Meeting:
- SQL Server Link Crawling
- UNC path injection targets
- Command execution details
Azure Boot Camp 21.04.2018 SQL Server in Azure Iaas PaaS on-prem Lars PlatzdaschLars Platzdasch
This document provides an overview and comparison of SQL Server hosting options in Azure, including Azure SQL Database (PaaS) and SQL Server in Azure VMs (IaaS). It discusses the key differences between the two options, highlighting that Azure SQL Database is fully managed while SQL Server in VMs gives more control. It also covers topics like manageability, performance metrics, pricing tiers, security best practices, and demos of the Azure portal. The document aims to help audiences choose between the "red pill" of Azure SQL Database or the "blue pill" of SQL Server in Azure VMs.
SQL Server v.Next will be released for Linux in 2017. The summary provides an overview of the key points about SQL Server on Linux including:
- SQL Server will have the same functionality and capabilities on Linux as on Windows. It will support the same editions and features such as high availability, security, and programming features.
- The architecture involves a SQL Platform Abstraction Layer that maps Windows APIs to Linux system calls to provide a consistent programming model.
- An early adoption program is currently underway to get feedback from customers and partners on functionality and to help validate SQL Server on Linux prior to general availability in 2017.
This document provides an overview and agenda for a presentation on Apache ActiveMQ 5.9.x and Apache Apollo. The presentation will cover new features in ActiveMQ 5.9.x including AMQP 1.0 support, REST management, a new default file-based store using LevelDB, and high availability replication of the store. It will also introduce Apache Apollo and allow for a question and discussion period.
This presentation is part of the Oracle OpenWorld 2016 session: EOUC Database ACES Share Their Favorite Database Things: Part II. In this session (UGF-2632) ACE Directors share their favorite database features in our now traditional quick-fire sessions (of 5 minutes per speaker).
What is the Oracle PaaS Cloud for Developers (Oracle Cloud Day, The Netherlan...Lucas Jellema
The promise of the cloud is substantial. Oracle's public cloud promise goes beyond the generic promise. This presentation describes the promise of the Oracle Public Cloud specifically for developers. It describes the current state of the PaaS Platform, the actual and coming services and what they could mean to a developer. From same platform, different location (DBaaS, JCS) to cloud native stack (ICS, MCS) and services for Citizen Developers, the presentation touches upon virtually all services relevant to developers. The presentation concludes with first the steps enterprises can start taking to move to the cloud and second the steps individual developers could and perhaps should take in order to conquer the clouds.
SQL Server 2017 will bring SQL Server to Linux for the first time. This presentation covers the scope, schedule, and architecture as well as a background on why Microsoft is making SQL Server available on Linux.
It's a wrap - closing keynote for nlOUG Tech Experience 2017 (16th June, The ...Lucas Jellema
Closing keynote for the Tech Experience 2017 conference in Amersfoort, The Netherlands (16th June 2017). Touches upon the role of The Oracle Database in a changing landscape with NoSQL, CQRS, REST & JSON, Hadoop and Elastic Search. Discusses the gaps that Oracle professionals have to bridge in order to broaden their horizon and prepare for the (near) future. The session discusses the cloud - and how it will impact most organizations and Oracle specialists. It summarizes the main topics and themes from the Tech Experience 2017 conference.
Serverless / FaaS / Lambda and how it relates to MicroservicesFrank Munz
The document discusses serverless architectures and function as a service (FaaS) platforms. It provides an overview of FaaS implementations from Amazon, Google, Microsoft and Oracle. Key benefits of FaaS include pay per use pricing, automatic scaling, and eliminating the need to manage servers. Challenges include limitations on runtimes and resource usage as well as vendor lock-in. The document argues that FaaS fulfills the definition of microservices and could replace traditional container-based microservice architectures.
Oracle Java Cloud Service JCS (and WebLogic 12c) - What you Should KnowFrank Munz
This document discusses Java Cloud Service (JCS) and WebLogic Server 12c. It provides an overview of the key features of WebLogic 12c including Java EE 7, JDK 8, RESTful management, Docker support, and elastic clusters. It also summarizes the prerequisites for using JCS, including setting a replication policy for storage, creating a database service, and then creating a JCS instance. Additional sections cover accessing the JCS administration console, deploying applications, port mappings, elasticity, patching, backups, and differences between JCS, Application Container Cloud Service, and other PaaS offerings.
In this presentation Guido Schmutz talks about Apache Kafka, Kafka Core, Kafka Connect, Kafka Streams, Kafka and "Big Data"/"Fast Data Ecosystems, Confluent Data Platform and Kafka in Architecture.
Migrating and Running DBs on Amazon RDS for OracleMaris Elsins
The process of migrating Oracle DBs to Amazon RDS is quite complex. Some of the challenges are - capacity planning, efficient loading of data, dealing with limitations of RDS, provisioning instance configurations, and lack and SYSDBA's access to the database. The author has migrated over 20 databases to Amazon RDS, and will provide an insight into how these challenges can be addressed. Once done with the migrations – the support of the databases is very different too, because the SYSDBA access is not provided. The author will talk about his experience on migrating to and supporting databases on Amazon RDS for Oracle from Oracle DBAs perspective, and will reveal the different problems encountered as well the solutions applied.
This document discusses configuring and implementing a MariaDB Galera cluster for high availability on 3 Ubuntu servers. It provides steps to install MariaDB with Galera patches, configure the basic Galera settings, and start the cluster across the nodes. Key aspects covered include state transfers methods, Galera architecture, and important status variables for monitoring the cluster.
AMIS SIG - Introducing Apache Kafka - Scalable, reliable Event Bus & Message ...Lucas Jellema
Introduction of Apache Kafka - the open source platform for real time message queuing and reliable, scalable, distributed event handling and high volume pub/sub implementation.
see GitHub https://github.com/MaartenSmeets/kafka-workshop for the workshop resources.
Storing and processing data with the wso2 platformWSO2
The document discusses data storage and processing challenges posed by large amounts of data, and different solutions for structuring and scaling data, including:
1) Relational databases face scaling issues, while NoSQL databases like key-value and column-family stores are more scalable.
2) The type of data determines the best solution - for example, using graph databases for relationship data and distributed file systems for unstructured data.
3) Highly scalable systems require loosening consistency requirements and cannot support transactions or joins across thousands of nodes according to the CAP theorem. Hybrid approaches may be needed for complex data needs.
Near-realtime analytics with Kafka and HBasedave_revell
A presentation at OSCON 2012 by Nate Putnam and Dave Revell about Urban Airship's analytics stack. Features Kafka, HBase, and Urban Airship's own open source projects statshtable and datacube.
Review Oracle OpenWorld 2015 - Overview, Main themes, Announcements and FutureLucas Jellema
This presentation (part of the year AMIS Oracle OpenWorld Review session) discusses the main themes for this year's conference and introduces the all encompassing cloud strategy. It highlights some major changes at Oracle Corporation. It lists the major announcements, the hot terminology and the product roadmaps.
Scaling out a web application involves adding redundancy, separating application tiers across multiple servers, implementing load balancing, caching content, and monitoring performance. Key aspects include mirroring disks for redundancy, moving services to separate application servers, using load balancing schemes like DNS round-robin or load balancers, solving session state issues through sticky routing or database storage, and caching dynamic content to improve performance. Monitoring the environment is also important to detect failures or bottlenecks as the infrastructure scales out.
2017 OWASP SanFran March Meetup - Hacking SQL Server on Scale with PowerShellScott Sutherland
This presentation will provide an overview of common SQL Server discovery, privilege escalation, persistence, and data targeting techniques. Techniques will be shared for escalating privileges on SQL Server and associated Active Directory domains. Finally I’ll show how PowerShell automation can be used to execute the SQL Server attacks on scale with PowerUpSQL. All scripts demonstrated during the presentation are available on GitHub. This should be useful to penetration testers and system administrators trying to gain a better understanding of their SQL Server attack surface and how it can be exploited.
Sections Updated for OWASP Meeting:
- SQL Server Link Crawling
- UNC path injection targets
- Command execution details
Azure Boot Camp 21.04.2018 SQL Server in Azure Iaas PaaS on-prem Lars PlatzdaschLars Platzdasch
This document provides an overview and comparison of SQL Server hosting options in Azure, including Azure SQL Database (PaaS) and SQL Server in Azure VMs (IaaS). It discusses the key differences between the two options, highlighting that Azure SQL Database is fully managed while SQL Server in VMs gives more control. It also covers topics like manageability, performance metrics, pricing tiers, security best practices, and demos of the Azure portal. The document aims to help audiences choose between the "red pill" of Azure SQL Database or the "blue pill" of SQL Server in Azure VMs.
SQL Server v.Next will be released for Linux in 2017. The summary provides an overview of the key points about SQL Server on Linux including:
- SQL Server will have the same functionality and capabilities on Linux as on Windows. It will support the same editions and features such as high availability, security, and programming features.
- The architecture involves a SQL Platform Abstraction Layer that maps Windows APIs to Linux system calls to provide a consistent programming model.
- An early adoption program is currently underway to get feedback from customers and partners on functionality and to help validate SQL Server on Linux prior to general availability in 2017.
This document provides an overview and agenda for a presentation on Apache ActiveMQ 5.9.x and Apache Apollo. The presentation will cover new features in ActiveMQ 5.9.x including AMQP 1.0 support, REST management, a new default file-based store using LevelDB, and high availability replication of the store. It will also introduce Apache Apollo and allow for a question and discussion period.
This presentation is part of the Oracle OpenWorld 2016 session: EOUC Database ACES Share Their Favorite Database Things: Part II. In this session (UGF-2632) ACE Directors share their favorite database features in our now traditional quick-fire sessions (of 5 minutes per speaker).
What is the Oracle PaaS Cloud for Developers (Oracle Cloud Day, The Netherlan...Lucas Jellema
The promise of the cloud is substantial. Oracle's public cloud promise goes beyond the generic promise. This presentation describes the promise of the Oracle Public Cloud specifically for developers. It describes the current state of the PaaS Platform, the actual and coming services and what they could mean to a developer. From same platform, different location (DBaaS, JCS) to cloud native stack (ICS, MCS) and services for Citizen Developers, the presentation touches upon virtually all services relevant to developers. The presentation concludes with first the steps enterprises can start taking to move to the cloud and second the steps individual developers could and perhaps should take in order to conquer the clouds.
One key area of Oracle OpenWorld 2016 was data in various shapes. Big Data, streaming data and traditional transactional data. The power of SQL to access and unleash all data - even data in NoSQL databases. The advent of the citizen data scientist. Streaming data analysis in real time on vast and fast and vast data, data discovery. And the new Oracle Database 12cR2 release. Forms, APEX, SQL and PL/SQL.
Handson Oracle Management Cloud with Application Performance Monitoring and L...Lucas Jellema
This presentation gives an overview of the steps in the workshop labs for Oracle Management Cloud APM and Log Analytics. The labs themselves and all sources are found at GitHub: https://github.com/lucasjellema/APM-Demo-App-WorldView .
The True State of the Oracle Public Cloud - Dutch Oracle Architects Platform ...Lucas Jellema
Why does Oracle want to be a cloud provider? And how is it going about it? What are the challenges facing Oracle along that path? Where does it currently stand with its Public Cloud service offerings - and what lies around the corner? How can organizations get started with the Oracle Public Cloud? What architectural considerations come into play?
Systems on the edge - your stepping stones into Oracle Public PaaS Cloud - AM...Lucas Jellema
Adoption of the cloud will not start with the core enterprise applications. There are several ways to start the adoption. One is to move in from training environments through development and test to production. Another takes the importance of applications into consideration, starting with secondary, supporting systems. The approach discussed in this session is to start with edge systems that are already in the DMZ, on the fringes of an enterprises, where they engage in interaction with the outside world.
Systems on the edge of an enterprise have special challenges regarding availability, scalability, security and external interactions with systems or people. This applies for example to external portals, B2B interactions, workflows that involve external actors, mobile APIs and integrations with SaaS instances. These systems are obvious candidates to move to a public cloud - and handle these special requirements on the PaaS platform. This session discusses and demonstrates a number of Oracle PaaS Cloud Services, their mutual interaction and how they can be leveraged to move these systems over the edge and into the cloud: Java Cloud Service, Integration Cloud Service, Process Cloud Service, IoT CS, Mobile Cloud Service, SOA Suite Cloud Service and Message Cloud Service. We will go over a number of scenarios for moving edge systems from on premises to the public cloud. Essential in this discussion is of course the integration from the edge system in the Oracle Public Cloud to the on premises backend systems.
Introducing Oracle Real-Time Integration Business InsightLucas Jellema
as presented on the Oracle Fusion Middleware Partner Forum 15-18 March in Valencia, Spain.
This presentation introduces the new Oracle complement to the SOA Suite that enables real time business monitoring in a strictly non-invasive way.
This document provides an overview of defining and working with ranges of values in databases. It defines ranges as two values that can be compared, discusses design choices around inclusive vs exclusive end values for ranges, and provides examples of SQL queries for common range-related tasks like finding gaps, intersections (overlaps), unioning ranges, and joining tables with range columns. The document also discusses techniques for ensuring ranges don't overlap like using virtual or semi-virtual ranges.
Oracle Management Cloud - introduction, overview and getting started (AMIS, 2...Lucas Jellema
Oracle Management Cloud provides seven services that collect metrics and logging from all tiers in the stack and from clouds and on premises systems alike and provide various levels of insight in what is going on or what went on. To find performance bottlenecks, browser incompatibilities, application health issues, infrastructure problems at runtime , OMC provides dasboards, alerting, synthetic tests and log watchers. This presentation gives an overview of OMC, highlights some key features and describes how AMIS got started with APM, Log Analytics and Infrastructure Monitoring.
Row Pattern Matching in Oracle Database 12cStew Ashton
The document discusses various techniques for pattern matching and grouping rows in databases before and after the introduction of MATCH_RECOGNIZE in Oracle 12c. It compares 4 techniques used in pre-12c databases to group and analyze row patterns against using MATCH_RECOGNIZE. For each technique, it provides an example, shows the pre-12c implementation, and demonstrates how MATCH_RECOGNIZE provides a simpler single solution that is more efficient and scalable.
The document introduces Apache Kafka's Streams API for stream processing. Some key points covered include:
- The Streams API allows building stream processing applications without needing a separate cluster, providing an elastic, scalable, and fault-tolerant processing engine.
- It integrates with existing Kafka deployments and supports both stateful and stateless computations on data in Kafka topics.
- Applications built with the Streams API are standard Java applications that run on client machines and leverage Kafka for distributed, parallel processing and fault tolerance via state stores in Kafka.
Use Cases of Row Pattern Matching in Oracle 12cGerger
This document discusses use cases for Oracle's MATCH_RECOGNIZE clause for row pattern matching. It begins with an introduction to the speaker and an overview of Trivadis, an IT consulting firm. The bulk of the document outlines an agenda for a webinar on MATCH_RECOGNIZE, including brief explanations of its syntax and examples of how it can be used for tasks like grouping contiguous sequences, grouping by time ranges, merging date ranges, and analyzing hierarchical data.
This document summarizes Stew Ashton's presentation on using Oracle Database 12c's MATCH_RECOGNIZE clause to solve various "row pattern matching" problems in a more efficient way than pre-12c solutions. The document provides examples of using MATCH_RECOGNIZE for problems involving identifying consecutive values, grouping data into fixed bins, and distributing values evenly across bins. It shows that MATCH_RECOGNIZE offers performance improvements and simpler solutions compared to earlier approaches using window functions, self-joins and the MODEL clause.
ODTUG Technical Journal - The Reusability Test - Fusion Column July 2010Lucas Jellema
This article discusses reuse. Why would we want reuse and what do we have to do to realize the potential benefits of reuse? What are important considerations around reuse that we should pay attention to? How does a structural approach to reuse impact our organization? Which types of reuse should we discern? And which mechanisms are available to us in general and in Oracle Fusion Middleware (FMW) in particular? We will take a close look at the ADF Taskflow - one of the primary vehicles in FMW for achieving reuse.
Forms2Future in action for SaaS provider ConnexysLucas Jellema
This article describes the history of the NextGen project at Dutch SaaS provider Connexys (www.connexys.eu). It outlines common challenges for SaaS applications - such as customization and cross-cloud-integration - and describes how these were addressed. The article brushes upon the technology used (Oracle Database, SQL/PLSQL, Oracle ADF (ADF BC, JSF/ADF Faces, JDeveloper, JHeadstart).
Slides for Oracle OpenWorld 2015 Tuesday Keynote by Thomas Kurian - Software ...Lucas Jellema
New Applications, Platforms, and Tools, Offered as Online Services, Help Round Out Oracle’s Complete Enterprise Cloud
Oracle President Thomas Kurian discusses how Oracle's cloud services "help people solve real business problems."
Oracle has introduced an impressive list of cloud services in all three major cloud categories in just this year—infrastructure as a service (IaaS), platform as a service (PaaS), and software as a service (SaaS). “We’ve had a really busy year,” deadpanned Thomas Kurian, Oracle president of product development, during a presentation at Oracle OpenWorld 2015 on Tuesday, October 27. Oracle’s cloud services “help people solve real business problems,” Kurian said, and represent a compelling combination of performance, ubiquity, and simplicity. “Any person anywhere in the world, with just a browser, can access our cloud and get access to all these amazing new product innovations,” he said.
Node.js is an introduction to the Node.js platform for developing server-side JavaScript applications. It discusses Node.js background and architecture, JavaScript basics, installing Node.js and setting up a development environment. It then demonstrates building a simple web application using Express and connecting it to MongoDB. The document provides an overview of Node.js advantages like asynchronous non-blocking I/O and event-driven model that make it well-suited for real-time applications and APIs.
An introduction into Node as a programming platform. This presentation introduces Node - its history, its architecture, the eco system of npm modules and tools and its place in the enterprise IT architecture and infrastructure. The Express framework is introduced, some core modules, the notion of asynchronous operations and the use of module async and of the ES6 Promises. Server Sent Events are introduced for a server to client push application. The interaction with MongoDB is demonstrated. The presentation contains many code samples. Note that the presentation is associated with sources and workshop materials in GitHub: https://github.com/lucasjellema/nodejs-introduction-workshop-may2017 .
This document provides an overview of Node.js and how to build web applications with it. It discusses asynchronous and synchronous reading and writing of files using the fs module. It also covers creating HTTP servers and clients to handle network requests, as well as using common Node modules like net, os, and path. The document demonstrates building a basic web server with Express to handle GET and POST requests, and routing requests to different handler functions based on the request path and method.
Save 10% off ANY FITC event with discount code 'slideshare' - http://www.fitc.ca
OVERVIEW
Node.js is a runtime environment and library for running JavaScript applications outside the browser. Node.js is mostly used to run real-time server applications and shines through its performance using non-blocking I/O and asynchronous events. This talk will introduce you to Node.js by showcasing the environment and its two most popular libraries: express and socket.io.
TARGET AUDIENCE
Beginner web developers
ASSUMED AUDIENCE KNOWLEDGE
Working knowledge of JavaScript and HTML5.
OBJECTIVE
Learn how to build a chat engine using Node.js and WebSockets.
FIVE THINGS AUDIENCE MEMBERS WILL LEARN
Node.js environment and basics
Node Package Manager overview
Web Framework, express, basics
WebSockets and Socket.io basics
Building a chat engine using Node.js
My Node.js workshop from Sela's Developer Conference 2015.
In the Workshop we covered The basics Node.js api's and the express web application framework.
Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine. It allows JavaScript to be used for server-side scripting and provides APIs for networking and file system operations. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, allowing a single process to handle thousands of concurrent connections. It includes a package manager and common module system. Popular frameworks like Express make it easy to build scalable web servers and applications with Node.js.
Node.js 101 with Rami Sayar
Presented on September 18 2014 at
FITC's Web Unleashed Toronto 2014 Conference
More info at www.fitc.ca
OVERVIEW
Node.js is a runtime environment and library for running JavaScript applications outside the browser. Node.js is mostly used to run real-time server applications and shines through its performance using non-blocking I/O and asynchronous events. This talk will introduce you to Node.js by showcasing the environment and its two most popular libraries: express and socket.io.
TARGET AUDIENCE
Beginner web developers
ASSUMED AUDIENCE KNOWLEDGE
Working knowledge of JavaScript and HTML5.
OBJECTIVE
Learn how to build a chat engine using Node.js and WebSockets.
FIVE THINGS AUDIENCE MEMBERS WILL LEARN
Node.js environment and basics
Node Package Manager overview
Web Framework, express, basics
WebSockets and Socket.io basics
Building a chat engine using Node.js
Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine. It allows JavaScript to be run on the server-side instead of in the browser. Node.js uses non-blocking I/O and event looping which makes it lightweight and efficient for data-intensive real-time applications. The Node Package Manager (npm) allows Node.js applications to install additional packages and dependencies. Express.js is a popular web application framework for Node.js that provides features for building web applications and APIs.
Kubernetes is exploding in popularity right now and has all the buzz and cargo-culting that Docker enjoyed just a few years ago. But what even is Kubernetes? How do I run my PHP apps in it? Should I run my PHP apps in it ?
This document provides an overview of Node.js, an asynchronous JavaScript runtime environment for building scalable network applications. It discusses how to install and use Node.js, common core modules for processes, filesystem, and networking, frameworks like Express, streams, load balancing, competitors like Tornado and Twisted, and references further resources.
Introduction to node js - From "hello world" to deploying on azureColin Mackay
Slide deck from my talk on Node.js.
More information is available here: http://colinmackay.scot/2014/11/29/dunddd-2014-introduction-to-node-jsfrom-hello-world-to-deploying-on-azure/
This document provides an overview of Node.js, including what it is, how it uses JavaScript and an event-driven asynchronous model, and examples of building HTTP servers and RESTful APIs. It also discusses MongoDB for data storage and the Express framework. Node.js is a platform for building fast and scalable network applications using an event-driven, non-blocking I/O model. It is well-suited for data-intensive real-time applications that leverage JavaScript and JSON.
This document provides an introduction to Node.js, including what Node.js is, why it is useful, its built-in modules like HTTP and file system. Node.js is a server-side JavaScript environment that allows JavaScript to be run on the server. It uses non-blocking I/O and event-driven architecture, making it lightweight and efficient. The built-in HTTP module allows Node.js to create web servers and handle HTTP requests and responses. The file system module provides functions to read, write, update and delete files on the server.
Basic Understanding and Implement of Node.jsGary Yeh
Node.js is an event-driven JavaScript runtime built on Chrome's V8 engine. It uses non-blocking I/O and an event loop to handle multiple connections simultaneously without blocking. The document discusses Node.js' event loop model and asynchronous I/O, how callbacks allow non-blocking operations, and how modules and frameworks like Express allow building scalable network applications.
Slides from my workshop about node.js which I conducted in Girl Geek Dinner Bangalore. More details at http://sudarmuthu.com/blog/introduction-to-node-js-at-yahoo-girl-geek-dinner
This document provides an introduction to Node.js, a framework for building scalable server-side applications with asynchronous JavaScript. It discusses what Node.js is, how it uses non-blocking I/O and events to avoid wasting CPU cycles, and how external Node modules help create a full JavaScript stack. Examples are given of using Node modules like Express for building RESTful APIs and Socket.IO for implementing real-time features like chat. Best practices, limitations, debugging techniques and references are also covered.
Save 10% off ANY FITC event with discount code 'slideshare'
See our upcoming events at www.fitc.ca
Node.js: The What, The How and The When
with Richard Nieuwenhuis
This document provides an introduction to Node.js including its history, uses, advantages, and community. It describes how Node.js uses non-blocking I/O and JavaScript to enable highly scalable applications. Examples show how Node.js can run HTTP servers and handle streaming data faster than traditional blocking architectures. The document recommends Node.js for real-time web applications and advises against using it for hard real-time systems or CPU-intensive tasks. It encourages participation in the growing Node.js community on mailing lists and IRC.
This document provides an introduction and overview of Node.js. It discusses the brief history of server-side JavaScript, how Node.js was created to enable easy push capabilities for websites, and its growth in popularity in the following years. The document also covers key aspects of Node.js like non-blocking I/O, event loops, streams, modules, and dependency management with NPM. Popular frameworks like Express, Hapi, and tools/concepts like IoT, desktop apps, and real-time apps are also mentioned.
This document introduces Node.js and provides an overview of its key features and use cases. Some main points:
- Node.js is a JavaScript runtime built on Chrome's V8 engine that allows building scalable network applications easily. It is not a web framework but you can build web frameworks with Node.js modules.
- Node.js is well-suited for building web servers, TCP servers, command line tools, and anything involving high I/O due to its non-blocking I/O model. It has over 15,000 modules and an active community for support.
- Common use cases include building JSON APIs, single page apps, leveraging existing Unix tools via child processes, streaming
Similar to Introducing Node.js in an Oracle technology environment (including hands-on) (20)
Introduction to web application development with Vue (for absolute beginners)...Lucas Jellema
In this slide deck I show you how you can easily and quickly create quite rich web applications with Vue 3 – without having to study complex concepts or understand many technical details. I have only recently learned how to work with Vue 3 myself and now is the best time for me to share my learning experience (and my enthusiasm) with you. I know what I found essential to understand and what most got me excited in these early steps (what was a little bit hard to grasp). I believe that I can present my steps and guide you to experience the same fun and have a similarly gratifying experience. I am not an expert in this subject – I have barely learned how to walk and that is why I can help you with these first steps with Vue.
In this deck, I do not explain how Vue works. I do not really know that. I will show you how to work with it and how to create web applications that are functional, appealing, fast and responsive.
The approach I am taking is straightforward:
• I will tell you a little bit about web development, browsers and reactive frameworks
• I will show the hello world of Vue applications
• I will explain about components and nesting, events, data binding and reactive behavior and demonstrate these concepts
• I will introduce Vue UI Component libraries – and with no effort at all we will launch our application to the next level – with rich components to explore, manipulate, visualize data collections
• We will publish the web application from our development environment to where the whole world could see it – using GitHub Pages
• As bonus topic – we discuss state management
At the end of this session you will be able to quickly create a simple yet rich web application with Vue 3. You have a starting point to further evolve your skills with the many online resources I am convinced that you will enjoy your newfound powers and the simplicity and power of Vue 3.
Note: a tutorial accompanies this slide deck - see https://github.com/lucasjellema/code-face-vue3-intro-reactiive-webapps-aug2023/blob/main/README.md
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...Lucas Jellema
The document discusses bringing operations considerations into the development process earlier, referred to as "shifting left." It advocates designing applications with operations in mind from the beginning. This includes understanding operational objectives, constraints, and service level agreements. Application telemetry and monitoring are also important to incorporate from the start. The document provides examples of how to implement operational practices like deployments, health checks, and incident response processes in a shifted left model where development and operations work more closely together.
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...Lucas Jellema
The document discusses lightweight coding in powerful cloud development environments using Gitpod. It describes Gitpod as providing a preconfigured Linux development environment in the browser or on local machine. The document outlines key Gitpod features like open source project collaboration, costs which are free for 50 hours per month, and benefits like clean environments and efficient resource usage. It also briefly mentions other tools like GitHub Codespaces.
Apache Superset - open source data exploration and visualization (Conclusion ...Lucas Jellema
Introducing Apache Superset - an open source platform for data exploration, visualization and analysis - co-starring Trino and Steampipe for providing SQL access to many non-SQL data sources.
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...Lucas Jellema
Enterprise IT systems are deaf, blind and highly insensitive. They do not know what is going on in the outside world. Through Internet of Things technology, we provide eyes, ears and hands that allow enterprises to learn about and react in real time to events in the physical world. The energy transition at a major Dutch energy company (Eneco) is powered by IoT technology – to steer and sometimes curtail windmills and solar farms and to coordinate local energy production and trade. This session shows you how the physical world was connected to the customer portals and apps, asset management systems and Kafka platform through the Azure cloud based IoT Hub en Edge, digital twin, serverless functions, timeseries datastores and streaming data analysis. It is a story about technological innovation on top of existing foundations and of a vision for business and our society at large.
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...Lucas Jellema
I hear this aspiration from a growing number of organizations. Sometimes as a quite literal question. This however is merely half of a wish. Apparently, organizations want to quit with one thing — but have not yet stipulated what they desire instead. What is the objective that is pursued here? Only to get rid of Oracle? It will become clear why you should give a considerable thought about dropping Oracle, or any other vendors’ technology, when you’re not pleased with your current IT situation. You need to focus on the actual problems and objectives and define the suitable roadmap to fit your real needs. It turns out that the quest is usually for modernization and flexibility - and Oracle can very well be a part of that future.
Organizations with decades of investment in Oracle technology sometimes (and increasingly) express a wish to move away from Oracle. In this session, we will first explore where the desire to move away from Oracle might come from. Then we describe what the term Oracle represents — more than 2.000 products on all layers in the technology stack and in different business areas. Finally, we map out what the ‘moving away from’ consists of: defining where you ‘move to’ and subsequently actually going there.
It will become clear why you should give considerable thought about dropping Oracle, or any other vendors’ technology, when you’re not pleased with your current IT situation. You need to focus on the actual problems and objectives and define the suitable roadmap to fit your real needs. It turns out that the quest is usually for modernization and flexibility - and Oracle can very well be a part of that future.
Original storyline in this Medium Article: https://medium.com/real-vox/what-if-companies-say-help-me-move-away-from-oracle-ffbbc95afc4f
IoT - from prototype to enterprise platform (DigitalXchange 2022)Lucas Jellema
In 2019 the company started a small scale IoT project: smart meters in consumer homes, a cloud based IoT platform for device management, metrics collecting, monitoring and real time data processing. From the initial 12 devices and this single use case, the initiative has rapidly scaled, to tens of thousands devices - including entire wind parks and solar farms - and seven substantial business cases, not just for harvesting data but increasingly for real time actuation. The IoT Platform is feeding the brain at the heart of the enterprise - through an event streaming platform and an API platform. It supports complex operations with anomaly detection on metrics streams and device and communication monitoring. This session tells about the eye catching business cases - what are business objectives and results - and explains the journey since the start. It continues the story presented at DigitalXchange 2020 - discussing technical challenges and solutions as well as organizational aspects. Areas of particular interest: edge processing, data analytics and machine learning.
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...Lucas Jellema
Pitch: The movie The Matrix made it clear: The Architect is powerful. How to be(come) and IT architect? What do you do, what do you need to know, is it fun and why? Using real world examples, core principles and useful tools, this session introduces the subtle art of designing and realizing flexible IT architectures. </p><p>Taking a step back to get and create an overview, frequently asking why to get to the real intention, bringing aspects such as cost, scale, time and change and business strategy into the design and bridging the gap between business owners, process managers and technical specialists. One way to define the responsibility of an IT architect. In this session, we will discuss what is expected of the architect and what you need to do for that and what you could use to get it done. How do you get started as an architect, how to grow in that role? We discuss a number of real life architectural challenges and solution design. And discuss a number of architecture principles, patterns, and powers to apply. Never stop programming - but perhaps rise to the architecture challenge too.
Notes: Many IT professionals aspire to become architects. Many architects wonder what it is they have to do. After 27 years in IT I find I have slowly and steadily moved into a role that I can probably use the label architect for, although still with some reluctance. What exactly does that mean - IT architect? While I may not have all answers and the ultimate truth and wisdom, I do have many architectural challenges to discuss and some core principles to share and a number of tips, tricks and tools to recommend that will help anyone get started or grow in a role as architect for software and IT systems. Elements that make an appearance include cloud, agile, DevOps, microservices, persistence, business, powers of persuasion, diagramming, cost, security, software engineering, data.
Outline: - two real world examples (one new business initiative, one running and struggling project) and how to approach them with an architect's mind - core principles to apply , patterns to us, what to unearth (the power question of WHY) - architecture products: what do you deliver as an architect; how do you ensure agility? - how to be effective? bringing your design to life - communication with stakeholders/powers of persuasion, monitoring adherence, being pragmatic but not lose grip; - anecdotal evidence from several small and large product teams - the good and also the ugly (architectural oversights and the consequences)
some specific answers to address - how much technical knowledge and programming skills does an architect require? What other knowledge is required and how to stay on top of your game? how to get going: first steps towards be(com)ing and architect?
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...Lucas Jellema
Introduction to Steampipe - a tool for retrieving data and metadata about cloud resources, platform resources and file content - all through SQL. Data from clouds, files and platforms can be joined, filtered, sorted, aggregated using regular SQL. Steampipe offers a very convenient way to get hold of data that describes the environment in detail.
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...Lucas Jellema
Automation of software delivery has several advantages. Prevention of human error is certainly one. Consistent and complete execution of tried and tested build and deployment tasks as the only way to apply changes in the live environment. Once the pipelines have been set up, the engineers can focus on the software and applying the required changes to it. To bring that software all the way to production is a breeze. Oracle Cloud Infrastructure offers the DevOps service, introduced in the Summer of 2021. This service comes with git style code repositories, build servers and build pipelines, artifact repositories as well as deployment pipelines. This session introduces OCI DevOps and demonstrates how software can be built and deployed on OKE Kubernetes, Compute Instance VMs and Oracle Functions. From simple source code an application is put in production without manual intervention in the build and deployment process.
Introducing Dapr.io - the open source personal assistant to microservices and...Lucas Jellema
Dapr.io is an open source product, originated from Microsoft and embraced by a broad coalition of cloud suppliers (part of CNFC) and open source projects. Dapr is a runtime framework that can support any application and that especially shines with distributed applications - for example microservices - that run in containers, spread over clouds and / or edge devices.
With Dapr you give an application a "sidecar" - a kind of personal assistant that takes care of all kinds of common responsibilities. Capturing and retrieving state, publishing and consuming messages or events. Reading secrets and configuration data. Shielding and load balancing over service endpoints. Calling and subscribing to all kinds of SaaS and PaaS facilities. Logging traces across all kinds of application components and logically routing calls between microservices and other application components. Dapr provides generic APIs to the application (HTTP and gRPC) for calling all these generic services – and provides implementations of these APIs for all public clouds and dozens of technology components. This means that your application can easily make use of a wide range of relevant features - with a strict separation between the language the application uses for this (generic, simple) and the configuration of the specific technology (e.g. Redis, MySQL, CosmosDB, Cassandra, PostgreSQL, Oracle Database, MongoDB, Azure SQL etc) that the Dapr sidecar uses. Changing technology does not affect the application, but affects the configuration of the Sidecar. Dapr can be used from applications in any technology - from Java and C#/.NET to Go, Python, Node, Rust and PHP. Or whatever can talk HTTP (or gRPC).
In this Code Café I will introduce you to Dapr.io. I will show you what Dapr can do for you (application) and how you can Dapr-izen an application. I'll show you how an asynchronously collaborative system of microservices - implemented in different technologies - can be easily connected to Dapr, first to Redis as a Pub/Sub mechanism and then also to Apache Kafka without modifications. Then we do - with the interested parties - also a hands-on in which you will apply Dapr yourself . In a short time you get a good feel for how you can use Dapr for different aspects of your applications. And if nothing else, Dapr is a very easy way to get your code with Kafka, S3, Redis, Azure EventGrid, HashiCorp Consul, Twillio, Pulsar, RabbitMQ, HashiCorp Vault, AWS Secret Manager, Azure KeyVault, Cron, SMTP, Twitter, AWS SQS & SNS, GCP Pub/Sub and dozens of other technology components talk.
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...Lucas Jellema
For a long time I have been reluctant to actively contribute to an open source project. I thought it would be rather complicated and demanding – and that I didn't have the knowledge or skills for it or at the very least that they (the project team) weren't waiting for me.
In December 2021, I decided to have a serious input into the Dapr.io project – and now finally to determine how it works and whether it is really that complicated. In this session I want to tell you about my experiences. How Fork, Clone, Branch, Push (and PR) is the rhythm of contributing to an open source project and how you do that (these are all Git actions against GitHub repositories). How to learn how such a project functions and how to connect to it; which tools are needed, which communication channels are used. I tell how the standards of the project – largely automatically enforced – help me to become a better software engineer, with an eye for readability and testability of the code.
How the review process is quite exciting once you have offered your contribution. And how the final "merge to master" of my contribution and then the actual release (Dapr 1.6 contains my first contribution) are nice milestones.
I hope to motivate participants in this session to also take the step yourself and contribute to an open source project in the form of issues or samples, documentation or code. It's valuable to the community and the specific project and I think it's definitely a valuable experience for the "contributer". I looked up to it and now that I've done it gives me confidence – and it tastes like more (I could still use some help with the work on Dapr.io, by the way).
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Lucas Jellema
Apache Kafka is one of the best known enterprise grade message brokers – created at LinkedIn, donated to the Apache software foundation and used in an ever growing number of organizations to provide a backbone for asynchronous communication. This session introduces Apache Kafka – history, concepts, community and tooling. In a hands on lab, participants will create topics, publish and consume messages and get a general feel for Kafka. Simple microservices are developed in NodeJS – publishing to and consuming from Apache Kafka.
Dapr.io has support for Apache Kafka. Using Kafka through Dapr is very straightforward as is explained and demonstrated and applied in a second handson lab – with applications in various programming languages. Participants will even be able to exchange events across their laptops – through a cloud based Kafka broker.
Use of Apache Kafka in several architecture patterns is discussed – such as data integration, microservices, CQRS, Event Sourcing – along with a number of real world use cases from several well known organizations. The Kafka Connector framework is introduced – a set of adapters that allow us to easily connect Kafka to sources and sinks – where respectively change events are captured from and messages are published to.
Bonus Lab: Apache Kafka is ran on Kubernetes as is Dapr.io. Multiple mutually interacting microservices are deployed on the same local Kubernetes cluster.
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)Lucas Jellema
This session does a quick recap of microservices: why do we want them, what problems do they solve and what are the principles around designing and implementing them? The Dapr.io runtime framework for distributed applications is introduced. Dapr provides a sidecar (almost like a personal assistant to a manager) to an application or microservice, a companion process that handles common tasks such as storing and retrieving state, consuming and publishing messages and events, invoking external services and other microservices as well as handling incoming requests. Participants will do a handson lab with Dapr.io and learn how to quickly implement interactions with various technologies, including Redis and MySQL.
Node(JS) is introduced – a server side JavaScript-based programming language that can be used well for implementing microservices. Some of the main characteristics of NodeJS are discussed (functional programming, asynchronous flows, NPM package manager) as well as common use cases (handle incoming HTTP requests, invoke REST APIs). In the second lab, Node and Dapr are used together to implement microservices that interact with databases and message brokers and each other – in a decoupled fashion.
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...Lucas Jellema
The cloud is changing many things. Even the decision to not (yet) adopt cloud is one to make explicitly. Now is a time for any organization to reconsider the IT landscape. For each system we should make a conscious ruling on its roadmap. The 6R model suggests six ways to move a system forward.
This session uses the 6R model and applies it specifically to Oracle technology based systems: what are the options and considerations for Oracle Database, Oracle Fusion Middleware, custom applications, and other red components? What future should we consider and how do we choose? The paths chosen by several Oracle-heavy users is presented to illustrate these options and the decision making process. Oracle Cloud Infrastructure and Autonomous Database play a role, as do Azure IaaS and Azure Managed Database as well as on premises systems. Latency, recovery, scalability, licenses, automation, lock-in, skills, and resources all make their appearance.
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)Lucas Jellema
Organizations with decades of investment in Oracle technology sometimes (and increasingly) express a wish to move away from Oracle. In this session, we will first explore where the desire to move away from Oracle might come from. Then we describe what the term Oracle represents -- more than 2.000 products on all layers in the technology stack and in different business areas. Finally, we map out what the 'moving away from' consists of: defining where you 'move to' and subsequently actually going there.
It will become clear why you should give considerable thought about dropping Oracle, or any other vendors' technology, when you're not pleased with your current IT situation. You need to focus on the actual problems and objectives and define the suitable roadmap to fit your real needs. It turns out that the quest is usually for modernization and flexibility - and Oracle can very well be a part of that future.
DevOps is a term used in many places and unfortunately also to mean many different things. This presentation (largely in Dutch) paints the DevOps picture. While it may not give a clear cut definition (there does not seem to be one) it certainly makes clear what DevOps is about, what objectives and origins are and which factors enable and drive DevOps.
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...Lucas Jellema
Microcks is a tool for API Mocking and Testing. In this presentation an overview of the support in Microcks for asynchronous APIs - the event publishing and consuming behavior of services and applications
Cloud native applications offer scalability, flexibility, and optimal use of compute resources. Serverless functions interacting through events, leveraging cloud capabilities for persistent storage and automated operations take organization to the next level in IT. This session demonstrates polyglot Functions interacting with native cloud services for events and persistence (Object Storage and NoSQL Database) and leveraging the Key and Secrets Vault, Monitoring and Notifications services for operational control. A lightweight API Gateway is used to expose APIs to external consumers. Infrastructure as Code is the guiding principle in deploying both cloud resources and application components, through OCI CLI and Terraform. This session leverages many cloud native (enabling) services in Oracle Cloud Infrastructure. The session will introduce concepts, then spend most of the time on live demonstrations. All sources are shared with the audience, to allow participants to create the same application in their own cloud tenancy. What is so great about Cloud Native Applications? How do you create one? I will explain the first and demonstrate the second. On Oracle Cloud Infrastructure, using services that anyone can use for free, I will live create a cloud native application that streams, persists, notifies, scales, monitors Benefits: - get to know many different OCI services - understand the meaning, purpose and benefits of cloud native development - learn how to take your own first steps in OCI - for free!
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j
Dr. Jesús Barrasa, Head of Solutions Architecture for EMEA, Neo4j
Découvrez les dernières innovations de Neo4j, et notamment les dernières intégrations cloud et les améliorations produits qui font de Neo4j un choix essentiel pour les développeurs qui créent des applications avec des données interconnectées et de l’IA générative.
Zoom is a comprehensive platform designed to connect individuals and teams efficiently. With its user-friendly interface and powerful features, Zoom has become a go-to solution for virtual communication and collaboration. It offers a range of tools, including virtual meetings, team chat, VoIP phone systems, online whiteboards, and AI companions, to streamline workflows and enhance productivity.
Do you want Software for your Business? Visit Deuglo
Deuglo has top Software Developers in India. They are experts in software development and help design and create custom Software solutions.
Deuglo follows seven steps methods for delivering their services to their customers. They called it the Software development life cycle process (SDLC).
Requirement — Collecting the Requirements is the first Phase in the SSLC process.
Feasibility Study — after completing the requirement process they move to the design phase.
Design — in this phase, they start designing the software.
Coding — when designing is completed, the developers start coding for the software.
Testing — in this phase when the coding of the software is done the testing team will start testing.
Installation — after completion of testing, the application opens to the live server and launches!
Maintenance — after completing the software development, customers start using the software.
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesQuickdice ERP
Explore the seamless transition to e-invoicing with this comprehensive guide tailored for Saudi Arabian businesses. Navigate the process effortlessly with step-by-step instructions designed to streamline implementation and enhance efficiency.
Microservice Teams - How the cloud changes the way we workSven Peters
A lot of technical challenges and complexity come with building a cloud-native and distributed architecture. The way we develop backend software has fundamentally changed in the last ten years. Managing a microservices architecture demands a lot of us to ensure observability and operational resiliency. But did you also change the way you run your development teams?
Sven will talk about Atlassian’s journey from a monolith to a multi-tenanted architecture and how it affected the way the engineering teams work. You will learn how we shifted to service ownership, moved to more autonomous teams (and its challenges), and established platform and enablement teams.
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...XfilesPro
Wondering how X-Sign gained popularity in a quick time span? This eSign functionality of XfilesPro DocuPrime has many advancements to offer for Salesforce users. Explore them now!
Atelier - Innover avec l’IA Générative et les graphes de connaissancesNeo4j
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Allez au-delà du battage médiatique autour de l’IA et découvrez des techniques pratiques pour utiliser l’IA de manière responsable à travers les données de votre organisation. Explorez comment utiliser les graphes de connaissances pour augmenter la précision, la transparence et la capacité d’explication dans les systèmes d’IA générative. Vous partirez avec une expérience pratique combinant les relations entre les données et les LLM pour apporter du contexte spécifique à votre domaine et améliorer votre raisonnement.
Amenez votre ordinateur portable et nous vous guiderons sur la mise en place de votre propre pile d’IA générative, en vous fournissant des exemples pratiques et codés pour démarrer en quelques minutes.
Unveiling the Advantages of Agile Software Development.pdfbrainerhub1
Learn about Agile Software Development's advantages. Simplify your workflow to spur quicker innovation. Jump right in! We have also discussed the advantages.
UI5con 2024 - Bring Your Own Design SystemPeter Muessig
How do you combine the OpenUI5/SAPUI5 programming model with a design system that makes its controls available as Web Components? Since OpenUI5/SAPUI5 1.120, the framework supports the integration of any Web Components. This makes it possible, for example, to natively embed own Web Components of your design system which are created with Stencil. The integration embeds the Web Components in a way that they can be used naturally in XMLViews, like with standard UI5 controls, and can be bound with data binding. Learn how you can also make use of the Web Components base class in OpenUI5/SAPUI5 to also integrate your Web Components and get inspired by the solution to generate a custom UI5 library providing the Web Components control wrappers for the native ones.
Transform Your Communication with Cloud-Based IVR SolutionsTheSMSPoint
Discover the power of Cloud-Based IVR Solutions to streamline communication processes. Embrace scalability and cost-efficiency while enhancing customer experiences with features like automated call routing and voice recognition. Accessible from anywhere, these solutions integrate seamlessly with existing systems, providing real-time analytics for continuous improvement. Revolutionize your communication strategy today with Cloud-Based IVR Solutions. Learn more at: https://thesmspoint.com/channel/cloud-telephony
How Can Hiring A Mobile App Development Company Help Your Business Grow?ToXSL Technologies
ToXSL Technologies is an award-winning Mobile App Development Company in Dubai that helps businesses reshape their digital possibilities with custom app services. As a top app development company in Dubai, we offer highly engaging iOS & Android app solutions. https://rb.gy/necdnt
WWDC 2024 Keynote Review: For CocoaCoders AustinPatrick Weigel
Overview of WWDC 2024 Keynote Address.
Covers: Apple Intelligence, iOS18, macOS Sequoia, iPadOS, watchOS, visionOS, and Apple TV+.
Understandable dialogue on Apple TV+
On-device app controlling AI.
Access to ChatGPT with a guest appearance by Chief Data Thief Sam Altman!
App Locking! iPhone Mirroring! And a Calculator!!
2. Overview
• Get used to it: JavaScript on the Server
• First steps with Node.js and yes: hello world!
• Some language essentials: functions (and closures)
• Modules and npm
• The Single Thread or: the quest for scalability
• Handling HTTP requests
– static file serving
– serving rich client web applications [such as Oracle JET]
– Implementing REST APIs and mBaaS (and iPaaS)
• Making HTTP calls to external APIs and Services
• Database interaction from Node.js
8. 8
Node.js is like a JS-DK –
JavaScript Virtual Machine
Custom
Node.js
app
Custom
Node.js
app Custom
Node.js
app
machine code
9. 9
Brief History of Node.js
• 2009 – unveiled by Ryan Dahl, written on Linux, leveraging Google V8
• 2010
– Initial release of express – the default web application server framework
• 2011
– package manager npm introduced – to publish and share open-source Node.js libraries
and simplify installation, updating and uninstallation of libraries
– Native Windows implementation of Node.js released
• 2011-2015 Many Cloud Platforms supporting Node.js
– Heroku, Joyent, Cloud Foundry, Nodester, NodeJitsu, Microsoft Azure, IBM BlueMix,
Google AppEngine, AWS, …
• 2015
– Oracle releases node-oracledb Database Driver for Node.js
– Various forks brought back together: Node v4.0 including V8 with ES6 features
– Open Source under Governance by the Node.js Foundation under Linux Foundation
– Support for ARM processors
• 2016
– Oracle Application Container Cloud with native support for Node.js applications
– Current release: 5.9.1 (22nd March)
13. 13
Hello World – using a function
function greeting() {
console.log("Hello World!");
}
greeting();
14. 14
Hello World – read
commandline arguments
function greeting(greetedPerson) {
console.log("Hello "+ greetedPerson + "!");
}
// assume command line: node hello-world-3.js someName
var greetee = process.argv[2];
greeting(greetee);
15. 15
Hello World – pass around a
function reference
var g = function greeting(greetedPerson) {
console.log("Hello "+ greetedPerson + "!");
}
var greetee = process.argv[2];
g(greetee);
16. 16
Hello World – have one function
execute [a reference to ] another
var g = function greeting(greetedPerson) {
console.log("Hello "+ greetedPerson + "!");
}
var greetee = process.argv[2];
function reception( greetFunction, greetee) {
greetFunction(greetee); // execute the passed in function
}
reception(g, greetee);
17. 17
Hello World – callback functions
and time outs – no state yet
// callback functions used with timeout
var g = function (greetedPerson) {
console.log("Hello "+ greetedPerson + "!");
}
var r = function ( greetFunction, greetee) {
greetFunction(greetee);
}
for (var i=2;i<process.argv.length;i++) {
setTimeout( r(g, process.argv[i]), i*1500);
}
console.log('The Main Program Flow is Done!');
18. 18
Hello World – closures with state
executed on time out
var g = function (greetedPerson) {
console.log("Hello "+ greetedPerson + "!");
}
function getGreeter ( greetee, greetFunction) {
var toGreet = greetee;
console.log('I will greet '+ greetee + ' in a little while');
return function () { greetFunction(toGreet)}; // the closure
}
for (var i=2;i<process.argv.length;i++) {
setTimeout( getGreeter( process.argv[i], g), i*1500);
}
console.log('The Main Program Flow is Done!');
19. 19
Modules
• Node programs can be organized in modules
• A module is file that exports a scope that may contain (public) functions
and shared objects
• Modules are ‘imported’ through the require function
– Add a line such as var localRef = require(‘moduleName’); in a file to get access at
runtime to all the goodies from the module
• Node ships with a set of core modules that can be required into any
program – without additional installation or configuration; for example:
– fs: file system operations
– path: string transformations around file system operations
– os: access to some operating systems details
– util: utility functions, for example util.log to log messages to console with timestamp
– http: for HTTP protocol based network operations
20. 20
File manipulation from Node.js
- using core module fs
//write a file with all command line arguments on separate lines
var fs = require('fs')
, util = require('util');
process.argv.slice(2).forEach(function (val) {
fs.appendFileSync("./output.txt", val + "n");
});
util.log('The Main Program Flow is Done!');
21. 21
Hello World –
using core module util
var util = require('util');
var g = function (greetedPerson) {
util.log(util.format('Hello %s!', greetedPerson));
}
function getGreeter ( greetee, greetFunction) {
var toGreet = greetee;
util.log( util.format('I will greet %s in a little while', toGreet));
return function () { greetFunction(toGreet)};
}
process.argv.slice(2).forEach(function (val, index, array) {
setTimeout( getGreeter(val, g), index*1500);
});
util.log('The Main Program Flow is Done!');
22. 22
Packages
• A package is a bundle of resources that supports development of a node
application
– Design time (test, code analyze, format, browserify, package, …)
– Run time
• A package can contain one or more modules that may or may not be
intended to be ‘required’ into a node application
• Packages are [downloaded and] added to the source folders of a node
application
• Package management can be tricky
– An application can depend on multiple packages
– Packages can depend on multiple [versions of] packages themselves
– Gathering and keeping up to date all compatible versions of all required packages is
potentially complex, time consuming and error prone
– Enter: npm
• and package.json – the closest thing to a pom-file
23. 23
Reusing node modules
• “So that's what npm is. It's a way to reuse code from other developers,
and also a way to share your code with them, and it makes it easy to
manage the different versions of code.”
• www.npmjs.org
24. 24
npm
• Bring in a package to your current application
– npm install <package name>
The package is downloaded and installed in folder node_modules
• Create a new application with a neat description
– npm init
This will create a package.json file that
describes the [Node.js] application and its dependencies
• Use
– npm install <package name> --save
To have dependencies on the package added to the package,json file
– npm install
To have all packages listed in package.json installed or updated into the
node_modules folder
25. 25
Node.js can handle incoming
HTTP requests
• Similar to a Java Servlet or PHP page, a Node.js application can contain
logic to interpret and respond to an HTTP request
Browser
Web Tier
Static file
serving
REST
APIs
http request
Any other
HTTP
client
26. 26
Core Modules for (inbound & outbound)
networking: http, https, net, dgram
• No separate installation required (included with core Node.js)
• Handle incoming request and/or make outbound request
• Handle URL (path, query parameters, post payload or Form encoding or
file upload)
• Handle headers, encoding, compression, …
Web Tier
http(s) request http(s) request
27. 27
Simplest form of HTTP handling
// invoke from browser or using curl: curl http://127.0.0.1:3000
var http = require('http');
var server = http.createServer(function handleRequest(req, res) {
res.write('Hello World!');
res.end();
}).listen(3000);
console.log('server running on port 3000');
Web Tierhttp(s) request
28. 28
Interpret request and respond
appropriately
// invoke: curl http://127.0.0.1:3000/do/me/a/resource?name=Lex
var http = require('http')
, url = require('url') ;
var server = http.createServer(function handleRequest(req, res) {
console.log('URL '+ req.url);
var queryObject = url.parse(req.url,true).query;
var name = queryObject.name;
console.log('path: '+url.parse(req.url).pathname);
console.log('queryObject: '+JSON.stringify(queryObject));
res.write('Hello '+ name + '!');
res.end();
}).listen(3000);
Web Tierhttp(s) request
29. 29
Interpret request and respond
appropriately
// invoke: curl http://127.0.0.1:3000/do/me/a/resource?name=Lex
var http = require('http')
, url = require('url') ;
var server = http.createServer(function handleRequest(req, res) {
console.log('URL '+ req.url);
var queryObject = url.parse(req.url,true).query;
var name = queryObject.name;
console.log('path: '+url.parse(req.url).pathname);
console.log('queryObject: '+JSON.stringify(queryObject));
res.write('Hello '+ name + '!');
res.end();
}).listen(3000);
Web Tierhttp(s) request
30. 30
Static File Serving
// serve static file: /public/index.html
var http = require('http')
, fs= require('fs');
var server = http.createServer(function handleRequest(req, res) {
res.writeHead(200, { 'content-type': 'text/html' });
fs.createReadStream('./public/index.html').pipe(res);
}).listen(3000);
console.log('server running on port 3000');
Web Tierhttp(s) request
Local file
system
index.html
31. 31
Remote Resource Serving –
http in and http out
var http = require('http');
var options = {
host: 'www.un.org', path: '/en/universal-declaration-human-rights/' };
var server = http.createServer(function handleRequest(req, res) {
res.writeHead(200, { 'content-type': 'text/html' });
http.get(options, function handleRemoteResponse(resp) {
var body="";
resp.on("data", function(chunk) { //response returned in chunks
body = body+chunk;
});
resp.on("end", function() { //when response is complete, pass it on
res.end(body);
});
}).on('error', function(e) {
console.log("Got error: "+ e.message);
});
}).listen(3000); Remote
Website
http
request
32. 32
Express web application
framework
• Fast, unopinionated, minimalist web framework for Node.js
• Framework on top of core Node.js top facilitate incoming HTTP requests
– “Express provides a thin layer of fundamental web application features, without
obscuring Node.js features that you know and love.”
• Convenient for
– Web Server for static files
– API implementation (REST)
– Any incoming HTTP request handling
• Express is distributed as npm package
– npm install express
33. 33
Express - Simplest form of HTTP
handling
// invoke from browser or using curl: curl http://127.0.0.1:3000
var express = require('express')
, http = require('http');
var app = express()
.use(function (req, res, next) {
res.end('Hello World!');
});
// Create HTTP server with Express app as the request listener
http.createServer(app)
.listen(3000);
Web Tierhttp(s) request
34. 34
Express – Even simpler form of HTTP
handling (or at least simpler code)
// invoke from browser or using curl: curl http://127.0.0.1:3000
var express = require('express');
express().use(function (req, res, next) {
res.end('Hello World!');
}).listen(3000);
console.log('server running on port 3000');
Web Tierhttp(s) request
35. 35
Static File Serving
// static file server for all resources in public and below
// will server public/index.html when invoked at http://127.0.0.1:3000
var express = require('express'); //npm install express
express().use(express.static(__dirname + '/public'))
.listen(3000);
console.log('server running on port 3000');
Integration
Tierhttp(s) request
Local file
system
index.html
image.jpg
some-pdf.pdf
36. 36
Oracle JET on Node.js
• Oracle JET is a rich client web application
• All the action is on the client
• Role of Node.js: serve the JET application with all its required resources
– All static HTML, CSS and JS files
app
.js
37. 37
Oracle JET on Node.js
• Oracle JET is a rich client web application
• All the action is on the client
• Role of Node.js: serve the JET application with all its required resources
– All static HTML, CSS and JS files
• Additionally: Node.js can provide back end APIs and proxy that JET
application leverages
REST
API
app
.js
38. 38
Handling Form Submit and other
HTTP POST requests
// static file server for all resources in public and below
// AND handle forms submission to path /forms/...
var express = require('express'); //npm install express
var bodyParser = require('body-parser'); // npm install body-parser
var app = express()
.use(bodyParser.urlencoded({ extended: true}))
.post('/forms/*', function (req, res) { //process
console.log(JSON.stringify(req.body));
res.end('Thank you '+ req.body.firstname
+' '+req.body.lastname);
})
.use(express.static(__dirname + '/public'))
.listen(3000);
Integration
Tier
POST request Local
file
system
39. 39
Handling REST GET requests
var express = require('express'), fs = require('fs');
var departments= JSON.parse(fs.readFileSync('departments.json', 'utf8'));
var app = express()
.get('/departments/:departmentId', function (req, res) {
var department = getDepartment(req.params['departmentId']);
console.log(JSON.stringify(department));
res.send( department);
})
.get('/departments', function (req, res) {
res.send( departments);
})
.use(express.static(__dirname + '/public'))
.listen(3000);
function getDepartment(depIdentifier) {
for (var i=0; i< departments.length; i++) {
if (departments[i].DEPARTMENT_ID == deptIdentifier) {
return departments[i];
}//if
}//for
}// getDepartment
Integration
Tier
GET request
Local file
system
departments
.json
40. 40
Handling REST GET & Form
POST requests
var express = require('express'),bodyParser = require('body-parser')
, fs = require('fs');
var app = express()
.use(bodyParser.urlencoded({ extended: true}))
.post('/forms/department', function (req, res) { //process
console.log(JSON.stringify(req.body));
departments.push( {"DEPARTMENT_ID":req.body.departmentId
,"DEPARTMENT_NAME":req.body.departmentName});
res.end('Thank you for the new department '+
req.body.departmentId+" "+req.body.departmentName);
})
.get('/departments/:departmentId', function (req, res) {
…
.listen(3000);
Integration
Tier
GET request
Local file
system
departments
.json
Form Submit
41. 41
Serve Department details –
retrieved from external REST API
var express = require('express'),bodyParser = require('body-parser')
, fs = require('fs'), https = require('https');
var app = express()
.get('/departmentdetails/:departmentId', function (req, res) {
var departmentId = req.params['departmentId'];
var department = getDepartment(departmentId);
// get employee details for department from remote API
https.get({ host: 'data-api-oraclecloud.com', port: 443,
path: '/departments/'+departmentId, method: 'GET'
}, function handleRemoteResponse(resp) {
var body="";
resp.on("data", function(chunk) {body += chunk; });
resp.on("end", function() {
department.employees = JSON.parse(body);
res.send(department); });
});
})
.listen(3000);
Integration
Tier
GET request
Local file
system
departments
.json
REST
API
43. 43
Access speed for data
retrieved from various sources
Source: Beginning Node.js - by Basarat Ali Syed Apress, released: December 2014
44. 44
Threads in web application
handling HTTP-requests
Source: Beginning Node.js - by Basarat Ali Syed Apress, released: December 2014
45. 45
Ready-to-run Threads in web
application handling HTTP-requests
Source: Beginning Node.js - by Basarat Ali Syed Apress, released: December 2014
46. 46
cash
registers
desk to collect
large pieces
Warehouse
Exit
waiting area
shopping area
Only a single desk to handle all
customers who want to have stuff
from the warehouse brought to them
– compare with over a dozen cash
registers
48. 48
Single Thread
• No synchronous calls or blocking waits are done on the thread
– intensive work too is pushed to another process
• After the question is asked, the thread moves
• When a response arrives – as an asynchronous event – the callback
function is given the opportuniy to act on it
– Again, as quickly as possible, not tying up shared resources!
52. 52
Asynchronously assembling
the HTTP response
• Receive HTTP request
– Possibly leverage cookie to re-establish state/context
• Set work in motion to collect data (remote API call, DB call) and register
callback – with original request scope
• Stop processing, vanish, release resources
• When callback is invoked, use response to construct the response
– Complete and send the response
Callback == Closure
(function to execute with
context to execute in)
53. 53
Artist API
• Provide rich JSON message for an artist
• External APIs invoked: Spotify and Echonest
• External calls are made in parallel
– Waiting is done in parallel
– Constructing the response is done when both responses are in
Integration
Tier
GET request
for some artist
54. 54
async
• The node module async is a utility module which provides straight-
forward, powerful functions for working with asynchronous JavaScript.
• Available for server side Node.js and for use in the browser client
• Program easily with asynchronous interactions
– Coordinate parallel or sequential calls and deal with errors
• Example operations:
– Map
– Reduce
– Filter
– Waterfall
– Parallel
– ForEachOf
– Series
55. 55
async – execute in parallel
var async = require(‘async')
, fs = require(‘fs');
var obj = {dev: "/dev.json", test: "/test.json", prod: "/prod.json"};
var configs = {};
async.forEachOf(obj, function (value, key, callback) {
fs.readFile(__dirname + value, "utf8", function (err, data) {
if (err) return callback(err);
try {
configs[key] = JSON.parse(data);
} catch (e) {
return callback(e);
}
callback();
});
}, function (err) { // when all parallel actions are done – do something
if (err) { console.error(err.message); return;}
// configs is now a map of JSON data
doSomethingWith(configs);
})
For each property
in the object…
… execute this
function
Asynchronously
read the file .. and when done,
call this function
Notify forEachOf of the
completion of this branch
When all parallel branches under
forEachOf are done, do this function
56. 56
node-oracledb database driver
• The node-oracledb driver connects to Oracle Database
for fast and functional applications. It is an open source
project with Apache 2.0 license.
• It is maintained as an NPM package by Oracle and is under active
development.
• https://github.com/oracle/node-oracledb or
npm install node-oracledb
• Note: the Oracle Application Container Cloud preloads this driver to any
instance of a Node.js container – ready to connect to DBaaS or on
premises database
• Support for SQL and PL/SQL, Transaction Management, CLOBs and
BLOBs, Ref Cursors, Types and Collections, authentication, …
– Leveraging OCI Oracle (Fat) Client Libraries
57. 57
Connect to Oracle Database
from node application …
var oracledb = require('oracledb');
var dbConfig = require('./dbconfig.js');
oracledb.getConnection(
{
user : dbConfig.user,
password : dbConfig.password,
connectString : dbConfig.connectString
},
function(err, connection)
{
if (err) {
console.error(err.message);
return;
}
connection.execute(
...
Integration
Tier
59. 59
Oracle Application Container Cloud
for Node.js with DB driver
Application Container Cloud
Docker
Node.js ContainerREST clients
data-api
RES
T
API
DBaaS
Service
Binding
oracledb
DB driver
MyJCSDB
demos PDB1
H
R
60. 60
Next steps and beyond
• API Development
• Explore npm packages – 10Ks of them
– For SOAP, XML, IMDB, Dictionary, Geography, Text-to-Speech, Loopback mBaaS …
• Advanced topics: Web Sockets , security, scaling, H/A, state in a stateless
world, queuing and scheduling ‘background jobs’
• Creating your own modules and NPM packages
– Contribute to existing packages
• Promises – for an escape from callback hell
• IDEs – Visual Studio Code, WebStorm, NetBeans
• Debugging
• Testing
• Deployment
• Rethink mBaaS & iPaaS