SlideShare una empresa de Scribd logo
1 de 50
BEXIS Tech Talk Series
#3: The System Architecture
Javad Chamanara
March 2016
Recall from the first talk
• Requirements
– Data Lifecycle Management
– Generic
– Extensible
– Portable
– Scalable
BEXIS Tech Talk #3: The System Architecture 2
Requirements -> DLM
• Flexible Data Structures
• Data Submission
• Validation
• Preserving
• Metadata Management
• Versioning
BEXIS Tech Talk #3: The System Architecture 3
Recall from the second talk
BEXIS Tech Talk #3: The System Architecture 4
DataMetadata
Data StructureMetadata Structure Semantics Geo
Administration Security
«use»
«use»
«use» «use»
«use»
Core Conceptual Model
BEXIS Tech Talk #3: The System Architecture 5
SearchPublishing
CMLand Use
Reservation
Data
Submission
DLM APIs
BEXIS Tech Talk #3: The System Architecture 6
Core Functions
Data Structure Mgmt.
Data Mgmt.
Metadata Mgmt.
Sem. Data Mgmt.
Multi DBMS data access
BEXIS Tech Talk #3: The System Architecture 7
DB2 PgS
Data Access
Core Functions
...
Relational
XML
GIS
Multi DBMS support
Vendor unlocking
ORM support
Customization support
Data Structure Mgmt.
Data Mgmt.
Metadata Mgmt.
Sem. Data Mgmt.
Access to the Core Functions
BEXIS Tech Talk #3: The System Architecture 8
DB2 PgS
Data Access
Core Functions
UI Framework
...
Modularity
Integration
Access to Core Functions
BEXIS Tech Talk #3: The System Architecture 9
DB2 PgS
Data Access
Core Functions
UI
UI Framework
...
Modularity
Integration
Synthesis Work
Semantic Search
Analytics
User Defined
Spatial Querying
External Tools
Web Services
Archiving
Import/ Export
Publishing
Security
BEXIS Tech Talk #3: The System Architecture 10
DB2 PgS
Data Access
Security
Core Functions
UI
UI Framework
...
Modularity
Integration
Synthesis Work
Semantic Search
Analytics
User Defined
Spatial Querying
External Tools
Web Services
Archiving
Import/ Export
Publishing
Architectural Patterns
• Generic User Interaction
• MVC
• APIs, Web APIs
• Data Access
• Services
BEXIS Tech Talk #3: The System Architecture 12
Generic User Interaction
BEXIS Tech Talk #3: The System Architecture 13
Presentation
User
Services Core Services Security Data Access
Presentation: MVC
BEXIS Tech Talk #3: The System Architecture 14
class mvc
Controller
ModelView
«observe»
«observe»
Simplified MVC
BEXIS Tech Talk #3: The System Architecture 15
class mvc
View ViewModel
Controller
«observe»
Dependency
Classes Engaged in an Interaction
BEXIS Tech Talk #3: The System Architecture 16
Controller
View
Service Framework API
Data
GIS Data
ViewModel
«Observe»
«use»
«use»
BExIS MVC Sequence Diagram
BEXIS Tech Talk #3: The System Architecture 17
User
Controller Model ServiceViewRouting Engine
Request()
action()
GetData()
Populate()
Bind()
Render()
MVC Constraints
• Passive Models
• Request more data
• Manipulate entities
• Models are POCOs
• Models have no access to services
• Models may have builder/ transformers
• Views can interact with controllers’ actions only
– Interchanging data
– Calling controllers’ actions either sync or async
• No lazy loading in the Views (populated models+ajax)
BEXIS Tech Talk #3: The System Architecture 18
Controller
View
Service Framework API
Data
GIS Data
ViewModel
«Observe»
«use»
«use»
BEXIS Tech Talk #3: The System Architecture 19
Presentation
Data
Business
Integration
• Service Based
– Modules provide a set of services
• HTTP/S + Auth
– Internal authentication
– Remote LDAP/ Active Directory integration
• Authorization
– Restricts access to controllers’ actions
– Public actions
– Public data
BEXIS Tech Talk #3: The System Architecture 20
Public APIs
• Web API
– API namespace
• Module/Controller/Action
• Verb
• Data
• www.example.com/dcm/datasets/1
• www.example.com/dcm/datasets/1/versions
• www.example.com/dcm/versions/10
• Querystrings are allowed
• No versioning on APIs! Always the latest!!
BEXIS Tech Talk #3: The System Architecture 21
Modularity
• Modules
– A set of related user facing functions
– To extend the application’s functionality
• Layering
– Presentation
• MVC
– Service
• Access to Core services, DLM, external services, etc.
– Data Access
• Own Database/data
• Direct access to the DB/data (not recommended)
BEXIS Tech Talk #3: The System Architecture 22
Modularity
• Integration
– Shell integration: menus, themes, scripts, etc.
– Authorization
• Introducing actions, to be secured, to the system
• Automatic security trimming/ action authorization
• Notes
– Deployment
– Hot plug-abilities
– Upgrading/versioning
BEXIS Tech Talk #3: The System Architecture 23
Data
• Relational data
– Schema evolution
– Schema generation
– Data versioning
– Vendor/tool independence
• XML data
– File based XML
– RDBMS based XML
• GIS data
– External systems
– Integrated querying
– Security
BEXIS Tech Talk #3: The System Architecture 24
Data Access
• ORM
– NHibernate
– Vaiona
BEXIS Tech Talk #3: The System Architecture 25
Data Access Patterns
• Repository pattern
– CRUD on entities
– Querying using
• LINQ to objects
• HQL
• Native SQL (queries, views, stored-procedures)
• Vendor specific customization
– Relationship traversal
• Laziness/Eagerness
• object graph traversal
– Automatic entity state/context management
– Based on:
http://martinfowler.com/eaaCatalog/repository.html
BEXIS Tech Talk #3: The System Architecture 26
Data Access Patterns
• Unit of Work pattern
– Business Transaction Management
– Concurrency Control
– Operating on multiple repositories
– Transactions
• Distributed Transaction Coordination
• Transparent transaction management
• Ambient transaction detection/reuse
– Web request/session/user aware transaction mgmt.
– Automatic commit on request/session termination
– Based on:
http://martinfowler.com/eaaCatalog/unitOfWork.html
BEXIS Tech Talk #3: The System Architecture 27
Data Access Patterns
• Aggregates
– Cluster of entities and their dependents
• Datasets and their Versions
• Units of measurement and their conversion formula
– Simplify the service layer
– Packaged as units of work
– Better business level operation/transaction mgmt.
– Look at:
http://martinfowler.com/bliki/DDD_Aggregate.ht
ml
BEXIS Tech Talk #3: The System Architecture 28
Data Access Patterns
• Materialization
– Complex entity serialized as XML
– Stored in field of a table row
– Materialize on read
• Reads the XML and loads the entity
– Dematerialize on write
• Serializes the object as an XML document
– Used in Data Tuples of dataset versions
BEXIS Tech Talk #3: The System Architecture 29
ORM example
• Dataset as an Aggregate area
• DataTuple
• DataCell
• Versions
• Associations
BEXIS Tech Talk #3: The System Architecture 30
Dataset aggregate: conceptual
diagram
BEXIS Tech Talk #3: The System Architecture 31
Dataset
Dataset VersionDataset Stage
Tuple
DataValue
Data Cell
Data Structure
1
+Current Stage
1
10..1
1
1
+Variable Values
{Delta Association,
Only Structured Data}
Dataset aggregate: class diagram
BEXIS Tech Talk #3: The System Architecture 32
General Record Structure
Identification
Payload
Associations
Versioning
Audit
State
Technical
Extra
BEXIS Tech Talk #3: The System Architecture 33
General Record Structure
Identification
Payload
Associations
Versioning
Audit
State
Technical
Extra
BEXIS Tech Talk #3: The System Architecture 34
Identification:
it holds information about primary
keys, key generation, etc.
General Record Structure
Identification
Payload
Associations
Versioning
Audit
State
Technical
Extra
BEXIS Tech Talk #3: The System Architecture 35
Payload:
is the business data that the
table holds
General Record Structure
Identification
Payload
Associations
Versioning
Audit
State
Technical
Extra
BEXIS Tech Talk #3: The System Architecture 36
Associations:
relationships between this table
and others (also itself). Connected
and not connected foreign keys fall
into this category, too.
General Record Structure
Identification
Payload
Associations
Versioning
Audit
State
Technical
Extra
BEXIS Tech Talk #3: The System Architecture 37
Versioning:
information about version number
and timestamp. This is the technical
data level versioning to be used in
concurrency control. It is not the
business level data versioning.
General Record Structure
Identification
Payload
Associations
Versioning
Audit
State
Technical
Extra
BEXIS Tech Talk #3: The System Architecture 38
Audit:
the information about the person or
the system who has changed the data
in addition to the time, action, and
other information
General Record Structure
Identification
Payload
Associations
Versioning
Audit
State
Technical
Extra
BEXIS Tech Talk #3: The System Architecture 39
State:
shows the current status of the data record.
It can be set by business workflows or
quality control, e.g., “Approved”, “Rejected”,
“Published”, “Locked”, etc.
General Record Structure
Identification
Payload
Associations
Versioning
Audit
State
Technical
Extra
BEXIS Tech Talk #3: The System Architecture 40
Technical:
this part is used for development purposes
and is not intended to be used by data
owners or data consumers
General Record Structure
Identification
Payload
Associations
Versioning
Audit
State
Technical
Extra
BEXIS Tech Talk #3: The System Architecture 41
Extra:
It is an XML field to provide a place for minor extensions and
reduce the amount and frequency of changes in the
database schema (and sometimes data). Also, it can be
considered as an exertion point for customization in
different scenarios.
ORM mapping: The entity
<hibernate-mapping xmlns="urn:nhibernate-
mapping-2.2" assembly="BExIS.Dlm.Entities"
namespace="BExIS.Dlm.Entities.Data">
<class xmlns="urn:nhibernate-mapping-2.2"
name="Dataset" table="Datasets">
</class>
</hibernate-mapping>
BEXIS Tech Talk #3: The System Architecture 42
ORM mapping: Non payload
attributes
<id name="Id" type="Int64">
<column name="Id" />
<generator class="native" />
</id>
<version name="VersionNo" type="Int32">
<column name="VersionNo" />
</version>
<property name="Extra" type="System.Xml.XmlDocument,
System.Xml, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089">
<column name="Extra" not-null="false" sql-
type="xml" />
</property>
BEXIS Tech Talk #3: The System Architecture 43
ORM mapping: State attributes
<component name="StateInfo">
<property name="State" type="string">
<column name="State" />
</property>
<property name="Timestamp" type="DateTime">
<column name="StateTimestamp" not-null="false"/>
</property>
<property name="Comment" type="string">
<column name="StateComment" />
</property>
</component>
Same for Creation Info and Modification Info
BEXIS Tech Talk #3: The System Architecture 44
ORM mapping: Payload
attributes
<property name="LastCheckIOTimestamp" type="DateTime">
<column name="LastCheckIOTimestamp" />
</property>
<property name="CheckOutUser" type="string">
<column name="CheckOutUser" />
</property>
BEXIS Tech Talk #3: The System Architecture 45
ORM mapping: Associations
<set name="Versions" inverse="true" lazy="true" order-
by="Timestamp desc" cascade="all-delete-orphan">
<key>
<column name="DatasetRef" />
</key>
<one-to-many class="DatasetVersion" />
</set>
BEXIS Tech Talk #3: The System Architecture 46
Dataset aggregate: Database
Schema
BEXIS Tech Talk #3: The System Architecture 47
How to work with the model
DatasetManagerService dms = new DatasetManagerService();
Dataset ds = dms.CreateEmptyDataset(sds, rp, ms);
DatasetVersion workingCopy =
dms.GetDatasetWorkingCopy(ds);
// edit the version
dms.CheckInDataset(ds, “new version is created.", user);
BEXIS Tech Talk #3: The System Architecture 48
Inside the “Check In” service
method
public void CheckInDataset
(Int64 datasetId, string comment, string userName)
{
using(IUnitOfWork uow = this.GetUnitOfWork())
{
IRepository<Dataset> repo =
uow.GetRepository<Dataset>();
Dataset ds = repo.Get(…).FirstOrDefault();
// Check-in logic here…
repo.Put(ds);
uow.Commit();
}
}
}
BEXIS Tech Talk #3: The System Architecture 49
Outlook
Whats next in the talk series?
• General purpose components
• Third party components
• Cross-cut functionalities
BEXIS Tech Talk #3: The System Architecture 51
5252
Thanks!
Questions?
Contact:
javad.chamanara@uni-jena.de
http://fusion.cs.uni-jena.de/bexis
BEXIS Tech Talk #3: The System Architecture
Acknowledgment

