solaris安装java_Solaris是出色的Java开发平台的原因

solaris安装java

几天前,我发布了“ OpenSolaris的死亡:为Java开发人员选择操作系统 ”,其中我说Solaris是Java开发人员的绝佳平台。 这篇文章的重点只是想知道自OpenSolaris淘汰以来我将使用哪个Solaris版本。 正如Neil的评论使我意识到的那样,该帖子未能澄清的原因是您应该选择Solaris作为开发平台的原因。
我决定在这篇文章中写这篇后续文章,以快速总结我最喜欢的文章,并介绍一些在此类技术派上用场的用例。

软件可用性
尽管在过去的几年中,Solaris仍然是一个小众的操作系统(无论如何还是有很多其他平台),但Sun和社区在将其推广为开发人员的桌面替代品方面做得非常出色。 甚至为开发人员提供了一个特定的发行Solaris Express Developer Edition 。 它已经停产了,无论如何如今确实没有必要了。 较新的Solaris发行版(例如SXCE,OpenSolaris,OpenIndiana)包括(捆绑或在官方软件包存储库中):

  • 数据库(MySQL,PostgreSQL)。
  • Web服务器(Apache,Java Enterprise System Web服务器等)。
  • 应用程序服务器(Glassfish)。
  • SAMP堆栈(Solaris + Apache + MySQL + PHP)。
  • IDE(NetBeans,Eclipse)。
  • 支持其他流行语言(Ruby,Groovy等)。
  • 身份管理(LDAP,Java Enterprise System身份服务器)。

Solaris还是企业选择的平台,因此支持常见的企业软件包,作为Java开发人员或Java架构师,您将不会错过构建开发环境所需的部分。 作为Java开发人员,我经常需要的非常基本的软件包是:

  • Oracle RDBMS。
  • Oracle WebLogic应用服务器。
  • IBM WebSphere Application Server。
  • JBoss应用服务器。

Solaris的技术

Solaris拥有一些独特的技术,而其他UNIX(和类似UNIX的)系统可能缺少作为开发平台使用的技术(或从Solaris移植过来)。这里重要的不是“自身的技术”或仅在以下方面有用的技术:大型企业环境,但事实是:

  • 它们已经很好地集成在Solaris中,并且可以相互利用。
  • 在常见的使用案例中,这些技术确实对开发人员有帮助。

他们每个人都应该自己发表几篇文章,但是,我将尝试举一些简洁的例子。

Solaris服务管理工具

尽管此技术可能对系统管理员最有用,但作为开发人员,我经常利用它。 SMF是为服务和服务管理提供统一模型的框架。 基本配方仅需要服务的XML描述符。 SMF可让您:

  • 定义服务:启动脚本的位置,参数和语义。
  • 建立服务之间的依赖关系:
    • 服务和服务实例可能依赖于其他服务实例。
    • 服务启动是在并行考虑服务依赖关系的情况下执行的。
  • 增强的安全性和基于角色的细粒度访问控制:
    • 只能为服务分配运行所需的最低特权集。
    • 可以使用Solaris RBAC(基于角色的访问控制)将服务管理委派给非root用户。
  • 服务健康控制:
    • 服务自动重启。
    • 与Solaris Fault Manager的合作增强了服务的运行状况,该功能可在发生硬件故障时防止服务降级。
  • 自动inetd服务包装器:SMF自动包装inetd服务。

典型用例

我使用的每个软件包都有自己的SMF描述符(随软件包一起提供或由我定义),它大大减少了我设置开发机器所需的时间。 例如,对于WebSphere Application Server,我具有以下单独的服务实例:

  • WebSphere IHS。
  • WebSphere Application Server。
  • WebSphere Application Server DMGR。
  • WebSphere Application Server集群节点。

在它们之间定义了依赖关系,我可以只用一行代码来启动所需的WebSphere服务:

svcadm enable [websphere-service-name]

SMF将负责一切。

SMF的使用模式可以进一步增强。 假设您正在一个或多个项目中工作,并且每个项目都需要一组独特的运行服务。 通常发生以下情况之一:

  • 您将它们全部安装并运行。
  • 您将它们全部安装,并在切换工作项目时手动启动和停止它们。

