This document discusses WSO2's application development platform, which provides tools for building, deploying, and managing applications. It is presented by Sagara Gunathunga from WSO2. The platform includes an application server, user engagement server, API management, application monitoring, and supports development with Jaggery.js. It aims to address challenges in the application lifecycle from development to production deployments.
A Beginners Guide to Building a RAG App Using Open Source Milvus
Kick Start your Application Development and Management Strategy
1. Senior
Technical
Lead
Sagara
Gunathunga
Kick-‐start
your
Applica6on
Development
and
Management
Strategy
2. 2
About
the
Presenter
๏ Sagara
Gunathunga,
๏ Senior
Technical
Lead
๏ sagara@wso2.com
3. 3
About
WSO2
๏ Global
enterprise,
founded
in
2005
by
acknowledged
leaders
in
XML,
web
services
technologies,
standards
and
open
source
๏ Provides
only
open
source
plaMorm-‐as-‐a-‐service
for
private,
public
and
hybrid
cloud
deployments
๏ All
WSO2
products
are
100%
open
source
and
released
under
the
Apache
License
Version
2.0.
๏ Is
an
Ac6ve
Member
of
OASIS,
Cloud
Security
Alliance,
OSGi
Alliance,
AMQP
Working
Group,
OpenID
Founda6on
and
W3C.
๏ Driven
by
Innova6on
๏ Launched
first
open
source
API
Management
solu6on
in
2012
๏ Launched
App
Factory
in
2Q
2013
๏ Launched
Enterprise
Store
and
first
open
source
Mobile
solu6on
in
4Q
2013
8. WSO2
Applica6on
Server
• Lightweight
applica6on
server
based
on
Apache
Tomcat.
• Support
for
JAX-‐WS,
JAX-‐RS
and
WebSocket
• Proven
to
support
frameworks
like
Axis2,
CXF,
Spring,
Hibernate.
• Support
number
of
JavaEE
technologies
which
includes
Servlet3,
JSP/EL
2.2,
JSTL,
JSF,
JPA2,
JTA.
• Next
major
version
will
support
for
JavaEE
6
Web-‐Profile.
• Rich
dashboards
for
applica6on
sta6s6cs.
• Try-‐It
support
for
JAX-‐WS
,
JAX-‐RS
• SSO
support.
• Custom
Classloader
Run6me
Environment
Architecture
•
e
.
g
–
You
can
safely
keep
number
of
incompa6ble
Spring
versions
on
server
level.
9. 9
WSO2
Applica6on
Server
There are four in-built environments
• Tomcat – Only Tomcat libs are visible (Minimal runtime)
• Carbon – Tomcat + Carbon libs are visible
• CXF - Tomcat + CXF + Spring are visible
• Javaee – JavaEE libs are visible
12. WSO2
User
Engagement
Server
• Facilitate to create Dashboards & Microsites.
• Authoring and sharing OpenSocial spec based Gadgets.
• Flot based charting.
• Possibility to crate your own Gadgets.
• Use predefined Gadgets template or write your own using Jaggery.js
• Gadgets generation tool.
• Web based editor, Developer Studio support.
• In-built Enterprise Store integration
15. Jaggery.js
• Like
JSP/
PHP,
but
user
writes
code
completely
in
JavaScript.
(Data
access
/
Business
Logic
/
UI)
• Runs
as
a
Web
app.
• Runs
on
top
of
Java.
• Provides
very
close
integra6on
with
WSO2.
• Support
for
REST
services,
WebSocket.
• Developer
Studio
based
debugger,
Web
based
debugger,
IntelliJ
plugin.
• Ability
to
expose
Java
Frameworks
as
Jaggery
Modules.
• Carbon
API
access.
• Number
of
extension
project
• Jaggery-‐pipe
:
• pipe
-‐
“Connect”
like
middleware
stack
for
Jaggery.
• router
–
“express”
”
like
framework
for
Jaggery.
• Caramel
:
MVC
framework
for
Jaggery.
16. Trends
–
RESTful
Services
JAVA
• JAX-RS
JAVASCRIPT
• Jaggery
REST
JSON
TEXT
POX
GET
POST
Application Server
17. Trends
–
RESTfull
Services
JAX-RS Annotated Service
@Path("/hello”)
public class HelloWorldService {
@GET
@Path("/{user}")
public String hello(@PathParam("user") String user) {
}
}
18. Trends
–
RESTfull
Services
Jaggery RESTfull Service
var app = require('router').app;
app.get('/users/:id', function (req, res, ses) {
print(req.params.id);
});
19. Trends
–
WebSocket
A
B
Handshake
Close the channel
OnOpen
onMessage
onClose
20. Trends
–
WebSocket
JAVA
• Java WebSocket
API
JAVASCRIPT
• Jaggery
WebSocket
Application Server
21. Trends
–
WebSocket
A service based on Java API for WebSocket
@ServerEndpoint("/echo")
public class EchoEndpoint {
@OnMessage
public String echo(String message) {.......}
@OnOpen
public void onOpen(Session session) throws IOException {.....}
@OnClose
public void onClose(Session session) {.... .}
@OnError
public void onError(Throwable t) {.....}
}
22. Trends
–
WebSocket
A service based on Jaggery WebSocket
webSocket.ontext = function (data) {
……..
};
webSocket.onopen = function (outstre) {
………
};
webSocket.onclose = function (status) {
………
};