Más contenido relacionado

La actualidad más candente

oBIX Presentation to the Open Source Developers Conference - Gold Coast, Aust...
oBIX Presentation to the Open Source Developers Conference - Gold Coast, Aust...oBIX Presentation to the Open Source Developers Conference - Gold Coast, Aust...
oBIX Presentation to the Open Source Developers Conference - Gold Coast, Aust...Keith Miller
 
Current trends in dbms
Current trends in dbmsCurrent trends in dbms
Current trends in dbmsDaisy Joy
 
Database administration and security
Database administration and securityDatabase administration and security
Database administration and securityDhani Ahmad
 
Interoperability Flexibility and Industrial Design Requirements in IoT Devices.
Interoperability Flexibility and Industrial Design Requirements in IoT Devices.Interoperability Flexibility and Industrial Design Requirements in IoT Devices.
Interoperability Flexibility and Industrial Design Requirements in IoT Devices.Muhammad Ahad
 
360-Degree View of IT Infrastructure with IT Operations Analytics
360-Degree View of IT Infrastructure with IT Operations Analytics360-Degree View of IT Infrastructure with IT Operations Analytics
360-Degree View of IT Infrastructure with IT Operations AnalyticsPrecisely
 
Slidy architecture
Slidy architectureSlidy architecture
Slidy architectureCC Expertise
 