对于开发人员而言,资源总是很少,而对于节省资源却有些偏执。 使用SMF,您可以:

  • 为每个项目定义一个SMF服务。
  • 对于每个项目,请定义与所需服务的依赖关系。

这样,您至少可以使用一个命令启动和关闭特定项目所需的每个服务。 不再:

  • 每个服务的自定义外壳脚本。
  • inetd服务(例如Subversion,Apache等)的定制配置条目
  • 特定的操作系统定制。
  • 当您不需要服务并浪费资源时可以运行它们,否则可以使用。

以下帖子中提供了SMF服务清单定制的示例:

  • 向SMF注册服务。
  • Solaris 10 SMF管理的服务的凭证和项目 。
  • 将Subversion设置为一个inetd服务 。

ZFS

就灵活性和易用性而言,ZFS文件系统是唯一的。 使用极其精简的命令集,您可以:

  • 动态创建文件系统。
  • 动态快照文件系统。
  • 动态复制文件系统,几乎没有使用空间。

关于ZFS的文献很多,我将限制描述我最喜欢的用例。

用例:复用您的开发环境。

软件安装只是用户体验的开始。 通常,我们花时间:

  • 配置我们的环境。
  • 对它们进行微调。
  • 定义我们需要的其他库集。
  • 定义应用程序使用的服务器资源集(JDBC,JMS等)。

等等。 列表是无止境的。

有时有必要为同一项目的不同项目或不同开发阶段准备不同的环境。 为了避免浪费时间和资源来构建不同的环境,我通常将按以下步骤进行操作:

  • 安装和配置我的环境。
  • 为它制作一个ZFS快照。
  • 为我需要的所有其他设置对其进行ZFS克隆。

Oracle JDeveloper是我经常克隆的应用程序的一个很好的例子。 尽管采用了在用户主目录中使用按用户配置目录的通用方法,但JDeveloper基本上是一个单一用户环境。 我只需要安装一次,快照它的安装目录,然后创建一个ZFS克隆(每个环境一个),而不必摆弄脚本来设置每个用户的配置参数。 我自己在用户主目录中使用了几个JDeveloper环境的克隆。

ZFS克隆的功能可由Zones基础结构使用,这将在下一节中看到,从而进一步增强了它的功能。 在处理大型安装(例如您喜欢的虚拟化技术的磁盘映像)时,克隆ZFS文件系统也很有利。

我写的有关ZFS的其他文章可以阐明其一些用例:

  • 设置开发人员环境时,使用ZFS克隆保留磁盘空间 。
  • Sun xVM:克隆domU 。

容器和其他虚拟化技术

我认为Solaris是出色的桌面虚拟化平台。 再次,用几个命令。 您可以轻松创建半虚拟化的Solaris实例(区域)。 区域基础结构支持ZFS,并且可以利用它。

可以使用其XML配置文件的命令行界面来配置区域。 创建区域非常简单,并且由于它们是轻量级技术,因此您可以根据需要创建任意数量的区域。 如果您使用的是ZFS,则克隆区域的过程非常简单且快速。

用例:群集应用程序服务器

在开发Java EE应用程序期间,通常将需要以下一项(或多项)的实例:

  • 应用服务器。
  • Web服务器。
  • 数据库;
  • 用户注册表。

还希望它们在隔离的环境中运行,以便您可以模拟预期的生产配置。 使用区域很容易:只需创建所需的多个区域,它们中的每一个将表现为一个单独的Solaris实例:例如,每个区域都有:

  • 自己的网卡和IP配置。
  • 它自己的用户,组,角色和安全策略。
  • 自己的服务。

您无需准备多次安装和配置环境,而是准备带有所需服务的“主”区域。 对于以下每一项,我都有一个“主”区域:

  • WebSphere Application Server。
  • WebLogic应用服务器。
  • Oracle数据库。
  • MySQL数据库。
  • LDAP目录。

等等。 使用一个简单的命令( zoneadm clone [-m复制] [-s zfs_snapshot] source_zone ),您将在几分钟之内得到一个全新的工作环境。

用例:VirtualBox和ZFS

有时,您宁愿使用其他操作系统的虚拟实例,例如GNU / Linux,FreeBSD和Windows。 Solaris是出色的VirtualBox主机,ZFS的强大功能将使您:

  • 为您需要的每个操作系统或每个“操作系统角色”创建“主”映像。
  • 即时对其进行克隆,以创建全新的虚拟OS映像。

