SlideShare a Scribd company logo
1 of 7
Download to read offline
Living Lab
e-SUAP
General Software
Architecture
Main objectives
 Designed with the cloud in the mind (but also available on-premise):
 Highly scalable, thanks to rich client implementation and SPA approach;
 Low bandwidth consumption for server round-trips:
 Once Javascript and views are downloaded and cached, only data (with
and without changetracking info) will go over the “wire”;
 Rich full-domain and data-centric API approach, similar to Microsoft .NET- or Java-
based smart clients and server applications;
 RAD development with deep integration with Visual Studio 2013 and Microsoft
TypeScript:
 Silverlight RIA Services-style HTML5 implementation: low bandwidth usage,
highly maintainable code base, etc.;
 Client-side development “experience”, very similar to WPF and Silverlight
implementation; based on MVVM pattern; rich experience for TDD (Test Driven
Development);
 Write once, deploy on many browsers/devices through methodical template mediation
techniques;
 Test driven development in every layer, thanks to rigorous MVVM implementation and
DDD principles:
 From the ubiquitous language description of the application to implement,
straight to the test-driven code and finally the application code;
 Business process-driven layer behind an Enterprise Service Bus, with an anticorruption
layer for high security implementation;
 Highly integrated test cases: enforces continuous integration.
Layered Architecture
Domain model, application and business logic, infrastructure, user interface and other layers are
highly isolated. Applications are organized in different domains, modules and layers. Every layer
is highly cohesive and depends only on the lower layers. For the same reason every layer is
highly decoupled from each other layer. Application and business logic is highly isolated from
user interface, application and infrastructure layers. Different domains are bound with service
interfaces and connected through publish and subscribe integration patterns through an
Enterprise Service Bus for major decoupling, scalability and distribution of workloads under
heavy demand:
 Entities and value objects define the state of every single object;
 Domain events flows through the Enterprise Service Bus and reaches consumers
through appropriate ports;
 Services and controllers makes the business logic reachable from the outside world
(with appropriate security concerns and informations every time);
 A modular architecture is provided for every component in its respective layers.
Each module has potentially independent deployment and operation policies and
is loosely coupled with other components in the system;
 Repository patterns decouple the business logic from the persistence and from
external services, through appropriate domain entities:
 Each consumer only see an in-memory collection of all objects and
aggregate types;
 Thanks to a global, well-known and extensible IRepository<> interface and
a corresponding unit of work (UOW) generic interface, each domain entity
is automatically addable, removable, searchable through rich criteria
objects (based on LINQ):
 As a direct result, developers can keep application logic strictly
focused on business requirements;
 Factory and Service Locators shift the responsibility for creating complex objects,
aggregates and services to separate objects that are part of the domain design
but have no responsibility in the domain model . Concrete classes and
implementations are not directly referenced, thanks to “opaque” interfaces which
abstract client users from the concrete implementation objects;
 Deep modeling: model-first approach gives the entire architecture a “Supple
design” characteristic. Using the development environment both for coding and
for designing gives developers a clearer perspective of what they are
implementing, by means of simpler refactoring and remodeling tools within the
development environment. The net effect is that 1)Behaviors are more obvious;
2)Cost of changes is reduced; 3)The working environment is more appealing to
software developers;
 Thanks to claim-based security, an orthogonal anti-corruption layer provides
stateless security features that flow with message-oriented datagrams through
several layers to the client, and back.
RAD Development
 Behavior and test-driven development: tests are integral parts of the delivered
application and are directly hosted in the development environment;
 Entirely designed with WPF and RIA Services experience in the mind;
 First-class Microsoft TypeScript support;
 Total Entity Framework Experience on the clientside, too;
 Client-side data entities generated through T4 templates directly from full Entity
Framework models:
 Entity Framework has been adopted as ORM, client-side TypeScript full-class
support: inheritance, abstraction, complex types, code-first or model-first
approach; client-side Object Change Tracking implemented directly in the
single-page application client, based on javascript; object identity and entity
graph serialization from and to Web-API layers, thanks to custom .NET <->
TypeScript serializer; JavaScript/TypeScript client-side, out of the box
support for one-to-many, many-to-one, many-to-many relations;
 Client-side offline scenarios with full data persistence and change tracking