Informix IWA: Architectural options
Informix IWA: Architectural optionsInformix IWA: Architectural options
Informix IWA: Architectural optionsKeshav Murthy
 
HelpDeskPresentation-RatanM
HelpDeskPresentation-RatanMHelpDeskPresentation-RatanM
HelpDeskPresentation-RatanMRatan Mohapatra
 
[WSO2Con EU 2017] Implementing Data Exchange Infrastructure in Government
[WSO2Con EU 2017] Implementing Data Exchange Infrastructure in Government[WSO2Con EU 2017] Implementing Data Exchange Infrastructure in Government
[WSO2Con EU 2017] Implementing Data Exchange Infrastructure in GovernmentWSO2
 
Tij3103 topic02 architectures
Tij3103 topic02 architecturesTij3103 topic02 architectures
Tij3103 topic02 architecturesnakomuri
 

La actualidad más candente (11)

oBIX Presentation to the Open Source Developers Conference - Gold Coast, Aust...
oBIX Presentation to the Open Source Developers Conference - Gold Coast, Aust...oBIX Presentation to the Open Source Developers Conference - Gold Coast, Aust...
oBIX Presentation to the Open Source Developers Conference - Gold Coast, Aust...
 
Current trends in dbms
Current trends in dbmsCurrent trends in dbms
Current trends in dbms
 
Database administration and security
Database administration and securityDatabase administration and security
Database administration and security
 
Interoperability Flexibility and Industrial Design Requirements in IoT Devices.
Interoperability Flexibility and Industrial Design Requirements in IoT Devices.Interoperability Flexibility and Industrial Design Requirements in IoT Devices.
Interoperability Flexibility and Industrial Design Requirements in IoT Devices.
 
360-Degree View of IT Infrastructure with IT Operations Analytics
360-Degree View of IT Infrastructure with IT Operations Analytics360-Degree View of IT Infrastructure with IT Operations Analytics
360-Degree View of IT Infrastructure with IT Operations Analytics
 
Overview Prozone DMS for maximo
Overview Prozone DMS for maximoOverview Prozone DMS for maximo
Overview Prozone DMS for maximo
 
Slidy architecture
Slidy architectureSlidy architecture
Slidy architecture
 
Informix IWA: Architectural options
Informix IWA: Architectural optionsInformix IWA: Architectural options
Informix IWA: Architectural options
 
HelpDeskPresentation-RatanM
HelpDeskPresentation-RatanMHelpDeskPresentation-RatanM
HelpDeskPresentation-RatanM
 
[WSO2Con EU 2017] Implementing Data Exchange Infrastructure in Government
[WSO2Con EU 2017] Implementing Data Exchange Infrastructure in Government[WSO2Con EU 2017] Implementing Data Exchange Infrastructure in Government
[WSO2Con EU 2017] Implementing Data Exchange Infrastructure in Government
 
Tij3103 topic02 architectures
Tij3103 topic02 architecturesTij3103 topic02 architectures
Tij3103 topic02 architectures
 

Destacado

Computer System Architecture-R.D.Sivakumar
Computer System Architecture-R.D.SivakumarComputer System Architecture-R.D.Sivakumar
Computer System Architecture-R.D.SivakumarSivakumar R D .
 
