SlideShare uma empresa Scribd logo
1 de 19
NASDANIKA FOUNDATION SERVER 
(NFS) 
v. 0.1.0 DOMAIN-CENTRIC WEB DEVELOPMENT
Overview 
 A full stack framework for building Java Web 
Applications running in an Equinox OSGi container. 
 EMF CDO repositories for object persistence. 
 Application/repository objects and services are 
accessible over HTTP through routes. 
 Fluent Java API for building HTML/Bootstrap UI and 
single-page applications. 
 Functional testing framework. 
 Application security model. 
 Workspace wizard generates application projects.
Logical architecture 
 Routing servlet dispatches 
requests to application objects 
using routes. 
HTTP 
Routing Servlet 
OSGi Service POJO CDO Object 
CDO Repository 
Routes
Physical architecture: 1-tier 
HTTP 
Routing Servlet 
Routes 
Services 
CDO Client (Session Provider) 
CDO Server & Repository 
Embedded 
database 
OSGi Container
Physical architecture: 2-tier 
HTTP 
Routing Servlet 
Routes 
Services 
CDO Client (Session Provider) 
CDO Server & Repository 
OSGi Container 
Database
Physical architecture: 3-tier 
HTTP 
Routes 
Services 
OSGi Container 
CDO Server & Repository 
OSGi Container 
Routing Servlet 
Database 
CDO Client (Session Provider) 
TCP/IP 
HTTP 
Routing Servlet 
Routes 
Services 
CDO Client (Session Provider) 
OSGi Container
Physical architecture: n-tier 
HTTP 
Routing Servlet 
Routes 
Services 
Eclipse Communication Framework 
Services 
CDO Client (Session Provider) 
TCP/IP 
CDO Server & Repository 
Database
Configuration Management 
Binary 
Repositories 
Source 
Repositories 
Desktop 
Server 
Cloud 
IoT 
Developer 
Build Server 
Products 
Bundles
Example 
IoT 
Corporate 
Line Of Business 
Region 
Dev eloper 
SCM 
Build Serv er Binary 
Repository 
Dev eloper 
SCM 
Build 
Serv er 
Binary 
Repository 
Dev eloper 
SCM 
Build 
Serv er 
Binary 
Repository 
Runtime 
Env ironment 
Core domain model(s) 
and functionality, e.g. 
Customer, Account, 
Transaction. 
Extensions of the core 
model(s) and 
functionality, e.g. 
Credit Card Account. 
Extensions of the LOB 
model(s) and 
functionality, e.g. US 
Credit Card Account, 
US Address.
NFS and the Cloud 
 NFS/Equinox product 
 Contains native launchers 
 Can be bundled with JRE 
 Can be deployed to an IaaS cloud 
 NFS/Equinox product with provisioning bundles 
 Can be considered a PaaS cloud of bundles 
 Hot deployment 
 Push – installation of new bundles/features 
 Pull – check for updates 
 NFS/Equinox product/application deployed to an IaaS cloud can be 
considered a SaaS cloud. 
SaaS 
Nasdanika Foundation Server 
Product 
… 
Bundle 
Bundle 
IaaS 
Provisioning 
Bundle 
Bundle 
Binary 
Repositories 
Bundles/Features
Routes 
 Types 
 Root route – matches a path pattern, can delegate to 
object routes. 
 Object route – matches a path pattern in the context 
of an object, can delegate to other object routes. 
 Extension route – matches extension. 
 Registration 
 Eclipse extension 
 OSGi service 
 Method annotations
Routing example 
 router – Alias of the routing servlet 
 ccview – Matches CDO View root route 
 elements/bank – Matches CDO repository resource with the 
name “bank” 
 L7 – Matches Customer object by its CDO ID 
 accounts.html – matches Customer’s routing method
Out of the box routes 
 CDO View/Transaction route – a root route that creates a 
View/Transaction context and delegates to object routes matching 
repository elements. 
 CDO Resource route – resolves resource objects and delegates to 
objects’ routes. 
 Object route – allows to access fields, invoke methods, load 
