I agree that switching from local services to remote services is usually
not just a configuration change (even with RSA). Remote services have to be
designed with a completely different level of granularity and more
consideration to version compatibility.

Can you go into a bit more detail about how to create smarter services
using OSGi service dynamics? I think we might be able to extract some
interesting patterns there.

Christian

Am So., 12. Mai 2019 um 11:07 Uhr schrieb Toni Menzel via osgi-dev <
osgi-dev@mail.osgi.org>:

> It's not necessarily about one or the other.
> What you mention is the k8s control plane that can take over your
> traffic/scaling needs.
> However, the beauty of dynamic services on OSGi can be that you reflect
> the "as-is" service topology (controlled and managed by k8s).
> OSGi services can understand and adapt to the availability (or
> non-availability) dynamically. It gives you fine-grained control which
> leads to smarter services.
> They are not black and white anymore (on or off) but can help re-reoute,
> cache or otherwise mitigate short term changes in the service topology.
>
> Note that this is complementary to remote services mentioned above. RSA
> help you partition your (micro-)services easier. Though i think the story
> is not as easy because.. you know.. the network is not reliable, etc.
>
> There is a lot more to this, and its a great discussion you are having
> here.
> And its up to your needs if you want smarter services or can live with
> cheap & dump instances (that ultimately leads you towards FaaS) - which can
> be totally fine.
>
> Toni
>
> Toni Menzel / rebaze consultancy
> Alleestrasse 25 / 30167 Hannover / Germany
> M +49 171 6520284
> www.rebaze.com
>
> Software Engineering Therapy
> rebaze GmbH, Zollstrasse 6, 39114 Hannover, Germany
> Managing Director: Toni Menzel
> Phone: +49 <+49%2030%2054909582> 171 6520284 / E-Mail: h...@rebaze.com
> Registration Court: District Court of Stendal
> Registration Number: HRB 17993
> Sales Tax (VAT) Registration Number: DE282233792
>
>
>
> On Sat, May 11, 2019 at 10:05 PM Jürgen Albert via osgi-dev <
> osgi-dev@mail.osgi.org> wrote:
>
>> Depends on how you build your services. If you go the classic way, with a
>> normal HTTP API with e.g. docker compose or swarm, you would get load
>> balancing out of the box. They do a DNS round robin, the moment you scale a
>> service there. I believe Kubernetes does the same. The remote service Admin
>> does not really specify something like this. Here you can do the load
>> balancing on the application side. if you have e.g. 3 instances of the
>> billing container, you would find 3 service instances on your consumer
>> side.
>>
>> Am 11/05/2019 um 10:36 schrieb Andrei Dulvac:
>>
>> Hi Jürgen.
>>
>> Ok, I missed the context of your previous mail - how modularity helps
>> even if you have multiple containers.
>>
>> I get it... It's fast to develop and easy to switch boundaries. One other
>> thing that I have on my mind: in your example, how easy would it be to
>> scale the billing container? I assume it would be easy to route calls at
>> least through a load balancer (I am not at all familiar with e. g. JaxRS)
>>
>> I might start to consider again the whole idea of microservices and using
>> OSGi to modularize code inside them.
>>
>>
>> On Fri, May 10, 2019, 22:26 Jürgen Albert <j.alb...@data-in-motion.biz>
>> wrote:
>>
>>> Hi Andrej,
>>>
>>> I think you got us wrong. Nobody suggested to use OSGi or Http
>>> MIcroservices as you have called them. The Concepts behind both are
>>> modularity. The following Definition would fit both:
>>>
>>> The smallest unit is a module that defines Service APIs as Interaction
>>> points.
>>>
>>> Thus OSGi is the best tool to create Http Microservices. I would prefer
>>> Distributed Microservices because you don't necessarily need HTTP for the
>>> Communication between your containers/processes. You can split your Bundles
>>> over as many Containers as you like and I will guarantee that is it easier
>>> to achieve and maintain then with anything else.
>>>
>>> A short and every much simplyfied example to show what Todor was
>>> describing:
>>>
>>> We have a small application that provides a REST API for an shop order
>>> process. We have written the following bundles:
>>>
>>> rest.api -> contains the REST Resources; uses the order.api interfaces
>>> order.api -> contains the order service interfaces
>>> order.impl -> implementation of the order service, needs the billing.api
>>> interface
>>> billing.api -> contains the billing service interfaces
>>> billing.debit -> a billing implementation for debit card payment
>>>
>>> Scenario A - We want everything in one JVM:
>>> We throw this in one run configuration, let the resolver do its job, we
>>> would end up with one Framework, containing our bundles, the JaxRS
>>> Whiteboard, HttpWhiteboard some persistence stuff and e.g. some XML stuff
>>> for  debit provider. Export a self executable jar and of you go. Because we
>>> can, we wrap it in a docker container to.
>>>
>>> Scenario B - We want the Billing stuff to run in its own process :
>>>
>>> We add the remote service properties to the billing service and create
>>> two run configurations. One names the rest.api and the order.impl, the
>>> other one contains only the billing.debit and a RSA (Remote Service Admin)
>>> Implementation for both. Resolve both, export both to their jars, wrap them
>>> in docker. The Service with the REST API now has the JaxRS Whiteboard,
>>> HttpWhiteboard some persistence, the RSA and the billing.api. The other one
>>> has only the billing.api, billing.impl, some XML Stuff and the RSA.
>>> Congratulations, we have our first containerized microservice environment
>>> ready.
>>>
>>> If you use OSGi everywhere, you will get containers that contain only
>>> what they need and nothing else. Ideally nobody needs to write any extra
>>> REST APIs for the internal communication. If you use OSGi Services as
>>> intended, you will already have the API bundles with the interfaces. As a
>>> developer, I don't necessarily need to give any thought If the service I
>>> use is a remote or a local service. The framework does it for me. If you
>>> want to use other languages for your containers you can even implement the
>>> RSA for them as well and communicate with the OSGi Containers. The RSA has
>>> no java specific part and you only need to get the serialisation
>>> compatible.
>>>
>>> The amount of flexibility OSGi gives you in such a scenario is
>>> priceless. If you have developers that think modular, you will get well
>>> structured bundles. So you can redraw the lines of you boundaries from
>>> logic to business and back with out much risk or effort.
>>>
>>> I haven't found a Framework that comes even close to what I can do with
>>> OSGi in half the time everybody else needs.
>>>
>>> Jürgen.
>>>
>>> Am 10/05/2019 um 15:50 schrieb Andrei Dulvac:
>>>
>>>
>>>
>>> On Thu, May 9, 2019 at 2:01 PM Boev, Todor <todor.b...@softwareag.com>
>>> wrote:
>>>
>>>> > Others say you need to distribute based on your business domains, not
>>>> on the low level need to share some code
>>>> >> But neither choice has an impact on the size of the (micro-) service
>>>> I tend to disagree. Splitting along business domains (e.g. "product
>>>> inventory") tends to require that the microservie is a full-blown,
>>>> self-container, three-tier web application. It implies state and storage
>>>> and more logic to integrate with other microservices (e.g. call "user
>>>> management" for access control).
>>>
>>> Right. What I meant is BOTH choices have an impact on the size of the
>>> microservice, and you can end up with a smaller service if you split by
>>> business domains than the boundaries of sharing code or the opposite.
>>>
>>>
>>>> If you split the service by "logic reuse" you may end up with something
>>>> like "interest calculator" - a stateless generic piece of logic with one
>>>> rest endpoint to take input and return output. This is better off as a
>>>> library.
>>>>
>>> Debatable. I personally think it's not better off as a library unless
>>> it's "complete" and I won't have to change it whenever I change my
>>> services. If I introduce new functionality and dimensions to my service and
>>> start differentiating offerings to my customers by e.g. age, i'd have to
>>> change the library and update it in all my services.
>>> If it's just applying a generic mathematical function (based on
>>> literature and with no ties to my business domain), of course it should be
>>> a library. Classic example is calendar or date libraries, where we should
>>> all use an open-source library, everywhere :)
>>>
>>>
>>>>
>>>> So "well designed" microservies actually include a lot of stuff which
>>>> in turn makes OSGi more attractive: rest sever, rest client, db access,
>>>> sso, component runtime to integrate all of this... What people tend to do
>>>> is to pick a set of these things they feel are generic enough, call it "the
>>>> platform" or "the microservice chassis" and pay the cost of having it
>>>> everywhere. Think of "MicroProfile" - it's a fixed set of things and try as
>>>> they might to keep the list small it inevitably will bloat up with every
>>>> subsequent release
>>>>
>>>
>>>> OSGi gives you a way out. The "platform" is actually a shared bundle
>>>> repository and the OSGi build will put together for you exactly the pieces
>>>> you need in each microservice. Then because each bundle is an independent
>>>> unit with its own lifecycle they snap together just by being loaded into
>>>> the OSGi runtime. If you try to escape the "platform syndrome" with plain
>>>> maven for example you may be forced to provide the glue code yourself since
>>>> outside OSGi code tends to be shared as libraries with the expectation that
>>>> the user of the library will drive it's lifecycle. If you notice service
>>>> dynamics are not used in this scenario yet they are an important tool to
>>>> enable the bundles to hook together even though this happens only once at
>>>> startup.
>>>>
>>>
>>> I fully accept your analysis of how OSGi gives you a lot of what http
>>> microservices designs give you. Like "each bundle is an independent unit
>>> with its own lifecycle". But it doesn't reach the same level of decoupling
>>> like doing them with separate processes. If you run microservices in
>>> separate processes, you can rewrite some of them in a different language,
>>> you can move one microservice in a different network, and, most
>>> importantly, you can scale them horizontally (maybe elastically) beyond
>>> what you could do in an OSGi instance
>>>
>>>>
>>>> In short you are right that for simple enough microservices plain maven
>>>> and plain jars are simpler. However I believe this gets out of hand very
>>>> quickly simply because the correct way to design microserviecs puts the bar
>>>> of functionality (and footprint) pretty high.
>>>>
>>>
>>> I agree, but I still stand beside my statement that OSGi would be
>>> limited in terms of decoupling and scalability, compared to what you could
>>> do with separate process, if you get it right. And yes, huge footprint and
>>> overhead (and risk) of defining APIs differently (like "REST APIs"), code
>>> duplication. But in some situations (If you're Netflix or Uber), you might
>>> trade that off for the extra bit that you don't get with OSGi.
>>>
>>>>
>>>> As an example I have built a microservice with REST, JDBC, SSO through
>>>> JWT and some hello-world business logic in ~10 mb (the JVM excluded).
>>>> Another microservie did not need the JDBC so it was ~8 MB. What came into
>>>> the image was driven almost entirely by the requirements of my business
>>>> code out of a common bundle repository.
>>>>
>>>> Regards
>>>> -----------------------------------
>>>> Todor Boev
>>>> OSGi Platform
>>>> Software AG
>>>>
>>>> From: Andrei Dulvac [mailto:dul...@apache.org]
>>>> Sent: Monday, May 6, 2019 6:21 PM
>>>> To: Boev, Todor; OSGi Developer Mail List
>>>> Cc: Jürgen Albert; SMAIL LOUNES
>>>> Subject: Re: [osgi-dev] Migrating from OSGI to Microservices
>>>>
>>>> This is a great and coherent answer and it made me think a lot.
>>>> > Others say you need to distribute based on your business domains, not
>>>> on the low level need to share some code.
>>>>
>>>> But neither choice has an impact on the size of the (micro-) service
>>>>
>>>> > So microservice modularity runs orthogonally to in-process
>>>> modularity. Indeed you need efficient in-process modularity to build good
>>>> microservces.
>>>>
>>>> What I meant when I said there's an overlap it's the modularisation
>>>> part. Yes, with OSGi you can and might want to modularise your service
>>>> further, but if you're going through the infra and ops cost of maintaining
>>>> and deploying microservices, you can split down a larger service further
>>>> into two microservices (if performance and the arch permits).
>>>> And if your services are quite split already, how much benefits do the
>>>> extra in-process modularisation bring you?
>>>>
>>>> Don't get me wrong, I love OSGi and, on top of that, I think it's
>>>> actually a better way to start a project from a green field and make use of
>>>> that modularisation. So start with a monolith in that strict sense (as you
>>>> don't have the scalability part). And when you need all the advantages of
>>>> microservices in the strict sense, your service is already modular (*) and
>>>> you can just take out the part that needs to scale and make it a separate
>>>> service that you can scale independently.
>>>>
>>>> A wise man once told me: "You will never get the architecture and
>>>> domain boundaries right from the start with microservices"
>>>>
>>>> (*) As long as you future-proof a bit and don't make an architecture
>>>> that assumes blindly that osgi services are sharing the process with other
>>>> services.
>>>>
>>>> - Andrei
>>>>
>>>>
>>>>
>>>> On Fri, May 3, 2019 at 5:32 PM Boev, Todor via osgi-dev <
>>>> osgi-dev@mail.osgi.org> wrote:
>>>> I work on tools build OSGi-based microservices for the likes of K8S. By
>>>> extension this includes thinking/experimenting to discover whether/how OSGi
>>>> is applicable in these environments.
>>>>
>>>> One thing I noticed is that when you have a distributed application all
>>>> of its pieces must coordinate their internal lifecycles across the network.
>>>> This is more in the realm of communication between the microservices,
>>>> rather than in the realm of deploying containers. For example K8S can
>>>> maintain replicas of your containers, but this is for scalability rather
>>>> than to create the illusion network calls can’t fail. The application
>>>> running on top is expected to adapt on the fly. You really need good
>>>> programming models.
>>>>
>>>> OSGi provides one elegant programming model. You already have services
>>>> that coordinate their independent dynamic lifecycles. If you model an
>>>> external entity as a service (e.g. a remote client object) you can hook
>>>> your application internal state directly to it. Then use discovery to
>>>> distribute knowledge when things are coming/going/relocating and have the
>>>> distributed system keep itself in balance while K8S takes care of
>>>> responding to load – it is a good fit.
>>>>
>>>> The other thing I have noticed is the inclination to think of
>>>> microservices as a universal modularity solution. People brag about having
>>>> hundreds of services with some consisting of one function. To share this
>>>> one piece of code you seem to pay the cost of handling distribution,
>>>> memory/cpu/network to maintain extra processes. This ultimately translates
>>>> to paying raw money. While Martin Fawler promotes modularity through
>>>> microservices he explicitly does not say where to stop if I remember
>>>> correctly. Others say you need to distribute based on your business
>>>> domains, not on the low level need to share some code. So microservice
>>>> modularity runs orthogonally to in-process modularity. Indeed you need
>>>> efficient in-process modularity to build good microservces.
>>>>
>>>> Here again OSGi can be a compelling solution since it tends to build
>>>> really small footprint images, because it has deep understanding what each
>>>> jar needs. This does not come for free – you need to describe your code
>>>> well in the module metadata.
>>>>
>>>> The third thing I noticed is that it only really works well when you
>>>> use simple/light OSGi components. Use http whiteboard, not web bundles. Use
>>>> declarative services, not blueprint. And so on. Even if you use
>>>> “traditional” distribution without the dynamic lifecycle it is still quite
>>>> fun and OSGi has a lot to offer (e.g. JAX-RS whiteboard).
>>>>
>>>> So in general if you choose a microservice architecture and choose to
>>>> build immutable small containers you are not at odds with OSGi. It actually
>>>> can help. If you already have an OSGi application you can consider it a
>>>> head start. You will have to refactor a lot to split your business logic
>>>> into independent services, but you won’t refactor less if you were not OSGi
>>>> based.
>>>> Mohamed however mentioned he’d like to use ready-made solutions to
>>>> implement application features and has issues with OSGi in that respect.
>>>> What are they?
>>>> OSGi can provide means to structure distributed applications, but it
>>>> sure can’t provide an independent analog of every heavy-lifting framework
>>>> out there.
>>>> -----------------------------------
>>>> Todor Boev
>>>> OSGi Platform
>>>> Software AG
>>>>
>>>> From: osgi-dev-boun...@mail.osgi.org [mailto:
>>>> osgi-dev-boun...@mail.osgi.org] On Behalf Of Jurgen Albert via osgi-dev
>>>> Sent: Friday, May 3, 2019 3:41 PM
>>>> To: SMAIL LOUNES; OSGi Developer Mail List
>>>> Subject: Re: [osgi-dev] Migrating from OSGI to Microservices
>>>>
>>>> Well, like I said: Kubernetes only knows and cares about Containers
>>>> (Pods) and nothing about any application life cycle. You can define e.g.
>>>> dependencies like an application container requires a container with a DB.
>>>> So when someone triggers the start of your application container it will
>>>> make sure that the DB container is started and as far as I remember will
>>>> set the coordinates to the DB as system properties for you. However, It
>>>> will not know the state of readyness of your application or the DB. As an
>>>> example, we have search server tailor maid for one of our customers. On
>>>> first start it rebuilds the index from the raw data in their DB. This can
>>>> take a couple of minutes. For Kubernetes the container is up and running,
>>>> but the server will not be available to answer queries until the index is
>>>> ready.
>>>>
>>>> Thus, if you want to use the Kubernetes API to start a Pod for a
>>>> specific services it you can do that, but everything else is not in its
>>>> scope. It is just a convenient tool to manage an Infrastructure. The rest
>>>> belongs to your application domain.
>>>>
>>>> Regards,
>>>>
>>>> Jürgen.
>>>>
>>>> Am 03/05/2019 um 14:16 schrieb SMAIL LOUNES:
>>>> Thank you for this remarkable answer,
>>>> I'm working on a research project about developping a highly
>>>> distributed and dynamic  communication platform, so we're looknig for using
>>>> kubernetes to manage µservices life cycle, osgi is a condidate too. we can
>>>> use an osgi container to deploy some µservices.. do you have an idea about
>>>> using kubernetes for life cycle mangement and how integrate it's API
>>>>
>>>> Thank you so much, Best regards
>>>>
>>>> Le ven. 3 mai 2019 à 12:25, Jürgen Albert via osgi-dev <
>>>> osgi-dev@mail.osgi.org> a écrit :
>>>> Hi Mohamed,
>>>>
>>>> I had the fortune and in parts misfortune of being part of a few such
>>>> migration projects. Besides our own internal one, everyone decided against
>>>> OSGi. The descension was always because of personal resentment and/or
>>>> because everybody had his personal favourite toy they wanted to play with.
>>>> The reasons ranged from " We don't want to use Eclipse" (enroute with
>>>> maven  wasn't available at the time) over "We want spring because we don't
>>>> understand OSGi and it seems to complicated" to " Java is outdated, we want
>>>> to build it with NodeJS". They all jumped on the Martin Fowler approach
>>>> without really considering what it means in the end. Each ended in disaster
>>>> or went through a hard phase of near disaster with jobs and reputations on
>>>> the line. Most ended up with something OSGiish with a lot of the pain going
>>>> along with modularity but missing most of its benefits.
>>>>
>>>> The issue is complex but we Identified one main reason:
>>>>
>>>> Modularity is an abstract concept for many developers. Spring for
>>>> example does not really teach and force a developer to think in a modular
>>>> fashion. All I saw was a bunch of smaller Monoliths packed in Docker
>>>> containers. The dynamic nature of a Microservice environment OSGi addresses
>>>> with its Bundle and Service life cycle , was pushed in the realm of
>>>> Kubernetes. But Kubernetes (or comparable Systems) is made for managing
>>>> your Containers and not for any application and service life cycle. Thus
>>>> one needs at least a few Developers/Architects that have modularity
>>>> internalised and address issues early on.
>>>>
>>>> Another issue with the Martin Fowler approach you have already
>>>> addressed. A fully distributed system comes with a lot of different
>>>> problems (e.g. caches). Also the point of network latency and the time
>>>> serialization and deserialization is an underestimated issue.
>>>>
>>>> Like Neil stated: If you are already have an OSGi application you
>>>> already have a microservice architecture, but maybe no distributed one. The
>>>> way to go is build a good microservice monolith (or modulith, like it is
>>>> called nowadays) and then move only the services to there own containers,
>>>> that really need scaling. Graham Charters talk from the 2016 EclipseCon
>>>> Europe addresses this quite nicely:
>>>> https://de.slideshare.net/mfrancis/microservices-osgi-better-together-graham-charters
>>>>
>>>> By your mention of blueprint, I deduct that you might use an older
>>>> version of OSGi. Our internal project was somewhat similar and we managed
>>>> to go distributed without major problems. We migrated to the latest OSGi
>>>> Version and used bnd instead of PDE. Later we moved some service to there
>>>> own container. It worked like charm. We could even show the process to a
>>>> customer, with zero downtime, by pulling up the new containers and removing
>>>> bundles with the local service implementations while the system was 
>>>> running.
>>>>
>>>> Regarding your point of finding/keep OSGi developers: This is something
>>>> we are confronted with rather often. The best way get developers sold on
>>>> OSGi is using the latest version of it together with bnd (pure or with the
>>>> maven integration). The development speed you can reach and maintain even
>>>> in complex applications makes most other Java developers jealous and
>>>> interested to learn more.
>>>> Regards,
>>>> Jürgen.
>>>>
>>>> Am 03/05/2019 um 10:57 schrieb Mohamed AFIF via osgi-dev:
>>>> Hi  Andrei,
>>>> My question had as aim to collect some experiences of suchs migrations
>>>> if this exist, we're in brainstorming phase and I'm not making any
>>>> judgement value about OSGI or microservices architecture,  but what we push
>>>> to believe that we should probely move toward another technology, is:  the
>>>> business requirement, indeed we want to expose our service to clients as
>>>> API, and the several technical complications we 've ve been faced to
>>>> everytime we want to implement a feature easily provided and could be
>>>> implemented by other open framework in the market, there is also the Human
>>>> ressource question is involved beacause it's not easy find/keep OSGI
>>>> developers.
>>>> personaly  I think that OSGI is a perfect tehcnology for servers or
>>>> embedded system, but I've some doubt when it's regarding applications with
>>>> open architectures, it's my own view and I could be wrong
>>>>
>>>> Regards
>>>>
>>>> Mohamed.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> @Neil
>>>> Obviously a simple
>>>>
>>>>
>>>>
>>>> Le jeu. 2 mai 2019 à 16:52, Andrei Dulvac <dul...@apache.org> a écrit :
>>>> Hi Mohamed, Neil.
>>>>
>>>> Neil, while I agree with you, I think Mohamed means it in the more
>>>> "modern", widely-accepted sense:
>>>> https://martinfowler.com/articles/microservices.html
>>>>
>>>> """
>>>> In short, the microservice architectural style [1] is an approach to
>>>> developing a single application as a suite of small services, each running
>>>> in its own process and communicating with lightweight mechanisms, often an
>>>> HTTP resource API.
>>>> """
>>>>
>>>> Mohamed, I'm curious what you end up with. Without getting too much
>>>> into it, I dismissed the idea as something "not worth it".
>>>>
>>>> - Andrei
>>>>
>>>> On Thu, May 2, 2019 at 12:37 PM Neil Bartlett via osgi-dev <
>>>> osgi-dev@mail.osgi.org> wrote:
>>>> Well the good news is that OSGi is already a microservice architecture,
>>>> so you have already finished. Congratulations!
>>>>
>>>> If that answer doesn't quite satisfy you, maybe you'd like to describe
>>>> in more detail what you are attempting to achieve and why?
>>>>
>>>> Regards,
>>>> Neil
>>>>
>>>> On Thu, 2 May 2019 at 11:06, Mohamed AFIF via osgi-dev <
>>>> osgi-dev@mail.osgi.org> wrote:
>>>> Hello everybody,
>>>>
>>>> We 're starting to study the possibility to transform our architcteure
>>>> in order to migrate from OSGI to microservice architecture, and I would
>>>> like to know if there is alreay some people who had thought about this
>>>> subject or already start this migration.
>>>> Because at first sight it would not be an easy task, many
>>>> problems/issues we will be facing to them (blueprint injections, managing
>>>> ditrubued caches instead of one cache in one JVM...)
>>>>
>>>> Many thanks
>>>>
>>>>
>>>>
>>>>
>>>> --
>>>>
>>>> Cdt
>>>> Mohamed AFIF
>>>> _______________________________________________
>>>> OSGi Developer Mail List
>>>> osgi-dev@mail.osgi.org
>>>> https://mail.osgi.org/mailman/listinfo/osgi-dev
>>>> _______________________________________________
>>>> OSGi Developer Mail List
>>>> osgi-dev@mail.osgi.org
>>>> https://mail.osgi.org/mailman/listinfo/osgi-dev
>>>>
>>>>
>>>>
>>>> --
>>>>
>>>> Cdt
>>>> Mohamed AFIF
>>>>
>>>> _______________________________________________
>>>> OSGi Developer Mail List
>>>> osgi-dev@mail.osgi.org
>>>> https://mail.osgi.org/mailman/listinfo/osgi-dev
>>>>
>>>> --
>>>> Jürgen Albert
>>>> Geschäftsführer
>>>>
>>>> Data In Motion Consulting GmbH
>>>>
>>>> Kahlaische Str. 4
>>>> 07745 Jena
>>>>
>>>> Mobil:  0157-72521634
>>>> E-Mail: j.alb...@datainmotion.de
>>>> Web: www.datainmotion.de
>>>>
>>>> XING:   https://www.xing.com/profile/Juergen_Albert5
>>>>
>>>> Rechtliches
>>>>
>>>> Jena HBR 513025
>>>> _______________________________________________
>>>> OSGi Developer Mail List
>>>> osgi-dev@mail.osgi.org
>>>> https://mail.osgi.org/mailman/listinfo/osgi-dev
>>>>
>>>>
>>>> --
>>>>
>>>>
>>>> --
>>>> Jürgen Albert
>>>> Geschäftsführer
>>>>
>>>> Data In Motion Consulting GmbH
>>>>
>>>> Kahlaische Str. 4
>>>> 07745 Jena
>>>>
>>>> Mobil:  0157-72521634
>>>> E-Mail: j.alb...@datainmotion.de
>>>> Web: www.datainmotion.de
>>>>
>>>> XING:   https://www.xing.com/profile/Juergen_Albert5
>>>>
>>>> Rechtliches
>>>>
>>>> Jena HBR 513025
>>>> _______________________________________________
>>>> OSGi Developer Mail List
>>>> osgi-dev@mail.osgi.org
>>>> https://mail.osgi.org/mailman/listinfo/osgi-dev
>>>>
>>>
>>> --
>>> Jürgen Albert
>>> Geschäftsführer
>>>
>>> Data In Motion Consulting GmbH
>>>
>>> Kahlaische Str. 4
>>> 07745 Jena
>>>
>>> Mobil:  0157-72521634
>>> E-Mail: j.alb...@datainmotion.de
>>> Web: www.datainmotion.de
>>>
>>> XING:   https://www.xing.com/profile/Juergen_Albert5
>>>
>>> Rechtliches
>>>
>>> Jena HBR 513025
>>>
>>>
>> --
>> Jürgen Albert
>> Geschäftsführer
>>
>> Data In Motion Consulting GmbH
>>
>> Kahlaische Str. 4
>> 07745 Jena
>>
>> Mobil:  0157-72521634
>> E-Mail: j.alb...@datainmotion.de
>> Web: www.datainmotion.de
>>
>> XING:   https://www.xing.com/profile/Juergen_Albert5
>>
>> Rechtliches
>>
>> Jena HBR 513025
>>
>> _______________________________________________
>> OSGi Developer Mail List
>> osgi-dev@mail.osgi.org
>> https://mail.osgi.org/mailman/listinfo/osgi-dev
>
> _______________________________________________
> OSGi Developer Mail List
> osgi-dev@mail.osgi.org
> https://mail.osgi.org/mailman/listinfo/osgi-dev



-- 
-- 
Christian Schneider
http://www.liquid-reality.de

Computer Scientist
http://www.adobe.com
_______________________________________________
OSGi Developer Mail List
osgi-dev@mail.osgi.org
https://mail.osgi.org/mailman/listinfo/osgi-dev

Reply via email to