forked from bndtools/bndtools.github.io
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtraining.html
229 lines (198 loc) · 9.26 KB
/
training.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
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Bndtools</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content>
<meta name="author" content>
<!-- Le styles -->
<link href="css/bootstrap.css" rel="stylesheet">
<style type="text/css">
body {
padding-top: 60px;
padding-bottom: 40px;
}
.sidebar-nav {
padding: 9px 0;
}
</style>
<!--<link href="css/bootstrap-responsive.css" rel="stylesheet">-->
<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<!-- Le fav and touch icons -->
<link rel="shortcut icon" href="images/favicon.ico">
</head>
<body>
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container-fluid">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<a class="brand" href="./index.html"><img src="./images/logo-topbar.png"></img></a>
<!--
<div class="btn-group pull-right">
<a class="btn dropdown-toggle" data-toggle="dropdown" href="#">
<i class="icon-user"></i> Username
<span class="caret"></span>
</a>
<ul class="dropdown-menu">
<li><a href="#">Profile</a></li>
<li class="divider"></li>
<li><a href="#">Sign Out</a></li>
</ul>
</div>
-->
<div class="nav-collapse">
<ul class="nav">
<li><a href="./index.html">Home</a></li>
<li><a href="./installation.html">Install</a></li>
<li><a href="./tutorial.html">Tutorial</a></li>
<li><a href="./help.html">Get Help</a></li>
<li><a href="./faq.html">FAQ</a></li>
</ul>
</div><!--/.nav-collapse -->
</div>
</div>
</div>
<div class="container-fluid">
<div class="row-fluid">
<div class="span2">
<div class="well sidebar-nav">
<ul class="nav nav-list">
<li><a href="./">Home</a></li>
<li><a href="./licence.html">Licence</a></li>
<li><a href="./community.html">Get Involved</a></li>
<li><a href="./training.html">Training</a></li>
<li><a href="./#donate">Donate</a></li>
<li class="divider"></li>
<li class="nav-header">Documentation</li>
<li><a href="./installation.html">Installation</a></li>
<li><a href="./tutorial.html">Tutorial</a></li>
<li><a href="./concepts.html">Concepts Guide</a></li>
<li><a href="./faq.html">FAQ</a></li>
<li><a href="./whatsnew.html">What's New</a></li>
<li class="divider"></li>
<li class="nav-header">Development</h1>
<li><a class="external-left" href="https://github.com/bndtools/bndtools/issues">Bug Reports</a></li>
<li><a class="external-left" href="https://bndtools.ci.cloudbees.com/job/bndtools.master/">Build Status</a></li>
<li><a href="./development.html">Developer Guide</a></li>
<li><a href="./acknowledge.html">Acknowledgements</a></li>
</ul>
</div><!--/.well -->
</div><!--/span-->
<div class="span10">
<div class="hero-unit">
<div class="row-fluid">
<div class="span8">
<h1>OSGi Training</h1>
<p>Get up to speed in OSGi quickly, with the lead developer of Bndtools</p>
<p>
<a class="btn btn-primary btn-large" href="#schedule">Book now »</a>
<a class="btn btn-large" href="#synopsis">Read more »</a>
</p>
</div>
<div class="span3">
<img src="./images/njbartlett_sq.jpg" width="210px"></img>
</div>
</div>
</div>
<section id="synopsis">
<div class="page-header">
<h1>Synopsis</h1>
<p>This 4-day workshop will provide delegates with an excellent baseline grasp of OSGi technology, from the fundamentals through to advanced and enterprise topics and is delivered by renowned OSGi developer, consultant and trainer Neil Bartlett.</p>
<p>On day one, you will be introduced to OSGi and learn how it meets the challenge of building modular, scalable application architectures for the Java Platform. We will review the three principal open source implementations and then dive into the construction of modules, learning how to define dependencies between them and manage versions of APIs.</p>
<p>Next you'll move onto OSGi Services, the lynchpin of OSGi's programming model and the key to creating flexible, reusable components. You will use the Declarative Services (DS) specification to build components that react to their environment, configure themselves dynamically and interact with other components. Then you will look at one of the most important patterns used in constructing real applications using services, namely the "Whiteboard Pattern".</p>
<p>On day two, we will return to practical topics such as how to build and test modules using industry-standard tools such as ANT, Maven, JUnit and Hudson/Jenkins. Also we will cover how to define and manage a runtime application using combinations of modules and configurations, and how to correctly evolve APIs and implementations over time.</p>
<p>Day two concludes with a review of alternative component models including Blueprint, Spring Dynamic Modules, Guice/Peaberry and Apache Felix iPOJO.</p>
<p>On day three you will learn about the full module lifecycle, how to safely update modules at runtime, and how the lifecycle affects services. We will discuss another common and useful OSGi pattern known as the "Extender Pattern", examine examples of existing extenders such as the Eclipse extension registry, and build our own extender.</p>
<p>The second half of day three comprises a review of the Compendium of useful services offered by the OSGi specification, and also some useful third-party modules and tools. These will include:</p>
<ul>
<li>Event Admin for asynchronous event delivery;</li>
<li>Configuration Admin for configuring components and managing configuration data;</li>
<li>Metatype Service for defining tool-accessible metadata about services;</li>
<li>HTTP Service for building lightweight web servers;</li>
<li>Coordinator Service for coordinating tasks across decoupled components.</li>
</ul>
<p>Day four focuses on enterprise topics. We cover distributed programming with Remote Services (sometimes known as Distributed OSGi or D-OSGi), including how to manage discovery and topology in a network containing a large number of nodes. Next we will build a RESTful web service based on standard JAX-RS technology with an OSGi twist, and look at all the options for deploying web applications in OSGi, including embedding an OSGi framework inside a Java EE application server or web container (e.g. Tomcat).</p>
<p>Day four finishes with the topic of OSGi interoperability with Java EE specifications including JNDI, JTA, JPA, JDBC and JMX.</p>
<p><a class="btn btn-primary btn-large" href="http://www.paremus.com/services/training-osgi-4day.html">Full details »</a></p>
</div>
</section>
<section id="schedule">
<div class="page-header">
<h1>Schedule and Course Fees</h1>
</div>
<table class="table table-striped">
<thead>
<tr>
<th>Location</th>
<th>Dates</th>
<th>Course Fee (Per Delegate)</th>
<th>Book</th>
</tr>
</thead>
<tbody>
<tr>
<td>London (UK)</td>
<td>20 to 23 February 2012</td>
<td align="right">
Early bird to 13 Jan: <strong>£1,095</strong>
<br />
From 14 Jan: <strong>£1,395</strong>
</td>
<td><a class="btn disabled">Book now »</a></td>
</tr>
<tr>
<td>New York (USA)</td>
<td>27 February to 1 March 2012</td>
<td align="right">
Early bird to 20 Jan: <strong>US$2,095</strong>
<br />
From 21 Jan: <strong>US$2,495</strong>
</td>
<td><a class="btn disabled">Book now »</a></td>
</tr>
<tr>
<td>Washington DC (USA)</td>
<td>4 to 7 June 2012</td>
<td align="right">
Early bird to 27 Apr: <strong>US$1,895</strong>
<br />
From 28 Apr: <strong>US$2,295</strong>
</td>
<td><a class="btn btn-primary" href="http://osgi-training-washington-june24.eventbrite.co.uk/">Book now »</a></td>
</tr>
<tr>
<td>Sydney (Australia)</td>
<td>September 2012</td>
<td align="right">
Early bird to 30 Jul: <strong>TBC</strong>
<br />
From 1 Aug: <strong>TBC</strong>
</td>
<td><a class="btn btn-primary" href="mailto:[email protected]?subject=Please%20send%20me%20information%20about%20OSGi%20Training%20in%20Sydney">Enquire »</a></td>
</tr>
</tbody>
</table>
</section>
</div><!--/span-->
</div><!--/row-->
</div><!--/.fluid-container-->
<footer>
<div class="well">
<p>© <a href="mailto:[email protected]">Neil Bartlett</a> 2011. Built with <a href="http://twitter.github.com/bootstrap/">Bootstrap</a> and <a href="http://jaspervdj.be/hakyll/index.html">Hakyll</a>.</p>
</div>
</footer>
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="js/jquery.js"></script>
<script src="js/bootstrap.min.js"></script>
</body>
</html>