classloader resources relative to object’s class and absolute. Relative 
resource resolution traverses inheritance hierarchy. 
 EObject route – extends object route, provides access to attributes, 
references, and operations. Elements in “many” references are 
addressed by index, in EMap references by the key or by index. 
 Array, List, and Map routes – resolve collection elements by index or 
key. 
 Service route – root or object route which allows to invoke OSGi 
service methods
Security 
 Application code checks for permissions to execute actions on 
objects. 
 Security Policy groups fine-grained permissions into coarse 
grained permissions (roles) – implies/implied-by relationship. 
 Permissions can be granted to users and groups. 
 Security policy is declarative – it can be installed as an extension 
or a service or be stored in a CDO repository. 
 An application may be packaged with different security policies. 
 Permissions can have conditions, e.g. funds transfer permission 
may use transfer amount in its condition.
Polymorphic Web UI 
 HTML Factory - easily construct responsive Bootstrap-based 
Single Page Applications (SPA). 
 (E)Object can “host” one or more SPA’s. 
 Resource inheritance and method overriding – UI can be built in 
OO-way, e.g. 
 Base Account object provides a route for account summary 
panel. 
 Credit Card Account “overrides” icon resource of the Base 
Account and/or methods used in constructing the summary 
panel.
Functional Testing 
 Tests can be implemented as a fragment of the application 
plugin or as a standalone product. 
 NasdanikaWebTest framework provides means for building 
modular functional tests and generates HTML report with 
screenshots organized into slideshows.
UI Part 
 The Whiteboard pattern for UI construction 
 UI parts implementations 
 OSGi service 
 Eclipse extension 
 Defined for a target class and category 
 Invoked through WebContext.buildUICategory
Set up workspace(s) 
 Install NasdanikaWorkspace Wizard from 
http://www.nasdanika.org/server/repository 
 Install Maven Integration For Eclipse from the Eclipse Marketplace 
 Generate workspace projects – all in one workspace, or several 
workspaces. 
 A workspace is buildable and executable after generation – a “Walking 
Skeleton” of the future system.
References 
 Sources – https://github.com/Nasdanika/server 
 Wiki – https://github.com/Nasdanika/server/wiki 
 P2 repository - http://www.nasdanika.org/repository 
 Nasdanika HTML presentation - 
http://www.slideshare.net/PavelVlasov2/nasdanika-html-fluent- 
java-api-for-building-htmlbootstrap-web-ui

Mais conteúdo relacionado

Mais procurados

Microsoft Data Access Technologies
Microsoft Data Access TechnologiesMicrosoft Data Access Technologies
Microsoft Data Access TechnologiesDavid Chou
 
CSS Architecture: Writing Maintainable CSS
CSS Architecture: Writing Maintainable CSSCSS Architecture: Writing Maintainable CSS
CSS Architecture: Writing Maintainable CSSAlexei Skachykhin
 
Code igniter - A brief introduction
Code igniter - A brief introductionCode igniter - A brief introduction
Code igniter - A brief introductionCommit University
 
Alfresco As SharePoint Alternative - Architecture Overview
Alfresco As SharePoint Alternative - Architecture OverviewAlfresco As SharePoint Alternative - Architecture Overview
Alfresco As SharePoint Alternative - Architecture OverviewAlfresco Software
 
Innovate2011 Keys to Building OSLC Integrations
Innovate2011 Keys to Building OSLC IntegrationsInnovate2011 Keys to Building OSLC Integrations
Innovate2011 Keys to Building OSLC IntegrationsSteve Speicher
 
ATG Framework,Formhandlers,Pricing
ATG Framework,Formhandlers,PricingATG Framework,Formhandlers,Pricing
ATG Framework,Formhandlers,Pricingpraveen chinnam
 
Mule database-connectors
Mule database-connectorsMule database-connectors
Mule database-connectorsPhaniu
 
Representational State Transfer (REST)
Representational State Transfer (REST)Representational State Transfer (REST)
Representational State Transfer (REST)David Krmpotic
 
JAX-RS 2.0: RESTful Web Services
JAX-RS 2.0: RESTful Web ServicesJAX-RS 2.0: RESTful Web Services
JAX-RS 2.0: RESTful Web ServicesArun Gupta
 