就我而言,我有:

  • 具有Visual Studio for .NET开发的Windows 7主客户端。
  • 主Windows Server 2008。
  • 带有SQL Server 2008的主Windows Server 2008(是先前版本的克隆)。
  • 熟练的Debian GNU / Linux。

每当我需要一个新实例时,我只需要克隆磁盘映像即可。 在短短的几秒钟内,我便有了所需的环境。 我不仅节省了宝贵的时间,而且还节省了大量的磁盘空间。 如果我不使用ZFS技术而存储的所有映像(和区域),则至少需要4倍的磁盘。

用例:虚拟网络堆栈

Solaris为您提供了非常强大的网络虚拟化功能。 例如,您可以根据需要创建任意数量的虚拟NIC,并在Solaris Zones中或作为其他虚拟化技术(例如VirtualBox)的网卡独立使用它们。网卡可以与虚拟交换机(etherstub)互连,并使您能够创建“盒子中的网络”。 您不仅可以使用虚拟化实例来模拟您的生产环境:还可以创建虚拟化网络来模拟环境可能需要的复杂网络策略。

如果您需要测试一个环境,如果没有其他物理计算机就无法复制其配置,则可以在其中使用虚拟化技术(例如Zones或VirtualBox)和虚拟化网络堆栈。 我正在从事的项目的开发人员环境由以下组成:

  • 具有两个负载平衡的IBM IHS实例的两个区域。
  • 具有LDAP目录的区域。
  • 两个区域具有IBM WebSphere Application Server的两个集群实例。
  • 具有IBM WebSphere DMGR实例的区域。

使用Solaris,我可以在生产环境中复制生产环境,并尊重我们使用的每个网络配置。 没有这些技术,要实现这个目标将变得更加困难,否则我将获得自定义配置(例如,避免端口冲突)。 在所有情况下,如果区域不是那么容易使用,我将在管理和配置此类环境上浪费更多时间。

DTrace

DTrace功能非常容易向开发人员解释。 同时,如果不亲自尝试就很难掌握其有用性。 Solaris上的DTrace提供了数以万计的探针,其他探针可以即时创建。 此“探针”为您提供了一种非常有效的方法来解决应用程序和基础操作系统中的问题。 要使用探针,您必须使用D语言编写的脚本。 幸运的是,这种语言在设计上非常简单,您可以用几行代码编写功能强大的D脚本。

DTrace毫不费力,即使在生产环境中,您也可以立即解决问题,而无需修改应用程序。 一些IDE(例如NetBeans)具有强大的插件,可让您编写D脚本并以精美的图形查看探针收集的数据。

作为开发人员,我不止一次地重视DTrace的实用性。 不必排除必须深入研究源代码并引入其他代码的问题(即使在方便的情况下),我也可以使用D脚本从外部观察应用程序并快速收集数据,以帮助我确定问题可能出在哪里。

此外,在某些情况下,您会发现自己正在处理没有可用代码的情况。 我可以快速解决带有D脚本的WebSphere Application Server所遇到的问题,而不是依赖于WebSphere跟踪工具和解释日志文件的任务。

结论

介绍性文章就这么多。 对于任何开发平台,都必须“尽可能”地构建与目标环境尽可能接近的开发环境。 此外,我认为在尽可能接近生产环境的环境中工作不仅在应用程序开发阶段为您提供了额外的价值和见解,而且还应视为我们参与的每个项目的强制性要求。 Solaris提供了开发人员实现此目标所需的所有工具。

Solaris是一个复杂的企业操作系统,具有许多您可能永远不会使用的功能。 然而,正如我在本文中试图指出的那样,其中许多其他情况都有一个用例。 由于其中一些技术是使用开放源代码许可证开发的,因此它们也可以在其他操作系统上使用:ZFS在FreeBSD上可用,并且需要社区的努力将其移植到OSX。 DTrace在OS X,Linux和FreeBSD上可用。

“ Solaris优势”是所有这些技术都是高度集成的,并且可以相互利用。 结果比它们的总和还有价值。 这些技术具有非常完善且易于使用的管理界面:当时间很重要时,“您的工作方式”至关重要。