CS4109 Computer System Architecture
CS4109 Computer System ArchitectureCS4109 Computer System Architecture
CS4109 Computer System Architecturektosri
 
Cultura egpcia
Cultura egpciaCultura egpcia
Cultura egpciaNaatiy
 
Paul Bartz Recommendation Letter 2
Paul Bartz Recommendation Letter 2Paul Bartz Recommendation Letter 2
Paul Bartz Recommendation Letter 2Paul Bartz
 
New text document
New text documentNew text document
New text documentSaad Ali
 
Acuerdo número 003 de 2015
Acuerdo número 003 de 2015Acuerdo número 003 de 2015
Acuerdo número 003 de 2015limagoba
 
An animal that carries its babies
An animal that carries its babiesAn animal that carries its babies
An animal that carries its babiesmariadelcarmencolin
 
Algoritmo probabilistico di tipo montecarlo per il list decoding elaborato
Algoritmo probabilistico di tipo montecarlo per il list decoding   elaboratoAlgoritmo probabilistico di tipo montecarlo per il list decoding   elaborato
Algoritmo probabilistico di tipo montecarlo per il list decoding elaboratodanielenicassio
 
Criatividade e museus final
Criatividade e museus finalCriatividade e museus final
Criatividade e museus finalJoão Lima
 
Como os salários se comportarão em 2016?
Como os salários se comportarão em 2016?Como os salários se comportarão em 2016?
Como os salários se comportarão em 2016?Robert Half Brasil
 
Canción de todo tipo
Canción de todo tipoCanción de todo tipo
Canción de todo tipoMiryan Chirau
 
Salary Negotiation - Frightening Statistics for Women Executives
Salary Negotiation - Frightening Statistics for Women ExecutivesSalary Negotiation - Frightening Statistics for Women Executives
Salary Negotiation - Frightening Statistics for Women ExecutivesCatherine Cunningham
 
Europe mattress sales market report 2021
Europe mattress sales market report 2021Europe mattress sales market report 2021
Europe mattress sales market report 2021Kishor kumar
 
Social Media Report - Retail Mattresses July - August 2016
Social Media Report - Retail Mattresses   July - August 2016Social Media Report - Retail Mattresses   July - August 2016
Social Media Report - Retail Mattresses July - August 2016Unmetric
 

Destacado (20)

Computer System Architecture-R.D.Sivakumar
Computer System Architecture-R.D.SivakumarComputer System Architecture-R.D.Sivakumar
Computer System Architecture-R.D.Sivakumar
 
CS4109 Computer System Architecture
CS4109 Computer System ArchitectureCS4109 Computer System Architecture
CS4109 Computer System Architecture
 
Cyber bullying
Cyber bullyingCyber bullying
Cyber bullying
 
Redes sociales
Redes sociales Redes sociales
Redes sociales
 
Conciencia Ambiental
Conciencia AmbientalConciencia Ambiental
Conciencia Ambiental
 
Cultura egpcia
Cultura egpciaCultura egpcia
Cultura egpcia
 
Otuzco
OtuzcoOtuzco
Otuzco
 
Paul Bartz Recommendation Letter 2
Paul Bartz Recommendation Letter 2Paul Bartz Recommendation Letter 2
Paul Bartz Recommendation Letter 2
 
New text document
New text documentNew text document
New text document
 
Acuerdo número 003 de 2015
Acuerdo número 003 de 2015Acuerdo número 003 de 2015
Acuerdo número 003 de 2015
 
An animal that carries its babies
An animal that carries its babiesAn animal that carries its babies
An animal that carries its babies
 
Algoritmo probabilistico di tipo montecarlo per il list decoding elaborato
Algoritmo probabilistico di tipo montecarlo per il list decoding   elaboratoAlgoritmo probabilistico di tipo montecarlo per il list decoding   elaborato
Algoritmo probabilistico di tipo montecarlo per il list decoding elaborato
 
Sunitha_Res
Sunitha_ResSunitha_Res
Sunitha_Res
 
Criatividade e museus final
Criatividade e museus finalCriatividade e museus final
Criatividade e museus final
 
Como os salários se comportarão em 2016?
Como os salários se comportarão em 2016?Como os salários se comportarão em 2016?
Como os salários se comportarão em 2016?
 
Canción de todo tipo
Canción de todo tipoCanción de todo tipo
Canción de todo tipo
 
Salary Negotiation - Frightening Statistics for Women Executives
Salary Negotiation - Frightening Statistics for Women ExecutivesSalary Negotiation - Frightening Statistics for Women Executives
Salary Negotiation - Frightening Statistics for Women Executives
 
Pelaporan i think
Pelaporan i thinkPelaporan i think
Pelaporan i think
 
Europe mattress sales market report 2021
Europe mattress sales market report 2021Europe mattress sales market report 2021
Europe mattress sales market report 2021
 
Social Media Report - Retail Mattresses July - August 2016
Social Media Report - Retail Mattresses   July - August 2016Social Media Report - Retail Mattresses   July - August 2016
Social Media Report - Retail Mattresses July - August 2016
 

Similar a 3 the system architecture

ASMUG February 2015 Knowledge Event
ASMUG February 2015 Knowledge EventASMUG February 2015 Knowledge Event
ASMUG February 2015 Knowledge Eventjmustac
 
Modeling Multi-Layer Access Control Policies of a Hyperledger-Fabric-Based Ag...
Modeling Multi-Layer Access Control Policies of a Hyperledger-Fabric-Based Ag...Modeling Multi-Layer Access Control Policies of a Hyperledger-Fabric-Based Ag...
Modeling Multi-Layer Access Control Policies of a Hyperledger-Fabric-Based Ag...Dilum Bandara
 