SQL Server 2008 Positioning
SQL Server 2008 PositioningSQL Server 2008 Positioning
SQL Server 2008 Positioningukdpe
 
J2EE PPT --CINTHIYA.M Krishnammal college for women
J2EE PPT --CINTHIYA.M Krishnammal college for womenJ2EE PPT --CINTHIYA.M Krishnammal college for women
J2EE PPT --CINTHIYA.M Krishnammal college for womenlissa cidhi
 
High quality ap is with api platform
High quality ap is with api platformHigh quality ap is with api platform
High quality ap is with api platformNelson Kopliku
 
6.Live Framework 和Mesh Services
6.Live Framework 和Mesh Services6.Live Framework 和Mesh Services
6.Live Framework 和Mesh ServicesGaryYoung
 
Mobile Web Network
Mobile Web NetworkMobile Web Network
Mobile Web Networkchenjennan
 

Mais procurados (20)

Microsoft Data Access Technologies
Microsoft Data Access TechnologiesMicrosoft Data Access Technologies
Microsoft Data Access Technologies
 
CSS Architecture: Writing Maintainable CSS
CSS Architecture: Writing Maintainable CSSCSS Architecture: Writing Maintainable CSS
CSS Architecture: Writing Maintainable CSS
 
Web Services in the Real World
Web Services in the Real WorldWeb Services in the Real World
Web Services in the Real World
 
Resume_Brad_Johnson
Resume_Brad_JohnsonResume_Brad_Johnson
Resume_Brad_Johnson
 
Code igniter - A brief introduction
Code igniter - A brief introductionCode igniter - A brief introduction
Code igniter - A brief introduction
 
Alfresco As SharePoint Alternative - Architecture Overview
Alfresco As SharePoint Alternative - Architecture OverviewAlfresco As SharePoint Alternative - Architecture Overview
Alfresco As SharePoint Alternative - Architecture Overview
 
Innovate2011 Keys to Building OSLC Integrations
Innovate2011 Keys to Building OSLC IntegrationsInnovate2011 Keys to Building OSLC Integrations
Innovate2011 Keys to Building OSLC Integrations
 
ATG Framework,Formhandlers,Pricing
ATG Framework,Formhandlers,PricingATG Framework,Formhandlers,Pricing
ATG Framework,Formhandlers,Pricing
 
Data In Cloud
Data In CloudData In Cloud
Data In Cloud
 
Mule database-connectors
Mule database-connectorsMule database-connectors
Mule database-connectors
 
Representational State Transfer (REST)
Representational State Transfer (REST)Representational State Transfer (REST)
Representational State Transfer (REST)
 
JAX-RS 2.0: RESTful Web Services
JAX-RS 2.0: RESTful Web ServicesJAX-RS 2.0: RESTful Web Services
JAX-RS 2.0: RESTful Web Services
 
Day7
Day7Day7
Day7
 
SQL Server 2008 Positioning
SQL Server 2008 PositioningSQL Server 2008 Positioning
SQL Server 2008 Positioning
 
J2EE PPT --CINTHIYA.M Krishnammal college for women
J2EE PPT --CINTHIYA.M Krishnammal college for womenJ2EE PPT --CINTHIYA.M Krishnammal college for women
J2EE PPT --CINTHIYA.M Krishnammal college for women
 
High quality ap is with api platform
High quality ap is with api platformHigh quality ap is with api platform
High quality ap is with api platform
 
Docker meetup-nyc-v1
Docker meetup-nyc-v1Docker meetup-nyc-v1
Docker meetup-nyc-v1
 
Building REST and Hypermedia APIs with PHP
Building REST and Hypermedia APIs with PHPBuilding REST and Hypermedia APIs with PHP
Building REST and Hypermedia APIs with PHP
 
6.Live Framework 和Mesh Services
6.Live Framework 和Mesh Services6.Live Framework 和Mesh Services
6.Live Framework 和Mesh Services
 
Mobile Web Network
Mobile Web NetworkMobile Web Network
Mobile Web Network
 