我希望这些见解可以帮助您了解Solaris操作系统是否以及何时对您有用。 即使您认为并非如此,我还是建议您尝试一下:在工具箱中添加新技术总是很好的。

参考: The Gray Blog上的 JCG合作伙伴提供了Solaris为什么是 出色的 Java开发平台的一些原因 。

相关文章 :
  • Java最佳实践
  • 使用VirtualBox在PC上安装Android OS
  • Java内存模型-快速概述和注意事项
  • 适用于Mac OS X的官方Java 7 –状态
  • Java初学者指南

翻译自: https://www.javacodegeeks.com/2011/05/solaris-java-development-platform.html

solaris安装java

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/359662.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

正确使用计算机说课稿,《计算机结构原理初步》说课稿

在教师招聘考试的过程中,高中信息说课稿的难度就在于如何处理理论与实践的关系,希望这篇《计算机结构原理初步》说课稿能给予你帮助。各位考官大家好!我是号考生,今天我说课的题目是《计算机结构原理初步》。现代教学理论认为,在教…

stringstream实例

stringstream的具体作用稍后来总结&#xff0c;这里分享一个实例&#xff0c;从txt文档中读取数据&#xff0c;并对进行处理。 #include <iostream> #include <sstream> //stringstream的头文件 #include <fstream> #include <vector> #include <s…

计算机2013知识,2013年全国计算机一级考试B基本知识点五

基础5单元格操作对已建立的工作表&#xff0c;根据需要可以编辑修改其中的数据首先要移动单元格指针到目的地或选定编辑对象&#xff0c;然后才能进行增、删、改操作。1.单元格指针的移动要编辑某单元格&#xff0c;必须把单元格指针移动到该单元格&#xff0c;使之成为当前单元…

两种解决IE6不支持固定定位的方法

