This repository has been archived by the owner on Nov 16, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 38
/
rfp-0009-Persistence.html
340 lines (196 loc) · 9.09 KB
/
rfp-0009-Persistence.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<TITLE>Persistence Service RFP (23-Sep-1999)</TITLE>
</HEAD>
<BODY BGCOLOR="#ffffff">
<CENTER>
<TABLE WIDTH=90% BORDER="0" CELLSPACING="0" CELLPADDING="0">
<TR>
<TD ALIGN=left WIDTH=30%> </TD>
<TD ALIGN=left WIDTH=50%> </TD>
<TD ALIGN=left> </TD>
</TR>
<TR>
<TD ALIGN=> Java Expert Group </TD>
<TD ALIGN=> </TD>
<TD ALIGN=> Ahad </TD>
</TR>
<TR>
<TD ALIGN=left> Request for Proposal: 0009</TD>
<TD ALIGN=left> </TD>
<TD ALIGN=left> Oracle Corporation </TD>
</TR>
<TR>
<TD ALIGN=left> Expires 20 days after: 23 Sep 1999</TD>
<TD ALIGN=left> </TD>
<TD ALIGN=left> 23 Sep 1999 </TD>
</TR>
<TR>
<TD ALIGN=left> RFP-0009.html</TD>
<TD ALIGN=left> </TD>
<TD ALIGN=left> </TD>
</TR>
<TR>
<TD ALIGN=left> </TD>
<TD ALIGN=left> </TD>
<TD ALIGN=left> </TD>
</TR>
</TABLE>
</CENTER>
<CENTER>
<H2>Persistence Service RFP</H2>
</CENTER>
<CENTER>
<TABLE WIDTH=90% BORDER="0" CELLSPACING="0" CELLPADDING="0">
<TR>
<TD ALIGN=left WIDTH=100%>
<DL>
<DT> Status of this Memo
</DT>
<DD>
This document suggests the following
extension to the OSGi
specficiation for the Open
Services Gateway,
and requests discussion. Distribution of this
document is unlimited.
</DD>
<DT>
</DT>
<DD> </DD>
<DT> Abstract
</DT>
<DD>
Many of the services running on the Open Service Gateway will need to store and retrieve information that persists beyond the life of the service, and that can be shared by other services. Rather than each of these services writing code to efficiently read and write information to a file system, and recover from error, we want to have a common persistence service that can be used by other services to store and retrieve information persistently. This RFP provides some general goals and guidelines and solicits technical submissions that will lead to defining a Persistence Service API for the Open Service Gateway.
</DD>
<DT>
</DT>
<DD> </DD>
<DT> Acknowledgment (Optional)
</DT>
<DD>
The author wants to acknowledge the contributions of the members of Data Management team of the Connected Alliance and OSGi.
</DD>
<DT>
</DT>
<DD> </DD>
<DT> Introduction
</DT>
<DD>
Many of the services running on the Service Gateway, be it a high level service such as the home security system or a system level service such as Log Service (RFP 003) will need to write information to a persistent store so that the same or different service can access this information at a later time. Some of these services may need this persistent information to be backed up on a server machine (perhaps managed by an operator).
</DD>
<DT>
</DT>
<DD> </DD>
<DT> Motivation
</DT>
<DD>
A common approach to make information persist is to write it out to a file. However, a file system provides only limited service for persistence leaving the service developer to write a lot of code just to store and retrieve the information efficienty and be able to synchronize this information with a server machine. Also a file system is operating system dependent and thus is not portable.
We need an API for the services to be able to make any piece of information persistent, be able to search the persistent information store using a high level query language, be able to recover from failure after partial updates, and be able to synchronize the data with a server database.
The benefits of this API will be smaller code size and better quality code for the services using this API.
</DD>
<DT>
</DT>
<DD> </DD>
<DT> Technical Discussion
</DT>
<DD>
The Persistence Service must provide the following capabilities.
<li> Ability to organize information as a set of tables (SQL model) or a set of Java classes.
<li> Ability to use a high level query language to search for required information.
<li> Ability to create indexes to speed up searches.
<li> Ability to download data from a server database and synchronize changes made to the persistent store with the server database.
<li> Ability to create a session for a given user who is already authenticated by the Security Service.
<li> Ability to rollback partial updates made to the persistent store within a session.
<li> Ability to enforce access authorization based on the user's privileges (optional).
<li> Ability to support retrieval of persistent information with a small number of instructions.
</DD>
<DT>
</DT>
<DD> </DD>
<DT> Security Considerations
</DT>
<DD>
The Persistence Service will assume the existence of Security Service which will be responsible for authenticating the user or service that is requesting a persistence service. If the security service does not provide access control, then the persistent service will support authorization service to control access to persistent information. Encryption of data downloaded from/synchronized with the server database is implementation-defined.
</DD>
<DT>
</DT>
<DD> </DD>
<DT> References
</DT>
<DD>
[1] JavaCard, "ISO 7816-7 JC-JDBC Reference", Aug 1999.
<br>
[2] Rafiul Ahad, "Persistent Object Service", OSGi, January 1999.
</DD>
<DT>
</DT>
<DD> </DD>
<DT> Author's Address
</DT>
<DD>First Name: Rafiul</DD>
<DD>Last Name: Ahad</DD>
<DD>Company Name: Oracle Corporation</DD>
<DD>Company Division: Mobile and Embedded Products</DD>
<DD>Street Address: 500 Oracle Parkway</DD>
<DD>City, State, Country, Postal Code: Redwood Shores, CA 94065 </DD>
<DD> </DD>
<DD>voice: +1 650 506 1445 </DD>
<DD>fax: +1 650 506 7222 </DD>
<DD>email: <a href="mailto:[email protected]">[email protected]</a></DD>
<DT>
</DT>
<DD> </DD>
<DT> Full Copyright Statement
</DT>
<DD>
Copyright (C) The Open Services Gateway Initiative
(1999).
<BR>
All Rights Reserved.
<P>
This document and translations of it may be copied and
furnished to others, and derivative works that comment
on
or otherwise explain it may be prepared, copied,
published
and distributed, in whole or in part, without
restriction
of any kind, provided that the above copyright notice
and this paragraph are included on all such copies and
derivative works. However, this document itself may not
be modified in any way, such as by removing the
copyright
notice or references to the Open Services Gateway
Initiative.
<P>
The limited permissions granted above are perpetual and
will not be revoked by the Open Services Gateway
Initiative or its
successors or assigns.
<P>
This document and the information contained herein is
provided on an "AS IS" basis and THE OPEN SERVICES
GATEWAY INITIATIVE
DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY
IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A
PARTICULAR PURPOSE.
</DD>
<DT>
</DT>
<DD> </DD>
</DL>
</TD>
</TR>
</TABLE>
</CENTER>
<HR>
<!-- hhmts start -->
<BR>
Expires 20 days after: 23 Sep 1999
<!-- hhmts end -->
</BODY>
</HTML>