Semelhante a Nasdanika Foundation Server

ArcReady - Architecting For The Cloud
ArcReady - Architecting For The CloudArcReady - Architecting For The Cloud
ArcReady - Architecting For The CloudMicrosoft ArcReady
 
Open stack ocata summit enabling aws lambda-like functionality with openstac...
Open stack ocata summit  enabling aws lambda-like functionality with openstac...Open stack ocata summit  enabling aws lambda-like functionality with openstac...
Open stack ocata summit enabling aws lambda-like functionality with openstac...Shaun Murakami
 
Web API or WCF - An Architectural Comparison
Web API or WCF - An Architectural ComparisonWeb API or WCF - An Architectural Comparison
Web API or WCF - An Architectural ComparisonAdnan Masood
 
Seattle StrongLoop Node.js Workshop
Seattle StrongLoop Node.js WorkshopSeattle StrongLoop Node.js Workshop
Seattle StrongLoop Node.js WorkshopJimmy Guerrero
 
Enterprise Software Architecture
Enterprise Software ArchitectureEnterprise Software Architecture
Enterprise Software Architecturerahmed_sct
 
D22 Portlet Development With Open Source Frameworks
D22 Portlet Development With Open Source FrameworksD22 Portlet Development With Open Source Frameworks
D22 Portlet Development With Open Source FrameworksSunil Patil
 
D22 portlet development with open source frameworks
D22 portlet development with open source frameworksD22 portlet development with open source frameworks
D22 portlet development with open source frameworksSunil Patil
 
Stefaan Ponnet, Fusebox
Stefaan Ponnet, FuseboxStefaan Ponnet, Fusebox
Stefaan Ponnet, Fuseboxnascomgenk
 
Approaches to mobile site development
Approaches to mobile site developmentApproaches to mobile site development
Approaches to mobile site developmentErik Mitchell
 
Introduction to the Client OM in SharePoint 2010
Introduction to the Client OM in SharePoint 2010Introduction to the Client OM in SharePoint 2010
Introduction to the Client OM in SharePoint 2010Ben Robb
 
Silverlight Development & The Model-View-ViewModel Pattern
Silverlight Development & The Model-View-ViewModel PatternSilverlight Development & The Model-View-ViewModel Pattern
Silverlight Development & The Model-View-ViewModel PatternDerek Novavi
 
Getting Started with ASP.NET Core 1.0 (formerly ASP.NET 5)
Getting Started with ASP.NET Core 1.0 (formerly ASP.NET 5)Getting Started with ASP.NET Core 1.0 (formerly ASP.NET 5)
Getting Started with ASP.NET Core 1.0 (formerly ASP.NET 5)Arrow Consulting & Design
 
Sword Or2008 Julieallinson
Sword Or2008 JulieallinsonSword Or2008 Julieallinson
Sword Or2008 JulieallinsonJulie Allinson
 
Onion Architecture with S#arp
Onion Architecture with S#arpOnion Architecture with S#arp
Onion Architecture with S#arpGary Pedretti
 

Semelhante a Nasdanika Foundation Server (20)

ArcReady - Architecting For The Cloud
ArcReady - Architecting For The CloudArcReady - Architecting For The Cloud
ArcReady - Architecting For The Cloud
 
Open stack ocata summit enabling aws lambda-like functionality with openstac...
Open stack ocata summit  enabling aws lambda-like functionality with openstac...Open stack ocata summit  enabling aws lambda-like functionality with openstac...
Open stack ocata summit enabling aws lambda-like functionality with openstac...
 
Web API or WCF - An Architectural Comparison
Web API or WCF - An Architectural ComparisonWeb API or WCF - An Architectural Comparison
Web API or WCF - An Architectural Comparison
 
Seattle StrongLoop Node.js Workshop
Seattle StrongLoop Node.js WorkshopSeattle StrongLoop Node.js Workshop
Seattle StrongLoop Node.js Workshop
 
Enterprise Software Architecture
Enterprise Software ArchitectureEnterprise Software Architecture
Enterprise Software Architecture
 
