This document discusses strategies for optimizing Sencha applications that access backend data. It covers using models to define object types, stores to manage lists of models, and proxies to interface with backend APIs. It recommends a REST interface with JSON formatting for network requests. Other tips include dereferencing IDs, compressing responses, caching repetitive data, and handling errors consistently. The document also advocates reusing models, stores, and Sencha components across applications.
]project-open[ Workflow Developer Tutorial Part 1Klaus Hofeditz
The tutorial introduces the basic ]po[ Workflow editor and engine based on a real-world example consisting of a "EDI Development Process" that controls how EDI system integration links are developed and deployed in a Fortune 1000 company.
]project-open[ Workflow Developer Tutorial Part 1Klaus Hofeditz
The tutorial introduces the basic ]po[ Workflow editor and engine based on a real-world example consisting of a "EDI Development Process" that controls how EDI system integration links are developed and deployed in a Fortune 1000 company.
Serious Sencha - Using Sencha ExtJS/Touch for Enterprise ApplicationsKlaus Hofeditz
A summary of the decision process at ]project-open[ for choosing Sencha ExtJS/Touch as the base for the mobile strategy. "Serious Sencha" summarizes enterprise requirements for mobile/desktop apps, and how they are different from usual requirements.
]project-open[ Reporting & Indicators Options: This tutorial explains a number of different ways to extract information from ]project-open[ as a kind of “report”
Spsdc what's new in share point 2013 workflowamitvasu
Workflow Manager is a new product that provides support for SharePoint 2013 workflows. In this session you will learn about Hardware and Software requirements for implementing Workflow manager as well as different Architecture options and gotchas to consider when implementing Workflow Manager. This session will also cover workflow improvements in SharePoint 2013. This will include different tools available for creating custom workflow for SharePoint 2013 including Visio 2013, SharePoint Designer 2013 and Visual Studio 2012. This session will demo on what has changed for Visual Studio workflow and why it would be appealing to Power Users. You will also get guidance on difference between SharePoint 2010 workflow vs SharePoint 2013 workflow as well as SharePoint Designer 2013 workflow vs Visual Studio 2012/2013 workflow.
This presentation will guide you through the MVC Pattern and Flex implementation of MVC (Cairgorm and Mate Frameworks)
http://blog.go4flash.com/articles/flex-articles/mvc-pattern-presentation-cairngorm-vs-mate/
This webinar (done in December,2007) shows how the new Data Services capability in WSO2's Web Services Application Server can become a key component in your SOA/Data strategy. Using simple screens and a basic knowledge of SQL, any database programmer or administrator can configure and expose Data Services. As well as major databases such as Oracle, DB2 and MySQL, you can also extract data from Excel and CSV files.
In this talk, we’ll discuss the benefits of the document-based data model that MongoDB offers by walking through how one can build a simple app. We'll show you how to design a full-blown RSS Aggregation service to replace the loss the world suffered when Google Reader was shutdown.
We'll dive deeper into topics, such as how to model your data and create your REST API using MongoDB, Express.js and Node.js (core components of the MEAN stack). This session will jumpstart your development knowledge of MongoDB.
Serious Sencha - Using Sencha ExtJS/Touch for Enterprise ApplicationsKlaus Hofeditz
A summary of the decision process at ]project-open[ for choosing Sencha ExtJS/Touch as the base for the mobile strategy. "Serious Sencha" summarizes enterprise requirements for mobile/desktop apps, and how they are different from usual requirements.
]project-open[ Reporting & Indicators Options: This tutorial explains a number of different ways to extract information from ]project-open[ as a kind of “report”
Spsdc what's new in share point 2013 workflowamitvasu
Workflow Manager is a new product that provides support for SharePoint 2013 workflows. In this session you will learn about Hardware and Software requirements for implementing Workflow manager as well as different Architecture options and gotchas to consider when implementing Workflow Manager. This session will also cover workflow improvements in SharePoint 2013. This will include different tools available for creating custom workflow for SharePoint 2013 including Visio 2013, SharePoint Designer 2013 and Visual Studio 2012. This session will demo on what has changed for Visual Studio workflow and why it would be appealing to Power Users. You will also get guidance on difference between SharePoint 2010 workflow vs SharePoint 2013 workflow as well as SharePoint Designer 2013 workflow vs Visual Studio 2012/2013 workflow.
This presentation will guide you through the MVC Pattern and Flex implementation of MVC (Cairgorm and Mate Frameworks)
http://blog.go4flash.com/articles/flex-articles/mvc-pattern-presentation-cairngorm-vs-mate/
This webinar (done in December,2007) shows how the new Data Services capability in WSO2's Web Services Application Server can become a key component in your SOA/Data strategy. Using simple screens and a basic knowledge of SQL, any database programmer or administrator can configure and expose Data Services. As well as major databases such as Oracle, DB2 and MySQL, you can also extract data from Excel and CSV files.
In this talk, we’ll discuss the benefits of the document-based data model that MongoDB offers by walking through how one can build a simple app. We'll show you how to design a full-blown RSS Aggregation service to replace the loss the world suffered when Google Reader was shutdown.
We'll dive deeper into topics, such as how to model your data and create your REST API using MongoDB, Express.js and Node.js (core components of the MEAN stack). This session will jumpstart your development knowledge of MongoDB.
Integrate MongoDB & SQL data with a single REST APIEspresso Logic
Webinar slides. Describes how you create a backend application, in the cloud or on premise, that join data from MongoDb and SQL databases with a single RESTful API.
VMworld 2013: Performance Management of Business Critical Applications using ...VMworld
VMworld 2013
Vas Mitra, VMware
David Overbeek, VMware
Learn more about VMworld and register at http://www.vmworld.com/index.jspa?src=socmed-vmworld-slideshare
Business-friendly library for inter-service communicationPivorak MeetUp
I’m going to share the experience of creating a platform-level client library for communication between internal services.
The talk partially covers topology and protocols related decisions we made.
But the main focus is the Ruby library that defines the inter-service communication framework using business-related abstractions.
SenchaCon 2016: Upgrading an Ext JS 4.x Application to Ext JS 6.x - Mark Linc...Sencha
In this session we'll demonstrate the optimal way to upgrade an Ext JS 4.x application to Ext JS 6.x. Detailed examples, recommended best practices, and a completely upgraded Ext JS application will be demonstrated showing the techniques used to perform the upgrade.
Introducing MongoDB Stitch, Backend-as-a-Service from MongoDBMongoDB
Watch this webinar to learn about our new Backend as a Service (BaaS) – MongoDB Stitch.
MongoDB Stitch lets developers focus on building applications rather than on managing data manipulation code, service integration, or backend infrastructure. Whether you’re just starting up and want a fully managed backend as a service, or you’re part of an enterprise and want to expose existing MongoDB data to new applications, Stitch lets you focus on building the app users want, not on writing boilerplate backend logic.
This webinar will cover the what, why, and how of MongoDB Stitch. We’ll cover everything from the features it provides to the architecture that makes it possible. By the end of the session, you should understand how Stitch can kickstart your new project or take your existing application to the next level.
Attendees will learn:
- The basics of MongoDB Stitch and how to use it for new projects or to expose existing data to new applications
- How to control what data and services individual users can access
- How to integrate your favorite services with your MongoDB application without writing extra code
Java Developers, make the database work for you (NLJUG JFall 2010)Lucas Jellema
The general consensus among Java developers has evolved from a dogmatic strive for database independence to a much more pragmatic wish to leverage the power of the database. This session demonstrates some of the (hidden) powers of the database and how these can be utilized from Java applications using either straight JDBC or working through JPA. The Oracle database is used as example: SQL for Aggregation and Analysis, Flashback Queries for historical comparison and trends, Virtual Private Database, complex validation, PL/SQL and collections for bulk data manipulation, view and instead-of triggers for data model morphing, server push of relevant data changes, edition based redefinition for release management.
- overview of role of database in JEE architecture (and a little history on how the database is perceived through the years)
- discussion on the development of database functionality
- demonstration of some powerful database features
- description of how we leveraged these features in our JSF (RichFaces)/JPA (Hibernate) application
- demo of web application based on these features
- discussion on how to approach the database
How sitecore depends on mongo db for scalability and performance, and what it...Antonios Giannopoulos
Percona Live 2017 - How sitecore depends on mongo db for scalability and performance, and what it can teach you by Antonios Giannopoulos and Grant Killian
Now that we have looked several design patterns, from the databases to web presentation, we are now ready to look at the application as a whole. In this lecture we examine the considerations we face when creating an application architecture and we look at each of the three layers.
The lecture presents one way of designing enterprise applications. The goal is to create scalable services.
We also look at the Play framework in more detail and look at REST.
Seminario realizado en el marco del master CANS en la Facultad de Informática de Barcelona.
Anatomia de una aplicación Web
Demasiadas escrituras en la BD, ¿qué puedo hacer?
¿Cómo puedo aprovechar el "Cloud"?
Optimizando aplicaciones Facebook
Description of the ]po[ data-model suitable for report developers and integration engineers. These slides introduce step-by-step into the most important tables and concepts of ]project-open[.
This tutorial explains the purpose and use of “categories” in ]project-open[. Categories are the most widely used data-structure in the system. They are used to represent the status and type of business objects and as general classifiers.
]po[ is a Web-based ERP/Project Management software for organizations with 2-200 users. ]po[ integrates areas such as CRM, sales, project planning, project tracking, collaboration, timesheet, invoicing and payments.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
Generating a custom Ruby SDK for your web service or Rails API using Smithyg2nightmarescribd
Have you ever wanted a Ruby client API to communicate with your web service? Smithy is a protocol-agnostic language for defining services and SDKs. Smithy Ruby is an implementation of Smithy that generates a Ruby SDK using a Smithy model. In this talk, we will explore Smithy and Smithy Ruby to learn how to generate custom feature-rich SDKs that can communicate with any web service, such as a Rails JSON API.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
4. ServerServer
Architecture – The Role of Model, Store & Proxy
]po[ Server]po[ Server
REST
Interface
REST
Interface
Server:
REST API
ClientClient
NoteNavigationViewNoteNavigationView
NoteListNoteList
NoteDetailNoteDetail
GUI View:
Pages & Panels
NoteStoreNoteStore
• Id: 12345
• note: „asdf@asdf.com“
• note_type_id: 11508
• note_status_id: 11400
• object_id: 624
• Id: 12346
• note: „http://www.test.com/“
• note_type_id: 11510
• note_status_id: 11400
• object_id: 8868
. . .
NoteModelNoteModel
• Id: integer
• note: text
• note_type_id: integer
• note_status_id: integer
• object_id: integer
„Proxy“„Proxy“
Data:
Model & Store
Network:
Interface
5. Model A “Model” defines an object type
together with it’s attributes
Optionally attributes may have an
object type defined:
– String (default)
– int (-eger)
– boolean
Corresponds to a UML object
definition or an SQL table definition.
Watch out for the “config” section.
This is required for Sencha Touch not
allowed in ExtJS
The model closely resembles the
SQL data-model in ]project-open[. In
fact, we can generate the model
automatically from the ]po[ SQL
metadata system.
Ext.define('PO.model.Note', {
extend: 'Ext.data.Model',
config: {
fields: [
'id',
'note',
'object_id',
'note_status_id',
'note_type_id'
]
}
});
NoteNote
• Id: integer
• note: text
• note_type_id: integer
• note_status_id: integer
• object_id: integer
6. Store A “store” contains a list
of models
A store corresponds to
an SQL table with a list
of models.
Stores are directly used
by lists, widgets and
other GUI elements for
data.
The store specifies the
“proxy” that defines how
data are read/written
from/to the server
Ext.define('PO.store.NoteStore', {
extend: 'Ext.data.Store',
storeId: 'noteStore',
config: {
model: 'PO.model.Note',
autoLoad: true,
proxy: {
type: 'rest',
url: '/intranet-rest/im_note',
appendId: true,
extraParams: {
format: 'json'
},
reader: {
type: 'json',
rootProperty: 'data'
}
}
}
});
7. Proxy A “proxy” defines how data
are read/written from/to
the server.
Reader: Specifications on
how to convert JSON data
from the server
Writer: Specifications on
how to convert data into
JSON for the server
Two options:
– Adapt the Reader/Writer to
the WS interface of the
server or
– Adapt the WS server
interface to Sencha
– The ]po[ REST interface has
been designed for Sencha
compatibility
Ext.define('PO.store.NoteStore', {
extend: 'Ext.data.Store',
storeId: 'noteStore',
config: {
model: 'PO.model.Note',
autoLoad: true,
proxy: {
type: 'rest',
url: '/intranet-rest/im_note',
appendId: true,
extraParams: {
format: 'json'
},
reader: {
type: 'json',
rootProperty: 'data'
}
}
}
});
10. Server Side Interfaces: Protocols, Styles and Formatting
Protocol Options
– HTTP 1.1
– Web Sockets
Communication Styles
– Plain AJAX
– REST style
Payload Formatting Options
– XML
– JSON
– CSV
]project-open[ has decided for REST style communication with JSON
formatting:
– REST provides at least some type of standard
– REST is “stateless”
– Sencha ExtJS/Touch come with a REST “Proxy” that can both read and write
– The ]po[ REST interface has been designed to meet the Sencha protocol.
11. Server Side Interfaces: Example
Sencha request URL to
Server
Answer from Server
– “success”: true/false for
error handling
– “message”: Error message
– “data”: The starting point for
the payload data
{
"success": true,
"message": "Data loaded",
"data": [
{'date': '2014-06-16', 'value': 0.0},
{'date': '2014-06-17', 'value': 43200.0},
{'date': '2014-06-19', 'value': 43200.0},
{'date': '2014-06-24', 'value': 187200.0},
{'date': '2014-06-25', 'value': 187200.0},
{'date': '2014-06-27', 'value': 187200.0}
]
}
http://po40dev.project-open.net/
intranet-reporting-dashboard/project-eva.json?
diagram_project_id=168725&
page=1&
start=0&
limit=25
12. Server Side Interfaces: Store Example
The source code at the right is
a real-world example.
“fields”: Defines the “columns”
of the store
“proxy”: Defines how to load
the data
“extraParams”: Allows to
specify URL parameters – in
this case we pass the
project_id.
“reader”: Defines how to parse
the response from the server.
projectEvaStore = Ext.create('Ext.data.Store', {
fields: ['date', 'value'],
autoLoad: true,
proxy: {
type: 'rest',
url: '/intranet-dashboard/project-eva.json',
extraParams: {
project_id: project_id
},
reader: { type: 'json', root: 'data' }
}
});
{
"success": true,
"message": "Data loaded",
"data": [
{'date': '2014-06-16', 'value': 0.0},
{'date': '2014-06-17', 'value': 43200.0},
{'date': '2014-06-19', 'value': 43200.0},
{'date': '2014-06-24', 'value': 187200.0},
{'date': '2014-06-25', 'value': 187200.0},
{'date': '2014-06-27', 'value': 187200.0}
]
}
http://po40dev.project-open.net/
intranet-reporting-dashboard/project-eva.json?
project_id=168725&
page=1&
start=0&
limit=25
13. Server Side Interfaces: Data Sources Considerations
A “data-source” is a server-side script that returns
JSON data to the client
Security: Data-sources provide data to the “wild”
Internet and are vulnerable to SQL injection, DoS,
XSS and other attacks.
Permissions: The system’s permission model
needs to honored
Performance: SQL optimization and caching
You may very quickly run into a variety of badly
documented data-sources with security holes.
Plan for your future data-sources and keep order
14. Server Side Interfaces: Data Sources Examples
In ]po[ we use three different types of data-
sources:
– SQL as data-source:
A library allows to generically deploy any SQL
command as a data-source including permissions
– ]po[ REST Interface:
A generic REST interface that provides generic read,
write, create and delete access to ]po[ business objects
via the ]po[ SQL metadata system.
– Custom written in TCL (could be PHP): Only in special
cases of complex logic or performance issues. Try to
avoid whenever possible.
16. The Problem
– An app is supposed to show the list of projects
for the current user.
– Project information is stored in the “Project”
model that closely resembles the ]
po[ “im_projects” table.
– The table stores the project’s customer and
project manager as IDs, based on SQL design
best practices (1st normal form).
– => The app can not show the project list, unless
it has loaded the full Users and Customers
stores, which can take minutes (with 40.000
customers, for example).
The Solution
– “Dereferencing”:
The server-side REST interface includes the
user-name and customer-name, together with
the IDs
– Compression:
Long lists of objects can be compressed on the
server side using GZip (HTTP standard). This
reduces the data size by a factor of 10.
– Client-side caching:
Lists of slow changing data (users, customer,
value ranges (categories), …) can be stored in
the browser. These data can then be “synced”
instead of being loaded.
Performance
issues with
large amounts
of data
ProjectProject
• project_id: integer
• […]
• customer_id: integer
• project_manager_id: integer
• […]
CustomerCustomer
• customer_id: integer
• customer_name: string
• […]
UserUser
• user_id: integer
• user_name: string
• […]
17. Dependent
Stores – Stores
with similar
contents
The Problem
– The client has to load multiple times similar data
from the server.
– Reason: Every list, drop-down box, etc. GUI
element requires a store for it’s data.
– These stores frequently contain similar data, but
not exactly the same data:
• Different filters or subsets (Users of group
“Employees” vs. “Customers”)
• Different sort order
• Different groupings
– These stores sometimes are long.
The Solution
– Load the maximum list in the background right
after the initial startup
– After loading the store, create the “dependent”
stores using a JavaScript procedure.
18. Error Handling The Problem:
– Many things can go wrong on the server-side
• Connection unavailable
• Server unavailable
• Database issues
• Unique and check condition violation
• Software error
• …
– These issues are somehow “obscure” and difficult to debug:
• They are part of a long chain of processes
• They may occur rarely or randomly
• They may occur under high load or concurrency conditions
– The issues may be difficult to communicate
• They appear to technically unskilled users.
• They appear on a mobile device with limited GUI capabilities
– When operating the service, you will need to be able to debug these
issues efficiently
The Solution
– All parts of the chain need to return reasonable error messages.
– Display important errors to the user
– Provide a server-side error reporting functionality where the user can
submit error reports.
– Keep an error log on the client side. You may send this error log to
the server together with a stack trace in order to provide a context for
debugging.
– ]project-open[ includes a package for submitting and tracking error
reports per user and software version
20. Enterprise
Reuse
Motivation
Enterprise applications consist of hundreds
or thousands of pages
The page structure is relatively simple and
standardized, as opposed to sophisticated
user experiences of apps mainly created
for marketing reasons.
Reuse becomes more important because
of the number of pages
Reuse is possible, because the various
pages are more standard.
21. Enterprise
Reuse –
REST Interface
Generic REST interface for business
objects based on SQL metadata
– Generic R=read operation returns table columns
plus optionally dereferenced object_ids
– Generic W=write operation updates existing
objects
– Generic C=create operation is not possible in ]
project-open[, but may be possible in other
business applications because of object type
specific PL/SQL constructors
– Generic D=delete operation not possible in ]po[
Permissions
– Permissions per operation and per attribute
need to be handled.
– Access to certain business objects may need to
be logged for security reasons