support;
 Partial class support for data aggregates and UI-oriented value objects, via
serialization surrogates;
 Based on Open Source HOT-Towel template, Durandal, Knockout etc.:
 Fast and powerful user interface implementation, styling, MVVM testing and
many other goodies;
 Full browser- and device-specific HTML5 support;
 Each user interface “use case” is simply a template:
 Thanks to UI component “indirection”, you can switch views to different device
by just changing the template library, without editing the code;
 Rigorous template implementation pattern;
 Reuse of all user interface components, from individual templates up to a complex
views, thanks to Knockout and Durandal open source libraries;
 User interface has its own object model, just like XAML:
 Serialization and deserialization of user interface fragments is made possible by
powerful, custom Javascript reflection and serialization/deserialization
implementation, both part of the foundation classes;
 In browser - runtime user interface designer reads and writes JAML (abbreviation for
JSON Application Markup Language);
 Validation and other features supported through repository based techniques;
 Thanks to deep claim-based security implementation, at any time the security context
of the user who caused a transformation action is made available to the code
executed on the server side.
Business Processes
 Business process entities are defined in a common domain module;
 Proposed solution is not strictly bound to specific Business Process Engine;
 Adopters are free to choose different solutions for long-term business process
implementations;
 A straightforward implementation for Microsoft Biztalk Server is provided out of the box:
 Business Activity Monitoring;
 KPI: BAM projects support integration with MS SQL analysis services. BAM
portal furnishes pivot tables and cubes that can also be exported to or
attached from BI tools and can be integrated into Excel with real-time live
visualization of business process activities;
 Graphic IDE and Parties (users) can be handled with Visual Studio and BTS
Administration Console or programmatically, thanks to an Application
Programming Interface (API) that is available out of the box;
 Process components are assemblies that can be stored, distributed and reused
through internal, private and public port modifiers.

More Related Content

What's hot

Managing a complex database toolbar application for ie, chrome & firefox
Managing a complex database toolbar application for ie, chrome & firefoxManaging a complex database toolbar application for ie, chrome & firefox
Managing a complex database toolbar application for ie, chrome & firefoxMike Taylor
 
WSO2 Complex Event Processor - Product Overview
WSO2 Complex Event Processor - Product OverviewWSO2 Complex Event Processor - Product Overview
WSO2 Complex Event Processor - Product OverviewWSO2
 
Configurable Alerts Framework for PeopleSoft
Configurable Alerts Framework for PeopleSoftConfigurable Alerts Framework for PeopleSoft
Configurable Alerts Framework for PeopleSoftLeandro Baca
 
ESF .NET - Accelerated Framework for Enterprise System Re-Engineering
ESF .NET - Accelerated Framework for Enterprise System Re-EngineeringESF .NET - Accelerated Framework for Enterprise System Re-Engineering
ESF .NET - Accelerated Framework for Enterprise System Re-EngineeringVisionet Systems, Inc.
 
WSO2- OSC Korea - Accelerating Digital Businesses with APIs
WSO2- OSC Korea - Accelerating Digital Businesses with APIsWSO2- OSC Korea - Accelerating Digital Businesses with APIs
WSO2- OSC Korea - Accelerating Digital Businesses with APIsWSO2
 
Resume_SAJID_ALI
Resume_SAJID_ALIResume_SAJID_ALI
Resume_SAJID_ALISajid Ali
 
[MBF2] Plate-forme Salesforce par Peter Chittum
[MBF2] Plate-forme Salesforce par Peter Chittum[MBF2] Plate-forme Salesforce par Peter Chittum
[MBF2] Plate-forme Salesforce par Peter ChittumBeMyApp
 
WSO2 Business Process Server - Product Overview
WSO2 Business Process Server - Product OverviewWSO2 Business Process Server - Product Overview
WSO2 Business Process Server - Product OverviewWSO2
 