Advanced JavaScript
Advanced JavaScriptAdvanced JavaScript
Advanced JavaScript
 
Windows Azure
Windows AzureWindows Azure
Windows Azure
 
D22 Portlet Development With Open Source Frameworks
D22 Portlet Development With Open Source FrameworksD22 Portlet Development With Open Source Frameworks
D22 Portlet Development With Open Source Frameworks
 
D22 portlet development with open source frameworks
D22 portlet development with open source frameworksD22 portlet development with open source frameworks
D22 portlet development with open source frameworks
 
Databasecentricapisonthecloudusingplsqlandnodejscon3153oow2016 160922021655
Databasecentricapisonthecloudusingplsqlandnodejscon3153oow2016 160922021655Databasecentricapisonthecloudusingplsqlandnodejscon3153oow2016 160922021655
Databasecentricapisonthecloudusingplsqlandnodejscon3153oow2016 160922021655
 
IBM WebSphere Portal
IBM WebSphere PortalIBM WebSphere Portal
IBM WebSphere Portal
 
Stefaan Ponnet, Fusebox
Stefaan Ponnet, FuseboxStefaan Ponnet, Fusebox
Stefaan Ponnet, Fusebox
 
Approaches to mobile site development
Approaches to mobile site developmentApproaches to mobile site development
Approaches to mobile site development
 
Introduction to the Client OM in SharePoint 2010
Introduction to the Client OM in SharePoint 2010Introduction to the Client OM in SharePoint 2010
Introduction to the Client OM in SharePoint 2010
 
Asp.net
Asp.netAsp.net
Asp.net
 
Silverlight Development & The Model-View-ViewModel Pattern
Silverlight Development & The Model-View-ViewModel PatternSilverlight Development & The Model-View-ViewModel Pattern
Silverlight Development & The Model-View-ViewModel Pattern
 
CouchDB
CouchDBCouchDB
CouchDB
 
Getting Started with ASP.NET Core 1.0 (formerly ASP.NET 5)
Getting Started with ASP.NET Core 1.0 (formerly ASP.NET 5)Getting Started with ASP.NET Core 1.0 (formerly ASP.NET 5)
Getting Started with ASP.NET Core 1.0 (formerly ASP.NET 5)
 
Sword Or2008 Julieallinson
Sword Or2008 JulieallinsonSword Or2008 Julieallinson
Sword Or2008 Julieallinson
 
Onion Architecture with S#arp
Onion Architecture with S#arpOnion Architecture with S#arp
Onion Architecture with S#arp
 

Último

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 

Último (20)

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 