有两种让IE6支持position:fixed1.用CSS执行表达式 *{margin:0;padding:0;} * html,* html body{ background-image:url(about:blank);background-attachment:fixed; } * html .fixed{position:absolute;bottom:auto;top:expression(eval(document.documentElement.scrollTopdoc…

smartgwt_高级SmartGWT教程,第1部分

smartgwt贾斯汀&#xff08;Justin&#xff09;&#xff0c;帕特&#xff08;Pat&#xff09;和我已经开始着手进行一个需要管理和管理用户界面的副项目。 在与SmartGWT和GWT共同工作了一段时间之后&#xff0c;我们决定使用SmartGWT创建接口。 我们非常喜欢视觉组件&#xff0…

计算机英语女人英语怎么说,英语时差:计算机和女人

00:0000:00微信扫码登陆&#xff0c;畅听全站所有音频&#xff01;(20秒后自动关闭)X关注后&#xff0c;点此关闭https://online2.tingclass.net/lesson/shi0529/10000/10183/67.mp3https://image.tingclass.net/statics/js/2012When you hear the term, "computer geek,&…

Python 生成账号密码算法

有个需求&#xff0c;需要伪造跟用户行为非常类似的账号密码&#xff0c;而且需要一个阀值控制伪造的数量。 在这需求上&#xff0c;还有一个就是需要控制生成的比率、跳出率不能过高或者太低。 对此就随手用python写了一个&#xff0c;bug不知道有木有&#xff0c;没有测&…

云计算系统是大规模计算机系统吗,云计算的系统架构及技术探析

云计算技术属于计算机技术的一种&#xff0c;是目前计算机技术中应用以及研究重点之一&#xff0c;那么云计算到底是什么呢&#xff1f;云计算是在并行处理&#xff0c;分析式处理等技术的基础上发展而来的新技术&#xff0c;可以有效的将计算机进行整合&#xff0c;建立新颖的…

mvc crud_Spring MVC3 Hibernate CRUD示例应用程序

mvc crud学习从HelloWorld应用程序开始的任何Web框架都是一个好主意。 一旦我们熟悉了框架配置&#xff0c;最好做一个CRUD&#xff08;创建&#xff0c;读取&#xff0c;更新&#xff0c;删除&#xff09;应用程序&#xff0c;该应用程序涵盖Web框架的各个方面&#xff0c;例如…

关于支付宝即时到帐异步通知(notify_url)一点总结

&#xff08;1&#xff09;首先做支付的商业网站&#xff0c;需要能够上网&#xff08;支付成功后&#xff0c;需要进行参数回传验证&#xff0c;如果上不了网&#xff0c;responseText就直接为false&#xff09;&#xff08;2&#xff09;notify_url这个不能进行验证&#xff…

会计用计算机很快是,40个超实用电脑快捷键,老会计都在用

Ctrl A 全选Ctrl C 复制Ctrl F 查找Ctrl P 打印Ctrl X 剪切Ctrl V 粘贴Ctrl Z 撤消Ctrl Y 恢复Alt PrtScr 截屏(活动窗口)Ctrl Alt A 截屏(QQ截屏)Ctrl Shift X 截屏(360截屏)Delete 删除Win D 返回桌面Win E 打开我的电脑Win L 锁定桌面Win 左/右箭头 将当前…

windows+nginx负载测试

系统:windows2003nginx版本:1.7.3(官方推荐版本 #父节点 http upstream cluster_1{ ip_hash;#能较好地把同一个客户端的多次请求分配到同一台服务器处理&#xff0c;避免了加权轮询无法适用会话保持的需求 server host:port weight1;#权重越高转向的请求比重越大 server host:p…

Vue 封装echarts柱状图(Bar)组件

目的&#xff1a;减少重复代码&#xff0c;便于维护 显示效果 组件代码 <template><div class"ldw-data-content-box"><div class"ldw-chilren-box"><div class"title" v-if"title">{{ title }}</div>…

9277用计算机,关于计算机常用进制以及进制之间的转换笔记

计算机常用进制以及进制之间的转换进制的由来生活中的常用进制计算机中的二进制计算机常用四种进制的说明八进制和十六进制进制之间的转换进制的由来进位就是进位计数制&#xff0c;就是一种计数的方法古代社会的技术方式结绳计数书契计数算盘正字计数n进制&#xff0c;就是逢n…

HTML5-寻路跟踪

转载于:https://www.cnblogs.com/lgyup/p/3895914.html

smartgwt_高级SmartGWT教程,第2部分

smartgwt这是我的教程的第二部分&#xff0c;有关使用SmartGWT快速进行UI开发。 在本教程的第一部分中 &#xff0c;我们创建了基本的界面布局并添加了一些基本组件。 现在是时候解决这个问题&#xff0c;并使用SmartGWT的真正功能了。 在继续之前&#xff0c;让我们记住到目前…

百年理工计算机专业课程,这两所国内的百年理工院校,实力强劲,都是国内顶尖实力...

2021年全国高考终于圆满落下了帷幕&#xff0c;但考生们即将要面临一件人生大事&#xff0c;那就是高考志愿填报&#xff0c;因此高考虽然结束&#xff0c;但考生们的压力仍然是不小&#xff0c;只有正确地填好高考志愿&#xff0c;确保自己能够被心仪的高校收录取&#xff0c;…

数学图形之SineSurface与粽子曲面

SineSurface直译为正弦曲面.这有可能和你想象的正弦曲线不一样.如果把正弦曲线绕Y轴旋转,得到的该是正弦波曲面.这个曲面与上一节中的罗马曲面有些相似,那个是被捏过的正四面体,这个则是个被捏过正方体. 本文将展示SineSurface与粽子曲面的生成算法和切图,使用自己定义语法的脚…

计算机工程学院文艺例会,西航职院 | 计算机工程学院 2019年度学生会干部第一次例会...

原标题&#xff1a;西航职院 | 计算机工程学院 2019年度学生会干部第一次例会西航职院计算机工程学院&#xff0c;2019年度第一次学生会干部例会&#xff0c;于2月26日下午在四号教学楼201顺利召开。参加此次会议的有计算机学生会全体学生干部和指导老师刘老师。会议开始&#…

dateformat线程_Java最佳实践–多线程环境中的DateFormat

dateformat线程这是有关使用Java编程语言时的拟议实践的系列文章的第一篇。 所有讨论的主题均基于用例&#xff0c;这些用例源于电信行业关键任务超高性能生产系统的开发。 在阅读本文的每个部分之前&#xff0c;强烈建议您参考相关的Java API文档以获取详细信息和代码示例。…