Mobilizing Oracle Applications ERP - A Whitepaper by RapidValue Solutions
Mobilizing Oracle Applications ERP - A Whitepaper by RapidValue SolutionsMobilizing Oracle Applications ERP - A Whitepaper by RapidValue Solutions
Mobilizing Oracle Applications ERP - A Whitepaper by RapidValue SolutionsRapidValue
 
JAVA J2EE LEAD coming out of CITI
JAVA J2EE LEAD coming out of CITIJAVA J2EE LEAD coming out of CITI
JAVA J2EE LEAD coming out of CITIvravi123
 
ArchitectureAndPlatformsAspects
ArchitectureAndPlatformsAspectsArchitectureAndPlatformsAspects
ArchitectureAndPlatformsAspectsManeesh Innani
 
Rkd Api Overview
Rkd Api OverviewRkd Api Overview
Rkd Api Overviewdquack
 
Microservices: A Step Towards Modernizing Healthcare Applications
Microservices: A Step Towards Modernizing Healthcare ApplicationsMicroservices: A Step Towards Modernizing Healthcare Applications
Microservices: A Step Towards Modernizing Healthcare ApplicationsCitiusTech
 
WSO2 Dashboard Server - Product Overview
WSO2 Dashboard Server - Product OverviewWSO2 Dashboard Server - Product Overview
WSO2 Dashboard Server - Product OverviewWSO2
 
Xenapp deployment-blueprint
Xenapp deployment-blueprintXenapp deployment-blueprint
Xenapp deployment-blueprintKunKun Ng
 
Key elements of security threat
Key elements of security threatKey elements of security threat
Key elements of security threatAraf Karsh Hamid
 

What's hot (19)

Managing a complex database toolbar application for ie, chrome & firefox
Managing a complex database toolbar application for ie, chrome & firefoxManaging a complex database toolbar application for ie, chrome & firefox
Managing a complex database toolbar application for ie, chrome & firefox
 
WSO2 Complex Event Processor - Product Overview
WSO2 Complex Event Processor - Product OverviewWSO2 Complex Event Processor - Product Overview
WSO2 Complex Event Processor - Product Overview
 
Configurable Alerts Framework for PeopleSoft
Configurable Alerts Framework for PeopleSoftConfigurable Alerts Framework for PeopleSoft
Configurable Alerts Framework for PeopleSoft
 
ESF .NET - Accelerated Framework for Enterprise System Re-Engineering
ESF .NET - Accelerated Framework for Enterprise System Re-EngineeringESF .NET - Accelerated Framework for Enterprise System Re-Engineering
ESF .NET - Accelerated Framework for Enterprise System Re-Engineering
 
WSO2- OSC Korea - Accelerating Digital Businesses with APIs
WSO2- OSC Korea - Accelerating Digital Businesses with APIsWSO2- OSC Korea - Accelerating Digital Businesses with APIs
WSO2- OSC Korea - Accelerating Digital Businesses with APIs
 
Ernest Morariu
Ernest MorariuErnest Morariu
Ernest Morariu
 
Resume_SAJID_ALI
Resume_SAJID_ALIResume_SAJID_ALI
Resume_SAJID_ALI
 
[MBF2] Plate-forme Salesforce par Peter Chittum
[MBF2] Plate-forme Salesforce par Peter Chittum[MBF2] Plate-forme Salesforce par Peter Chittum
[MBF2] Plate-forme Salesforce par Peter Chittum
 
WSO2 Business Process Server - Product Overview
WSO2 Business Process Server - Product OverviewWSO2 Business Process Server - Product Overview
WSO2 Business Process Server - Product Overview
 
Mobilizing Oracle Applications ERP - A Whitepaper by RapidValue Solutions
Mobilizing Oracle Applications ERP - A Whitepaper by RapidValue SolutionsMobilizing Oracle Applications ERP - A Whitepaper by RapidValue Solutions
Mobilizing Oracle Applications ERP - A Whitepaper by RapidValue Solutions
 
JAVA J2EE LEAD coming out of CITI
JAVA J2EE LEAD coming out of CITIJAVA J2EE LEAD coming out of CITI
JAVA J2EE LEAD coming out of CITI
 
ArchitectureAndPlatformsAspects
ArchitectureAndPlatformsAspectsArchitectureAndPlatformsAspects
ArchitectureAndPlatformsAspects
 