Nasdanika Foundation Server

  • 1. NASDANIKA FOUNDATION SERVER (NFS) v. 0.1.0 DOMAIN-CENTRIC WEB DEVELOPMENT
  • 2. Overview  A full stack framework for building Java Web Applications running in an Equinox OSGi container.  EMF CDO repositories for object persistence.  Application/repository objects and services are accessible over HTTP through routes.  Fluent Java API for building HTML/Bootstrap UI and single-page applications.  Functional testing framework.  Application security model.  Workspace wizard generates application projects.
  • 3. Logical architecture  Routing servlet dispatches requests to application objects using routes. HTTP Routing Servlet OSGi Service POJO CDO Object CDO Repository Routes
  • 4. Physical architecture: 1-tier HTTP Routing Servlet Routes Services CDO Client (Session Provider) CDO Server & Repository Embedded database OSGi Container
  • 5. Physical architecture: 2-tier HTTP Routing Servlet Routes Services CDO Client (Session Provider) CDO Server & Repository OSGi Container Database
  • 6. Physical architecture: 3-tier HTTP Routes Services OSGi Container CDO Server & Repository OSGi Container Routing Servlet Database CDO Client (Session Provider) TCP/IP HTTP Routing Servlet Routes Services CDO Client (Session Provider) OSGi Container
  • 7. Physical architecture: n-tier HTTP Routing Servlet Routes Services Eclipse Communication Framework Services CDO Client (Session Provider) TCP/IP CDO Server & Repository Database
  • 8. Configuration Management Binary Repositories Source Repositories Desktop Server Cloud IoT Developer Build Server Products Bundles
  • 9. Example IoT Corporate Line Of Business Region Dev eloper SCM Build Serv er Binary Repository Dev eloper SCM Build Serv er Binary Repository Dev eloper SCM Build Serv er Binary Repository Runtime Env ironment Core domain model(s) and functionality, e.g. Customer, Account, Transaction. Extensions of the core model(s) and functionality, e.g. Credit Card Account. Extensions of the LOB model(s) and functionality, e.g. US Credit Card Account, US Address.
  • 10. NFS and the Cloud  NFS/Equinox product  Contains native launchers  Can be bundled with JRE  Can be deployed to an IaaS cloud  NFS/Equinox product with provisioning bundles  Can be considered a PaaS cloud of bundles  Hot deployment  Push – installation of new bundles/features  Pull – check for updates  NFS/Equinox product/application deployed to an IaaS cloud can be considered a SaaS cloud. SaaS Nasdanika Foundation Server Product … Bundle Bundle IaaS Provisioning Bundle Bundle Binary Repositories Bundles/Features
  • 11. Routes  Types  Root route – matches a path pattern, can delegate to object routes.  Object route – matches a path pattern in the context of an object, can delegate to other object routes.  Extension route – matches extension.  Registration  Eclipse extension  OSGi service  Method annotations
  • 12. Routing example  router – Alias of the routing servlet  ccview – Matches CDO View root route  elements/bank – Matches CDO repository resource with the name “bank”  L7 – Matches Customer object by its CDO ID  accounts.html – matches Customer’s routing method
  • 13. Out of the box routes  CDO View/Transaction route – a root route that creates a View/Transaction context and delegates to object routes matching repository elements.  CDO Resource route – resolves resource objects and delegates to objects’ routes.  Object route – allows to access fields, invoke methods, load classloader resources relative to object’s class and absolute. Relative resource resolution traverses inheritance hierarchy.  EObject route – extends object route, provides access to attributes, references, and operations. Elements in “many” references are addressed by index, in EMap references by the key or by index.  Array, List, and Map routes – resolve collection elements by index or key.  Service route – root or object route which allows to invoke OSGi service methods
  • 14. Security  Application code checks for permissions to execute actions on objects.  Security Policy groups fine-grained permissions into coarse grained permissions (roles) – implies/implied-by relationship.  Permissions can be granted to users and groups.  Security policy is declarative – it can be installed as an extension or a service or be stored in a CDO repository.  An application may be packaged with different security policies.  Permissions can have conditions, e.g. funds transfer permission may use transfer amount in its condition.
  • 15. Polymorphic Web UI  HTML Factory - easily construct responsive Bootstrap-based Single Page Applications (SPA).  (E)Object can “host” one or more SPA’s.  Resource inheritance and method overriding – UI can be built in OO-way, e.g.  Base Account object provides a route for account summary panel.  Credit Card Account “overrides” icon resource of the Base Account and/or methods used in constructing the summary panel.
  • 16. Functional Testing  Tests can be implemented as a fragment of the application plugin or as a standalone product.  NasdanikaWebTest framework provides means for building modular functional tests and generates HTML report with screenshots organized into slideshows.
  • 17. UI Part  The Whiteboard pattern for UI construction  UI parts implementations  OSGi service  Eclipse extension  Defined for a target class and category  Invoked through WebContext.buildUICategory
  • 18. Set up workspace(s)  Install NasdanikaWorkspace Wizard from http://www.nasdanika.org/server/repository  Install Maven Integration For Eclipse from the Eclipse Marketplace  Generate workspace projects – all in one workspace, or several workspaces.  A workspace is buildable and executable after generation – a “Walking Skeleton” of the future system.
  • 19. References  Sources – https://github.com/Nasdanika/server  Wiki – https://github.com/Nasdanika/server/wiki  P2 repository - http://www.nasdanika.org/repository  Nasdanika HTML presentation - http://www.slideshare.net/PavelVlasov2/nasdanika-html-fluent- java-api-for-building-htmlbootstrap-web-ui