2019 hashiconf seattle_consul_ioc
2019 hashiconf seattle_consul_ioc2019 hashiconf seattle_consul_ioc
2019 hashiconf seattle_consul_iocPierre Souchay
 
Non-Invasive Elimination of Logical Access Control Vulnerabilities in Web A...
Non-Invasive Elimination of  Logical Access Control  Vulnerabilities in Web A...Non-Invasive Elimination of  Logical Access Control  Vulnerabilities in Web A...
Non-Invasive Elimination of Logical Access Control Vulnerabilities in Web A...Denis Kolegov
 
Kolegov tkachenko-Non-Invasive Elimination of Logical Access Control Vulnerab...
Kolegov tkachenko-Non-Invasive Elimination of Logical Access Control Vulnerab...Kolegov tkachenko-Non-Invasive Elimination of Logical Access Control Vulnerab...
Kolegov tkachenko-Non-Invasive Elimination of Logical Access Control Vulnerab...Positive Hack Days
 
Chapter 5 database security
Chapter 5   database securityChapter 5   database security
Chapter 5 database securitySyaiful Ahdan
 
Data Infrastructure at LinkedIn
Data Infrastructure at LinkedInData Infrastructure at LinkedIn
Data Infrastructure at LinkedInAmy W. Tang
 
Diksha sda presentation
Diksha sda presentationDiksha sda presentation
Diksha sda presentationdikshagupta111
 
Data base and data warehouse
Data base and data warehouse Data base and data warehouse
Data base and data warehouse MudduSahanagowda
 
eBay Cloud CMS - QCon 2012 - http://yidb.org/
eBay Cloud CMS - QCon 2012 - http://yidb.org/eBay Cloud CMS - QCon 2012 - http://yidb.org/
eBay Cloud CMS - QCon 2012 - http://yidb.org/Xu Jiang
 
DDD and CQRS for .NET Developers
DDD and CQRS for .NET DevelopersDDD and CQRS for .NET Developers
DDD and CQRS for .NET DevelopersAllan Mangune
 
Network rollout-solution-brochure
Network rollout-solution-brochureNetwork rollout-solution-brochure
Network rollout-solution-brochureTaha77
 
MicroServices-Part-1.pdf
MicroServices-Part-1.pdfMicroServices-Part-1.pdf
MicroServices-Part-1.pdfchanhluc2112
 
4 the 3rd party libraries
4 the 3rd party libraries4 the 3rd party libraries
4 the 3rd party librariesjavadch
 
Software Architecture in Architecture design .ppt
Software Architecture in Architecture design .pptSoftware Architecture in Architecture design .ppt
Software Architecture in Architecture design .pptguruswamyd785
 
Big Data Processing Beyond MapReduce by Dr. Flavio Villanustre
Big Data Processing Beyond MapReduce by Dr. Flavio VillanustreBig Data Processing Beyond MapReduce by Dr. Flavio Villanustre
Big Data Processing Beyond MapReduce by Dr. Flavio VillanustreHPCC Systems
 
Deep Dive into Azure Data Factory v2
Deep Dive into Azure Data Factory v2Deep Dive into Azure Data Factory v2
Deep Dive into Azure Data Factory v2Eric Bragas
 
Join2017_Deep Dive_AWS Operations
Join2017_Deep Dive_AWS OperationsJoin2017_Deep Dive_AWS Operations
Join2017_Deep Dive_AWS OperationsLooker
 

Similar a 3 the system architecture (20)

ASMUG February 2015 Knowledge Event
ASMUG February 2015 Knowledge EventASMUG February 2015 Knowledge Event
ASMUG February 2015 Knowledge Event
 
Modeling Multi-Layer Access Control Policies of a Hyperledger-Fabric-Based Ag...
Modeling Multi-Layer Access Control Policies of a Hyperledger-Fabric-Based Ag...Modeling Multi-Layer Access Control Policies of a Hyperledger-Fabric-Based Ag...
Modeling Multi-Layer Access Control Policies of a Hyperledger-Fabric-Based Ag...
 
2019 hashiconf seattle_consul_ioc
2019 hashiconf seattle_consul_ioc2019 hashiconf seattle_consul_ioc
2019 hashiconf seattle_consul_ioc
 
Non-Invasive Elimination of Logical Access Control Vulnerabilities in Web A...
Non-Invasive Elimination of  Logical Access Control  Vulnerabilities in Web A...Non-Invasive Elimination of  Logical Access Control  Vulnerabilities in Web A...
Non-Invasive Elimination of Logical Access Control Vulnerabilities in Web A...
 
Kolegov tkachenko-Non-Invasive Elimination of Logical Access Control Vulnerab...
Kolegov tkachenko-Non-Invasive Elimination of Logical Access Control Vulnerab...Kolegov tkachenko-Non-Invasive Elimination of Logical Access Control Vulnerab...
Kolegov tkachenko-Non-Invasive Elimination of Logical Access Control Vulnerab...
 
Chapter 5 database security
Chapter 5   database securityChapter 5   database security
Chapter 5 database security
 
Data Infrastructure at LinkedIn
Data Infrastructure at LinkedInData Infrastructure at LinkedIn
Data Infrastructure at LinkedIn
 
Diksha sda presentation
Diksha sda presentationDiksha sda presentation
Diksha sda presentation
 
Data base and data warehouse
Data base and data warehouse Data base and data warehouse
Data base and data warehouse
 
Bn1030 oracle dba
Bn1030 oracle dbaBn1030 oracle dba
Bn1030 oracle dba
 
eBay Cloud CMS - QCon 2012 - http://yidb.org/
eBay Cloud CMS - QCon 2012 - http://yidb.org/eBay Cloud CMS - QCon 2012 - http://yidb.org/
eBay Cloud CMS - QCon 2012 - http://yidb.org/
 