Rkd Api Overview
Rkd Api OverviewRkd Api Overview
Rkd Api Overview
 
Microservices: A Step Towards Modernizing Healthcare Applications
Microservices: A Step Towards Modernizing Healthcare ApplicationsMicroservices: A Step Towards Modernizing Healthcare Applications
Microservices: A Step Towards Modernizing Healthcare Applications
 
WSO2 Dashboard Server - Product Overview
WSO2 Dashboard Server - Product OverviewWSO2 Dashboard Server - Product Overview
WSO2 Dashboard Server - Product Overview
 
Xenapp deployment-blueprint
Xenapp deployment-blueprintXenapp deployment-blueprint
Xenapp deployment-blueprint
 
Legacy Migration
Legacy MigrationLegacy Migration
Legacy Migration
 
Key elements of security threat
Key elements of security threatKey elements of security threat
Key elements of security threat
 
Single-SignOn Intranet Portal On DotNetNuke
Single-SignOn Intranet Portal On DotNetNukeSingle-SignOn Intranet Portal On DotNetNuke
Single-SignOn Intranet Portal On DotNetNuke
 

Viewers also liked

SUE AGILE MVVM (Italian)
SUE AGILE MVVM (Italian)SUE AGILE MVVM (Italian)
SUE AGILE MVVM (Italian)Sabino Labarile
 
e-SUAP - Data access server side (English)
e-SUAP - Data access server side (English)e-SUAP - Data access server side (English)
e-SUAP - Data access server side (English)Sabino Labarile
 
SUE AGILE Architecture (English)
SUE AGILE Architecture (English)SUE AGILE Architecture (English)
SUE AGILE Architecture (English)Sabino Labarile
 
E suap - tecnologie client
E suap - tecnologie client E suap - tecnologie client
E suap - tecnologie client Sabino Labarile
 
