Google AppEngine is an application platform that allows developers to build and host web applications in the cloud. It provides automatic scaling of web and worker instances, high availability, load balancing, and simple deployment. The platform handles low-level tasks like hardware provisioning and maintenance. However, applications are limited by the sandbox environment and certain features like file system access and sockets are not supported. Pricing is based on usage of resources like bandwidth, CPU time, and data storage. While deployment is easy, applications need to be designed specifically for the AppEngine platform to work within its constraints.
Silicon Valley JUG - How to generate customized java 8 code from your databaseSpeedment, Inc.
The best code is the one you never need to write. Using code generation and automated builds you can minimize the risk of human error when developing software, but how do you maintain control over code when large parts of it is handed over to a machine? In this tutorial, you will learn how to use open-source software to create and control code automation. You will see how you can generate a completely object-oriented domain model by automatically analyzing your database schemas. Every aspect of the process is transparent and configurable, giving you as a developer 100% control of the generated code. This will not only increase your productivity, but also help you build safer and more maintainable Java applications.
JSF 2 Notes with coding examples topics include introduction , managed bean, jsf tags, navigation, jsf life cycle and phase listners,jsf validation and converters, i18n
Slides for “The Future of Plugin Dev” workshop given by Brandon Kelly at Peers 2015.
You can watch the full recording here: https://vimeo.com/128101264
Take a whirlwind tour of the many ways in which Java can make your life better as a developer. We'll use Java in IBM Notes, Eclipse, and the latest IDEs. And we'll show you examples of best of breed libraries that can analyze data, create PDFs, and perform image processing on the fly. Get connected to IBM Connections, access relational data, open sockets, and parse feeds. And along the way we'll throw in tips for testing, performance, and writing good code.
Introduction
Web Storage
WebSQL
IndexedDB
File System Access
Final Considerations
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2014.
http://www.ivanomalavolta.com
Anatomy of a web app
HTML5
CSS3
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2014.
http://www.ivanomalavolta.com
Silicon Valley JUG - How to generate customized java 8 code from your databaseSpeedment, Inc.
The best code is the one you never need to write. Using code generation and automated builds you can minimize the risk of human error when developing software, but how do you maintain control over code when large parts of it is handed over to a machine? In this tutorial, you will learn how to use open-source software to create and control code automation. You will see how you can generate a completely object-oriented domain model by automatically analyzing your database schemas. Every aspect of the process is transparent and configurable, giving you as a developer 100% control of the generated code. This will not only increase your productivity, but also help you build safer and more maintainable Java applications.
JSF 2 Notes with coding examples topics include introduction , managed bean, jsf tags, navigation, jsf life cycle and phase listners,jsf validation and converters, i18n
Slides for “The Future of Plugin Dev” workshop given by Brandon Kelly at Peers 2015.
You can watch the full recording here: https://vimeo.com/128101264
Take a whirlwind tour of the many ways in which Java can make your life better as a developer. We'll use Java in IBM Notes, Eclipse, and the latest IDEs. And we'll show you examples of best of breed libraries that can analyze data, create PDFs, and perform image processing on the fly. Get connected to IBM Connections, access relational data, open sockets, and parse feeds. And along the way we'll throw in tips for testing, performance, and writing good code.
Introduction
Web Storage
WebSQL
IndexedDB
File System Access
Final Considerations
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2014.
http://www.ivanomalavolta.com
Anatomy of a web app
HTML5
CSS3
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2014.
http://www.ivanomalavolta.com
JavaOne 2011: Migrating Spring Applications to Java EE 6Bert Ertman
The Spring Framework has no-doubt played a major role in evolving the way we write enterprise applications on the Java platform today. However, it is still a proprietary framework owned by a single company. The age of having to rely on such proprietary frameworks in order to develop decent enterprise applications is now over and Java EE 6 has become an even easier way to develop enterprise applications based on standards which makes it the best choice for any enterprise application. In this session you will experience how to migrate a typical full stack Spring application to a standards based, completely portable, Java EE 6 application including integration tests.
In this session, we take a look at a handful of the features that will be part of the upcoming Java EE 8 release, as well as a few of the existing features that can be utilized in Java EE 7 today. Each of the features are presented via a recipe in the "Problem", "Solution", and "How it Works" format.
JavaScript basics
JavaScript event loop
Ajax and promises
DOM interaction
JavaScript object orientation
Web Workers
Useful Microframeworks
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2015.
http://www.ivanomalavolta.com
Mobile applications Development - Lecture 10
HTML5 Refresher
This presentation has been developed in the context of the Mobile Applications Development course at the Computer Science Department of the University of L’Aquila (Italy).
http://www.di.univaq.it/malavolta
In building large scale web applications MVC seems like a good solution in the initial design phase. However after having built a few large apps that have multiple entry points (web, cli, api etc) you start to find that MVC breaks down. Start using Domain Driven Design.
Domain-driven design (DDD) is an approach to software development for complex needs by connecting the implementation to an evolving model.[1] The premise of domain-driven design is the following:
Placing the project's primary focus on the core domain and domain logic.
Basing complex designs on a model of the domain.
Initiating a creative collaboration between technical and domain experts to iteratively refine a conceptual model that addresses particular domain problems.
Have more questions?
Twitter: @wajrcs
Web: http://waqaralamgir.tk
Build and deployment of SOA Composites for enterprise organizations can get complex. While building you have to take into account the architecture, development guidelines, other projects, platform release and component lifecycles. Next to this you have to work with the differences in deployment procedures for several versions of Oracle Fusion Middleware. In this session we will showcase some of the best practices and dirty tricks to create an effective and future proof build and deployment process for Oracle Middleware. We will showcase practical demos in for SOA components in Bamboo, Nexus and XLDeploy for a large scale enterprise application landscape.
We are Providing #FREE #SQL #Database #Training to students.. Registration Fees Apply
For Registration Call us : 8087155500 / 8149775757
Java,PHP,UIDesign,.Net,Adnroid,Softwaretesting
Encryption Technology
Above Jijamata Bank, 4rth Floor, Near Karve Nagar Bus stand, Pune
Hybernat and structs, spring classes in mumbai
best Hybernat and structs, spring classes in mumbai with job assistance.
our features are:
expert guidance by it industry professionals
lowest fees of 5000
practical exposure to handle projects
well equiped lab
after course resume writing guidance
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
JavaOne 2011: Migrating Spring Applications to Java EE 6Bert Ertman
The Spring Framework has no-doubt played a major role in evolving the way we write enterprise applications on the Java platform today. However, it is still a proprietary framework owned by a single company. The age of having to rely on such proprietary frameworks in order to develop decent enterprise applications is now over and Java EE 6 has become an even easier way to develop enterprise applications based on standards which makes it the best choice for any enterprise application. In this session you will experience how to migrate a typical full stack Spring application to a standards based, completely portable, Java EE 6 application including integration tests.
In this session, we take a look at a handful of the features that will be part of the upcoming Java EE 8 release, as well as a few of the existing features that can be utilized in Java EE 7 today. Each of the features are presented via a recipe in the "Problem", "Solution", and "How it Works" format.
JavaScript basics
JavaScript event loop
Ajax and promises
DOM interaction
JavaScript object orientation
Web Workers
Useful Microframeworks
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2015.
http://www.ivanomalavolta.com
Mobile applications Development - Lecture 10
HTML5 Refresher
This presentation has been developed in the context of the Mobile Applications Development course at the Computer Science Department of the University of L’Aquila (Italy).
http://www.di.univaq.it/malavolta
In building large scale web applications MVC seems like a good solution in the initial design phase. However after having built a few large apps that have multiple entry points (web, cli, api etc) you start to find that MVC breaks down. Start using Domain Driven Design.
Domain-driven design (DDD) is an approach to software development for complex needs by connecting the implementation to an evolving model.[1] The premise of domain-driven design is the following:
Placing the project's primary focus on the core domain and domain logic.
Basing complex designs on a model of the domain.
Initiating a creative collaboration between technical and domain experts to iteratively refine a conceptual model that addresses particular domain problems.
Have more questions?
Twitter: @wajrcs
Web: http://waqaralamgir.tk
Build and deployment of SOA Composites for enterprise organizations can get complex. While building you have to take into account the architecture, development guidelines, other projects, platform release and component lifecycles. Next to this you have to work with the differences in deployment procedures for several versions of Oracle Fusion Middleware. In this session we will showcase some of the best practices and dirty tricks to create an effective and future proof build and deployment process for Oracle Middleware. We will showcase practical demos in for SOA components in Bamboo, Nexus and XLDeploy for a large scale enterprise application landscape.
We are Providing #FREE #SQL #Database #Training to students.. Registration Fees Apply
For Registration Call us : 8087155500 / 8149775757
Java,PHP,UIDesign,.Net,Adnroid,Softwaretesting
Encryption Technology
Above Jijamata Bank, 4rth Floor, Near Karve Nagar Bus stand, Pune
Hybernat and structs, spring classes in mumbai
best Hybernat and structs, spring classes in mumbai with job assistance.
our features are:
expert guidance by it industry professionals
lowest fees of 5000
practical exposure to handle projects
well equiped lab
after course resume writing guidance
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
Web Applications of the future: Combining JEE6 & JavaFXPaul Bakker
This presentation shows the most important web related new futures in JEE 6, and how to combine JEE 6 and JavaFX to create interesting applications. Topics such as JAX-RS, JSF 2.0, EJB lite and JavaFX/JavaScript integration is discussed.
How to generate customized java 8 code from your databaseSpeedment, Inc.
Did you know that database classes, that require many lines of Java and SQL code, may be replaced with a single line of Java 8 code? In this tutorial session you will learn how to use standard Java 8 Streams as an alternative to traditional Object Relational Mappers (ORM). We will use the open-source tool Speedment to show how development speed can be increased and how the application code can be more concise and run faster.
Any structure expected to stand the test of time and change needs a strong foundation! Software is no exception. Engineering your code to grow in a stable and effective way is critical to your ability to rapidly meet the growing demands of users, new features, technologies, and platform capabilities. Join us to obtain architect-level design patterns for use in your Apex code to keep it well factored, easy to maintain, and in line with platform best practices. You'll follow a Force.com interpretation of Martin Fowler's Enterprise Architecture Application patterns, and the practice of Separation of Concerns.
Play Framework makes it easy to build web applications with Java & Scala. This presentation give a idea of how play is implemented using Netty, how routes work. How we get calls in controller's action. Walk through guice and logging.
JavaOne2016 - How to Generate Customized Java 8 Code from Your Database [TUT4...Speedment, Inc.
The best code is the one you never need to write. Using code generation and automated builds, you can minimize the risk of human error when developing software, but how do you maintain control over code when large parts of it are handed over to a machine? In this tutorial, you will learn how to use open source software to create and control code automation. You will see how you can generate a completely object-oriented domain model by automatically analyzing your database schemas. Every aspect of the process is transparent and configurable, giving you, as a developer, 100 percent control of the generated code. This will not only increase your productivity but also help you build safer, more maintainable Java applications and is a perfect solution for Microservices.
How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...Malin Weiss
The best code is the one you never need to write. Using code generation and automated builds, you can minimize the risk of human error when developing software, but how do you maintain control over code when large parts of it are handed over to a machine? In this tutorial, you will learn how to use open source software to create and control code automation. You will see how you can generate a completely object-oriented domain model by automatically analyzing your database schemas. Every aspect of the process is transparent and configurable, giving you, as a developer, 100 percent control of the generated code. This will not only increase your productivity but also help you build safer, more maintainable Java applications and is a perfect solution for Microservices.
Serverless architectures let you build and deploy applications and services with infrastructure resources that require zero administration. In the past, you had to provision and scale servers to run your application code, install and operate distributed databases, and build and run custom software to handle API requests. Now, AWS provides a stack of scalable, fully-managed services that eliminates these operational complexities.
In this session, you will learn about the benefits of serverless architectures and the basics of the serverless stack AWS provides. We will also walk through how you can use serverless architectures for everything from data processing to mobile and web backends.
AWS DevDay San Francisco, June 21, 2016.
Presenter: Jeremy Edberg, Co-Founder, CloudNative, & AWS Community Hero
For our next ArcReady, we will explore a topic on everyone’s mind: Cloud computing. Several industry companies have announced cloud computing services . In October 2008 at the Professional Developers Conference, Microsoft announced the next phase of our Software + Services vision: the Azure Services Platform. The Azure Services Platforms provides a wide range of internet services that can be consumed from both on premises environments or the internet.
Session 1: Cloud Services
In our first session we will explore the current state of cloud services. We will then look at how applications should be architected for the cloud and explore a reference application deployed on Windows Azure. We will also look at the services that can be built for on premise application, using .NET Services. We will also address some of the concerns that enterprises have about cloud services, such as regulatory and compliance issues.
Session 2: The Azure Platform
In our second session we will take a slightly different look at cloud based services by exploring Live Mesh and Live Services. Live Mesh is a data synchronization client that has a rich API to build applications on. Live services are a collection of APIs that can be used to create rich applications for your customers. Live Services are based on internet standard protocols and data formats.
This is an adaptation of the presentation given at the SpringOne 2008 conference in Hollywood, FL. It contains some updates on project status, and also information about the recently published book "Spring Python 1.1"
This slideshow is licensed under a Creative Commons Attribution 3.0 United States License.
Five Ways Automation Has Increased Application Deployment and Changed CultureXebiaLabs
Paychex, a recognized leader in the payroll, human resource, and benefits outsourcing industry, found that the demand for application deployments had increased beyond what could be supported by manual configuration. Keeping up with this demand required a shift from manually providing a service to developing an automated platform for self-service resulting in a culture change with new partnering across their DEV, OPS and Architecture teams.
David Jozis, Automation Engineer at Paychex, discusses the challenges they encountered when making these significant changes and how they were able to overcome them to accomplish 5x as many deployments as before.
Workflow Management with Espresso WorkflowRolf Kremer
PAVONE Espresso Workflow is a workflow management solution, based on Java EE technology. The focus is on team-oriented processes, known as human workflow management. It has an easy-to-use and powerful API.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
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.
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/
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™UiPathCommunity
In questo evento online gratuito, organizzato dalla Community Italiana di UiPath, potrai esplorare le nuove funzionalità di Autopilot, il tool che integra l'Intelligenza Artificiale nei processi di sviluppo e utilizzo delle Automazioni.
📕 Vedremo insieme alcuni esempi dell'utilizzo di Autopilot in diversi tool della Suite UiPath:
Autopilot per Studio Web
Autopilot per Studio
Autopilot per Apps
Clipboard AI
GenAI applicata alla Document Understanding
👨🏫👨💻 Speakers:
Stefano Negro, UiPath MVPx3, RPA Tech Lead @ BSP Consultant
Flavio Martinelli, UiPath MVP 2023, Technical Account Manager @UiPath
Andrei Tasca, RPA Solutions Team Lead @NTT Data
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Welocme to ViralQR, your best QR code generator.ViralQR
Welcome to ViralQR, your best QR code generator available on the market!
At ViralQR, we design static and dynamic QR codes. Our mission is to make business operations easier and customer engagement more powerful through the use of QR technology. Be it a small-scale business or a huge enterprise, our easy-to-use platform provides multiple choices that can be tailored according to your company's branding and marketing strategies.
Our Vision
We are here to make the process of creating QR codes easy and smooth, thus enhancing customer interaction and making business more fluid. We very strongly believe in the ability of QR codes to change the world for businesses in their interaction with customers and are set on making that technology accessible and usable far and wide.
Our Achievements
Ever since its inception, we have successfully served many clients by offering QR codes in their marketing, service delivery, and collection of feedback across various industries. Our platform has been recognized for its ease of use and amazing features, which helped a business to make QR codes.
Our Services
At ViralQR, here is a comprehensive suite of services that caters to your very needs:
Static QR Codes: Create free static QR codes. These QR codes are able to store significant information such as URLs, vCards, plain text, emails and SMS, Wi-Fi credentials, and Bitcoin addresses.
Dynamic QR codes: These also have all the advanced features but are subscription-based. They can directly link to PDF files, images, micro-landing pages, social accounts, review forms, business pages, and applications. In addition, they can be branded with CTAs, frames, patterns, colors, and logos to enhance your branding.
Pricing and Packages
Additionally, there is a 14-day free offer to ViralQR, which is an exceptional opportunity for new users to take a feel of this platform. One can easily subscribe from there and experience the full dynamic of using QR codes. The subscription plans are not only meant for business; they are priced very flexibly so that literally every business could afford to benefit from our service.
Why choose us?
ViralQR will provide services for marketing, advertising, catering, retail, and the like. The QR codes can be posted on fliers, packaging, merchandise, and banners, as well as to substitute for cash and cards in a restaurant or coffee shop. With QR codes integrated into your business, improve customer engagement and streamline operations.
Comprehensive Analytics
Subscribers of ViralQR receive detailed analytics and tracking tools in light of having a view of the core values of QR code performance. Our analytics dashboard shows aggregate views and unique views, as well as detailed information about each impression, including time, device, browser, and estimated location by city and country.
So, thank you for choosing ViralQR; we have an offer of nothing but the best in terms of QR code services to meet business diversity!
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfPeter Spielvogel
Building better applications for business users with SAP Fiori.
• What is SAP Fiori and why it matters to you
• How a better user experience drives measurable business benefits
• How to get started with SAP Fiori today
• How SAP Fiori elements accelerates application development
• How SAP Build Code includes SAP Fiori tools and other generative artificial intelligence capabilities
• How SAP Fiori paves the way for using AI in SAP apps
2. About me
Paul Bakker
• Trainer Info Support Hibernat
EJB 3
e
• NLJUG speaker JSF
Flex
• Java Magazine author Seam
Groovy
JavaFX
Grails
Spring
3. About Info Support
• Financieel gezond sinds oprichting 1986
• Focus op IT vakmanschap
• Brede en integrale dienstverlening
• Partnerships met o.a. Microsoft, IBM, NLJUG
• Vestigingen in Nederland en België
- 250+ medewerkers in Nederland
- 25 medewerkers in België
8. Infrastructure
as a Service
A virtual hardware platform
Full control of the operating system
Custom configuration of application servers
9. Infrastructure
as a Service
Pros
It’s just works like your old hardware
No development limitations
No lock-in
Cons
You still have to manage servers
No automatic scaling
10. Platform as a
Service
A virtual application server
No control of the operating system
Running in a sandbox
11. Platform as a
Service
Pros
No more server management
Easy deployment
Automatic scaling
Cons
Limited by the sandbox
Can’t run existing apps
12. Software as a
Service
Run an application from the cloud
Might extend the application using a
proprietary API
15. Handling requests
Each application gets a free domain name
http://yourappname.appspot.com
You can add your own domain name
Each request has a 30 second timeout
Streaming responses are not supported
16. Scaling
JVMs are started on demand
on app startup
after inactivity
when upscaling
Starting a JVM causes a “loading request”
the app is loaded during that request
17. Loading request
optimization
Application startup time is now important
the app might be started after a request
Reduce the use of libraries
Prevent heavy initialization code
share data with multiple JVMs using
MemCache
18. The sandbox
You can’t
Write to the file system
Open sockets
Start threads
Invoke most System calls
Reflect on classes not belonging to the app
Use JRE classes not on the white list
19. Supported
Java Data Objects (JDO)
Java Persistence API (JPA)
Java Server Faces (JSF)
Java Server Pages (JSP) and JSTL
Java Servlet API 2.4
JavaBeans Activation Framework (JAF)
Java Architecture for XML Binding (JAXB)
JavaMail
XML processing APIs including DOM, SAX and XSLT
20. Not Supported
Enterprise Java Beans (EJB)
JAX-WS and JAX-RPC
JDBC
Java EE Connector Architecture (JCA)
Java Management Extensions (JMX)
Java Message Service (JMS)
Java Naming and Directory Interface (JNDI)
Remote Method Invocation (RMI)
24. Sharded architecture
Row name Values
A [...]
B [...]
C [...]
Row name Values
D [...]
E [...]
F [...]
Row name Values
G [...]
H [...]
I [...]
25. Entity storage
Kind => table
Key => primary key
Entity Group => partition
Typed properties => columns
Kind Person
Entity Group /Person:Paul
Key /Person:Paul
name string: Paul Bakker
colleagues Key:/Speaker(68) Key:/Speaker(15)
26. Entity Groups
Entities are hierarchical
Useful for “owned” relations
a chapter can’t exist without a book
/Book(24)/Chapter(2)/Paragraph(3)
27. Queries
Supported filters
< less than
<= less than or equal to
= equal to
> greater than
>= greater than or equal to
!= not equal to
28. Indexes
Each query uses an index
One index for each combination of:
kind
filter property
operator
sort order
29. Index example
JPQL queries
select s from Speaker s order by s.firstname, s.lastname
select s from Speaker s WHERE s.firstname LIKE :firstname order by s.firstname, s.lastname
select s from Speaker s WHERE lastname LIKE :lastname order by s.lastname, s.firstname
Index configuration
30. Transactions
The DataStore is transactional
All DataStore write operations are atomic
Only a single Entity Group can be used
within a transaction
entities in the same group live physically
together
37. Transactions
Begin transaction
Create new Speaker (/Speaker(1))
Add Talk (/Speaker(1)/Talk(1))
Commit transaction
Begin transaction
Add new Speaker (/Speaker(2))
Commit transaction
38. Transaction Isolation
Within a transaction: Serializable
transactions are completely isolated
Outside a transaction: Read Committed
get() will only consist of committed data
queries are more subtle
39. Understand commits
A commit() consists of two milestones
1 changes to entities visible
2 changes to indexes visible
the entity is updated, but might not be
returned by a predicate query
40. Understand commits
bob.age == 18
Transaction 1
bob.age += 1
select ... where age = 18
Transaction 2
41. Understand commits
bob.age == 18
Transaction 1
bob.age += 1
select ... where age = 18
Transaction 2
bob is returned
42. Understand commits
bob.age == 18
Transaction 1
bob.age += 1
select ... where age = 18
Transaction 2
bob is returned
bob.age == 19
43. The low level API
JDBC like API
Work directly with untyped entities and
properties
Query using GQL
52. JPA limitations
No “Joined” inheritance
No “Single Table” inheritance
would be technically possible
No many-to-many relationships
No join-queries
No aggregation queries
No polymorphic queries
53. Owned relationships
The “owned” entity only has meaning when
it’s parent exists
Key includes parent key
/Department(24)/Employee(2)
72. Cron syntax
every N (hours|mins|minutes)
("every"|ordinal) (days) ["of" (monthspec)] (time)
Examples
every 5 minutes
every 12 hours
2nd,third mon,wed,thu of march 17:00
every monday 09:00
1st monday of sep,oct,nov 17:00
every day 00:00
74. Task Queues
Process asynchronous, parallel background
tasks
Modeled as web hooks
a request to a web hook is scheduled
the request handler is just like any other
user request
a web hook has data and code
75. Task queue use cases
Send multiple confirmation emails
each email is sent by a request to the
same task with different data
Place order
send confirmation email (task 1)
send notification to admin (task 2)
79. Saving files
Store files up to 50 mb in the BlobStore
Upload by form POST
file is uploaded to the BlogStore
get a blob key in code
Serve file using blob key
88. Frameworks
A lot of frameworks work “mostly”
but you never know if/when it breaks...
JSF 1.2 e.g. RichFaces is not!
JSF 2 disable threads
Grails using a plugin
Weld multiple issues
JAX-WS
EJB
Spring some modules are not
JMS
101. Quotas
Free Default Quota Billing Enabled Default Quota
Resource
Daily Limit Maximum Rate Daily Limit Maximum Rate
7,400 requests/ 43,000,000 30,000 requests/
Requests 1,300,000 requests
minute requests minute
Outgoing 56 megabytes/ 1 gigabyte free; 10 gigabytes/
Bandwidth (billable, 1 gigabyte 1,046 gigabytes
minute minute
includes HTTPS) maximum
Incoming 56 megabytes/ 1 gigabyte free; 10 gigabytes/
Bandwidth (billable, 1 gigabyte 1,046 gigabytes
minute minute
includes HTTPS) maximum
15 CPU-minutes/ 6.5 CPU-hours free; 72 CPU-minutes/
CPU Time (billable) 6.5 CPU-hours 1,729 CPU-hours
minute minute
maximum
102. Pricing
Resource Unit Unit cost
Outgoing
gigabytes $0.12
Bandwidth
Incoming
gigabytes $0.10
Bandwidth
CPU Time CPU hours $0.10
gigabytes per
Stored Data $0.15
month
Recipients
recipients $0.0001
Emailed
-Maak een nieuwe appengine applicatie
-Run de applicatie lokaal
-Pas het application id aan in de settings
-Upload de applicatie
-Bekijk in de browser
-Doe een aanpassing
-Bekijk opnieuw in de browser
Demo 1: DataStoreServlet
/datastoredemo
Een speaker heeft talks /Speaker(1)/Talk(1)
Een speaker en talk kan in dezelfde transactie worden opgeslagen
Twee verschillende speakers kunnen niet in dezelfde transactie worden opgeslagen.
Demo 1: DataStoreServlet
/datastoredemo
Een speaker heeft talks /Speaker(1)/Talk(1)
Een speaker en talk kan in dezelfde transactie worden opgeslagen
Twee verschillende speakers kunnen niet in dezelfde transactie worden opgeslagen.
Demo 1: DataStoreServlet
/datastoredemo
Een speaker heeft talks /Speaker(1)/Talk(1)
Een speaker en talk kan in dezelfde transactie worden opgeslagen
Twee verschillende speakers kunnen niet in dezelfde transactie worden opgeslagen.
Een speaker heeft ook collega&#x2019;s. Collega&#x2019;s zijn niet &#x201C;owned&#x201D; en daarom kan alleen de key worden opgeslagen ipv de entity zelf. Kijk naar speaker.addColleague en speaker.getCollegues