Boost Fertility New Invention Ups Success Rates.pdf
Jlook open api server platform
1. OPEN API SERVICE
PLATFORM BASED ON
SAAS
METADATA DRIVEN
SERVICE PLATFORM HongSeong Jeon
hsjeon70@gmail.com
jlook consulting
2. PLATFORM FEATURES
q Metadata driven service development platform
q Software as a service platform
q Open API service platform for web and mobile
application
q Shared services platform
3. PLATFORM FUNCTIONAL
SPECIFICATION
q Security
q Domain management
q User, Role, Group management
q Data Access Rule management
q Menu Access Rule management
q Common
q Preference : System, Domain, User preference
q Star Rating and Comments
q Announcement
q Menu
q Calendar
q Article
4. PLATFORM FUNCTIONAL
SPECIFICATION
q Metadata
q Entity, Data Type management
q Attribute management
q Validation : Enumeration, Pattern, Range
q Utilities
q File Attachment
q Array Value support
5. APPLICATION LOGICAL
ARCHITECTURE
Meta Driven Open API Service Platform
Interfaces Services Repositories
Security Controller Security Service Security Repository
Open API Service Interfaces
Metadata Management
Generic Controller Generic Service Generic Repository
Domain Controller Domain Service Domain Repository
Metadata Controller Metadata Service Metadata Repository
Infrastructures
Security Component Transaction OR Mapping
Management Management Management Management
Attachment Dynamic View Task & Batch JDBC Pool
Management Resolver Scheduler Management
6. SYSTEM ARCHITECTURE
Domain Admin
Apache HTTP
Server 2.0 Web Application Server Database Server
§ Apache Tomcat 6.0 § H2 Database
Mobile User § JDK 1.6
§ SaaS Platform
Application
7. APPLICATION TECHNICAL
SPECIFICATION
q Spring framework
q Spring IoC Container
q Spring Web MVC
q Spring Security
q JBoss – Hibernate, Javassist
q Google h2 Database
q Google gson
q MVEL 2.0
q Apache Velocity Template engine
q Java & Spring framework Annotation
q Qdox
8. SHARED SERVICES
PLATFORM
Domain Users
software as a service platform
User Domain User Domain User Domain User Domain
Domain
Domain Domain
Domain Domain
Domain Domain
Domain
Entity
Entity Entity
Entity Entity
Entity Entity
Entity
Platform System Domain
Account Security Metadata StarRating
Service Service Service Service Shared
Services
Preference Announce Calendar Attachment
Service Service Service Service
9. DOMAIN ENTITY
PUBLISHING PROCESS
1. Metadata Definition
q Define Entity metadata
Metadata Management
q Define Attribute metadata
2. Entity Mapping 1 Entity Attribute Data Type
2
q Create table in database Domain Database
q Create constraints for entity
Table
3. Access to entity by Open API
q Pagination list data Generic Open API
q Create data to table
3
q Update data to table
Create / Update / Delete / Pagination
q Delete data to table Mobile, Web Application
10. ENTITY INHERITANCE
SUPPORT
q Support entity inheritance from another entity.
SYSTEM METADATA
JValidation
JUser JRange JEnum JPattern
USERINFO ç Domain User Entity
11. OPEN API SUMMARY
q Security
q SignIn, SignOut
q User Registration
q Domain management
q Role, Group management
q Data and Menu Access Control
q Generic Service
q Summary view(table pagination list)
q Detail view
q Create, Update, Delete
q File Attachment
q File Upload and Update
q File Download
q Mobile application download (version control)
12. OPEN API SUMMARY
q Preference
q Preference list (System, Domain, User)
q Update Preference value (Domain, User)
q Create Preference (Domain, User)
q Star Rating and comment
q Create start Rating and comment
q Get Star Rating and comment list
q Announcement
q Announcement list(System, Domain, User)
q Create Announcement
q Metadata Management
q Create entity
q Delete entity
15. OPEN API SPECIFICATION
q Generate open API specification automatically.
Interface Java
Source
OpenAPI
Generator XML
HTML
XSLT Open API
XSL Specification
17. DATA FILTERING
q Domain data filtering
q All domains data is separated from each other.
q System domain data is shared to all domains.
q Entity Summary Filtering
q Can configure data filtering logic for each entity.
§ SQL Conditional clause
if( juser.admin ) { for current entity.
§ If-else Control flow
§ Signed user
"type!='ABSTRACT'"
information : “jUser” } else {
"category!='jlook.framework.domain.metadata'"
}
19. JOBJECT RULE
q Entity JObject Rule
q Execute custom logics of JObject Rule before creating or
updating JObject.
§ Current JObject
q Expression Language reference
§ Current action : if(jaction==‘create’ && jobject.description==null) {
“create” or “update”
jobject.description = jobject.category+”.”+jobject.name
}
20. JOBJECT POST ACTION
q JObjectPostAction Interface
q Execute custom business logic after creating, updating and
deleting JObject.
q Inheritance JObjectPostAction interface or
JObjectPostActionSupport class and configure implemented
class to JClass metadata.
22. GENERIC DATA
VALIDATION
q Support three types of validation
q Enumeration : male and female, hobbies, business code data
q Pattern : email, telephone number
q Range : number range validation
q Configure validation at JAttribute
JValidation
JRange JEnum JPattern
JEnumDetail
23. OPEN API SERVICE
INTERFACES
q Restful Open API based on HTTP
q Support dynamic view resolver (JSon, XML, File, HTML
Message)
Restful HTTP Request
Controller Service
Content-Type
§ application/json
§ application/xml
§ application/octet-stream View
§ text/html View
Resolver
JSonView FileView
HTTP Response
§ JSon
XmlView JspView
§ XML
§ File
§ HTML
25. BATCH SERVICE
q Configure batch definition
q Batch Definition : basic information for batch
q Batch Parameter Name : parameter information for batch
26. BATCH SERVICE
q Configure for batch instance
q Batch Instance : configure batch instance from batch definition
q Batch Parameter Value : configure parameter value for batch
parameter name
28. BATCH SERVICE
q JBatchContext API
package jlook.framework.infrastructure.batch;
public interface JBatchContext {
public static final String PARAM_BATCH_USER = "batchUser";
public String getName() ;
public String getServer();
public Long getInstanceId();
public Long getDefinitionId();
public String uuid();
public Object getParameter(String name);
public Object getEnvironment(String name);
public void put(String key, Object value);
public Object get(String key);
public String currentDateTime();
public Object getBean(String beanName);
}
29. MULTI-TASK SERVICE
q Support to execute task by multiple threads.
q Support retry if exception is occurred on executing task.
ThreadPool
TaskExecutor
JTaskExecutor Thread-1
Thread-2
Run Task
Queue
Thread-3
JTask Thread-4
Inheritance Execute
Custom Task
30. MULTI-TASK SERVICE
q Define custom task class
package jlook.framework.infrastructure.task;
import jlook.framework.infrastructure.util.Log;
public class EchoTask extends JTaskSupport {
private static Log logger = Log.getLog(EchoTask.class);
@Override
public void doExecute() throws JTaskException {
if(logger.isDebugEnabled()) {
logger.debug("########################################"+this.retryCount+
"/"+this.maxRetryCount);
}
// implements task logic
}
}
31. PREFERENCE SERVICE
q Support three types preferences
q System Preference : Application global properties
q Domain Preference : Domain specific properties
q User Preference : User specific properties
q Pre-defined Preferences
Name Type Description
application.name SYSTEM Platform Application Name
application.version SYSTEM Platform Application Version
application.administrator SYSTEM Platform Administrator email address
domain.name DOMAIN Domain name
domain.version DOMAIN Domain version
domain.signIn.redirectUrl DOMAIN Domain redirect url after sigining in
domain.administrator DOMAIN Domain administrator email address
user.contact.info USER User contact information
user.signIn.redirectUrl USER User redirect url after signing in
33. ANNOUNCE MESSAGE
SERVICE
q Support three types of announce message
q System announce message
q Domain announce message
q User announce message
q Support announce message to multiple targets
34. SECURITY SERVICE
q Spring security framework
q User, Group and Role management
q Data Access Control management
q JDataAccessRule : JClass – JRole
q Create, Read, Update, Delete for Entity.
q Menu Access Control management
q JMenuAccessRule : JMenu - JRole
38. METADATA SERVICE
q Provide Open API for Entity, Attribute metadata
q Entity metadata : name
q Attribute : name, label, type, length, required, validation
q Make view dynamically from metadata
39. PLATFORM
ADMINISTRATION
Security Management
Domain Access Log
User Thread Dump
Group System Properties
Role Environment Properties
Data Access Rule Log4j Management
JDBC Management
Metadata
Entity Common
Attribute Validation
Data Type Preference
Announcement
Statistics
System administrator
Domain administrator