e-Suap Inista 2014 (International Symposium on INnovation in Intelligent SysT...
e-Suap Inista 2014 (International Symposium on INnovation in Intelligent SysT...e-Suap Inista 2014 (International Symposium on INnovation in Intelligent SysT...
e-Suap Inista 2014 (International Symposium on INnovation in Intelligent SysT...Sabino Labarile
 
e-suap - client technologies- english version
e-suap - client technologies- english versione-suap - client technologies- english version
e-suap - client technologies- english versionSabino Labarile
 
e-SUAP - Security - Windows azure access control list (english version)
e-SUAP - Security - Windows azure access control list (english version)e-SUAP - Security - Windows azure access control list (english version)
e-SUAP - Security - Windows azure access control list (english version)Sabino Labarile
 
SUE AGILE - Presentazione della piattaforma
SUE AGILE - Presentazione della piattaforma SUE AGILE - Presentazione della piattaforma
SUE AGILE - Presentazione della piattaforma Sabino Labarile
 
SUE AGILE MVVM (English)
SUE AGILE MVVM (English)SUE AGILE MVVM (English)
SUE AGILE MVVM (English)Sabino Labarile
 
e-SUAP - Ochestration building block (italian)
e-SUAP - Ochestration building block (italian)e-SUAP - Ochestration building block (italian)
e-SUAP - Ochestration building block (italian)Sabino Labarile
 
e-suap - general software architecture (English)
e-suap - general software architecture (English)e-suap - general software architecture (English)
e-suap - general software architecture (English)Sabino Labarile
 
SUE AGILE Framework (English)
SUE AGILE Framework (English)SUE AGILE Framework (English)
SUE AGILE Framework (English)Sabino Labarile
 
e-SUAP - Security - Windows azure access control list (italian version)
e-SUAP - Security - Windows azure access control list (italian version)e-SUAP - Security - Windows azure access control list (italian version)
e-SUAP - Security - Windows azure access control list (italian version)Sabino Labarile
 
e-SUAP - Ochestration building block (english)
e-SUAP - Ochestration building block (english)e-SUAP - Ochestration building block (english)
e-SUAP - Ochestration building block (english)Sabino Labarile
 
Manuale utente SUE AGILE
Manuale utente SUE AGILEManuale utente SUE AGILE
Manuale utente SUE AGILESabino Labarile
 
e-SUAP - General software architecture (Italiano)
e-SUAP - General software architecture (Italiano)e-SUAP - General software architecture (Italiano)
e-SUAP - General software architecture (Italiano)Sabino Labarile
 
E suap - cloud computing (Italian)
E suap - cloud computing (Italian)E suap - cloud computing (Italian)
E suap - cloud computing (Italian)Sabino Labarile
 
e-suap cloud computing- English version
e-suap cloud computing- English versione-suap cloud computing- English version
e-suap cloud computing- English versionSabino Labarile
 
Presentazione e-SUAP Forum PA - Roma - Palazzo dei congressi - 29 Maggio 2014
Presentazione e-SUAP Forum PA - Roma - Palazzo dei congressi - 29 Maggio 2014Presentazione e-SUAP Forum PA - Roma - Palazzo dei congressi - 29 Maggio 2014
Presentazione e-SUAP Forum PA - Roma - Palazzo dei congressi - 29 Maggio 2014Sabino Labarile
 

Viewers also liked (19)

SUE AGILE MVVM (Italian)
SUE AGILE MVVM (Italian)SUE AGILE MVVM (Italian)
SUE AGILE MVVM (Italian)
 
e-SUAP - Data access server side (English)
e-SUAP - Data access server side (English)e-SUAP - Data access server side (English)
e-SUAP - Data access server side (English)
 
SUE AGILE Architecture (English)
SUE AGILE Architecture (English)SUE AGILE Architecture (English)
SUE AGILE Architecture (English)
 
E suap - tecnologie client
E suap - tecnologie client E suap - tecnologie client
E suap - tecnologie client
 
e-Suap Inista 2014 (International Symposium on INnovation in Intelligent SysT...
e-Suap Inista 2014 (International Symposium on INnovation in Intelligent SysT...e-Suap Inista 2014 (International Symposium on INnovation in Intelligent SysT...
e-Suap Inista 2014 (International Symposium on INnovation in Intelligent SysT...
 
e-suap - client technologies- english version
e-suap - client technologies- english versione-suap - client technologies- english version
e-suap - client technologies- english version
 
e-SUAP - Security - Windows azure access control list (english version)
e-SUAP - Security - Windows azure access control list (english version)e-SUAP - Security - Windows azure access control list (english version)
e-SUAP - Security - Windows azure access control list (english version)
 
SUE AGILE - Presentazione della piattaforma
SUE AGILE - Presentazione della piattaforma SUE AGILE - Presentazione della piattaforma
SUE AGILE - Presentazione della piattaforma
 
SUE AGILE MVVM (English)
SUE AGILE MVVM (English)SUE AGILE MVVM (English)
SUE AGILE MVVM (English)
 
e-SUAP - Ochestration building block (italian)
e-SUAP - Ochestration building block (italian)e-SUAP - Ochestration building block (italian)
e-SUAP - Ochestration building block (italian)
 
e-suap - general software architecture (English)
e-suap - general software architecture (English)e-suap - general software architecture (English)
e-suap - general software architecture (English)
 
SUE AGILE Framework (English)
SUE AGILE Framework (English)SUE AGILE Framework (English)
SUE AGILE Framework (English)
 
e-SUAP - Security - Windows azure access control list (italian version)
e-SUAP - Security - Windows azure access control list (italian version)e-SUAP - Security - Windows azure access control list (italian version)
e-SUAP - Security - Windows azure access control list (italian version)
 
e-SUAP - Ochestration building block (english)
e-SUAP - Ochestration building block (english)e-SUAP - Ochestration building block (english)
e-SUAP - Ochestration building block (english)
 
Manuale utente SUE AGILE
Manuale utente SUE AGILEManuale utente SUE AGILE
Manuale utente SUE AGILE
 
e-SUAP - General software architecture (Italiano)
e-SUAP - General software architecture (Italiano)e-SUAP - General software architecture (Italiano)
e-SUAP - General software architecture (Italiano)
 
E suap - cloud computing (Italian)
E suap - cloud computing (Italian)E suap - cloud computing (Italian)
E suap - cloud computing (Italian)
 
e-suap cloud computing- English version
e-suap cloud computing- English versione-suap cloud computing- English version
e-suap cloud computing- English version
 
Presentazione e-SUAP Forum PA - Roma - Palazzo dei congressi - 29 Maggio 2014
Presentazione e-SUAP Forum PA - Roma - Palazzo dei congressi - 29 Maggio 2014Presentazione e-SUAP Forum PA - Roma - Palazzo dei congressi - 29 Maggio 2014
Presentazione e-SUAP Forum PA - Roma - Palazzo dei congressi - 29 Maggio 2014
 

Similar to e-SUAP - General software architecture (English)

Soa architect summit mobile 2013_mar [compatibility mode]
Soa architect summit mobile 2013_mar [compatibility mode]Soa architect summit mobile 2013_mar [compatibility mode]
Soa architect summit mobile 2013_mar [compatibility mode]Sreeni Pamidala
 
Ora_Case_Study_Oracle Application Development Framework
Ora_Case_Study_Oracle Application Development FrameworkOra_Case_Study_Oracle Application Development Framework
Ora_Case_Study_Oracle Application Development FrameworkNeha Singh
 
Microsoft .Net Professional
Microsoft .Net ProfessionalMicrosoft .Net Professional
Microsoft .Net ProfessionalAhsan Ahmed
 
Convertigo Mobility Platform | Mobile Application Development for Enterprises...
Convertigo Mobility Platform | Mobile Application Development for Enterprises...Convertigo Mobility Platform | Mobile Application Development for Enterprises...
Convertigo Mobility Platform | Mobile Application Development for Enterprises...Convertigo | MADP & MBaaS
 
Full lifecycle of a microservice
Full lifecycle of a microserviceFull lifecycle of a microservice
Full lifecycle of a microserviceLuigi Bennardis
 
Vadiraj Raikar_Cloud Automation_DevOps
Vadiraj Raikar_Cloud Automation_DevOpsVadiraj Raikar_Cloud Automation_DevOps
Vadiraj Raikar_Cloud Automation_DevOpsVadiraj Raikar
 
Components of a Generic Web Application Architecture
Components of  a Generic Web Application ArchitectureComponents of  a Generic Web Application Architecture
Components of a Generic Web Application ArchitectureMadonnaLamin1
 
Web Application Architecture: A Comprehensive Guide for Success in 2023
Web Application Architecture: A Comprehensive Guide for Success in 2023Web Application Architecture: A Comprehensive Guide for Success in 2023
Web Application Architecture: A Comprehensive Guide for Success in 2023stevefary
 
A Comprehensive Guide to Web Application Architecture
A Comprehensive Guide to Web Application ArchitectureA Comprehensive Guide to Web Application Architecture
A Comprehensive Guide to Web Application Architecturestevefary
 
xRM - as an Evolution of CRM
xRM - as an Evolution of CRMxRM - as an Evolution of CRM
xRM - as an Evolution of CRMCatherine Eibner
 
Over view of software artitecture
Over view of software artitectureOver view of software artitecture
Over view of software artitectureABDEL RAHMAN KARIM
 
Anand_Honeywell_11yrs
Anand_Honeywell_11yrsAnand_Honeywell_11yrs
Anand_Honeywell_11yrsAnand Patil
 

Similar to e-SUAP - General software architecture (English) (20)

Soa architect summit mobile 2013_mar [compatibility mode]
Soa architect summit mobile 2013_mar [compatibility mode]Soa architect summit mobile 2013_mar [compatibility mode]
Soa architect summit mobile 2013_mar [compatibility mode]
 
Ora_Case_Study_Oracle Application Development Framework
Ora_Case_Study_Oracle Application Development FrameworkOra_Case_Study_Oracle Application Development Framework
Ora_Case_Study_Oracle Application Development Framework
 
Microsoft .Net Professional
Microsoft .Net ProfessionalMicrosoft .Net Professional
Microsoft .Net Professional
 
Convertigo Mobility Platform | Mobile Application Development for Enterprises...
Convertigo Mobility Platform | Mobile Application Development for Enterprises...Convertigo Mobility Platform | Mobile Application Development for Enterprises...
Convertigo Mobility Platform | Mobile Application Development for Enterprises...
 
Profile_Ahmad2
Profile_Ahmad2Profile_Ahmad2
Profile_Ahmad2
 
Wecreate
WecreateWecreate
Wecreate
 
Full lifecycle of a microservice
Full lifecycle of a microserviceFull lifecycle of a microservice
Full lifecycle of a microservice
 
Vadiraj Raikar_Cloud Automation_DevOps
Vadiraj Raikar_Cloud Automation_DevOpsVadiraj Raikar_Cloud Automation_DevOps
Vadiraj Raikar_Cloud Automation_DevOps
 
Components of a Generic Web Application Architecture
Components of  a Generic Web Application ArchitectureComponents of  a Generic Web Application Architecture
Components of a Generic Web Application Architecture
 
Predix
PredixPredix
Predix
 
Web Application Architecture: A Comprehensive Guide for Success in 2023
Web Application Architecture: A Comprehensive Guide for Success in 2023Web Application Architecture: A Comprehensive Guide for Success in 2023
Web Application Architecture: A Comprehensive Guide for Success in 2023
 
A Comprehensive Guide to Web Application Architecture
A Comprehensive Guide to Web Application ArchitectureA Comprehensive Guide to Web Application Architecture
A Comprehensive Guide to Web Application Architecture
 
xRM - as an Evolution of CRM
xRM - as an Evolution of CRMxRM - as an Evolution of CRM
xRM - as an Evolution of CRM
 
Over view of software artitecture
Over view of software artitectureOver view of software artitecture
Over view of software artitecture
 
vRA7 What's New
vRA7 What's NewvRA7 What's New
vRA7 What's New
 
ABC’s Proposal
ABC’s ProposalABC’s Proposal
ABC’s Proposal
 
SeniorNET Bhanu Resume
SeniorNET Bhanu ResumeSeniorNET Bhanu Resume
SeniorNET Bhanu Resume
 
Resume
ResumeResume
Resume
 
Anand_Honeywell_11yrs
Anand_Honeywell_11yrsAnand_Honeywell_11yrs
Anand_Honeywell_11yrs
 
Trinada pabolu profile
Trinada pabolu profileTrinada pabolu profile
Trinada pabolu profile
 

Recently uploaded

(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxnada99848
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 

Recently uploaded (20)

(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptx
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 

e-SUAP - General software architecture (English)

  • 2. Main objectives  Designed with the cloud in the mind (but also available on-premise):  Highly scalable, thanks to rich client implementation and SPA approach;  Low bandwidth consumption for server round-trips:  Once Javascript and views are downloaded and cached, only data (with and without changetracking info) will go over the “wire”;  Rich full-domain and data-centric API approach, similar to Microsoft .NET- or Java- based smart clients and server applications;  RAD development with deep integration with Visual Studio 2013 and Microsoft TypeScript:  Silverlight RIA Services-style HTML5 implementation: low bandwidth usage, highly maintainable code base, etc.;  Client-side development “experience”, very similar to WPF and Silverlight implementation; based on MVVM pattern; rich experience for TDD (Test Driven Development);  Write once, deploy on many browsers/devices through methodical template mediation techniques;  Test driven development in every layer, thanks to rigorous MVVM implementation and DDD principles:  From the ubiquitous language description of the application to implement, straight to the test-driven code and finally the application code;  Business process-driven layer behind an Enterprise Service Bus, with an anticorruption layer for high security implementation;  Highly integrated test cases: enforces continuous integration.
  • 3. Layered Architecture Domain model, application and business logic, infrastructure, user interface and other layers are highly isolated. Applications are organized in different domains, modules and layers. Every layer is highly cohesive and depends only on the lower layers. For the same reason every layer is highly decoupled from each other layer. Application and business logic is highly isolated from user interface, application and infrastructure layers. Different domains are bound with service interfaces and connected through publish and subscribe integration patterns through an Enterprise Service Bus for major decoupling, scalability and distribution of workloads under heavy demand:  Entities and value objects define the state of every single object;  Domain events flows through the Enterprise Service Bus and reaches consumers through appropriate ports;  Services and controllers makes the business logic reachable from the outside world (with appropriate security concerns and informations every time);  A modular architecture is provided for every component in its respective layers. Each module has potentially independent deployment and operation policies and is loosely coupled with other components in the system;  Repository patterns decouple the business logic from the persistence and from external services, through appropriate domain entities:  Each consumer only see an in-memory collection of all objects and
  • 4. aggregate types;  Thanks to a global, well-known and extensible IRepository<> interface and a corresponding unit of work (UOW) generic interface, each domain entity is automatically addable, removable, searchable through rich criteria objects (based on LINQ):  As a direct result, developers can keep application logic strictly focused on business requirements;  Factory and Service Locators shift the responsibility for creating complex objects, aggregates and services to separate objects that are part of the domain design but have no responsibility in the domain model . Concrete classes and implementations are not directly referenced, thanks to “opaque” interfaces which abstract client users from the concrete implementation objects;  Deep modeling: model-first approach gives the entire architecture a “Supple design” characteristic. Using the development environment both for coding and for designing gives developers a clearer perspective of what they are implementing, by means of simpler refactoring and remodeling tools within the development environment. The net effect is that 1)Behaviors are more obvious; 2)Cost of changes is reduced; 3)The working environment is more appealing to software developers;  Thanks to claim-based security, an orthogonal anti-corruption layer provides stateless security features that flow with message-oriented datagrams through several layers to the client, and back.
  • 5. RAD Development  Behavior and test-driven development: tests are integral parts of the delivered application and are directly hosted in the development environment;  Entirely designed with WPF and RIA Services experience in the mind;  First-class Microsoft TypeScript support;  Total Entity Framework Experience on the clientside, too;  Client-side data entities generated through T4 templates directly from full Entity Framework models:  Entity Framework has been adopted as ORM, client-side TypeScript full-class support: inheritance, abstraction, complex types, code-first or model-first approach; client-side Object Change Tracking implemented directly in the single-page application client, based on javascript; object identity and entity graph serialization from and to Web-API layers, thanks to custom .NET <-> TypeScript serializer; JavaScript/TypeScript client-side, out of the box support for one-to-many, many-to-one, many-to-many relations;
  • 6.  Client-side offline scenarios with full data persistence and change tracking support;  Partial class support for data aggregates and UI-oriented value objects, via serialization surrogates;  Based on Open Source HOT-Towel template, Durandal, Knockout etc.:  Fast and powerful user interface implementation, styling, MVVM testing and many other goodies;  Full browser- and device-specific HTML5 support;  Each user interface “use case” is simply a template:  Thanks to UI component “indirection”, you can switch views to different device by just changing the template library, without editing the code;  Rigorous template implementation pattern;  Reuse of all user interface components, from individual templates up to a complex views, thanks to Knockout and Durandal open source libraries;  User interface has its own object model, just like XAML:  Serialization and deserialization of user interface fragments is made possible by powerful, custom Javascript reflection and serialization/deserialization implementation, both part of the foundation classes;  In browser - runtime user interface designer reads and writes JAML (abbreviation for JSON Application Markup Language);  Validation and other features supported through repository based techniques;  Thanks to deep claim-based security implementation, at any time the security context of the user who caused a transformation action is made available to the code executed on the server side. Business Processes  Business process entities are defined in a common domain module;  Proposed solution is not strictly bound to specific Business Process Engine;  Adopters are free to choose different solutions for long-term business process implementations;  A straightforward implementation for Microsoft Biztalk Server is provided out of the box:  Business Activity Monitoring;  KPI: BAM projects support integration with MS SQL analysis services. BAM
  • 7. portal furnishes pivot tables and cubes that can also be exported to or attached from BI tools and can be integrated into Excel with real-time live visualization of business process activities;  Graphic IDE and Parties (users) can be handled with Visual Studio and BTS Administration Console or programmatically, thanks to an Application Programming Interface (API) that is available out of the box;  Process components are assemblies that can be stored, distributed and reused through internal, private and public port modifiers.