DDD and CQRS for .NET Developers
DDD and CQRS for .NET DevelopersDDD and CQRS for .NET Developers
DDD and CQRS for .NET Developers
 
unit 1.pdf
unit 1.pdfunit 1.pdf
unit 1.pdf
 
Network rollout-solution-brochure
Network rollout-solution-brochureNetwork rollout-solution-brochure
Network rollout-solution-brochure
 
MicroServices-Part-1.pdf
MicroServices-Part-1.pdfMicroServices-Part-1.pdf
MicroServices-Part-1.pdf
 
4 the 3rd party libraries
4 the 3rd party libraries4 the 3rd party libraries
4 the 3rd party libraries
 
Software Architecture in Architecture design .ppt
Software Architecture in Architecture design .pptSoftware Architecture in Architecture design .ppt
Software Architecture in Architecture design .ppt
 
Big Data Processing Beyond MapReduce by Dr. Flavio Villanustre
Big Data Processing Beyond MapReduce by Dr. Flavio VillanustreBig Data Processing Beyond MapReduce by Dr. Flavio Villanustre
Big Data Processing Beyond MapReduce by Dr. Flavio Villanustre
 
Deep Dive into Azure Data Factory v2
Deep Dive into Azure Data Factory v2Deep Dive into Azure Data Factory v2
Deep Dive into Azure Data Factory v2
 
Join2017_Deep Dive_AWS Operations
Join2017_Deep Dive_AWS OperationsJoin2017_Deep Dive_AWS Operations
Join2017_Deep Dive_AWS Operations
 

Más de javadch

Data Lifecycle is not a Cycle, but a Plane!
Data Lifecycle is not a Cycle, but a Plane!Data Lifecycle is not a Cycle, but a Plane!
Data Lifecycle is not a Cycle, but a Plane!javadch
 
Scrum Project Management with Jira as showcase
Scrum Project Management with Jira as showcaseScrum Project Management with Jira as showcase
Scrum Project Management with Jira as showcasejavadch
 
8 implementation notes
8 implementation notes8 implementation notes
8 implementation notesjavadch
 
7 Source Control and Release Management
7 Source Control and Release Management7 Source Control and Release Management
7 Source Control and Release Managementjavadch
 
6 The UI Structure and The Web API
6 The UI Structure and The Web API6 The UI Structure and The Web API
6 The UI Structure and The Web APIjavadch
 
5 BEXIS Extensibility
5 BEXIS Extensibility5 BEXIS Extensibility
5 BEXIS Extensibilityjavadch
 
An Itroduction to the QUIS Language
An Itroduction to the QUIS LanguageAn Itroduction to the QUIS Language
An Itroduction to the QUIS Languagejavadch
 
Research Data Management, BExIS Hands-On Workshop
Research Data Management, BExIS Hands-On WorkshopResearch Data Management, BExIS Hands-On Workshop
Research Data Management, BExIS Hands-On Workshopjavadch
 
Added Value of Conceptual Modeling in Geosciences
Added Value of Conceptual Modeling in GeosciencesAdded Value of Conceptual Modeling in Geosciences
Added Value of Conceptual Modeling in Geosciencesjavadch
 
2 the conceptual model
2 the conceptual model2 the conceptual model
2 the conceptual modeljavadch
 
SciQL: A Scientific Query Language
SciQL: A Scientific Query LanguageSciQL: A Scientific Query Language
SciQL: A Scientific Query Languagejavadch
 

Más de javadch (11)

Data Lifecycle is not a Cycle, but a Plane!
Data Lifecycle is not a Cycle, but a Plane!Data Lifecycle is not a Cycle, but a Plane!
Data Lifecycle is not a Cycle, but a Plane!
 
Scrum Project Management with Jira as showcase
Scrum Project Management with Jira as showcaseScrum Project Management with Jira as showcase
Scrum Project Management with Jira as showcase
 
8 implementation notes
8 implementation notes8 implementation notes
8 implementation notes
 
7 Source Control and Release Management
7 Source Control and Release Management7 Source Control and Release Management
7 Source Control and Release Management
 
6 The UI Structure and The Web API
6 The UI Structure and The Web API6 The UI Structure and The Web API
6 The UI Structure and The Web API
 
5 BEXIS Extensibility
5 BEXIS Extensibility5 BEXIS Extensibility
5 BEXIS Extensibility
 
An Itroduction to the QUIS Language
An Itroduction to the QUIS LanguageAn Itroduction to the QUIS Language
An Itroduction to the QUIS Language
 
Research Data Management, BExIS Hands-On Workshop
Research Data Management, BExIS Hands-On WorkshopResearch Data Management, BExIS Hands-On Workshop
Research Data Management, BExIS Hands-On Workshop
 
Added Value of Conceptual Modeling in Geosciences
Added Value of Conceptual Modeling in GeosciencesAdded Value of Conceptual Modeling in Geosciences
Added Value of Conceptual Modeling in Geosciences
 
2 the conceptual model
2 the conceptual model2 the conceptual model
2 the conceptual model
 
SciQL: A Scientific Query Language
SciQL: A Scientific Query LanguageSciQL: A Scientific Query Language
SciQL: A Scientific Query Language
 

Último

CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 

Último (20)

CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 

