مرحبا يا هبر! أقدم لكم ترجمة المقال ديمتري كورنيلوف
هيليدون يأخذ رحلة . أنا لست موظفًا في Oracle ، ولكني وجدت مقالًا مثيرًا للاهتمام حول نوع جديد وشعبية متنامية من نوع الإطار. لذلك دعونا نذهب ...
اليوم يوم جيد نقدم اليوم عائلة MicroProfile الجديدة لإطارات Java لتنفيذ الخدمات المصغرة. مشروع Helidon هو إطار Java الجديد من Oracle .
Helidon ، من الترجمة اليونانية لابتلاع ، نوع من الطيور ، وفقًا لويكيبيديا ، بجسم مبسط وأجنحة مدببة ، والتي توفر قدرة كبيرة على المناورة و ... رحلة فعالة للغاية. مثالية للطيران في الغيوم.مقدمة
منذ بعض الوقت ، بدأ العمل على ما هو مشروع Helidon الآن. عندما دخلنا سوق الحلول السحابية وأصبحت بنية الخدمات الصغيرة شائعة جدًا لإنشاء الخدمات السحابية ، أدركنا أنه يجب أيضًا توسيع خبرة التطوير. من الممكن إنشاء خدمات متناهية الصغر باستخدام Java EE ، ولكن من الأفضل أن يكون لديك بنية أساسية مصممة من الصفر لإنشاء خدمات متناهية الصغر. أردنا إنشاء مجموعة خفيفة من المكتبات التي لا تتطلب خادم تطبيقات وسحابة لتطبيقات Java SE. يمكن استخدام هذه المكتبات بشكل منفصل عن بعضها البعض ، ولكن إذا تم استخدامها معًا ، فإنها ستزود المطور بإنشاء إطار عمل الخدمات الصغيرة: التكوين الأولي والنظام الفرعي للأمان وخادم الويب.
تجري محاولات بالفعل لإنشاء أنظمة خدمة صغيرة قياسية من MicroProfile. يحظى MicroProfile بشعبية كبيرة في مجتمع Java EE / Jakarta EE ويوفر تجربة تطوير مشابهة لـ Java EE. نحب الفكرة ونؤيد هذه المبادرة. تنفذ Helidon برنامج MicroProfile 1.1. سنواصل العمل على إدخال إصدارات جديدة من MicroProfile ونعتزم الحفاظ على معايير جاكرتا EE ذات الصلة في هذا المجال ، كما تم وصفها بالفعل.
تم إنشاء Helidon في Oracle ، لذلك لا تفاجأ بوجود تكامل مع Oracle Cloud. لم يتم تضمينها في الإصدار الأولي ، ولكن سيتم إضافتها لاحقًا. يتم استخدام Helidon بالفعل من قبل العديد من مشاريع Oracle الداخلية وتبسط عمليات التكامل هذه حياة مطورينا. نعتقد أن هذا سوف يبسط حياتك إذا كنت تستخدم Oracle Cloud. إذا لم يكن كذلك ، فإن عمليات الدمج هذه اختيارية.
التصنيف
تنقسم أطر عمل Java التي تقدم خدمات Microservice إلى عدة فئات ، من الصغيرة إلى الكبيرة:
- Microframeworks - بسيطة ومضحكة مع مجموعة محدودة من الميزات ، على سبيل المثال: Spark و Javalin و Micronaut وغيرها.
- MicroProfile - أكثر دراية لمطوري Java EE ، ولكن "أصعب" قليلاً. تم تطوير بعضها على رأس خوادم تطبيقات Java EE ، على سبيل المثال: Thorntail (المعروف سابقًا باسم Wildfly Swarm) ، OpenLiberty ، Payara.
- Full Stack - كامل الميزات ، مثل Spring Boot.
يأتي Helidon في نكهتين وينتمي إلى فئتين: Microframeworks و MicroProfile.
- إن Helidon SE عبارة عن إطار صغير دقيق وعملي وخفيف الوزن مصمم بأسلوب تفاعلي حديث. ليس هناك "سحر" فيه. لا يلزم بيئة خاصة ؛ يتم استخدام JDK كما هي.
- Helidon MP هو تطبيق Eclipse Microprofile يوفر أسلوب تطوير مألوف لمطوري Java EE / Jakarta EE.
العمارة
تظهر هندسة هيليدون أدناه.
تكون مكونات Helidon SE خضراء ، بما في ذلك التكوين والأمان و RxServer.
مكونات Java EE / Jakarta EE غير نشطة ، بما في ذلك JSON-P و JAX-RS / Jersey و CDI. إنهم بحاجة إلى تطبيق MicroProfile. Helidon MP هي طبقة أعلى مكون Helidon SE. يتم تلوين المكونات الإضافية لخدمات Oracle Cloud باللون الأحمر ويمكن استخدامها من قبل مكونات Helidon SE و Helidon MP.
أمثلة على الاستخدام
التثبيت
أسهل طريقة للبدء مع Helidon هي أن يكون لديك مشروع Maven في Java 8 (أو أعلى) تحدد فيه Helidon bom-pom والحد الأدنى من التبعيات:
<dependencyManagement> <dependencies> <dependency> <groupId>io.helidon</groupId> <artifactId>helidon-bom</artifactId> <version>${helidon-version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> ..... <dependency> <groupId>io.helidon.webserver</groupId> <artifactId>helidon-webserver-netty</artifactId> </dependency>
Helidon se
Helidon SE هو أساس الخدمات الدقيقة التفاعلية خفيفة الوزن. مثال "Hello world":
import io.helidon.webserver.Routing; import io.helidon.webserver.WebServer; ..... Routing routing = Routing.builder() .get("/hello", (req, res) -> res.send("Hello World")) .build(); WebServer.create(routing) .start();
في هذه الحالة ، نبدأ خادم الويب على منفذ عشوائي (مجاني) ونفتح الوصول عبر / hello.
إضافة المقاييس
الآن نضيف تنفيذ واجهات مقاييس MicroProfile لـ Helidon SE (بدون دعم DI ، حيث لم يتم تضمين هذا في SE). سيتطلب هذا التبعيات التالية:
<dependency> <groupId>io.helidon.metrics</groupId> <artifactId>helidon-metrics-se</artifactId> </dependency>
التنفيذ:
الآن لدينا نقاط النهاية التالية المتاحة:
- / metrics - جميع المقاييس الأساسية
- / metrics / application / helloCounter - المقاييس التي تم إنشاؤها بواسطة تطبيق "hello world"
النائب Helidon
Helidon MP هو تطبيق Eclipse Microprofile ووقت تشغيل الخدمات المصغرة.
لإنشاء تطبيق "Hello world" يستخدم مقاييس الاتصال ، يجب إنشاء فئة موارد JAX-RS للتعامل مع الطلبات:
@Path("hello") @RequestScoped
ثم قم بتشغيل الخادم بهذا المورد:
Server.builder() .addResourceClass(HelloWorld.class) .build() .start();
تحتاج أيضًا إلى إنشاء beans.xml في دليل src / main / resources / META-INF لتنشيط CDI:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/beans_2_0.xsd" bean-discovery-mode="annotated"> </beans>
باستخدام هذا التكوين ، سيتم تشغيل خادم الويب على المنفذ الافتراضي (7001) وفتح الوصول عبر / hello. . ستكون نقاط النهاية التالية متاحة:
- localhost : 7001 / hello - تطبيق hello world نفسه
- localhost : 7001 / metrics - مقاييس MicroProfile
- localhost : 7001 / metrics / application / com.oracle.tlanger.HelloWorld.hello - مقاييس تطبيق "hello world"
- localhost : 7001 / health - مقاييس حالة MicroProfile
الخطط
لدينا العديد من الخطط المناسبة لمقال منفصل.
هدفنا قصير المدى هو تغطية وتقديم Helidon في مجتمع Java. نخطط للحديث عن Helidon في بعض المؤتمرات. تمت جدولة أربعة تقارير Helidon بالفعل لـ Oracle Code One 2018. لقد تقدمنا أيضًا بطلب للحصول على EclipseCon Europe 2018 وسنشارك في يوم المجتمع في جاكرتا EE / MicroProfile. مواد تدريبية مثل مقاطع الفيديو ودراسات الحالة والمقالات وما إلى ذلك. بالفعل قيد التطوير وسيتم نشرها قريبًا.
بالنسبة للجانب التقني ، نحن نعمل على تنفيذ الإصدار التالي من MicroProfile ، دعم GraalVM.
نحن نعمل على أشياء رائعة أخرى ، ولكن حتى الآن لا يمكننا الكشف عن جميع البطاقات. ابق معنا ، سنعلن عن ميزات جديدة بمجرد أن تكون جاهزة.
مصادر
قد تكون مهتمًا بهذا:
- في البداية ، كان الاسم J4C (Java for Cloud)
- تم تطوير Helidon من قبل فريق موزع من براغ والولايات المتحدة.
- يتم استخدام Helidon بالفعل من قبل أكثر من عشرة مشاريع في Oracle
- لا تزال بعض مكونات Helidon قيد التطوير وستكون متاحة للجمهور بعد مرور بعض الوقت.