3 the system architecture

  • 1. BEXIS Tech Talk Series #3: The System Architecture Javad Chamanara March 2016
  • 2. Recall from the first talk • Requirements – Data Lifecycle Management – Generic – Extensible – Portable – Scalable BEXIS Tech Talk #3: The System Architecture 2
  • 3. Requirements -> DLM • Flexible Data Structures • Data Submission • Validation • Preserving • Metadata Management • Versioning BEXIS Tech Talk #3: The System Architecture 3
  • 4. Recall from the second talk BEXIS Tech Talk #3: The System Architecture 4 DataMetadata Data StructureMetadata Structure Semantics Geo Administration Security «use» «use» «use» «use» «use»
  • 5. Core Conceptual Model BEXIS Tech Talk #3: The System Architecture 5 SearchPublishing CMLand Use Reservation Data Submission
  • 6. DLM APIs BEXIS Tech Talk #3: The System Architecture 6 Core Functions Data Structure Mgmt. Data Mgmt. Metadata Mgmt. Sem. Data Mgmt.
  • 7. Multi DBMS data access BEXIS Tech Talk #3: The System Architecture 7 DB2 PgS Data Access Core Functions ... Relational XML GIS Multi DBMS support Vendor unlocking ORM support Customization support Data Structure Mgmt. Data Mgmt. Metadata Mgmt. Sem. Data Mgmt.
  • 8. Access to the Core Functions BEXIS Tech Talk #3: The System Architecture 8 DB2 PgS Data Access Core Functions UI Framework ... Modularity Integration
  • 9. Access to Core Functions BEXIS Tech Talk #3: The System Architecture 9 DB2 PgS Data Access Core Functions UI UI Framework ... Modularity Integration Synthesis Work Semantic Search Analytics User Defined Spatial Querying External Tools Web Services Archiving Import/ Export Publishing
  • 10. Security BEXIS Tech Talk #3: The System Architecture 10 DB2 PgS Data Access Security Core Functions UI UI Framework ... Modularity Integration Synthesis Work Semantic Search Analytics User Defined Spatial Querying External Tools Web Services Archiving Import/ Export Publishing
  • 11. Architectural Patterns • Generic User Interaction • MVC • APIs, Web APIs • Data Access • Services BEXIS Tech Talk #3: The System Architecture 12
  • 12. Generic User Interaction BEXIS Tech Talk #3: The System Architecture 13 Presentation User Services Core Services Security Data Access
  • 13. Presentation: MVC BEXIS Tech Talk #3: The System Architecture 14 class mvc Controller ModelView «observe» «observe»
  • 14. Simplified MVC BEXIS Tech Talk #3: The System Architecture 15 class mvc View ViewModel Controller «observe» Dependency
  • 15. Classes Engaged in an Interaction BEXIS Tech Talk #3: The System Architecture 16 Controller View Service Framework API Data GIS Data ViewModel «Observe» «use» «use»
  • 16. BExIS MVC Sequence Diagram BEXIS Tech Talk #3: The System Architecture 17 User Controller Model ServiceViewRouting Engine Request() action() GetData() Populate() Bind() Render()
  • 17. MVC Constraints • Passive Models • Request more data • Manipulate entities • Models are POCOs • Models have no access to services • Models may have builder/ transformers • Views can interact with controllers’ actions only – Interchanging data – Calling controllers’ actions either sync or async • No lazy loading in the Views (populated models+ajax) BEXIS Tech Talk #3: The System Architecture 18
  • 18. Controller View Service Framework API Data GIS Data ViewModel «Observe» «use» «use» BEXIS Tech Talk #3: The System Architecture 19 Presentation Data Business
  • 19. Integration • Service Based – Modules provide a set of services • HTTP/S + Auth – Internal authentication – Remote LDAP/ Active Directory integration • Authorization – Restricts access to controllers’ actions – Public actions – Public data BEXIS Tech Talk #3: The System Architecture 20
  • 20. Public APIs • Web API – API namespace • Module/Controller/Action • Verb • Data • www.example.com/dcm/datasets/1 • www.example.com/dcm/datasets/1/versions • www.example.com/dcm/versions/10 • Querystrings are allowed • No versioning on APIs! Always the latest!! BEXIS Tech Talk #3: The System Architecture 21
  • 21. Modularity • Modules – A set of related user facing functions – To extend the application’s functionality • Layering – Presentation • MVC – Service • Access to Core services, DLM, external services, etc. – Data Access • Own Database/data • Direct access to the DB/data (not recommended) BEXIS Tech Talk #3: The System Architecture 22
  • 22. Modularity • Integration – Shell integration: menus, themes, scripts, etc. – Authorization • Introducing actions, to be secured, to the system • Automatic security trimming/ action authorization • Notes – Deployment – Hot plug-abilities – Upgrading/versioning BEXIS Tech Talk #3: The System Architecture 23
  • 23. Data • Relational data – Schema evolution – Schema generation – Data versioning – Vendor/tool independence • XML data – File based XML – RDBMS based XML • GIS data – External systems – Integrated querying – Security BEXIS Tech Talk #3: The System Architecture 24
  • 24. Data Access • ORM – NHibernate – Vaiona BEXIS Tech Talk #3: The System Architecture 25
  • 25. Data Access Patterns • Repository pattern – CRUD on entities – Querying using • LINQ to objects • HQL • Native SQL (queries, views, stored-procedures) • Vendor specific customization – Relationship traversal • Laziness/Eagerness • object graph traversal – Automatic entity state/context management – Based on: http://martinfowler.com/eaaCatalog/repository.html BEXIS Tech Talk #3: The System Architecture 26
  • 26. Data Access Patterns • Unit of Work pattern – Business Transaction Management – Concurrency Control – Operating on multiple repositories – Transactions • Distributed Transaction Coordination • Transparent transaction management • Ambient transaction detection/reuse – Web request/session/user aware transaction mgmt. – Automatic commit on request/session termination – Based on: http://martinfowler.com/eaaCatalog/unitOfWork.html BEXIS Tech Talk #3: The System Architecture 27
  • 27. Data Access Patterns • Aggregates – Cluster of entities and their dependents • Datasets and their Versions • Units of measurement and their conversion formula – Simplify the service layer – Packaged as units of work – Better business level operation/transaction mgmt. – Look at: http://martinfowler.com/bliki/DDD_Aggregate.ht ml BEXIS Tech Talk #3: The System Architecture 28
  • 28. Data Access Patterns • Materialization – Complex entity serialized as XML – Stored in field of a table row – Materialize on read • Reads the XML and loads the entity – Dematerialize on write • Serializes the object as an XML document – Used in Data Tuples of dataset versions BEXIS Tech Talk #3: The System Architecture 29
  • 29. ORM example • Dataset as an Aggregate area • DataTuple • DataCell • Versions • Associations BEXIS Tech Talk #3: The System Architecture 30
  • 30. Dataset aggregate: conceptual diagram BEXIS Tech Talk #3: The System Architecture 31 Dataset Dataset VersionDataset Stage Tuple DataValue Data Cell Data Structure 1 +Current Stage 1 10..1 1 1 +Variable Values {Delta Association, Only Structured Data}
  • 31. Dataset aggregate: class diagram BEXIS Tech Talk #3: The System Architecture 32
  • 33. General Record Structure Identification Payload Associations Versioning Audit State Technical Extra BEXIS Tech Talk #3: The System Architecture 34 Identification: it holds information about primary keys, key generation, etc.
  • 34. General Record Structure Identification Payload Associations Versioning Audit State Technical Extra BEXIS Tech Talk #3: The System Architecture 35 Payload: is the business data that the table holds
  • 35. General Record Structure Identification Payload Associations Versioning Audit State Technical Extra BEXIS Tech Talk #3: The System Architecture 36 Associations: relationships between this table and others (also itself). Connected and not connected foreign keys fall into this category, too.
  • 36. General Record Structure Identification Payload Associations Versioning Audit State Technical Extra BEXIS Tech Talk #3: The System Architecture 37 Versioning: information about version number and timestamp. This is the technical data level versioning to be used in concurrency control. It is not the business level data versioning.
  • 37. General Record Structure Identification Payload Associations Versioning Audit State Technical Extra BEXIS Tech Talk #3: The System Architecture 38 Audit: the information about the person or the system who has changed the data in addition to the time, action, and other information
  • 38. General Record Structure Identification Payload Associations Versioning Audit State Technical Extra BEXIS Tech Talk #3: The System Architecture 39 State: shows the current status of the data record. It can be set by business workflows or quality control, e.g., “Approved”, “Rejected”, “Published”, “Locked”, etc.
  • 39. General Record Structure Identification Payload Associations Versioning Audit State Technical Extra BEXIS Tech Talk #3: The System Architecture 40 Technical: this part is used for development purposes and is not intended to be used by data owners or data consumers
  • 40. General Record Structure Identification Payload Associations Versioning Audit State Technical Extra BEXIS Tech Talk #3: The System Architecture 41 Extra: It is an XML field to provide a place for minor extensions and reduce the amount and frequency of changes in the database schema (and sometimes data). Also, it can be considered as an exertion point for customization in different scenarios.
  • 41. ORM mapping: The entity <hibernate-mapping xmlns="urn:nhibernate- mapping-2.2" assembly="BExIS.Dlm.Entities" namespace="BExIS.Dlm.Entities.Data"> <class xmlns="urn:nhibernate-mapping-2.2" name="Dataset" table="Datasets"> </class> </hibernate-mapping> BEXIS Tech Talk #3: The System Architecture 42
  • 42. ORM mapping: Non payload attributes <id name="Id" type="Int64"> <column name="Id" /> <generator class="native" /> </id> <version name="VersionNo" type="Int32"> <column name="VersionNo" /> </version> <property name="Extra" type="System.Xml.XmlDocument, System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <column name="Extra" not-null="false" sql- type="xml" /> </property> BEXIS Tech Talk #3: The System Architecture 43
  • 43. ORM mapping: State attributes <component name="StateInfo"> <property name="State" type="string"> <column name="State" /> </property> <property name="Timestamp" type="DateTime"> <column name="StateTimestamp" not-null="false"/> </property> <property name="Comment" type="string"> <column name="StateComment" /> </property> </component> Same for Creation Info and Modification Info BEXIS Tech Talk #3: The System Architecture 44
  • 44. ORM mapping: Payload attributes <property name="LastCheckIOTimestamp" type="DateTime"> <column name="LastCheckIOTimestamp" /> </property> <property name="CheckOutUser" type="string"> <column name="CheckOutUser" /> </property> BEXIS Tech Talk #3: The System Architecture 45
  • 45. ORM mapping: Associations <set name="Versions" inverse="true" lazy="true" order- by="Timestamp desc" cascade="all-delete-orphan"> <key> <column name="DatasetRef" /> </key> <one-to-many class="DatasetVersion" /> </set> BEXIS Tech Talk #3: The System Architecture 46
  • 46. Dataset aggregate: Database Schema BEXIS Tech Talk #3: The System Architecture 47
  • 47. How to work with the model DatasetManagerService dms = new DatasetManagerService(); Dataset ds = dms.CreateEmptyDataset(sds, rp, ms); DatasetVersion workingCopy = dms.GetDatasetWorkingCopy(ds); // edit the version dms.CheckInDataset(ds, “new version is created.", user); BEXIS Tech Talk #3: The System Architecture 48
  • 48. Inside the “Check In” service method public void CheckInDataset (Int64 datasetId, string comment, string userName) { using(IUnitOfWork uow = this.GetUnitOfWork()) { IRepository<Dataset> repo = uow.GetRepository<Dataset>(); Dataset ds = repo.Get(…).FirstOrDefault(); // Check-in logic here… repo.Put(ds); uow.Commit(); } } } BEXIS Tech Talk #3: The System Architecture 49
  • 49. Outlook Whats next in the talk series? • General purpose components • Third party components • Cross-cut functionalities BEXIS Tech Talk #3: The System Architecture 51

Notas del editor

  1. Just focus on the DLM
  2. Modules have a complete talk
  3. This is a typical Controller action